From: Jo-Philipp Wich
Date: Fri, 10 Nov 2017 12:06:10 +0000 (+0100)
Subject: Merge pull request #980 from NvrBst/pull-request-upnp_description
X-Git-Url: http://git.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=b2274e5d6d27cdd0819d9e35058ebcd2cb8b55f5;hp=dd0b5cfd16eaea51b3653a91a1e136898d685849
Merge pull request #980 from NvrBst/pull-request-upnp_description
luci-app-upnp: Adding and displaying "Description" to upnp data
---
diff --git a/applications/luci-app-adblock/Makefile b/applications/luci-app-adblock/Makefile
index 8efe2d6048..ae1eba2516 100644
--- a/applications/luci-app-adblock/Makefile
+++ b/applications/luci-app-adblock/Makefile
@@ -1,14 +1,12 @@
-# Copyright (C) 2016 Openwrt.org
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
+# Copyright 2017 Dirk Brenken (dev@brenken.org)
+# This is free software, licensed under the Apache License, Version 2.0
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Adblock
-LUCI_DEPENDS:=+adblock
+LUCI_DEPENDS:=+adblock +luci-lib-jsonc
LUCI_PKGARCH:=all
include ../../luci.mk
-# call BuildPackage - OpenWrt buildroot signature
+# call BuildPackage - OpenWrt buildroot signature
\ No newline at end of file
diff --git a/applications/luci-app-adblock/luasrc/controller/adblock.lua b/applications/luci-app-adblock/luasrc/controller/adblock.lua
index d8b471814f..b74858400b 100644
--- a/applications/luci-app-adblock/luasrc/controller/adblock.lua
+++ b/applications/luci-app-adblock/luasrc/controller/adblock.lua
@@ -1,12 +1,54 @@
--- Copyright 2016 Openwrt.org
--- Licensed to the public under the Apache License 2.0.
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
module("luci.controller.adblock", package.seeall)
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local templ = require("luci.template")
+local i18n = require("luci.i18n")
+
function index()
if not nixio.fs.access("/etc/config/adblock") then
return
end
+ entry({"admin", "services", "adblock"}, firstchild(), _("Adblock"), 30).dependent = false
+ entry({"admin", "services", "adblock", "tab_from_cbi"}, cbi("adblock/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
+ entry({"admin", "services", "adblock", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true
+ entry({"admin", "services", "adblock", "advanced"}, firstchild(), _("Advanced"), 100)
+ entry({"admin", "services", "adblock", "advanced", "blacklist"}, cbi("adblock/blacklist_tab"), _("Edit Blacklist"), 110).leaf = true
+ entry({"admin", "services", "adblock", "advanced", "whitelist"}, cbi("adblock/whitelist_tab"), _("Edit Whitelist"), 120).leaf = true
+ entry({"admin", "services", "adblock", "advanced", "configuration"}, cbi("adblock/configuration_tab"), _("Edit Configuration"), 130).leaf = true
+ entry({"admin", "services", "adblock", "advanced", "query"}, template("adblock/query"), _("Query domains"), 140).leaf = true
+ entry({"admin", "services", "adblock", "advanced", "result"}, call("queryData"), nil, 150).leaf = true
+end
- entry({"admin", "services", "adblock"}, cbi("adblock"), _("Adblock"), 40)
+function logread()
+ local logfile
+
+ if nixio.fs.access("/var/log/messages") then
+ logfile = util.trim(util.exec("cat /var/log/messages | grep 'adblock'"))
+ else
+ logfile = util.trim(util.exec("logread -e 'adblock'"))
+ end
+ templ.render("adblock/logread", {title = i18n.translate("Adblock Logfile"), content = logfile})
+end
+
+function queryData(domain)
+ if domain and domain:match("^[a-zA-Z0-9%-%._]+$") then
+ luci.http.prepare_content("text/plain")
+ local cmd = "/etc/init.d/adblock query %q 2>&1"
+ local util = io.popen(cmd % domain)
+ if util then
+ while true do
+ local line = util:read("*l")
+ if not line then
+ break
+ end
+ luci.http.write(line)
+ luci.http.write("\n")
+ end
+ util:close()
+ end
+ end
end
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
deleted file mode 100644
index d80cb486e3..0000000000
--- a/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
+++ /dev/null
@@ -1,63 +0,0 @@
--- Copyright 2016 Hannu Nyman
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("adblock", translate("Adblock"),
- translate("Configuration of the adblock package to block ad/abuse domains by using DNS."))
-
--- General options
-
-s = m:section(NamedSection, "global", "adblock", translate("Global options"))
-
-o1 = s:option(Flag, "adb_enabled", translate("Enable adblock"))
-o1.rmempty = false
-o1.default = 0
-
-o3 = s:option(Value, "adb_whitelist", translate("Whitelist file"),
- translate("File with whitelisted hosts/domains that are allowed despite being on a blocklist."))
-o3.rmempty = false
-o3.datatype = "file"
-
--- Blocklist options
-
-bl = m:section(TypedSection, "source", translate("Blocklist sources"),
- translate("Available blocklist sources (")
- .. [[]]
- .. translate("see list details")
- .. [[ ]]
- .. translate("). Note that list URLs and Shallalist category selections are not configurable via Luci."))
-bl.template = "cbi/tblsection"
-
-name = bl:option(Flag, "enabled", translate("Enabled"))
-name.rmempty = false
-
-des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
-
--- Additional options
-
-s2 = m:section(NamedSection, "backup", "service", translate("Backup options"))
-
-o4 = s2:option(Flag, "enabled", translate("Enable blocklist backup"))
-o4.rmempty = false
-o4.default = 0
-
-o5 = s2:option(Value, "adb_dir", translate("Backup directory"))
-o5.rmempty = false
-o5.datatype = "directory"
-
--- Extra options
-
-e = m:section(NamedSection, "global", "adblock", translate("Extra options"),
- translate("Options for further tweaking in case the defaults are not suitable for you."))
-
-a = e:option(Flag, "adb_debug", translate("Enable verbose debug logging"))
-a.default = a.disabled
-a.rmempty = false
-
-a = e:option(Value, "adb_iface", translate("Restrict reload trigger to certain interface(s)"),
- translate("Space separated list of wan interfaces that trigger reload action. " ..
- "To disable reload trigger set it to 'false'. Default: empty"))
-a.datatype = "network"
-a.rmempty = true
-
-return m
-
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua
new file mode 100644
index 0000000000..ef70100e4f
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua
@@ -0,0 +1,52 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local uci = require("uci")
+local adbinput = uci.get("adblock", "blacklist", "adb_src" or "/etc/adblock/adblock.blacklist")
+
+if not nixio.fs.access(adbinput) then
+ m = SimpleForm("error", nil,
+ translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+if nixio.fs.stat(adbinput).size > 524288 then
+ m = SimpleForm("error", nil,
+ translate("The file size is too large for online editing in LuCI (> 512 KB). ")
+ .. translate("Please edit this file directly in a terminal session."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translatef("This form allows you to modify the content of the adblock blacklist (%s). ", adbinput)
+ .. translate("Please add only one domain per line. Comments introduced with '#' are allowed - ip addresses, wildcards and regex are not."))
+
+f = s:option(TextValue, "data")
+f.datatype = "string"
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua
new file mode 100644
index 0000000000..1d89485e79
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local adbinput = "/etc/config/adblock"
+
+if not nixio.fs.access(adbinput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main adblock configuration file (/etc/config/adblock)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
new file mode 100644
index 0000000000..4bb404c25c
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
@@ -0,0 +1,242 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local sys = require("luci.sys")
+local util = require("luci.util")
+local dump = util.ubus("network.interface", "dump", {})
+local json = require("luci.jsonc")
+local adbinput = uci.get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json"
+
+if not uci:get("adblock", "extra") then
+ m = SimpleForm("", nil, translate("Please update your adblock config file to use this package. ")
+ .. translatef("During opkg package installation use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from "
+ .. ""
+ .. "here ", "https://raw.githubusercontent.com/openwrt/packages/master/net/adblock/files/adblock.conf"))
+ m.submit = false
+ m.reset = false
+ return m
+end
+
+m = Map("adblock", translate("Adblock"),
+ translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ")
+ .. translatef("For further information "
+ .. ""
+ .. "check the online documentation ", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md"))
+
+function m.on_after_commit(self)
+ luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+end
+
+-- Main adblock options
+
+s = m:section(NamedSection, "global", "adblock")
+
+local parse = json.parse(fs.readfile(adbinput) or "")
+if parse then
+ status = parse.data.adblock_status
+ version = parse.data.adblock_version
+ domains = parse.data.overall_domains
+ fetch = parse.data.fetch_utility
+ backend = parse.data.dns_backend
+ rundate = parse.data.last_rundate
+end
+
+o1 = s:option(Flag, "adb_enabled", translate("Enable Adblock"))
+o1.default = o1.disabled
+o1.rmempty = false
+
+btn = s:option(Button, "", translate("Suspend / Resume Adblock"))
+if parse and status == "enabled" then
+ btn.inputtitle = translate("Suspend")
+ btn.inputstyle = "reset"
+ btn.disabled = false
+ function btn.write()
+ luci.sys.call("/etc/init.d/adblock suspend >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+ end
+elseif parse and status == "paused" then
+ btn.inputtitle = translate("Resume")
+ btn.inputstyle = "apply"
+ btn.disabled = false
+ function btn.write()
+ luci.sys.call("/etc/init.d/adblock resume >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+ end
+else
+ btn.inputtitle = translate("-------")
+ btn.inputstyle = "button"
+ btn.disabled = true
+end
+
+o2 = s:option(ListValue, "adb_dns", translate("DNS Backend (DNS Directory)"),
+ translate("List of supported DNS backends with their default list export directory. ")
+ .. translate("To overwrite the default path use the 'DNS Directory' option in the extra section below."))
+o2:value("dnsmasq", "dnsmasq (/tmp/dnsmasq.d)")
+o2:value("unbound", "unbound (/var/lib/unbound)")
+o2:value("named", "named (/var/lib/bind)")
+o2:value("kresd", "kresd (/etc/kresd)")
+o2:value("dnscrypt-proxy","dnscrypt-proxy (/tmp)")
+o2.rmempty = false
+
+o3 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"),
+ translate("List of available network interfaces. Usually the startup will be triggered by the 'wan' interface. ")
+ .. translate("Choose 'none' to disable automatic startups, 'timed' to use a classic timeout (default 30 sec.) or select another trigger interface."))
+o3:value("none")
+o3:value("timed")
+if dump then
+ local i, v
+ for i, v in ipairs(dump.interface) do
+ if v.interface ~= "loopback" then
+ o3:value(v.interface)
+ end
+ end
+end
+o3.rmempty = false
+
+-- Runtime information
+
+ds = s:option(DummyValue, "", translate("Runtime Information"))
+ds.template = "cbi/nullsection"
+
+dv1 = s:option(DummyValue, "", translate("Adblock Status"))
+dv1.template = "adblock/runtime"
+if parse == nil then
+ dv1.value = translate("n/a")
+else
+ if status == "error" then
+ dv1.value = translate("error")
+ elseif status == "disabled" then
+ dv1.value = translate("disabled")
+ elseif status == "paused" then
+ dv1.value = translate("paused")
+ else
+ dv1.value = translate("enabled")
+ end
+end
+
+dv2 = s:option(DummyValue, "", translate("Adblock Version"))
+dv2.template = "adblock/runtime"
+if parse == nil then
+ dv2.value = translate("n/a")
+else
+ dv2.value = version
+end
+
+dv3 = s:option(DummyValue, "", translate("Download Utility (SSL Library)"),
+ translate("For SSL protected blocklist sources you need a suitable SSL library, e.g. 'libustream-ssl' or the wget 'built-in'."))
+dv3.template = "adblock/runtime"
+if parse == nil then
+ dv3.value = translate("n/a")
+else
+ dv3.value = fetch
+end
+
+dv4 = s:option(DummyValue, "", translate("DNS Backend (DNS Directory)"))
+dv4.template = "adblock/runtime"
+if parse == nil then
+ dv4.value = translate("n/a")
+else
+ dv4.value = backend
+end
+
+dv5 = s:option(DummyValue, "", translate("Overall Domains"))
+dv5.template = "adblock/runtime"
+if parse == nil then
+ dv5.value = translate("n/a")
+else
+ dv5.value = domains
+end
+
+dv6 = s:option(DummyValue, "", translate("Last Run"))
+dv6.template = "adblock/runtime"
+if parse == nil then
+ dv6.value = translate("n/a")
+else
+ dv6.value = rundate
+end
+
+-- Blocklist table
+
+bl = m:section(TypedSection, "source", translate("Blocklist Sources"),
+ translate("Available blocklist sources. ")
+ .. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section. ")
+ .. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select too many lists - 5-6 should be sufficient!"))
+bl.template = "cbi/tblsection"
+
+name = bl:option(Flag, "enabled", translate("Enabled"))
+name.rmempty = false
+
+ssl = bl:option(DummyValue, "adb_src", translate("SSL req."))
+function ssl.cfgvalue(self, section)
+ local source = self.map:get(section, "adb_src")
+ if source and source:match("https://") then
+ return translate("Yes")
+ else
+ return translate("No")
+ end
+end
+des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
+
+-- Extra options
+
+e = m:section(NamedSection, "extra", "adblock", translate("Extra Options"),
+ translate("Options for further tweaking in case the defaults are not suitable for you."))
+
+e1 = e:option(Flag, "adb_debug", translate("Verbose Debug Logging"),
+ translate("Enable verbose debug logging in case of any processing error."))
+e1.default = e1.disabled
+e1.rmempty = false
+
+e2 = e:option(Flag, "adb_forcedns", translate("Force Local DNS"),
+ translate("Redirect all DNS queries from 'lan' zone to the local resolver."))
+e2.default = e2.disabled
+e2.rmempty = false
+
+e3 = e:option(Flag, "adb_forcesrt", translate("Force Overall Sort"),
+ translate("Enable memory intense overall sort / duplicate removal on low memory devices (< 64 MB free RAM)"))
+e3.default = e3.disabled
+e3.rmempty = false
+
+e4 = e:option(Flag, "adb_backup", translate("Enable Blocklist Backup"),
+ translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in backup mode."))
+e4.default = e4.disabled
+e4.rmempty = false
+
+e5 = e:option(Value, "adb_backupdir", translate("Backup Directory"),
+ translate("Target directory for adblock backups. Please use only non-volatile disks, e.g. an external usb stick."))
+e5:depends("adb_backup", 1)
+e5.datatype = "directory"
+e5.default = "/mnt"
+e5.rmempty = true
+
+e6 = e:option(Flag, "adb_backup_mode", translate("Backup Mode"),
+ translate("Do not automatically update blocklists during startup, use blocklist backups instead."))
+e6:depends("adb_backup", 1)
+e6.default = e6.disabled
+e6.rmempty = true
+
+e7 = e:option(Flag, "adb_whitelist_mode", translate("Whitelist Mode"),
+ translate("Block access to all domains except those explicitly listed in the whitelist file."))
+e7.default = e7.disabled
+e7.rmempty = true
+
+e8 = e:option(Value, "adb_dnsdir", translate("DNS Directory"),
+ translate("Target directory for the generated blocklist 'adb_list.overall'."))
+e8.datatype = "directory"
+e8.optional = true
+
+e9 = e:option(Value, "adb_whitelist", translate("Whitelist File"),
+ translate("Full path to the whitelist file."))
+e9.datatype = "file"
+e9.default = "/etc/adblock/adblock.whitelist"
+e9.optional = true
+
+e10 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"),
+ translate("Additional trigger delay in seconds before adblock processing begins."))
+e10.datatype = "range(1,60)"
+e10.optional = true
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua
new file mode 100644
index 0000000000..a3659eb469
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua
@@ -0,0 +1,51 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local uci = require("uci")
+local adbinput = uci.get("adblock", "global", "adb_whitelist") or "/etc/adblock/adblock.whitelist"
+
+if not nixio.fs.access(adbinput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+if nixio.fs.stat(adbinput).size > 524288 then
+ m = SimpleForm("error", nil,
+ translate("The file size is too large for online editing in LuCI (> 512 KB). ")
+ .. translate("Please edit this file directly in a terminal session."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translatef("This form allows you to modify the content of the adblock whitelist (%s). ", adbinput)
+ .. translate("Please add only one domain per line. Comments introduced with '#' are allowed - ip addresses, wildcards and regex are not."))
+
+f = s:option(TextValue, "data")
+f.datatype = "string"
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm b/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm
new file mode 100644
index 0000000000..2233a15e31
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm
@@ -0,0 +1,13 @@
+
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
new file mode 100644
index 0000000000..5e25a549c6
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
@@ -0,0 +1,14 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+
+
+ <%:This form shows the syslog output, pre-filtered for adblock related messages only.%>
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/query.htm b/applications/luci-app-adblock/luasrc/view/adblock/query.htm
new file mode 100644
index 0000000000..ce706e40aa
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/view/adblock/query.htm
@@ -0,0 +1,65 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
new file mode 100644
index 0000000000..0221a75ed1
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
@@ -0,0 +1,10 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+cbi/valueheader%>
+
+
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-adblock/po/it/adblock.po b/applications/luci-app-adblock/po/it/adblock.po
new file mode 100644
index 0000000000..af3414c997
--- /dev/null
+++ b/applications/luci-app-adblock/po/it/adblock.po
@@ -0,0 +1,396 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 17/09/2017\n"
+"Last-Translator: Bubu83 \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.3\n"
+"Language: it\n"
+
+msgid "-------"
+msgstr ""
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Logfile"
+msgstr "Registro Adblock"
+
+msgid "Adblock Status"
+msgstr "Status Adblock"
+
+msgid "Adblock Version"
+msgstr "Versione Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "Tempo addizionale in secondi di attesa prima che adblock si avvii."
+
+msgid "Advanced"
+msgstr "Avanzato"
+
+msgid "Available blocklist sources."
+msgstr "Fonti lista di blocco disponibili."
+
+msgid "Backup Directory"
+msgstr "Directory del Backup"
+
+msgid "Backup Mode"
+msgstr ""
+
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
+msgstr "Fonti lista di Blocco"
+
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"Scegli 'none' per disabilitare l'avvio automatico, 'timed' per usare un "
+"classico timeout (default 30 sec.) o seleziona un'altra interfaccia di avvio."
+
+msgid "Collecting data..."
+msgstr "Raccogliendo dati..."
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"Configurazione del pacchetto adblock per bloccare domini pubblicità /abuso "
+"usando i DNS."
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr "Directory DNS"
+
+msgid "Description"
+msgstr "Descrizione"
+
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Non aggiornare automaticamente le liste durante l'avvio, usa invece i backup "
+"della lista di blocco."
+
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr "Modifica Lista Nera"
+
+msgid "Edit Configuration"
+msgstr "Modifica Configurazione"
+
+msgid "Edit Whitelist"
+msgstr "Modifica Lista Bianca"
+
+msgid "Enable Adblock"
+msgstr "Attiva Adblock"
+
+msgid "Enable Blocklist Backup"
+msgstr "Attiva Backup Lista di Blocco"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+"Abilita il registro dettagliato in caso di qualsiasi errore di processo."
+
+msgid "Enabled"
+msgstr "Abilitato"
+
+msgid "Extra Options"
+msgstr "Opzioni Extra"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"Per le fonti delle liste protette da SSL hai bisogno di una libreria SSL "
+"adatta, p.e. 'libustream-ssl' o wget 'built-in'."
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr "Forza DNS Locale"
+
+msgid "Force Overall Sort"
+msgstr "Forza Ordinamento Globale"
+
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr "File di input non trovato, per favore controlla la tua configurazione."
+
+msgid "Invalid domain specified!"
+msgstr "Dominio invalido specificato!"
+
+msgid "Last Run"
+msgstr "Ultimo Avvio"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr ""
+"Le selezioni degli URL delle liste e categorie Shallalist sono configurabili "
+"nella sezione 'Avanzato'. "
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr ""
+"Lista dei backend DNS supportati con la loro directory di default di esporto "
+"della lista. "
+
+msgid "Loading"
+msgstr "Caricando"
+
+msgid "No"
+msgstr "No"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+"Opzioni per ulteriori modifiche in caso che quelle di default non ti sono "
+"adatte."
+
+msgid "Overall Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr "Riassunto"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+"Per favore aggiungi solo un dominio per linea. I commenti introdotti con '#' "
+"sono consentiti - indirizzi ip , jolly e regex non lo sono."
+
+msgid "Please edit this file directly in a terminal session."
+msgstr ""
+"Per favore modifica questo file direttamente in una sessione al terminale."
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+
+msgid "Query"
+msgstr "Interrogazione"
+
+msgid "Query domains"
+msgstr "Interrogazione domini"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+"Reindirizza tutte le richieste DNS dalla zona 'lan' al risolvitore locale."
+
+msgid "Resume"
+msgstr "Riprendi"
+
+msgid "Runtime Information"
+msgstr "Informazione di Runtime"
+
+msgid "SSL req."
+msgstr "Ric. SSL"
+
+msgid "Save"
+msgstr "Salva"
+
+msgid "Startup Trigger"
+msgstr "Innesco d'Avvio"
+
+msgid "Suspend"
+msgstr "Sospendi"
+
+msgid "Suspend / Resume Adblock"
+msgstr "Sospendi / Riprendi Adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "Directory per la lista di blocco generata 'adb_list.overall'."
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr ""
+"La grandezza del file è troppo grande per modificarla online in LuCI (> "
+"512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista nera di "
+"adblock (%s). "
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista bianca di "
+"adblock (%s). "
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"Questo form ti consente di modificare il contenuto del file principale di "
+"configurazione di adblock (/etc/config/adblock)."
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"Questo form ti consente di interrogare le liste di blocco attive per "
+"determinati domini, p.e. per metterli nella lista bianca."
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"Questo form mostra l'output del registro, prefiltrato per messaggi relativi "
+"solo ad adblock."
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+"Per sovrascrivere il percorso di default usa l'opzione 'Directory DNS' nella "
+"sezione aggiuntiva sotto."
+
+msgid "Trigger Delay"
+msgstr "Ritardo Innesco"
+
+msgid "Verbose Debug Logging"
+msgstr "Registro di Debug Dettagliato"
+
+msgid "View Logfile"
+msgstr "Vedi Registro"
+
+msgid "Waiting for command to complete..."
+msgstr "Aspettando che il comando venga completato..."
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr "Sì"
+
+msgid "disabled"
+msgstr "disabilitato"
+
+msgid "enabled"
+msgstr "abilitato"
+
+msgid "error"
+msgstr "errore"
+
+msgid "n/a"
+msgstr "n/d"
+
+msgid "paused"
+msgstr "in pausa"
+
+#~ msgid ""
+#~ "Caution: Please don't select big lists or many lists at once on low "
+#~ "memory devices to prevent OOM exceptions!"
+#~ msgstr ""
+#~ "Attenzione: Per favore non selezionare grandi liste o molte liste alla "
+#~ "volta su dispositivi con poca memoria per prevenire errori OOM!"
+
+#~ msgid ""
+#~ "Create compressed blocklist backups, they will be used in case of "
+#~ "download errors or during startup in manual mode."
+#~ msgstr ""
+#~ "Crea i backup compressi delle liste di blocco, saranno usati in caso di "
+#~ "errori di download o durante l'avvio in modalità manuale."
+
+#~ msgid ""
+#~ "Enable memory intense overall sort / duplicate removal on low memory "
+#~ "devices (< 64 MB RAM)"
+#~ msgstr ""
+#~ "Attiva l'ordinamento globale / rimozione duplicati stressante per la "
+#~ "memoria su dispositivi con poca memoria (< 64 MB RAM)"
+
+#~ msgid ""
+#~ "For further information see online "
+#~ "documentation "
+#~ msgstr ""
+#~ "Per ulteriori informazioni vedi "
+#~ "documentazione online "
+
+#~ msgid ""
+#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+#~ "config file or download a fresh default config from here "
+#~ msgstr ""
+#~ "In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-"
+#~ "esistente file di configurazione o scarica una nuova configurazione di "
+#~ "default da qui "
+
+#~ msgid ""
+#~ "List of available network interfaces. By default the startup will be "
+#~ "triggered by the 'wan' interface. "
+#~ msgstr ""
+#~ "Lista delle interfacce di rete disponibili. Per default l'avvio sarà "
+#~ "innescato dall'interfaccia 'wan'. "
+
+#~ msgid "Manual / Backup mode"
+#~ msgstr "Modalità Manuale / Backup"
+
+#~ msgid "Overall Blocked Domains"
+#~ msgstr "Totale Domini Bloccati"
+
+#~ msgid "Please update your adblock config file to use this package."
+#~ msgstr ""
+#~ "Per favore aggiorna il tuo file configurazione di adblock per usare "
+#~ "questo pacchetto."
+
+#~ msgid ""
+#~ "Target directory for adblock backups. Please use only non-volatile disks, "
+#~ "no ram/tmpfs drives."
+#~ msgstr ""
+#~ "Directory per i backup di adblock. Per favore usa solo dischi non "
+#~ "volatili, non dischi ram/tmpfs."
diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po
index a3c982f3d1..becef993fd 100644
--- a/applications/luci-app-adblock/po/ja/adblock.po
+++ b/applications/luci-app-adblock/po/ja/adblock.po
@@ -8,132 +8,346 @@ msgstr ""
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.4\n"
"Language: ja\n"
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr ""
-"ï¼ããããã®ãªã¹ãã®URLããã³shallaãªã¹ãã®ã«ãã´ãªã¼é¸æã¯ãLuciã«ãã£ã¦è¨å®"
-"ã§ããªããã¨ã«æ³¨æãã¾ãã"
+msgid "-------"
+msgstr "ï¼å©ç¨ä¸å¯ï¼"
msgid "Adblock"
msgstr "Adblock"
-msgid "Available blocklist sources ("
-msgstr "å©ç¨å¯è½ãªãããã¯ãªã¹ãæä¾å
ã§ãï¼"
+msgid "Adblock Logfile"
+msgstr "Adblock ãã°ãã¡ã¤ã«"
+
+msgid "Adblock Status"
+msgstr "Adblock ã¹ãã¼ã¿ã¹"
+
+msgid "Adblock Version"
+msgstr "Adblock ãã¼ã¸ã§ã³"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "Adblock ã®å¦çãéå§ãããã¾ã§ã®ã追å ã®é
延æéï¼ç§ï¼ã§ãã"
+
+msgid "Advanced"
+msgstr "詳細è¨å®"
-msgid "Backup directory"
-msgstr "ããã¯ã¢ãã ãã£ã¬ã¯ããª"
+msgid "Available blocklist sources."
+msgstr "å©ç¨å¯è½ãªãããã¯ãªã¹ãæä¾å
ã§ãã"
-msgid "Backup options"
-msgstr "ããã¯ã¢ãã ãªãã·ã§ã³"
+msgid "Backup Directory"
+msgstr "ããã¯ã¢ããå
ãã£ã¬ã¯ããª"
-msgid "Blocklist sources"
+msgid "Backup Mode"
+msgstr "ããã¯ã¢ãã ã¢ã¼ã"
+
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+"ãã¯ã¤ããªã¹ãã«åè¨ããã¦ããªãå
¨ãã¡ã¤ã³ã¸ã®ã¢ã¯ã»ã¹ããããã¯ãã¾ãã"
+
+msgid "Blocklist Sources"
msgstr "ãããã¯ãªã¹ãæä¾å
"
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+"è¦å: RAM ã®ç©ºã容éã 64MB ã«æºããªãã¡ã¢ãªã¼å®¹éã®å°ããããã¤ã¹ã§ã¯ã "
+"OutOfMemory (OOM) ä¾å¤ãé²ãããã«ãå¤ãã®ãªã¹ããé¸æããªãããã«ãã¦ãã ã"
+"ãã5 - 6åã®ãªã¹ãã§ååã§ãã"
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"èªåã¹ã¿ã¼ãã¢ãããç¡å¹ã«ããã«ã¯ 'none' ããå¾æ¥ã®ã¿ã¤ã ã¢ã¦ãï¼æ¢å®å¤: 30"
+"ç§ï¼ã使ç¨ããã«ã¯ 'timed' ãé¸æãã¦ãã ãããã¾ãã¯ãä»ã®ããªã¬ã¨ãªãã¤ã³"
+"ã¿ã¼ãã§ã¼ã¹ãé¸æãã¦ãã ããã"
+
+msgid "Collecting data..."
+msgstr "ãã¼ã¿åéä¸ã§ã..."
+
msgid ""
"Configuration of the adblock package to block ad/abuse domains by using DNS."
msgstr ""
-"åºå/ä¸æ£ãã¡ã¤ã³ãDNSãå©ç¨ãã¦ãããã¯ãããadblock ããã±ã¼ã¸ã®è¨å®ã§ãã"
+"DNS ã®å©ç¨ã«ãã£ã¦åºå/ä¸æ£ãã¡ã¤ã³ããããã¯ãããAdblock ããã±ã¼ã¸ã®è¨å®ã§"
+"ãã"
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+"å§ç¸®ããããããã¯ãªã¹ãã®ããã¯ã¢ãããä½æãã¾ããããã¯ããªã¹ãã®ãã¦ã³"
+"ãã¼ããã¨ã©ã¼ã®å ´åãã¾ãã¯ããã¯ã¢ãã ã¢ã¼ãã§ãµã¼ãã¹ãèµ·åããå ´åã«ä½¿ç¨"
+"ããã¾ãã"
+
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS ããã¯ã¨ã³ãï¼DNS ãã£ã¬ã¯ããªï¼"
+
+msgid "DNS Directory"
+msgstr "DNS ãã£ã¬ã¯ããª"
msgid "Description"
msgstr "説æ"
-msgid "Enable adblock"
-msgstr "adblockã®æå¹å"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"ãµã¼ãã¹èµ·åæã«ãããã¯ãªã¹ããèªåçã«æ´æ°ããã代ããã«ããã¯ã¢ããããã"
+"ãããã¯ãªã¹ãã使ç¨ãã¾ãã"
-msgid "Enable blocklist backup"
+msgid "Download Utility (SSL Library)"
+msgstr "ãã¦ã³ãã¼ã ã¦ã¼ãã£ãªãã£ï¼SSL ã©ã¤ãã©ãªï¼"
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+"opkg ã§ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããéã« '--force-maintainer' ãªãã·ã§ã³ã使ç¨"
+"ãã¦æ¢åã®è¨å®ãã¡ã¤ã«ãä¸æ¸ããããã ãã"
+" ããããã©ã«ãã®è¨å®ãã¡ã¤ã«ããã¦ã³ãã¼ããã¦ãã ããã"
+
+msgid "Edit Blacklist"
+msgstr "ãã©ãã¯ãªã¹ãã®ç·¨é"
+
+msgid "Edit Configuration"
+msgstr "è¨å®ã®ç·¨é"
+
+msgid "Edit Whitelist"
+msgstr "ãã¯ã¤ããªã¹ãã®ç·¨é"
+
+msgid "Enable Adblock"
+msgstr "Adblock ã®æå¹å"
+
+msgid "Enable Blocklist Backup"
msgstr "ãããã¯ãªã¹ã ããã¯ã¢ããã®æå¹å"
-msgid "Enable verbose debug logging"
-msgstr "詳細ãªãããã° ãã°ã®æå¹å"
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+"ã¡ã¢ãªã¼å®¹éã®å°ãªãããã¤ã¹ï¼RAM 空ãé å 64MB æªæºï¼ã«ããã¦ãä¸æãã¡ã¤ã«"
+"å
ã®å
¨ä½çãªã½ã¼ãåã³éè¤ã®é¤å»ãæå¹ã«ãã¾ãã"
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+"ä½ããã®å¦çã¨ã©ã¼ãçºçããå ´åã«ã詳細ãªãããã° ãã°ãæå¹ã«ãã¾ãã"
msgid "Enabled"
msgstr "æå¹"
-msgid "Extra options"
-msgstr "æ¡å¼µè¨å®"
+msgid "Extra Options"
+msgstr "æ¡å¼µãªãã·ã§ã³"
msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
msgstr ""
-"ãã¡ã¤ã«ã®ãã¯ã¤ããªã¹ã ãã¹ã/ãã¡ã¤ã³ã¯ããããã¯ãªã¹ãã«ç»é²ããã¦ãã¦ã"
-"許å¯ããã¾ãã"
+"SSLã§ä¿è·ããã¦ãããããã¯ãªã¹ãã®åå¾ã«ã¯ãé©åãªSSL ã©ã¤ãã©ãªãå¿
è¦ã§ãã"
+"ä¾: 'libustream-ssl' ã¾ã㯠wget 'built-in'"
-msgid "Global options"
-msgstr "ä¸è¬è¨å®"
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+"詳細ãªæ
å ±ã¯ ãªã³ã©ã¤ã³ ããã¥ã¡ã³ã ã"
+"確èªãã¦ãã ããã"
+
+msgid "Force Local DNS"
+msgstr "ãã¼ã«ã« DNS ã®å¼·å¶"
+
+msgid "Force Overall Sort"
+msgstr "å
¨ä½ã½ã¼ãã®å¼·å¶"
+
+msgid "Full path to the whitelist file."
+msgstr "ãã¯ã¤ããªã¹ã ãã¡ã¤ã«ã¸ã®ãã«ãã¹ã§ãã"
+
+msgid "Input file not found, please check your configuration."
+msgstr "å
¥åãã¡ã¤ã«ãè¦ã¤ããã¾ãããè¨å®ã確èªãã¦ãã ããã"
+
+msgid "Invalid domain specified!"
+msgstr "ç¡å¹ãªãã¡ã¤ã³ãæå®ããã¦ãã¾ãï¼"
+
+msgid "Last Run"
+msgstr "æçµå®è¡"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr ""
+"ãªã¹ãã® URL åã³ \"Shalla\" ãªã¹ãã®ã«ãã´ãªã¼è¨å®ã¯ã'詳細è¨å®' ã»ã¯ã·ã§ã³"
+"ã§è¨å®ãããã¨ãã§ãã¾ãã "
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+"å©ç¨å¯è½ãªãããã¯ã¼ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä¸è¦§ã§ããé常ã 'wan' ã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã«ããã¹ã¿ã¼ãã¢ãããããªã¬ããã¾ãã "
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr ""
+"ãµãã¼ãããã DNS ããã¯ã¨ã³ãã¨ãããããã®ããã©ã«ãã®ãªã¹ãåºåå
ãã£ã¬ã¯"
+"ããªã®ãªã¹ãã§ã "
+
+msgid "Loading"
+msgstr "èªè¾¼ä¸"
+
+msgid "No"
+msgstr "ããã"
msgid ""
"Options for further tweaking in case the defaults are not suitable for you."
msgstr "ããã©ã«ãè¨å®ãé©åã§ãªãå ´åã追å ã§è¨å®ããããã®ãªãã·ã§ã³ã§ãã"
-msgid "Restrict reload trigger to certain interface(s)"
-msgstr "ãªãã¼ãããªã¬ãç¹å®ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«éå®ãã"
+msgid "Overall Domains"
+msgstr "å
¨ä½ã®ãã¡ã¤ã³"
+
+msgid "Overview"
+msgstr "æ¦è¦"
msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
msgstr ""
-"ãªãã¼ãå®è¡ã®ããªã¬ã¨ãªããã¹ãã¼ã¹ã§åºåãããWANã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ãªã¹ãã§"
-"ãããªãã¼ãããªã¬ãç¡å¹ã«ããã«ã¯ã false ãè¨å®ãã¾ããããã©ã«ã:ï¼ç©ºï¼"
+"1è¡ã«1ã¤ã®ãã¡ã¤ã³ã追å ãã¦ãã ããã'#' ããå§ã¾ãã³ã¡ã³ããè¨è¿°ã§ãã¾ã"
+"ããIP ã¢ãã¬ã¹ãã¯ã¤ã«ãã«ã¼ããæ£è¦è¡¨ç¾ãè¨å®å¤ã¨ãã¦ä½¿ç¨ãããã¨ã¯ã§ãã¾ã"
+"ãã"
-msgid "Whitelist file"
-msgstr "ãã¯ã¤ããªã¹ã ãã¡ã¤ã«"
+msgid "Please edit this file directly in a terminal session."
+msgstr "ã¿ã¼ããã« ã»ãã·ã§ã³ã§ç´æ¥ãã®ãã¡ã¤ã«ãç·¨éãã¦ãã ããã"
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+"ãã®ããã±ã¼ã¸ã使ç¨ããã«ã¯ãæ¢åã® Adblock è¨å®ãã¡ã¤ã«ãæ´æ°ãã¦ãã ããã"
+" "
+
+msgid "Query"
+msgstr "æ¤ç´¢"
+
+msgid "Query domains"
+msgstr "ãã¡ã¤ã³ã®æ¤ç´¢"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+"'lan' ã¾ã¼ã³ããã®å
¨ DNS ã¯ã¨ãªãããã¼ã«ã« ãªã¾ã«ãã«ãªãã¤ã¬ã¯ããã¾ãã"
+
+msgid "Resume"
+msgstr "åé"
+
+msgid "Runtime Information"
+msgstr "å®è¡æ
å ±"
+
+msgid "SSL req."
+msgstr "SSL å¿
é "
+
+msgid "Save"
+msgstr "ä¿å"
+
+msgid "Startup Trigger"
+msgstr "ã¹ã¿ã¼ãã¢ãã ããªã¬"
+
+msgid "Suspend"
+msgstr "ä¸æåæ¢"
+
+msgid "Suspend / Resume Adblock"
+msgstr "Adblock ã®ä¸æåæ¢ / åé"
-msgid "see list details"
-msgstr "ãªã¹ãã®è©³ç´°ãè¦ã"
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+"Adblock ããã¯ã¢ããã®ä¿åå
ãã£ã¬ã¯ããªã§ãã å¤é¨ USB ãã©ãã·ã¥ã¡ã¢ãªãªã©"
+"ã®ä¸æ®çºæ§ãã©ã¤ãã®ã¿ã使ç¨ãã¦ãã ããã"
-#~ msgid "Count"
-#~ msgstr "ã«ã¦ã³ã"
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "çæããããããã¯ãªã¹ã 'adb_list.overall' ã®ä¿åå
ãã£ã¬ã¯ããªã§ãã"
-#~ msgid "Do not write status info to flash"
-#~ msgstr "ã¹ãã¼ã¿ã¹æ
å ±ããã©ãã·ã¥ã«æ¸ãè¾¼ã¾ãªã"
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr ""
+"ãã¡ã¤ã« ãµã¤ãºã大ããããï¼512 KBè¶
ï¼ããã LuCI ä¸ã§ãªã³ã©ã¤ã³ç·¨éã§ãã¾ã"
+"ãã"
-#~ msgid "Last update of the blocklists"
-#~ msgstr "ãããã¯ãªã¹ãã®æçµæ´æ°æ¥æ"
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãAdblock ãã©ãã¯ãªã¹ã (%s) ã®å
容ãå¤æ´ãããã¨ãã§ãã¾"
+"ãã "
-#~ msgid "List date/state"
-#~ msgstr "ãªã¹ãæ¥æ/ç¶æ
"
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãAdblock ãã¯ã¤ããªã¹ã (%s) ã®å
容ãå¤æ´ãããã¨ãã§ãã¾"
+"ãã "
-#~ msgid "Name of the logical lan interface"
-#~ msgstr "è«çLANã¤ã³ã¿ã¼ãã§ã¼ã¹å"
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãã¡ã¤ã³ã®Adblock è¨å®ãã¡ã¤ã« (/etc/config/adblock) ã®å
容ã"
+"å¤æ´ãããã¨ãã§ãã¾ãã"
-#~ msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
-#~ msgstr "ãããã¯æ¸ã¿ãã±ããã®å²åï¼æçµæ´æ°ä»¥åãIPv4/IPv6ï¼"
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãç¾å¨æå¹ãªãªã¹ãå
ã§ç¹å®ã®ãã¡ã¤ã³ãæ¤ç´¢ãããã¨ãã§ãã¾"
+"ããä¾: ãã¯ã¤ããªã¹ãå
"
-#~ msgid "Port of the adblock uhttpd instance"
-#~ msgstr "adblock uhttpdã¤ã³ã¹ã¿ã³ã¹ã®ãã¼ã"
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"ãã®ãã©ã¼ã ã«ã¯ãã·ã¹ãã ãã°å
ã® Adblock ã«é¢é£ããã¡ãã»ã¼ã¸ã®ã¿ã表示ãã"
+"ã¾ãã"
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+"ããã©ã«ãã®ãã¹ãä¸æ¸ãããã«ã¯ãä¸è¨æ¡å¼µã»ã¯ã·ã§ã³ã® 'DNS ãã£ã¬ã¯ããª' ãª"
+"ãã·ã§ã³ã使ç¨ãã¾ãã"
+
+msgid "Trigger Delay"
+msgstr "ããªã¬é
延"
-#~ msgid "Port of the adblock uhttpd instance for https links"
-#~ msgstr "httpsãªã³ã¯ç¨adblock uhttpdã¤ã³ã¹ã¿ã³ã¹ã®ãã¼ã"
+msgid "Verbose Debug Logging"
+msgstr "詳細ãªãããã° ãã°"
-#~ msgid "Redirect all DNS queries to the local resolver"
-#~ msgstr "å
¨ã¦ã®DNSã¯ã¨ãªããã¼ã«ã«ãªã¾ã«ãã«ãªãã¤ã¬ã¯ã"
+msgid "View Logfile"
+msgstr "ãã°ãã¡ã¤ã«ãè¦ã"
-#~ msgid ""
-#~ "Skip writing update status information to the config file. Status fields "
-#~ "on this page will not be updated."
-#~ msgstr ""
-#~ "æ´æ°ã¹ãã¼ã¿ã¹æ
å ±ãã³ã³ãã£ã°ãã¡ã¤ã«ã«æ¸ãè¾¼ã¾ããã¹ããããã¾ãããã®"
-#~ "ãã¼ã¸ã®ã¹ãã¼ã¿ã¹ç»é¢ã¯æ´æ°ãããªããªãã¾ãã"
+msgid "Waiting for command to complete..."
+msgstr "ã³ãã³ãå®è¡ä¸ã§ã..."
-#~ msgid "Statistics"
-#~ msgstr "ã¹ãã¼ã¿ã¹"
+msgid "Whitelist File"
+msgstr "ãã¯ã¤ããªã¹ã ãã¡ã¤ã«"
+
+msgid "Whitelist Mode"
+msgstr "ãã¯ã¤ããªã¹ã ã¢ã¼ã"
+
+msgid "Yes"
+msgstr "ã¯ã"
+
+msgid "disabled"
+msgstr "ç¡å¹"
+
+msgid "enabled"
+msgstr "æå¹"
-#~ msgid "Timeout for blocklist fetch (seconds)"
-#~ msgstr "ãããã¯ãªã¹ãåå¾ã®å¶éæéï¼ç§ï¼"
+msgid "error"
+msgstr "ã¨ã©ã¼"
-#~ msgid "Total count of blocked domains"
-#~ msgstr "ãããã¯æ¸ã¿ãã¡ã¤ã³ã®åè¨"
+msgid "n/a"
+msgstr "å©ç¨ä¸å¯"
-#~ msgid ""
-#~ "When adblock is active, all DNS queries are redirected to the local "
-#~ "resolver in this server by default. You can disable that to allow queries "
-#~ "to external DNS servers."
-#~ msgstr ""
-#~ "adblockãã¢ã¯ãã£ãã§ããæãå
¨ã¦ã®DNSã¯ã¨ãªã¯æ¢å®ã§ãã®ãµã¼ãã¼ä¸ã®ãªã¾ã«"
-#~ "ãã«ãªãã¤ã¬ã¯ãããã¾ããå¤é¨DNSãµã¼ãã¼ã¸ã®ã¯ã¨ãªã許å¯ããå ´åããã®è¨"
-#~ "å®ãç¡å¹ã«ãããã¨ãã§ãã¾ãã"
+msgid "paused"
+msgstr "ä¸æåæ¢"
diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po
new file mode 100644
index 0000000000..f51791f48d
--- /dev/null
+++ b/applications/luci-app-adblock/po/pt-br/adblock.po
@@ -0,0 +1,427 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: LuÃs Gabriel Lima Silva \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "-------"
+msgstr ""
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Logfile"
+msgstr "Arquivo de log do Adblock"
+
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
+msgstr "Versão do Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+"Atraso de gatilho adicional em segundos antes do processamento do adblock "
+"começar."
+
+msgid "Advanced"
+msgstr "Avançado"
+
+msgid "Available blocklist sources."
+msgstr "Fontes de listas de bloqueio disponÃveis."
+
+msgid "Backup Directory"
+msgstr "Diretório da cópia de segurança"
+
+msgid "Backup Mode"
+msgstr ""
+
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
+msgstr "Fontes de listas de bloqueio"
+
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"Configuração do pacote adblock para bloquear, usando o DNS, domÃnios que "
+"distribuem propagandas abusivas."
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
+
+msgid "Description"
+msgstr "Descrição"
+
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Não atualize as listas de bloqueio automaticamente durante o inÃcio, use o "
+"backup das listas como alternativa."
+
+msgid "Download Utility (SSL Library)"
+msgstr "Utilitário de Download (Biblioteca SSL)"
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr "Editar Lista de Bloqueio"
+
+msgid "Edit Configuration"
+msgstr "Editar Configuração"
+
+msgid "Edit Whitelist"
+msgstr "Editar Lista Permitida"
+
+msgid "Enable Adblock"
+msgstr "Habilitar adblock"
+
+msgid "Enable Blocklist Backup"
+msgstr "Habilitar cópia de segurança da lista de bloqueio"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Extra Options"
+msgstr "Opções adicionais"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"Para uma lista de bloqueio protegida por SSL você precisa de uma biblioteca "
+"SSL adequada, e.x. 'libustream-ssl' ou o wget 'built-in'."
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr "Force o DNS local"
+
+msgid "Force Overall Sort"
+msgstr "Force Tipo Geral"
+
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr "Arquivo de entrada não encontrado, por favor cheque sua configuração."
+
+msgid "Invalid domain specified!"
+msgstr "DomÃnio especificado inválido!"
+
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr ""
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr ""
+
+msgid "Loading"
+msgstr "Carregando"
+
+msgid "No"
+msgstr "Não"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+"Opções para aprimoramentos adicionais caso as opções padrão não sejam "
+"suficientes para você."
+
+msgid "Overall Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr "Visão geral"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Please edit this file directly in a terminal session."
+msgstr "Por favor edite esse arquivo direto em uma sessão de terminal."
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+
+msgid "Query"
+msgstr "Consulta"
+
+msgid "Query domains"
+msgstr "Consulta de domÃnios"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
+msgstr ""
+
+msgid "Runtime Information"
+msgstr "Informação de execução"
+
+msgid "SSL req."
+msgstr "req. de SSL"
+
+msgid "Save"
+msgstr "Salvar"
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "Suspend"
+msgstr ""
+
+msgid "Suspend / Resume Adblock"
+msgstr "Suspender / Resumir adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr ""
+"O tamanho do arquivo é muito grande para edição online no LuCI (> 512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de bloqueio "
+"do adblock (%s). "
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de "
+"permissão do adblock (%s). "
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das do arquivo de "
+"configuração principal (/etc/config/adblock)."
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"Esse formulário permite que você consulte listas de blocos ativos para "
+"certos domÃnios, e.x. para listas de permissão."
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"Esse formulário mostra a saÃda do syslog, pré-filtrado para mensagens do "
+"adblock apenas."
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+
+msgid "Trigger Delay"
+msgstr "Atraso no gatilho"
+
+msgid "Verbose Debug Logging"
+msgstr ""
+
+msgid "View Logfile"
+msgstr "Ver arquivo de log"
+
+msgid "Waiting for command to complete..."
+msgstr "Aguardando por comando para completar..."
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr "Sim"
+
+msgid "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
+msgstr ""
+
+msgid "n/a"
+msgstr "n/d"
+
+msgid "paused"
+msgstr ""
+
+#~ msgid ""
+#~ "Create compressed blocklist backups, they will be used in case of "
+#~ "download errors or during startup in manual mode."
+#~ msgstr ""
+#~ "Crie backups comprimidos das listas de bloqueio, eles serão usados em "
+#~ "caso de erro dedownload ou durante o inÃcio em modo manual."
+
+#~ msgid ""
+#~ "Enable memory intense overall sort / duplicate removal on low memory "
+#~ "devices (< 64 MB RAM)"
+#~ msgstr ""
+#~ "Ativar tipo geral intenso de memória / duplicar remoção em dispositivos "
+#~ "com pouca memória (< 64 MB RAM)"
+
+#~ msgid ""
+#~ "For further information see online "
+#~ "documentation "
+#~ msgstr ""
+#~ "Para outras informações veja a "
+#~ "documentação online "
+
+#~ msgid "Manual / Backup mode"
+#~ msgstr "Manual / Modo backup"
+
+#~ msgid "Blocked domains (overall)"
+#~ msgstr "DomÃnios bloqueados (total)"
+
+#~ msgid "DNS backend"
+#~ msgstr "Porta dos fundos de DNS"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "Habilite registros detalhados para depuração"
+
+#~ msgid "Last rundate"
+#~ msgstr "Ãltima data de execução"
+
+#~ msgid ""
+#~ "Note that list URLs and Shallalist category selections are configurable "
+#~ "in the 'Advanced' section."
+#~ msgstr ""
+#~ "Observe que as URLs da lista e as seleções da categoria Shallalist são "
+#~ "configuráveis na secção 'Avançada'."
+
+#~ msgid "Redirect all DNS queries to the local resolver."
+#~ msgstr "Redirecione todas as consultas de DNS para o resolvedor local."
+
+#~ msgid "Restrict interface trigger to certain interface(s)"
+#~ msgstr "Restingir o gatilho de interface para certas interface(s)"
+
+#~ msgid "Resume adblock"
+#~ msgstr "Resumir adblock"
+
+#~ msgid "Status"
+#~ msgstr "Estado"
+
+#~ msgid "active"
+#~ msgstr "ativo"
+
+#~ msgid "no domains blocked"
+#~ msgstr "nenhum domÃnio bloqueado"
+
+#~ msgid "suspended"
+#~ msgstr "suspenso"
+
+#~ msgid "Backup options"
+#~ msgstr "Opções da cópia de segurança"
+
+#~ msgid ""
+#~ "). Note that list URLs and Shallalist category selections are not "
+#~ "configurable via Luci."
+#~ msgstr ""
+#~ "). Note que a lista de URL e as seleções de categoria da Shallalist não "
+#~ "são configuráveis pelo Luci."
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "Fontes de listas de bloqueio disponÃveis ("
+
+#~ msgid ""
+#~ "File with whitelisted hosts/domains that are allowed despite being on a "
+#~ "blocklist."
+#~ msgstr ""
+#~ "Arquivo com a lista branca dos equipamentos/domÃnios que serão "
+#~ "autorizados mesmo estando na lista de bloqueio."
+
+#~ msgid "Global options"
+#~ msgstr "Opções Globais"
+
+#~ msgid "Restrict reload trigger to certain interface(s)"
+#~ msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)"
+
+#~ msgid ""
+#~ "Space separated list of wan interfaces that trigger reload action. To "
+#~ "disable reload trigger set it to 'false'. Default: empty"
+#~ msgstr ""
+#~ "Lista das interfaces WAN, separadas por espaço, que podem disparar uma "
+#~ "ação de recarga. Para desabilitar este gatilho, defina-o como 'false'. "
+#~ "Padrão: em branco"
+
+#~ msgid "Whitelist file"
+#~ msgstr "Arquivo da lista branca"
+
+#~ msgid "see list details"
+#~ msgstr "veja os detalhes da lista"
diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po
index 22a30e9a10..503c5f6ef7 100644
--- a/applications/luci-app-adblock/po/sv/adblock.po
+++ b/applications/luci-app-adblock/po/sv/adblock.po
@@ -1,75 +1,384 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr ""
+msgid "-------"
+msgstr "-------"
msgid "Adblock"
-msgstr "Blockering av annonser"
+msgstr "Adblock"
+
+msgid "Adblock Logfile"
+msgstr "Adblock's loggfil"
-msgid "Available blocklist sources ("
-msgstr "Tillgängliga källor för blockeringslistor ("
+msgid "Adblock Status"
+msgstr "Status för Adblock"
-msgid "Backup directory"
+msgid "Adblock Version"
+msgstr "Version av Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr "Avancerat"
+
+msgid "Available blocklist sources."
+msgstr "Tillgängliga källor för blockeringslistor"
+
+msgid "Backup Directory"
msgstr "Säkerhetskopiera mapp"
-msgid "Backup options"
-msgstr "Alternativ för säkerhetskopiering"
+msgid "Backup Mode"
+msgstr ""
-msgid "Blocklist sources"
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
msgstr "Källor för blockeringslistor"
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"Välj 'inga' för att stänga av automatiska uppstarter, 'tidsinställd för att "
+"använda ett klassiskt avbrott (30 sek. är standard) eller välj ett annat "
+"utlösande gränssnitt."
+
+msgid "Collecting data..."
+msgstr "Samlar in data..."
+
msgid ""
"Configuration of the adblock package to block ad/abuse domains by using DNS."
msgstr ""
-"Konfiguration av paket adblock för att blockera annons/otillåtna domäner "
-"genom att användning DNS."
+"Konfiguration av paketet adblock för att blockera annons/otillåtna domäner "
+"genom att använda DNS."
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS-bakände (DNS-mapp)"
+
+msgid "DNS Directory"
+msgstr "DNS-mapp"
msgid "Description"
msgstr "Beskrivning"
-msgid "Enable adblock"
-msgstr "Aktivera abblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Uppdatera inte automatiskt blockeringlistor vid uppstarten, använd "
+"säkerhetskopierade blockeringslistor istället."
+
+msgid "Download Utility (SSL Library)"
+msgstr "Nerladdningsprogram (SSL-bibliotek)"
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr "Redigera svartlista"
+
+msgid "Edit Configuration"
+msgstr "Redigerar konfigurationen"
+
+msgid "Edit Whitelist"
+msgstr "Redigera vitlista"
+
+msgid "Enable Adblock"
+msgstr "Aktivera adblock"
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
msgstr "Aktivera säkerhetskopiering av blockeringslistan"
-msgid "Enable verbose debug logging"
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
msgstr ""
msgid "Enabled"
msgstr "Aktiverad"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "Extra alternativ"
msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr "Tvinga lokal DNS"
+
+msgid "Force Overall Sort"
msgstr ""
-msgid "Global options"
-msgstr "Globala alternativ"
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+"Inmatningsfilen kunde inte hittas, var vänlig kontrollera din konfiguration."
+
+msgid "Invalid domain specified!"
+msgstr "Ogiltig domän angiven!"
+
+msgid "Last Run"
+msgstr "Kördes senast"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr ""
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr ""
+
+msgid "Loading"
+msgstr "Laddar"
+
+msgid "No"
+msgstr "Nej"
msgid ""
"Options for further tweaking in case the defaults are not suitable for you."
msgstr ""
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Overall Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr "Ãversikt"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Please edit this file directly in a terminal session."
+msgstr "Vänligen redigera den här filen direkt i en terminal-session."
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+
+msgid "Query"
+msgstr "Fråga"
+
+msgid "Query domains"
+msgstr "Fråga efter domäner"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
+msgstr "Ã
teruppta"
+
+msgid "Runtime Information"
+msgstr "Information om körtid"
+
+msgid "SSL req."
+msgstr "SSL-rek."
+
+msgid "Save"
+msgstr "Spara"
+
+msgid "Startup Trigger"
+msgstr "Uppstartslösare"
+
+msgid "Suspend"
+msgstr "Stäng av"
+
+msgid "Suspend / Resume Adblock"
+msgstr "Upphäv / Ã
teruppta adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr "Filstorleken är för stor för online-redigering i LuCi (> 512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's "
+"svartlista (%s). "
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's vitlista "
+"(%s). "
msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's "
+"huvudsakliga konfigurations fil (/etc/config/adblock)."
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+
+msgid "Trigger Delay"
+msgstr ""
+
+msgid "Verbose Debug Logging"
+msgstr ""
+
+msgid "View Logfile"
+msgstr "Visa loggfil"
+
+msgid "Waiting for command to complete..."
+msgstr "Väntar på att kommandot ska slutföras..."
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "disabled"
+msgstr "inaktiverad"
+
+msgid "enabled"
+msgstr "aktiverad"
+
+msgid "error"
+msgstr "fel"
+
+msgid "n/a"
+msgstr "n/a"
+
+msgid "paused"
+msgstr "pausad"
+
+#~ msgid ""
+#~ "Caution: Please don't select big lists or many lists at once on low "
+#~ "memory devices to prevent OOM exceptions!"
+#~ msgstr ""
+#~ "Försiktig: Vänligen välj inte stora listor eller många listor på samma "
+#~ "gång för enheter med lite minne för att undvika OOM-undantag!"
+
+#~ msgid ""
+#~ "For further information see online "
+#~ "documentation "
+#~ msgstr ""
+#~ "För mer information se dokumentationen "
+#~ "på internet "
+
+#~ msgid "Manual / Backup mode"
+#~ msgstr "Manuell / Säkerhetskopieringsläge"
+
+#~ msgid "Please update your adblock config file to use this package."
+#~ msgstr ""
+#~ "Vänligen uppdatera din adblock's konfigurationsfil till att använda det "
+#~ "här paketet."
+
+#~ msgid "Blocked domains (overall)"
+#~ msgstr "Blockerade domäner (övergripande)"
+
+#~ msgid "DNS backend"
+#~ msgstr "Bakände för DNS"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "Aktivera utförlig loggning för avlusning"
+
+#~ msgid "Last rundate"
+#~ msgstr "Senaste kördatum"
+
+#~ msgid "Redirect all DNS queries to the local resolver."
+#~ msgstr "Dirigera om alla DNS-förfrågningar till den lokala "
+
+#~ msgid "Resume adblock"
+#~ msgstr "Ã
teruppta adblock"
+
+#~ msgid "Status"
+#~ msgstr "Status"
+
+#~ msgid "Suspend adblock"
+#~ msgstr "Upphäv adblock"
+
+#~ msgid "active"
+#~ msgstr "aktiv"
+
+#~ msgid "no domains blocked"
+#~ msgstr "inga domäner blockerades"
+
+#~ msgid "suspended"
+#~ msgstr "upphävd"
+
+#~ msgid "."
+#~ msgstr "."
+
+#~ msgid "For further information"
+#~ msgstr "För mer information"
+
+#~ msgid "Backup options"
+#~ msgstr "Alternativ för säkerhetskopiering"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "Tillgängliga källor för blockeringslistor ("
+
+#~ msgid "Global options"
+#~ msgstr "Globala alternativ"
-msgid "Whitelist file"
-msgstr "Vitlista fil"
+#~ msgid "Whitelist file"
+#~ msgstr "Vitlista fil"
-msgid "see list details"
-msgstr "se listans detaljer"
+#~ msgid "see list details"
+#~ msgstr "se listans detaljer"
#~ msgid "Count"
#~ msgstr "Räkna"
diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot
index 6b2dbd13b3..9698333515 100644
--- a/applications/luci-app-adblock/po/templates/adblock.pot
+++ b/applications/luci-app-adblock/po/templates/adblock.pot
@@ -1,70 +1,291 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
+msgid "-------"
msgstr ""
msgid "Adblock"
msgstr ""
-msgid "Available blocklist sources ("
+msgid "Adblock Logfile"
+msgstr ""
+
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
+msgstr ""
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Available blocklist sources."
+msgstr ""
+
+msgid "Backup Directory"
+msgstr ""
+
+msgid "Backup Mode"
+msgstr ""
+
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
msgstr ""
-msgid "Backup directory"
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
msgstr ""
-msgid "Backup options"
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
msgstr ""
-msgid "Blocklist sources"
+msgid "Collecting data..."
msgstr ""
msgid ""
"Configuration of the adblock package to block ad/abuse domains by using DNS."
msgstr ""
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
+
msgid "Description"
msgstr ""
-msgid "Enable adblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr ""
+
+msgid "Edit Configuration"
+msgstr ""
+
+msgid "Edit Whitelist"
+msgstr ""
+
+msgid "Enable Adblock"
+msgstr ""
+
+msgid "Enable Blocklist Backup"
msgstr ""
-msgid "Enable blocklist backup"
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
msgstr ""
-msgid "Enable verbose debug logging"
+msgid "Enable verbose debug logging in case of any processing error."
msgstr ""
msgid "Enabled"
msgstr ""
-msgid "Extra options"
+msgid "Extra Options"
+msgstr ""
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr ""
+
+msgid "Force Overall Sort"
+msgstr ""
+
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Invalid domain specified!"
+msgstr ""
+
+msgid "Last Run"
msgstr ""
msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr ""
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr ""
+
+msgid "Loading"
msgstr ""
-msgid "Global options"
+msgid "No"
msgstr ""
msgid ""
"Options for further tweaking in case the defaults are not suitable for you."
msgstr ""
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Overall Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Please edit this file directly in a terminal session."
+msgstr ""
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Query domains"
+msgstr ""
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
+msgstr ""
+
+msgid "Runtime Information"
+msgstr ""
+
+msgid "SSL req."
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "Suspend"
+msgstr ""
+
+msgid "Suspend / Resume Adblock"
+msgstr ""
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
msgstr ""
msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+
+msgid "Trigger Delay"
+msgstr ""
+
+msgid "Verbose Debug Logging"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
msgstr ""
-msgid "Whitelist file"
+msgid "n/a"
msgstr ""
-msgid "see list details"
+msgid "paused"
msgstr ""
diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po
index 2878d8afaf..08032cab04 100644
--- a/applications/luci-app-adblock/po/zh-cn/adblock.po
+++ b/applications/luci-app-adblock/po/zh-cn/adblock.po
@@ -1,84 +1,422 @@
+# liushuyu , 2017.
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: kuoruan@gmail.com\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-10-28 16:06+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.5\n"
+"X-Generator: Gtranslator 2.91.7\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr "ï¼ãéè¦æ³¨æçæ¯å表URLåå表类å«é项æ æ³éè¿Luci设置ã"
+msgid "-------"
+msgstr "-------"
msgid "Adblock"
msgstr "Adblock"
-msgid "Available blocklist sources ("
-msgstr "å¯ç¨æ¦æªå表æ¥æºï¼"
+msgid "Adblock Logfile"
+msgstr "Adblock æ¥å¿æ件"
+
+msgid "Adblock Status"
+msgstr "Adblock ç¶æ"
+
+msgid "Adblock Version"
+msgstr "Adblock çæ¬"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "触å Adblock å¼å§å¤çåçé¢å¤å»¶è¿ï¼ä»¥ç§ä¸ºåä½ï¼ã"
+
+msgid "Advanced"
+msgstr "é«çº§"
-msgid "Backup directory"
+msgid "Available blocklist sources."
+msgstr "å¯ç¨ç blocklist æ¥æºã"
+
+msgid "Backup Directory"
msgstr "å¤ä»½ç®å½"
-msgid "Backup options"
-msgstr "å¤ä»½é项"
+msgid "Backup Mode"
+msgstr ""
-msgid "Blocklist sources"
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
msgstr "æ¦æªå表æ¥æº"
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"éæ©ânoneâ以ç¦ç¨èªå¨å¯å¨ï¼âtimedâ以使ç¨é»è®¤çè¶
æ¶è®¾å®ï¼é»è®¤ 30 ç§ï¼ï¼æéæ©å¦"
+"ä¸ä¸ªè§¦åæ¥å£ã"
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éæ°æ®..."
+
msgid ""
"Configuration of the adblock package to block ad/abuse domains by using DNS."
msgstr "Adblock é
置工å
·ï¼éè¿ DNS æ¥æ¦æªå¹¿ååé»æ¢ååã"
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS å端ï¼DNS ç®å½ï¼"
+
+msgid "DNS Directory"
+msgstr "DNS ç®å½"
+
msgid "Description"
msgstr "æè¿°"
-msgid "Enable adblock"
-msgstr "å¯ç¨Adblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr "å¯å¨æé´ä¸è¦èªå¨æ´æ° blocklistsï¼æ¹ç¨ blocklists çå¤ä»½ã"
-msgid "Enable blocklist backup"
-msgstr "å¯ç¨æ¦æªè§åå¤ä»½"
+msgid "Download Utility (SSL Library)"
+msgstr "ä¸è½½å®ç¨ç¨åºï¼SSL åºï¼"
-msgid "Enable verbose debug logging"
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
msgstr ""
+msgid "Edit Blacklist"
+msgstr "ç¼è¾é»åå"
+
+msgid "Edit Configuration"
+msgstr "ç¼è¾è®¾ç½®"
+
+msgid "Edit Whitelist"
+msgstr "ç¼è¾ç½åå"
+
+msgid "Enable Adblock"
+msgstr "å¯ç¨ Adblock"
+
+msgid "Enable Blocklist Backup"
+msgstr "å¯ç¨ Blocklist å¤ä»½"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr "å¨åºç°ä»»ä½å¤çé误çæ
åµä¸å¯ç¨è¯¦ç»è°è¯æ¥å¿è®°å½ã"
+
msgid "Enabled"
-msgstr "å¯ç¨"
+msgstr "å·²å¯ç¨"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "é¢å¤é项"
msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
-msgstr "å
许ç主æº/ååå表"
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"å¯¹äº SSL ä¿æ¤ç blocklist æºï¼æ¨éè¦ä¸ä¸ªåéç SSL åºï¼ä¾å¦'libustream-"
+"ssl'æ wget'built-in'ã"
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr "强å¶æ¬å° DNS"
+
+msgid "Force Overall Sort"
+msgstr "强å¶æ´ä½æåº"
+
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr "è¾å
¥æ件æªæ¾å°ï¼è¯·æ£æ¥æ¨çé
ç½®ã"
+
+msgid "Invalid domain specified!"
+msgstr "æ æååï¼"
+
+msgid "Last Run"
+msgstr "æåè¿è¡"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr "å表 URL å Shallalist ç±»å«éæ©å¯å¨âé«çº§âé项å¡ä¸é
ç½®ã "
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr "æ¯æç DNS å端å表åå
¶é»è®¤å表导åºç®å½ã "
-msgid "Global options"
-msgstr "å
¨å±é项"
+msgid "Loading"
+msgstr "å è½½ä¸"
+
+msgid "No"
+msgstr "å¦"
msgid ""
"Options for further tweaking in case the defaults are not suitable for you."
-msgstr "å¨é»è®¤è®¾ç½®å¹¶ä¸éåä½ æ¶çé¢å¤é项ã"
+msgstr "å¨é»è®¤è®¾ç½®å¹¶ä¸éåæ¨æ¶çé¢å¤é项ã"
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Overall Domains"
msgstr ""
+msgid "Overview"
+msgstr "æ»è§"
+
msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+"请æ¯è¡åªæ·»å ä¸ä¸ªåãå
许使ç¨'ï¼'å¼å¤´ç注é - ip å°åãéé
符åæ£å表达å¼é½ä¸"
+"å
许ã"
+
+msgid "Please edit this file directly in a terminal session."
+msgstr "请å¨ç»ç«¯ä¼è¯ä¸ç´æ¥ç¼è¾æ¤æ件ã"
+
+msgid "Please update your adblock config file to use this package. "
msgstr ""
-msgid "Whitelist file"
-msgstr "ç½ååæ件"
+msgid "Query"
+msgstr "æ¥è¯¢"
+
+msgid "Query domains"
+msgstr "æ¥è¯¢å"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr "å°ææ DNS æ¥è¯¢ä»âlanâåºåéå®åå°æ¬å°è§£æå¨ã"
+
+msgid "Resume"
+msgstr "æ¢å¤"
+
+msgid "Runtime Information"
+msgstr "è¿è¡ä¿¡æ¯"
+
+msgid "SSL req."
+msgstr "SSL è¦æ±"
+
+msgid "Save"
+msgstr "ä¿å"
+
+msgid "Startup Trigger"
+msgstr "å¯å¨è§¦åå¨"
+
+msgid "Suspend"
+msgstr "æå"
+
+msgid "Suspend / Resume Adblock"
+msgstr "æå/æ¢å¤ Adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "çæç blocklist 'adb_list.overall'çç®æ ç®å½ã"
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr "æ件大å°å¤ªå¤§ï¼æ æ³å¨ LuCIï¼> 512 KBï¼ä¸è¿è¡å¨çº¿ç¼è¾ã"
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr "æ¤è¡¨åå
许æ¨ä¿®æ¹ adblock é»ååï¼%sï¼çå
容ã "
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr "æ¤è¡¨åå
许æ¨ä¿®æ¹ adblock ç½ååï¼%sï¼çå
容ã "
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr "æ¤è¡¨åå
许æ¨ä¿®æ¹ä¸»è¦ adblock é
ç½®æ件ï¼/etc/config/adblockï¼çå
容ã"
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr "æ¤è¡¨åå
许æ¨æ¥è¯¢æäºåçæ´»å¨åå表ï¼ä¾å¦ç¨äºååºç½ååã"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr "æ¤è¡¨åæ¾ç¤ºç³»ç»æ¥å¿è¾åºï¼ä»
é对 adblock ç¸å
³çæ¶æ¯è¿è¡äºé¢çéã"
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr "è¦è¦çé»è®¤è·¯å¾ï¼è¯·ä½¿ç¨ä¸é¢é¢å¤é¨åä¸çâDNS ç®å½âé项ã"
+
+msgid "Trigger Delay"
+msgstr "触å延è¿"
+
+msgid "Verbose Debug Logging"
+msgstr "详ç»çè°è¯è®°å½"
+
+msgid "View Logfile"
+msgstr "æ¥çæ¥å¿æ件"
+
+msgid "Waiting for command to complete..."
+msgstr "æ£å¨æ§è¡å½ä»¤..."
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr "æ¯"
+
+msgid "disabled"
+msgstr "å·²ç¦ç¨"
+
+msgid "enabled"
+msgstr "å·²å¯ç¨"
+
+msgid "error"
+msgstr "é误"
+
+msgid "n/a"
+msgstr "ä¸å¯ç¨"
+
+msgid "paused"
+msgstr "å·²æå"
+
+#~ msgid ""
+#~ "Caution: Please don't select big lists or many lists at once on low "
+#~ "memory devices to prevent OOM exceptions!"
+#~ msgstr ""
+#~ "注æï¼è¯·å¿å¨å
åè¾å°ç设å¤ä¸éæ©è¿é¿çå表æåæ¶éæ©å¤ä¸ªå表ï¼ä»¥é²æ¢ OOM "
+#~ "å¼å¸¸ï¼"
+
+#~ msgid ""
+#~ "Create compressed blocklist backups, they will be used in case of "
+#~ "download errors or during startup in manual mode."
+#~ msgstr "å建å缩ç blocklist å¤ä»½ï¼å®ä»¬å°å¨ä¸è½½é误ææå¨æ¨¡å¼ä¸å¯å¨æ¶ä½¿ç¨ã"
+
+#~ msgid ""
+#~ "Enable memory intense overall sort / duplicate removal on low memory "
+#~ "devices (< 64 MB RAM)"
+#~ msgstr "å¨ä½å
å设å¤ä¸å¯ç¨èç¨å
åçæ´ä½æåº/éå¤è§åå é¤ï¼<64 MB RAMï¼"
+
+#~ msgid ""
+#~ "For further information see online "
+#~ "documentation "
+#~ msgstr "æå
³æ´å¤ä¿¡æ¯ï¼è¯·åé
å¨çº¿ææ¡£ "
+
+#~ msgid ""
+#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+#~ "config file or download a fresh default config from here "
+#~ msgstr ""
+#~ "å¨ OPKG ä¸ï¼ä½¿ç¨â--force-maintainerâé项è¦çé¢å
åå¨çé
ç½®æ件ï¼æä»æ¤å¤ ä¸è½½æ°çé»è®¤é
ç½®"
+
+#~ msgid ""
+#~ "List of available network interfaces. By default the startup will be "
+#~ "triggered by the 'wan' interface. "
+#~ msgstr "å¯ç¨ç½ç»æ¥å£å表ãé»è®¤æ
åµä¸ï¼å°ç±âwanâçé¢è§¦åå¯å¨ã "
+
+#~ msgid "Manual / Backup mode"
+#~ msgstr "æå¨/å¤ä»½æ¨¡å¼"
+
+#~ msgid "Overall Blocked Domains"
+#~ msgstr "æ´ä½å°éåå"
+
+#~ msgid "Please update your adblock config file to use this package."
+#~ msgstr "请æ´æ°æ¨ç adblock é
ç½®æ件以使ç¨æ¤è½¯ä»¶å
ã"
+
+#~ msgid ""
+#~ "Target directory for adblock backups. Please use only non-volatile disks, "
+#~ "no ram/tmpfs drives."
+#~ msgstr ""
+#~ "adblock å¤ä»½çç®æ ç®å½ã请ä»
使ç¨éæ失æ§ç£çï¼ä¸ä½¿ç¨ ram/tmpfs 驱å¨å¨ã"
+
+#~ msgid "DNS backend"
+#~ msgstr "DNS å端"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "å¯ç¨è¯¦ç»è°è¯è¾åº"
+
+#~ msgid "Resume adblock"
+#~ msgstr "æ¢å¤ Adblock"
+
+#~ msgid "Status"
+#~ msgstr "ç¶æ"
+
+#~ msgid "Suspend adblock"
+#~ msgstr "æå Adblock"
+
+#~ msgid "active"
+#~ msgstr "å·²å¯ç¨"
+
+#~ msgid "no domains blocked"
+#~ msgstr "没æ被æ¦æªçåå"
+
+#~ msgid "suspended"
+#~ msgstr "å·²æå"
+
+#~ msgid "."
+#~ msgstr "."
+
+#~ msgid "For further information"
+#~ msgstr "æ´å¤ä¿¡æ¯"
+
+#~ msgid "see online documentation"
+#~ msgstr "æ¥çå¨çº¿ææ¡£"
+
+#~ msgid "Backup options"
+#~ msgstr "å¤ä»½é项"
+
+#~ msgid ""
+#~ "). Note that list URLs and Shallalist category selections are not "
+#~ "configurable via Luci."
+#~ msgstr "ï¼ãéè¦æ³¨æçæ¯å表URLåå表类å«é项æ æ³éè¿Luci设置ã"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "å¯ç¨æ¦æªå表æ¥æºï¼"
+
+#~ msgid ""
+#~ "File with whitelisted hosts/domains that are allowed despite being on a "
+#~ "blocklist."
+#~ msgstr "å
许ç主æº/ååå表"
+
+#~ msgid "Global options"
+#~ msgstr "å
¨å±é项"
+
+#~ msgid "Whitelist file"
+#~ msgstr "ç½ååæ件"
-msgid "see list details"
-msgstr "æ¥çå表详æ
"
+#~ msgid "see list details"
+#~ msgstr "æ¥çå表详æ
"
#~ msgid "Count"
#~ msgstr "æ°é"
diff --git a/applications/luci-app-adblock/po/zh-tw/adblock.po b/applications/luci-app-adblock/po/zh-tw/adblock.po
new file mode 100644
index 0000000000..f838fa0432
--- /dev/null
+++ b/applications/luci-app-adblock/po/zh-tw/adblock.po
@@ -0,0 +1,455 @@
+# liushuyu , 2017.
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-10-28 16:06+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "-------"
+msgstr "-------"
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Logfile"
+msgstr "Adblock æ¥èªæªæ¡"
+
+msgid "Adblock Status"
+msgstr "Adblock çæ
"
+
+msgid "Adblock Version"
+msgstr "Adblock çæ¬"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "è§¸ç¼ Adblock éå§èçåçé¡å¤å»¶é²ï¼ä»¥ç§çºå®ä½ï¼ã"
+
+msgid "Advanced"
+msgstr "é«é"
+
+msgid "Available blocklist sources."
+msgstr "å¯ç¨ç blocklist ä¾æºã"
+
+msgid "Backup Directory"
+msgstr "å份ç®é"
+
+msgid "Backup Mode"
+msgstr ""
+
+msgid ""
+"Block access to all domains except those explicitly listed in the whitelist "
+"file."
+msgstr ""
+
+msgid "Blocklist Sources"
+msgstr "ææªå表ä¾æº"
+
+msgid ""
+"Caution: To prevent OOM exceptions on low memory devices with less than 64 "
+"MB free RAM, please do not select too many lists - 5-6 should be sufficient!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"é¸æânoneâ以ç¦ç¨èªåååï¼âtimedâ以使ç¨é è¨çè¶
æè¨å®ï¼é è¨ 30 ç§ï¼ï¼æé¸æå¦"
+"ä¸å觸ç¼ä»é¢ã"
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éè³æ..."
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr "Adblock é
置工å
·ï¼éé DNS ä¾ææªå»£ååé»æ¢ååã"
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in backup mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS å¾ç«¯ï¼DNS ç®éï¼"
+
+msgid "DNS Directory"
+msgstr "DNS ç®é"
+
+msgid "Description"
+msgstr "æè¿°"
+
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr "ååæéä¸è¦èªåæ´æ° blocklistsï¼æ¹ç¨ blocklists çå份ã"
+
+msgid "Download Utility (SSL Library)"
+msgstr "ä¸è¼å¯¦ç¨ç¨å¼ï¼SSL 庫ï¼"
+
+msgid ""
+"During opkg package installation use the '--force-maintainer' option to "
+"overwrite the pre-existing config file or download a fresh default config "
+"from here "
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr "編輯é»åå®"
+
+msgid "Edit Configuration"
+msgstr "編輯è¨å®"
+
+msgid "Edit Whitelist"
+msgstr "編輯ç½åå®"
+
+msgid "Enable Adblock"
+msgstr "åç¨ Adblock"
+
+msgid "Enable Blocklist Backup"
+msgstr "åç¨ Blocklist å份"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(< 64 MB free RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr "å¨åºç¾ä»»ä½èçé¯èª¤çæ
æ³ä¸åç¨è©³ç´°é¤é¯æ¥èªè¨éã"
+
+msgid "Enabled"
+msgstr "å·²åç¨"
+
+msgid "Extra Options"
+msgstr "é¡å¤é¸é
"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"å°æ¼ SSL ä¿è·ç blocklist æºï¼æ¨éè¦ä¸ååé©ç SSL 庫ï¼ä¾å¦'libustream-"
+"ssl'æ wget'built-in'ã"
+
+msgid ""
+"For further information check the online "
+"documentation "
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr "å¼·å¶æ¬å° DNS"
+
+msgid "Force Overall Sort"
+msgstr "å¼·å¶æ´é«æåº"
+
+msgid "Full path to the whitelist file."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr "輸å
¥æªæ¡æªæ¾å°ï¼è«æª¢æ¥æ¨çé
ç½®ã"
+
+msgid "Invalid domain specified!"
+msgstr "ç¡æååï¼"
+
+msgid "Last Run"
+msgstr "æå¾å·è¡"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section. "
+msgstr "å表 URL å Shallalist é¡å¥é¸æå¯å¨âé«éâé¸é
å¡ä¸é
ç½®ã "
+
+msgid ""
+"List of available network interfaces. Usually the startup will be triggered "
+"by the 'wan' interface. "
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory. "
+msgstr "æ¯æ´ç DNS å¾ç«¯å表åå
¶é è¨å表å¯åºç®éã "
+
+msgid "Loading"
+msgstr "è¼å
¥ä¸"
+
+msgid "No"
+msgstr "å¦"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "å¨é è¨è¨å®ä¸¦ä¸é©åæ¨æçé¡å¤é¸é
ã"
+
+msgid "Overall Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr "總覽"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+"è«æ¯è¡åªæ°å¢ä¸ååãå
許使ç¨'ï¼'éé ç註é - ip ä½åãè¬ç¨åå
åæ£å表示å¼é½"
+"ä¸å
許ã"
+
+msgid "Please edit this file directly in a terminal session."
+msgstr "è«å¨çµç«¯æ話ä¸ç´æ¥ç·¨è¼¯æ¤æªæ¡ã"
+
+msgid "Please update your adblock config file to use this package. "
+msgstr ""
+
+msgid "Query"
+msgstr "æ¥è©¢"
+
+msgid "Query domains"
+msgstr "æ¥è©¢å"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr "å°ææ DNS æ¥è©¢å¾âlanâååéå®åå°æ¬å°è§£æå¨ã"
+
+msgid "Resume"
+msgstr "æ¢å¾©"
+
+msgid "Runtime Information"
+msgstr "å·è¡è³è¨"
+
+msgid "SSL req."
+msgstr "SSL è¦æ±"
+
+msgid "Save"
+msgstr "å²å"
+
+msgid "Startup Trigger"
+msgstr "åå觸ç¼å¨"
+
+msgid "Suspend"
+msgstr "æ«å"
+
+msgid "Suspend / Resume Adblock"
+msgstr "æ«å/æ¢å¾© Adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, e."
+"g. an external usb stick."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "çæç blocklist 'adb_list.overall'çç®æ¨ç®éã"
+
+msgid "The file size is too large for online editing in LuCI (> 512 KB)."
+msgstr "æªæ¡å¤§å°å¤ªå¤§ï¼ç¡æ³å¨ LuCIï¼> 512 KBï¼ä¸é²è¡ç·ä¸ç·¨è¼¯ã"
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+" "
+msgstr "æ¤è¡¨å®å
許æ¨ä¿®æ¹ adblock é»åå®ï¼%sï¼çå
§å®¹ã "
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+" "
+msgstr "æ¤è¡¨å®å
許æ¨ä¿®æ¹ adblock ç½åå®ï¼%sï¼çå
§å®¹ã "
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr "æ¤è¡¨å®å
許æ¨ä¿®æ¹ä¸»è¦ adblock é
ç½®æªæ¡ï¼/etc/config/adblockï¼çå
§å®¹ã"
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr "æ¤è¡¨å®å
許æ¨æ¥è©¢æäºåçæ´»åå¡å表ï¼ä¾å¦ç¨æ¼ååºç½åå®ã"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr "æ¤è¡¨å®é¡¯ç¤ºç³»çµ±æ¥èªè¼¸åºï¼å
éå° adblock ç¸éçè¨æ¯é²è¡äºé 篩é¸ã"
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr "è¦è¦èé è¨è·¯å¾ï¼è«ä½¿ç¨ä¸é¢é¡å¤é¨åä¸çâDNS ç®éâé¸é
ã"
+
+msgid "Trigger Delay"
+msgstr "觸ç¼å»¶é²"
+
+msgid "Verbose Debug Logging"
+msgstr "詳細çé¤é¯è¨é"
+
+msgid "View Logfile"
+msgstr "檢è¦æ¥èªæªæ¡"
+
+msgid "Waiting for command to complete..."
+msgstr "æ£å¨å·è¡å½ä»¤..."
+
+msgid "Whitelist File"
+msgstr ""
+
+msgid "Whitelist Mode"
+msgstr ""
+
+msgid "Yes"
+msgstr "æ¯"
+
+msgid "disabled"
+msgstr "å·²ç¦ç¨"
+
+msgid "enabled"
+msgstr "å·²åç¨"
+
+msgid "error"
+msgstr "é¯èª¤"
+
+msgid "n/a"
+msgstr "ä¸å¯ç¨"
+
+msgid "paused"
+msgstr "å·²æ«å"
+
+#~ msgid ""
+#~ "Caution: Please don't select big lists or many lists at once on low "
+#~ "memory devices to prevent OOM exceptions!"
+#~ msgstr ""
+#~ "注æï¼è«å¿å¨è¨æ¶é«è¼å°çè£ç½®ä¸é¸æéé·çå表æåæé¸æå¤åå表ï¼ä»¥é²æ¢ "
+#~ "OOM ç°å¸¸ï¼"
+
+#~ msgid ""
+#~ "Create compressed blocklist backups, they will be used in case of "
+#~ "download errors or during startup in manual mode."
+#~ msgstr "建ç«å£ç¸®ç blocklist å份ï¼å®åå°å¨ä¸è¼é¯èª¤ææå模å¼ä¸ååæ使ç¨ã"
+
+#~ msgid ""
+#~ "Enable memory intense overall sort / duplicate removal on low memory "
+#~ "devices (< 64 MB RAM)"
+#~ msgstr ""
+#~ "å¨ä½è¨æ¶é«è£ç½®ä¸åç¨èç¨è¨æ¶é«çæ´é«æåº/éè¤è¦ååªé¤ï¼<64 MB RAMï¼"
+
+#~ msgid ""
+#~ "For further information see online "
+#~ "documentation "
+#~ msgstr "æéæ´å¤è³è¨ï¼è«åé±ç·ä¸æ件 "
+
+#~ msgid ""
+#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+#~ "config file or download a fresh default config from here "
+#~ msgstr ""
+#~ "å¨ OPKG ä¸ï¼ä½¿ç¨â--force-maintainerâé¸é
è¦èé å
åå¨çé
ç½®æªæ¡ï¼æå¾æ¤è ä¸è¼æ°çé è¨é
ç½®"
+
+#~ msgid ""
+#~ "List of available network interfaces. By default the startup will be "
+#~ "triggered by the 'wan' interface. "
+#~ msgstr "å¯ç¨ç¶²è·¯ä»é¢å表ãé è¨æ
æ³ä¸ï¼å°ç±âwanâä»é¢è§¸ç¼ååã "
+
+#~ msgid "Manual / Backup mode"
+#~ msgstr "æå/å份模å¼"
+
+#~ msgid "Overall Blocked Domains"
+#~ msgstr "æ´é«å°éåå"
+
+#~ msgid "Please update your adblock config file to use this package."
+#~ msgstr "è«æ´æ°æ¨ç adblock é
ç½®æªæ¡ä»¥ä½¿ç¨æ¤è»é«å
ã"
+
+#~ msgid ""
+#~ "Target directory for adblock backups. Please use only non-volatile disks, "
+#~ "no ram/tmpfs drives."
+#~ msgstr ""
+#~ "adblock å份çç®æ¨ç®éãè«å
使ç¨éæ失æ§ç£ç¢ï¼ä¸ä½¿ç¨ ram/tmpfs é©
åå¨ã"
+
+#~ msgid "DNS backend"
+#~ msgstr "DNS å¾ç«¯"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "åç¨è©³ç´°é¤é¯è¼¸åº"
+
+#~ msgid "Resume adblock"
+#~ msgstr "æ¢å¾© Adblock"
+
+#~ msgid "Status"
+#~ msgstr "çæ
"
+
+#~ msgid "Suspend adblock"
+#~ msgstr "æ«å Adblock"
+
+#~ msgid "active"
+#~ msgstr "å·²åç¨"
+
+#~ msgid "no domains blocked"
+#~ msgstr "æ²æ被ææªçåå"
+
+#~ msgid "suspended"
+#~ msgstr "å·²æ«å"
+
+#~ msgid "."
+#~ msgstr "."
+
+#~ msgid "For further information"
+#~ msgstr "æ´å¤è³è¨"
+
+#~ msgid "see online documentation"
+#~ msgstr "檢è¦ç·ä¸æ件"
+
+#~ msgid "Backup options"
+#~ msgstr "å份é¸é
"
+
+#~ msgid ""
+#~ "). Note that list URLs and Shallalist category selections are not "
+#~ "configurable via Luci."
+#~ msgstr "ï¼ãéè¦æ³¨æçæ¯å表URLåå表é¡å¥é¸é
ç¡æ³ééLuciè¨å®ã"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "å¯ç¨ææªå表ä¾æºï¼"
+
+#~ msgid ""
+#~ "File with whitelisted hosts/domains that are allowed despite being on a "
+#~ "blocklist."
+#~ msgstr "å
許ç主æ©/ååå表"
+
+#~ msgid "Global options"
+#~ msgstr "å
¨åæ§é¸é
"
+
+#~ msgid "Whitelist file"
+#~ msgstr "ç½åå®æªæ¡"
+
+#~ msgid "see list details"
+#~ msgstr "檢è¦å表詳æ
"
+
+#~ msgid "Count"
+#~ msgstr "æ¸é"
+
+#~ msgid "IPv4 blackhole ip address"
+#~ msgstr "IPv4ç¦æ¢å表"
+
+#~ msgid "IPv6 blackhole ip address"
+#~ msgstr "IPv6ç¦æ¢å表"
+
+#~ msgid "List date/state"
+#~ msgstr "å表æ¥æ/çæ
"
+
+#~ msgid "Name of the logical lan interface"
+#~ msgstr "LANä»é¢å稱"
+
+#~ msgid "Port of the adblock uhttpd instance"
+#~ msgstr "Adblock uhttpdå "
+
+#~ msgid "Redirect all DNS queries to the local resolver"
+#~ msgstr "å°ææDNSæ¥è©¢é½éå®åå°æ¬å°è§£æå¨"
+
+#~ msgid "Timeout for blocklist fetch (seconds)"
+#~ msgstr "å表æ¥è©¢è¶
ææéï¼ç§ï¼"
+
+#~ msgid "Total count of blocked domains"
+#~ msgstr "é»æ¢åå總æ¸"
+
+#~ msgid ""
+#~ "When adblock is active, all DNS queries are redirected to the local "
+#~ "resolver in this server by default. You can disable that to allow queries "
+#~ "to external DNS servers."
+#~ msgstr ""
+#~ "ç¶Adblockèæ¼æ´»åçæ
æï¼é è¨æ
æ³ä¸æå°ææçDNSæ¥è©¢éå®åå°æ¤ä¼ºæå¨çæ¬å°"
+#~ "解æå¨ãæ¨å¯ä»¥ç¦ç¨ä»¥å
許æ¥è©¢å¤é¨DNS伺æå¨ã"
diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile
new file mode 100644
index 0000000000..3a886eb8de
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/Makefile
@@ -0,0 +1,20 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin
+
+LUCI_TITLE:=Advanced Linksys Reboot Web UI
+LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot supported Linksys routers to\
+ an altnerative partition. Also provides Web UI to shut down (power off) your device. Supported dual-partition\
+ routers are listed at https://github.com/stangri/openwrt-luci/blob/luci-app-advanced-reboot/applications/luci-app-advanced-reboot/README.md
+
+LUCI_DEPENDS:=+luci
+LUCI_PKGARCH:=all
+PKG_RELEASE:=23
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-advanced-reboot/README.md b/applications/luci-app-advanced-reboot/README.md
new file mode 100644
index 0000000000..ee87a00020
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/README.md
@@ -0,0 +1,35 @@
+# Advanced Reboot Web UI (luci-app-advanced-reboot)
+
+## Description
+This package allows you to reboot to an alternative partition on supported (dual-partition) routers and to power off (power down) your OpenWrt/LEDE Project device.
+
+## Supported Devices
+Currently supported dual-partition devices include:
+- Linksys WRT1200AC
+- Linksys WRT1900AC
+- Linksys WRT1900ACv2
+- Linksys WRT1900ACS
+- Linksys WRT3200ACM
+- Linksys E4200v2
+- Linksys EA4500
+- Linksys EA8500
+
+If you're interested in having your device supported, please post in [LEDE Project Forum Support Thread](https://forum.lede-project.org/t/web-ui-to-reboot-to-another-partition-dual-partition-routers/3423).
+
+## Screenshot (luci-app-advanced-reboot)
+![screenshot](https://raw.githubusercontent.com/stangri/screenshots/master/luci-app-advanced-reboot/screenshot01.png "screenshot")
+
+## How to install
+Install ```luci-app-advanced-reboot``` from Web UI or connect to your router via ssh and run the following commands:
+```sh
+opkg update
+opkg install luci-app-advanced-reboot
+```
+
+## Notes/Known Issues
+- When you reboot to a different partition, your current settings (WiFi SSID/password, etc.) will not apply to a different partition. Different partitions might have completely different settings and even firmware.
+- If you reboot to a partition which doesn't allow you to switch boot partitions (like stock Linksys firmware), you might not be able to boot back to OpenWrt/LEDE Project unless you reflash it, loosing all the settings.
+- Some devices allow you to trigger reboot to alternative partition by interrupting boot 3 times in a row (by resetting/switching off the device or pulling power). As these methods might be different for different devices, do your own homework.
+
+## Thanks
+I'd like to thank everyone who helped create, test and troubleshoot this package. Without contributions from [@hnyman](https://github.com/hnyman) and [@jpstyves](https://github.com/jpstyves) it wouldn't have been possible.
diff --git a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
new file mode 100644
index 0000000000..2b55217b8e
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
@@ -0,0 +1,120 @@
+-- Copyright 2017 Stan Grishin
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.advanced_reboot", package.seeall)
+
+-- device, board_name, part1, part2, offset, env_var_1, value_1_1, value_1_2, env_var_2, value_2_1, value_2_2
+devices = {
+ {"Linksys WRT1200AC", "armada-385-linksys-caiman", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys WRT1900AC", "armada-xp-linksys-mamba", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys WRT1900ACv2", "armada-385-linksys-cobra", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys WRT1900ACS", "armada-385-linksys-shelby", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys WRT3200ACM", "armada-385-linksys-rango", "mtd5", "mtd7", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys E4200v2/EA4500", "linksys-viper", "mtd3", "mtd5", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"},
+ {"Linksys EA8500", "ea8500", "mtd13", "mtd15", 32, "boot_part", 1, 2}
+}
+
+board_name = luci.util.trim(luci.sys.exec("cat /tmp/sysinfo/board_name"))
+for i=1, #devices do
+ if board_name and devices[i][2] == board_name then
+ device_name = devices[i][1]
+ partition_one_mtd = devices[i][3] or nil
+ partition_two_mtd = devices[i][4] or nil
+ partition_skip = devices[i][5] or nil
+ boot_envvar1 = devices[i][6] or nil
+ boot_envvar1_partition_one = tonumber(devices[i][7]) or nil
+ boot_envvar1_partition_two = tonumber(devices[i][8]) or nil
+ boot_envvar2 = devices[i][9] or nil
+ boot_envvar2_partition_one = devices[i][10] or nil
+ boot_envvar2_partition_two = devices[i][11] or nil
+ if partition_one_mtd and partition_skip then
+ partition_one_label = luci.util.trim(luci.sys.exec("dd if=/dev/" .. partition_one_mtd .. " bs=1 skip=" .. partition_skip .. " count=25" .. " 2>/dev/null"))
+ n, partition_one_version = string.match(partition_one_label, '(Linux)-([%d|.]+)')
+ end
+ if partition_two_mtd and partition_skip then
+ partition_two_label = luci.util.trim(luci.sys.exec("dd if=/dev/" .. partition_two_mtd .. " bs=1 skip=" .. partition_skip .. " count=25" .. " 2>/dev/null"))
+ n, partition_two_version = string.match(partition_two_label, '(Linux)-([%d|.]+)')
+ end
+ if string.find(partition_one_label, "LEDE") then partition_one_os = "LEDE" end
+ if string.find(partition_one_label, "OpenWrt") then partition_one_os = "OpenWrt" end
+ if string.find(partition_one_label, "Linksys") then partition_one_os = "Linksys" end
+ if string.find(partition_two_label, "LEDE") then partition_two_os = "LEDE" end
+ if string.find(partition_two_label, "OpenWrt") then partition_two_os = "OpenWrt" end
+ if string.find(partition_two_label, "Linksys") then partition_two_os = "Linksys" end
+ if not partition_one_os then partition_one_os = "Unknown" end
+ if not partition_two_os then partition_two_os = "Unknown" end
+ if partition_one_os and partition_one_version then partition_one_os = partition_one_os .. " (Linux " .. partition_one_version .. ")" end
+ if partition_two_os and partition_two_version then partition_two_os = partition_two_os .. " (Linux " .. partition_two_version .. ")" end
+ if nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then
+ current_partition = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1)))
+ other_partition = current_partition == boot_envvar1_partition_one and boot_envvar1_partition_two or boot_envvar1_partition_one
+ end
+ end
+end
+
+function index()
+ entry({"admin", "system", "advanced_reboot"}, template("advanced_reboot/advanced_reboot"), _("Advanced Reboot"), 90)
+ entry({"admin", "system", "advanced_reboot", "reboot"}, post("action_reboot"))
+-- if device_name then entry({"admin", "system", "advanced_reboot", "altreboot"}, post("action_altreboot")) end
+ entry({"admin", "system", "advanced_reboot", "alternative_reboot"}, post("action_altreboot"))
+ entry({"admin", "system", "advanced_reboot", "power_off"}, post("action_poweroff"))
+end
+
+function action_reboot()
+ luci.template.render("admin_system/applyreboot", {
+ title = luci.i18n.translate("Rebooting..."),
+ msg = luci.i18n.translate("The system is rebooting now. DO NOT POWER OFF THE DEVICE! Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
+ addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1"
+ })
+ luci.sys.reboot()
+end
+
+function action_altreboot()
+ if luci.http.formvalue("cancel") then
+ luci.http.redirect(luci.dispatcher.build_url('admin/system/advanced_reboot'))
+ return
+ end
+ local step = tonumber(luci.http.formvalue("step") or 1)
+ if step == 1 then
+ if device_name and nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then
+ luci.template.render("advanced_reboot/alternative_reboot",{})
+ else
+ luci.template.render("advanced_reboot/advanced_reboot",{})
+ end
+ elseif step == 2 then
+ luci.template.render("admin_system/applyreboot", {
+ title = luci.i18n.translate("Rebooting..."),
+ msg = luci.i18n.translate("The system is rebooting to an alternative partition now. DO NOT POWER OFF THE DEVICE! Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
+ addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1"
+ })
+ if boot_envvar1 then env1 = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) end
+ if boot_envvar2 then env2 = luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar2)) end
+ if env1 and env1 == boot_envvar1_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_two) end
+ if env1 and env1 == boot_envvar1_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_one) end
+ if env2 and env2 == boot_envvar2_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_two .. "'") end
+ if env2 and env2 == boot_envvar2_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_one .. "'") end
+ luci.sys.reboot()
+ end
+end
+
+function action_poweroff()
+ if luci.http.formvalue("cancel") then
+ luci.http.redirect(luci.dispatcher.build_url('admin/system/advanced_reboot'))
+ return
+ end
+ local step = tonumber(luci.http.formvalue("step") or 1)
+ if step == 1 then
+ if nixio.fs.access("/sbin/poweroff") then
+ luci.template.render("advanced_reboot/power_off",{})
+ else
+ luci.template.render("advanced_reboot/advanced_reboot",{})
+ end
+ elseif step == 2 then
+ luci.template.render("admin_system/applyreboot", {
+ title = luci.i18n.translate("Shutting down..."),
+ msg = luci.i18n.translate("The system is shutting down now. DO NOT POWER OFF THE DEVICE! It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
+ addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1"
+ })
+ luci.sys.call("/sbin/poweroff")
+ end
+end
diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm
new file mode 100644
index 0000000000..206d250543
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm
@@ -0,0 +1,92 @@
+<%#
+ Copyright 2008 Steven Barth
+ Copyright 2008-2015 Jo-Philipp Wich
+ Copyright 2017 Stan Grishin
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%+header%>
+
+<%:Advanced Reboot%>
+
+
+<%- local c = require("luci.model.uci").cursor():changes(); if c and next(c) then -%>
+ <%:Warning: There are unsaved changes that will get lost on reboot!%>
+<%- end -%>
+
+<%- if device_name then -%>
+
+ <%=device_name%><%: Partitions%>
+
+
+ <%:Partition%>
+ <%:Status%>
+ <%:Firmware/OS (Kernel)%>
+ <%:Action%>
+
+
+
+ <%=boot_envvar1_partition_one%>
+
+
+ <%- if boot_envvar1_partition_one == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%>
+
+
+ <%=partition_one_os%>
+
+
+ <%- if boot_envvar1_partition_one == current_partition then -%>
+
+ <%- else -%>
+
+ <%- end -%>
+
+
+
+
+ <%=boot_envvar1_partition_two%>
+
+
+ <%- if boot_envvar1_partition_two == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%>
+
+
+ <%=partition_two_os%>
+
+
+ <%- if boot_envvar1_partition_two == current_partition then -%>
+
+ <%- else -%>
+
+ <%- end -%>
+
+
+
+
+<%- else -%>
+ <%:Warning: This system does not have two partitions!%>
+<%- end -%>
+
+
+
+<%- if nixio.fs.access("/sbin/poweroff") then -%>
+
+<%- else -%>
+ <%:Warning: This system does not support powering off!%>
+<%- end -%>
+
+<%+footer%>
diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm
new file mode 100644
index 0000000000..6325934094
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm
@@ -0,0 +1,29 @@
+<%#
+ Copyright 2008 Steven Barth
+ Copyright 2008-2009 Jo-Philipp Wich
+ Copyright 2017 Stan Grishin
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%+header%>
+
+<%:Reboot Device to an Alternative Partition%> - <%:Confirm%>
+
+ <%_ WARNING: An alternative partition might have its own settings and completely different firmware.
+ As your network configuration and WiFi SSID/password on alternative partition might be different,
+ you might have to adjust your computer settings to be able to access your device once it reboots.
+ Please also be aware that alternative partition firmware might not provide an easy way to switch active partition
+ and boot back to the currently active partition.
+ Click "Proceed" below to reboot device to an alternative partition. %>
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm
new file mode 100644
index 0000000000..0ddea11e65
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm
@@ -0,0 +1,25 @@
+<%#
+ Copyright 2008 Steven Barth
+ Copyright 2008-2009 Jo-Philipp Wich
+ Copyright 2017 Stan Grishin
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%+header%>
+
+<%:Power Off Device%> - <%:Confirm%>
+
+ <%_ WARNING: Power off might result in a reboot on a device which doesn't support power off.
+ Click "Proceed" below to power off your device. %>
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po b/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po
new file mode 100644
index 0000000000..20d77cbcf7
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po
@@ -0,0 +1,109 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Action"
+msgstr "Ã
tgärd"
+
+msgid "Advanced Reboot"
+msgstr "Avancerad omstart"
+
+msgid "Alternative"
+msgstr "Alternativ"
+
+msgid "Cancel"
+msgstr "Avbryt"
+
+msgid "Confirm"
+msgstr "Bekräfta"
+
+msgid "Current"
+msgstr "Nuvarande"
+
+msgid "Firmware/OS (Kernel)"
+msgstr "Inre mjukvara/OS (Kärna)"
+
+msgid "Partition"
+msgstr "Partition"
+
+msgid "Partitions"
+msgstr "Partitioner"
+
+msgid "Perform power off..."
+msgstr "Utför avstängning..."
+
+msgid "Power Off Device"
+msgstr "Stäng av enhet"
+
+msgid "Proceed"
+msgstr "Fortsätt"
+
+msgid "Reboot Device to an Alternative Partition"
+msgstr "Starta om enheten till en alternativ partition"
+
+msgid "Reboot to alternative partition..."
+msgstr "Starta om till alternativ partition..."
+
+msgid "Reboot to current partition"
+msgstr "Starta om till nuvarande partition"
+
+msgid "Rebooting..."
+msgstr "Startar om..."
+
+msgid "Shutting down..."
+msgstr "Stänger av..."
+
+msgid "Status"
+msgstr "Status"
+
+msgid ""
+"The system is rebooting now. DO NOT POWER OFF THE DEVICE! Wait a "
+"few minutes before you try to reconnect. It might be necessary to renew the "
+"address of your computer to reach the device again, depending on your "
+"settings."
+msgstr ""
+
+msgid ""
+"The system is rebooting to an alternative partition now. DO NOT POWER "
+"OFF THE DEVICE! Wait a few minutes before you try to reconnect. It "
+"might be necessary to renew the address of your computer to reach the device "
+"again, depending on your settings."
+msgstr ""
+
+msgid ""
+"The system is shutting down now. DO NOT POWER OFF THE DEVICE! It "
+"might be necessary to renew the address of your computer to reach the device "
+"again, depending on your settings."
+msgstr ""
+"Systemet stänger ner nu. STÃNG INTE AV ENHETEN! Beroende pÃ¥ dina "
+"inställningar så kan det vara nödvändigt att förnya din dators adress för "
+"att nå enheten igen."
+
+msgid ""
+"WARNING: An alternative partition might have its own settings and completely "
+"different firmware. As your network configuration and WiFi SSID/"
+"password on alternative partition might be different, you might have to "
+"adjust your computer settings to be able to access your device once it "
+"reboots. Please also be aware that alternative partition "
+"firmware might not provide an easy way to switch active partition and boot "
+"back to the currently active partition. Click \"Proceed\" below "
+"to reboot device to an alternative partition."
+msgstr ""
+
+msgid ""
+"WARNING: Power off might result in a reboot on a device which doesn't "
+"support power off. Click \"Proceed\" below to power off your "
+"device."
+msgstr ""
+"VARNING: Att stänga av kan resultera i en omstart i en enhet som inte har "
+"stöd för avstängning. Klicka på \"Fortsätt\" nedanför för att "
+"stänga av din enhet."
+
+msgid "Warning: There are unsaved changes that will get lost on reboot!"
+msgstr ""
+"Varning: Det finns osparade ändringar som kommer att förloras vid omstart!"
+
+msgid "Warning: This system does not have two partitions!"
+msgstr "Varning: Det här systemet har inte två partitioner!"
+
+msgid "Warning: This system does not support powering off!"
+msgstr "Varning: Det här systemet har inte stöd för avstängning!"
diff --git a/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot b/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot
new file mode 100644
index 0000000000..9c810892c2
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot
@@ -0,0 +1,102 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Action"
+msgstr ""
+
+msgid "Advanced Reboot"
+msgstr ""
+
+msgid "Alternative"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Confirm"
+msgstr ""
+
+msgid "Current"
+msgstr ""
+
+msgid "Firmware/OS (Kernel)"
+msgstr ""
+
+msgid "Partition"
+msgstr ""
+
+msgid "Partitions"
+msgstr ""
+
+msgid "Perform power off..."
+msgstr ""
+
+msgid "Power Off Device"
+msgstr ""
+
+msgid "Proceed"
+msgstr ""
+
+msgid "Reboot Device to an Alternative Partition"
+msgstr ""
+
+msgid "Reboot to alternative partition..."
+msgstr ""
+
+msgid "Reboot to current partition"
+msgstr ""
+
+msgid "Rebooting..."
+msgstr ""
+
+msgid "Shutting down..."
+msgstr ""
+
+msgid "Status"
+msgstr ""
+
+msgid ""
+"The system is rebooting now. DO NOT POWER OFF THE DEVICE! Wait a "
+"few minutes before you try to reconnect. It might be necessary to renew the "
+"address of your computer to reach the device again, depending on your "
+"settings."
+msgstr ""
+
+msgid ""
+"The system is rebooting to an alternative partition now. DO NOT POWER "
+"OFF THE DEVICE! Wait a few minutes before you try to reconnect. It "
+"might be necessary to renew the address of your computer to reach the device "
+"again, depending on your settings."
+msgstr ""
+
+msgid ""
+"The system is shutting down now. DO NOT POWER OFF THE DEVICE! It "
+"might be necessary to renew the address of your computer to reach the device "
+"again, depending on your settings."
+msgstr ""
+
+msgid ""
+"WARNING: An alternative partition might have its own settings and completely "
+"different firmware. As your network configuration and WiFi SSID/"
+"password on alternative partition might be different, you might have to "
+"adjust your computer settings to be able to access your device once it "
+"reboots. Please also be aware that alternative partition "
+"firmware might not provide an easy way to switch active partition and boot "
+"back to the currently active partition. Click \"Proceed\" below "
+"to reboot device to an alternative partition."
+msgstr ""
+
+msgid ""
+"WARNING: Power off might result in a reboot on a device which doesn't "
+"support power off. Click \"Proceed\" below to power off your "
+"device."
+msgstr ""
+
+msgid "Warning: There are unsaved changes that will get lost on reboot!"
+msgstr ""
+
+msgid "Warning: This system does not have two partitions!"
+msgstr ""
+
+msgid "Warning: This system does not support powering off!"
+msgstr ""
diff --git a/applications/luci-app-ahcp/po/pt-br/ahcp.po b/applications/luci-app-ahcp/po/pt-br/ahcp.po
index 55ec29cdc7..741c14572b 100644
--- a/applications/luci-app-ahcp/po/pt-br/ahcp.po
+++ b/applications/luci-app-ahcp/po/pt-br/ahcp.po
@@ -1,20 +1,20 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-29 23:07+0200\n"
-"Last-Translator: Luiz Angelo \n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-17 17:07-0200\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
msgid "AHCP Server"
msgstr "Servidor AHCP"
-#, fuzzy
msgid ""
"AHCP is an autoconfiguration protocol for IPv6 and dual-stack IPv6/IPv4 "
"networks designed to be used in place of router discovery or DHCP on "
diff --git a/applications/luci-app-ahcp/po/sv/ahcp.po b/applications/luci-app-ahcp/po/sv/ahcp.po
index a7c7a38f79..db1cc35ec5 100644
--- a/applications/luci-app-ahcp/po/sv/ahcp.po
+++ b/applications/luci-app-ahcp/po/sv/ahcp.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2014-04-27 22:52+0200\n"
-"Last-Translator: Umeaboy \n"
+"Last-Translator: Umeaboy \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -20,6 +20,10 @@ msgid ""
"networks where it is difficult or impossible to configure a server within "
"every link-layer broadcast domain, for example mobile ad-hoc networks."
msgstr ""
+"AHCP är ett autokonfigurationsprotokoll för IPv6 och dual-stack IPv6/IPv4- "
+"nätverk designade för att användas vid upptäckt av router eller DHCP på "
+"nätverk där det är svårt eller omöjligt att ställa in en server inom "
+"varje sändningslänkslags-domän, till exempel mobila ad-hocnätverk."
msgid "Active AHCP Leases"
msgstr "Aktiva AHCP-hyror"
diff --git a/applications/luci-app-aria2/po/pt-br/aria2.po b/applications/luci-app-aria2/po/pt-br/aria2.po
new file mode 100644
index 0000000000..1bb4137446
--- /dev/null
+++ b/applications/luci-app-aria2/po/pt-br/aria2.po
@@ -0,0 +1,236 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr "\"Falloc\" não está disponÃvel em todas as classes."
+
+msgid "DHT enabled"
+msgstr ""
+"DHT"
+"abbr> habilitado"
+
+msgid "LPD enabled"
+msgstr ""
+"LPD"
+"abbr> habilitado"
+
+msgid "Additional Bt tracker enabled"
+msgstr "Rastreadores BitTorrent adicionais habilitado"
+
+msgid "Aria2"
+msgstr "Aria2"
+
+msgid "Aria2 Settings"
+msgstr "Configurações do Aria2"
+
+msgid "Aria2 Status"
+msgstr "Estado do Aria2"
+
+msgid ""
+"Aria2 is a multi-protocol & multi-source download utility, here you can "
+"configure the settings."
+msgstr ""
+"Aria2 é um utilitário de transferência multi-protocolo de múltiplas fontes, "
+"aqui você pode configurá-lo."
+
+msgid "Autosave session interval"
+msgstr "Intervalo para autossalvamento da sessão"
+
+msgid "BitTorrent Settings"
+msgstr "Configurações do BitTorrent"
+
+msgid "BitTorrent listen port"
+msgstr "Porta de escuta do BitTorrent"
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
+msgid "Config file directory"
+msgstr "Diretório dos arquivos de configuração"
+
+msgid "Debug"
+msgstr "Depuração"
+
+msgid "Default download directory"
+msgstr "Diretório padrão de arquivos baixados"
+
+msgid "Disk cache"
+msgstr "Cache em Disco"
+
+msgid "Enable log"
+msgstr "Habilitar registros"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Error"
+msgstr "Erro"
+
+msgid "Extra Settings"
+msgstr "Configurações Adicionais"
+
+msgid "Falloc"
+msgstr "Falloc"
+
+msgid "Files and Locations"
+msgstr "Arquivos e Locais"
+
+msgid "Follow torrent"
+msgstr "Seguir torrent"
+
+msgid "General Settings"
+msgstr "Configurações Gerais"
+
+msgid "Generate Randomly"
+msgstr "Gerar aleatoriamente"
+
+msgid "Info"
+msgstr "Informações"
+
+msgid "List of additional Bt tracker"
+msgstr "Lista de rastreadores BitTorrent adicionais"
+
+msgid "List of extra settings"
+msgstr "Lista de configurações adicionais"
+
+msgid "Log file is in the config file dir."
+msgstr ""
+"Arquivo de registro (log) está no diretório do arquivo de configuração."
+
+msgid "Log level"
+msgstr "NÃvel do registro"
+
+msgid "Max concurrent downloads"
+msgstr "Número máximo de transferencias simultâneas"
+
+msgid "Max connection per server"
+msgstr "Numero máximo de conexões por servidor"
+
+msgid "Max number of peers per torrent"
+msgstr "Numero máximo de parceiros por torrent"
+
+msgid "Max number of split"
+msgstr "Numero máximo de divisões"
+
+msgid "Min split size"
+msgstr "Tamanho mÃnimo da divisão"
+
+msgid "No Authentication"
+msgstr "Sem Autenticação"
+
+msgid "Notice"
+msgstr "Aviso"
+
+msgid "Off"
+msgstr "Desligado"
+
+msgid "Open WebUI-Aria2"
+msgstr "Abrir WebUI-Aria2"
+
+msgid "Open YAAW"
+msgstr "Abrir YAAW"
+
+msgid "Overall download limit"
+msgstr "Limite global para baixar"
+
+msgid "Overall speed limit enabled"
+msgstr "Limite da taxa de transferência global habilitado"
+
+msgid "Overall upload limit"
+msgstr "Limite global para subir"
+
+msgid "Per task download limit"
+msgstr "Limite por tarefa para baixar"
+
+msgid "Per task speed limit enabled"
+msgstr "Limite da taxa de transferência por tarefa habilitado"
+
+msgid "Per task upload limit"
+msgstr "Limite por tarefa para subir"
+
+msgid "Prealloc"
+msgstr "Pré-alocação"
+
+msgid "Preallocation"
+msgstr "Pré-alocação"
+
+msgid "Prefix of peer ID"
+msgstr "Prefixo da identificação do paceiro"
+
+msgid "RPC Token"
+msgstr ""
+"Chave eletrônica do RPC "
+
+msgid "RPC authentication method"
+msgstr ""
+"Método de autenticação do RPC "
+
+msgid "RPC password"
+msgstr ""
+"Senha do RPC "
+
+msgid "RPC port"
+msgstr ""
+"Porta do RPC "
+
+msgid "RPC username"
+msgstr ""
+"Nome do usuario do RPC "
+
+msgid "Run daemon as user"
+msgstr "Executar serviço como usuário"
+
+msgid "Sec"
+msgstr "Segurança"
+
+msgid "Task Settings"
+msgstr "Configurações das tarefas"
+
+msgid "The Aria2 service is not running."
+msgstr "O serviço Aria2 está parado."
+
+msgid "The Aria2 service is running."
+msgstr "O serviço Aria2 está em execução."
+
+msgid "Token"
+msgstr "Chave eletrônica"
+
+msgid "Trunc"
+msgstr "Truncar"
+
+msgid "Use WebSocket"
+msgstr "Use WebSockets"
+
+msgid "User agent value"
+msgstr "Valor da identificação do agente do usuário"
+
+msgid "Username & Password"
+msgstr "Usuário & Senha"
+
+msgid "View Json-RPC URL"
+msgstr "Visualizar URL do JSON-RPC"
+
+msgid "Warn"
+msgstr "Atenção"
+
+msgid "in bytes, You can append K or M."
+msgstr "em bytes. Você pode sufixar com K (quilo) ou M (mega)."
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "em bytes por segundo. Você pode sufixar com K (quilo) ou M (mega)."
diff --git a/applications/luci-app-aria2/po/sv/aria2.po b/applications/luci-app-aria2/po/sv/aria2.po
new file mode 100644
index 0000000000..33613faca5
--- /dev/null
+++ b/applications/luci-app-aria2/po/sv/aria2.po
@@ -0,0 +1,208 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr ""
+
+msgid "DHT enabled"
+msgstr ""
+
+msgid "LPD enabled"
+msgstr ""
+
+msgid "Additional Bt tracker enabled"
+msgstr ""
+
+msgid "Aria2"
+msgstr "Aria2"
+
+msgid "Aria2 Settings"
+msgstr "Inställningar för Aria2"
+
+msgid "Aria2 Status"
+msgstr "Status för Aria2"
+
+msgid ""
+"Aria2 is a multi-protocol & multi-source download utility, here you can "
+"configure the settings."
+msgstr ""
+
+msgid "Autosave session interval"
+msgstr "Autospara sessionintervall"
+
+msgid "BitTorrent Settings"
+msgstr "Inställningar för BitTorrent"
+
+msgid "BitTorrent listen port"
+msgstr "Lyssningsport för BitTorrent"
+
+msgid "Collecting data..."
+msgstr "Samlar in data..."
+
+msgid "Config file directory"
+msgstr "Ställ in fil-mapp"
+
+msgid "Debug"
+msgstr "Avlusa"
+
+msgid "Default download directory"
+msgstr "Standard nerladdningsmapp"
+
+msgid "Disk cache"
+msgstr "Disk-cache"
+
+msgid "Enable log"
+msgstr "Aktivera logg"
+
+msgid "Enabled"
+msgstr "Aktiverad"
+
+msgid "Error"
+msgstr "Fel"
+
+msgid "Extra Settings"
+msgstr "Extra inställningar"
+
+msgid "Falloc"
+msgstr "Falloc"
+
+msgid "Files and Locations"
+msgstr "Filer och Platser"
+
+msgid "Follow torrent"
+msgstr "Följ torrenten"
+
+msgid "General Settings"
+msgstr "Generella inställningar"
+
+msgid "Generate Randomly"
+msgstr "Generera slumpmässigt"
+
+msgid "Info"
+msgstr "Info"
+
+msgid "List of additional Bt tracker"
+msgstr "Lista över extra Bt-tracker"
+
+msgid "List of extra settings"
+msgstr "Lista över extra inställningar"
+
+msgid "Log file is in the config file dir."
+msgstr "Logg-filen är i konfigurationsfilens mapp."
+
+msgid "Log level"
+msgstr "Loggnivå"
+
+msgid "Max concurrent downloads"
+msgstr "Maximalt sammanhängande nerladdningar"
+
+msgid "Max connection per server"
+msgstr "Max antalet anslutningar per server"
+
+msgid "Max number of peers per torrent"
+msgstr "Maximalt antalet jämlikar per torrent"
+
+msgid "Max number of split"
+msgstr "Högst antal split"
+
+msgid "Min split size"
+msgstr "Minsta split-storlek"
+
+msgid "No Authentication"
+msgstr "Ingen autentisering"
+
+msgid "Notice"
+msgstr "Avisering"
+
+msgid "Off"
+msgstr "Av"
+
+msgid "Open WebUI-Aria2"
+msgstr "Ãppna WebUI-Aria2"
+
+msgid "Open YAAW"
+msgstr "Ãppna YAAW"
+
+msgid "Overall download limit"
+msgstr ""
+
+msgid "Overall speed limit enabled"
+msgstr ""
+
+msgid "Overall upload limit"
+msgstr ""
+
+msgid "Per task download limit"
+msgstr ""
+
+msgid "Per task speed limit enabled"
+msgstr ""
+
+msgid "Per task upload limit"
+msgstr ""
+
+msgid "Prealloc"
+msgstr "Prealloc"
+
+msgid "Preallocation"
+msgstr "Förallokering"
+
+msgid "Prefix of peer ID"
+msgstr "Peer-ID prefix"
+
+msgid "RPC Token"
+msgstr ""
+
+msgid "RPC authentication method"
+msgstr ""
+
+msgid "RPC password"
+msgstr "RPC-lösenord"
+
+msgid "RPC port"
+msgstr "RPC-port"
+
+msgid "RPC username"
+msgstr "RPC-användarnamn"
+
+msgid "Run daemon as user"
+msgstr "Kör daemonen som användare"
+
+msgid "Sec"
+msgstr "Sek"
+
+msgid "Task Settings"
+msgstr "Inställningar för uppgifter"
+
+msgid "The Aria2 service is not running."
+msgstr "Aria2-tjänsten körs inte."
+
+msgid "The Aria2 service is running."
+msgstr "Aria2-tjänsten körs."
+
+msgid "Token"
+msgstr "Tecken"
+
+msgid "Trunc"
+msgstr ""
+
+msgid "Use WebSocket"
+msgstr "Använd WebSocket"
+
+msgid "User agent value"
+msgstr "Använd agent-värde"
+
+msgid "Username & Password"
+msgstr "Användarnamn & Lösenord"
+
+msgid "View Json-RPC URL"
+msgstr "Visa Json-RPC URL"
+
+msgid "Warn"
+msgstr "Varna"
+
+msgid "in bytes, You can append K or M."
+msgstr "i bytes, Du kan bifoga K eller M."
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "i bytes/sek, Du kan bifoga K eller M."
diff --git a/applications/luci-app-aria2/po/zh-cn/aria2.po b/applications/luci-app-aria2/po/zh-cn/aria2.po
index 823699d7bd..0b7eea21c7 100644
--- a/applications/luci-app-aria2/po/zh-cn/aria2.po
+++ b/applications/luci-app-aria2/po/zh-cn/aria2.po
@@ -1,200 +1,221 @@
-msgid "Aria2"
+#
+# Yangfl , 2017.
+#
+msgid ""
msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-28 16:10+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
-msgid "Aria2 is a multi-protocol & multi-source download utility, here you can configure the settings."
-msgstr "Aria2 æ¯ä¸ä¸ªæ¯æå¤åè®®å¤çº¿ç¨çä¸è½½å¨, ä½ å¯ä»¥å¨è¿é对å
¶è¿è¡é
ç½®"
-
-msgid "Aria2 Status"
-msgstr "Aria2 ç¶æ"
+msgid "\"Falloc\" is not available in all cases."
+msgstr "\"Falloc\" 并ä¸æ¯å¨æææ
åµä¸é½å¯ç¨"
-msgid "Open YAAW"
-msgstr "æå¼YAAW"
+msgid "DHT enabled"
+msgstr "å¯ç¨DHT "
-msgid "Open WebUI-Aria2"
-msgstr "æå¼WebUI-Aria2"
+msgid "LPD enabled"
+msgstr "å¯ç¨LPD "
-msgid "The Aria2 service is running."
-msgstr "Aria2 æ£å¨è¿è¡"
+msgid "Additional Bt tracker enabled"
+msgstr "æ·»å é¢å¤çTracker"
-msgid "The Aria2 service is not running."
-msgstr "Aria2 æªè¿è¡"
+msgid "Aria2"
+msgstr "Aria2"
msgid "Aria2 Settings"
msgstr "Aria2 é
ç½®"
-msgid "General settings"
-msgstr "ä¸è¬è®¾ç½®"
-
-msgid "Files and Locations"
-msgstr "æ件åç®å½"
+msgid "Aria2 Status"
+msgstr "Aria2 ç¶æ"
-msgid "Enabled"
-msgstr "å¯ç¨"
+msgid ""
+"Aria2 is a multi-protocol & multi-source download utility, here you can "
+"configure the settings."
+msgstr "Aria2 æ¯ä¸ä¸ªæ¯æå¤åè®®å¤çº¿ç¨çä¸è½½å¨, æ¨å¯ä»¥å¨è¿é对å
¶è¿è¡é
ç½®ã"
-msgid "Task Settings"
-msgstr "ä»»å¡è®¾ç½®"
+msgid "Autosave session interval"
+msgstr "å®æ¶ä¿åä¼è¯é´é"
msgid "BitTorrent Settings"
-msgstr "BT设置"
+msgstr "BitTorrent 设置"
-msgid "Run daemon as user"
-msgstr "以æ¤ç¨æ·æéè¿è¡"
+msgid "BitTorrent listen port"
+msgstr "BitTorrent çå¬ç«¯å£"
-msgid "RPC port"
-msgstr "RPC端å£"
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éæ°æ®..."
-msgid "RPC authentication method"
-msgstr "RPC认è¯æ¹å¼"
+msgid "Config file directory"
+msgstr "é
ç½®æ件ç®å½"
-msgid "No Authentication"
-msgstr "æ 认è¯"
+msgid "Debug"
+msgstr "è°è¯"
-msgid "Username & Password"
-msgstr "ç¨æ·åä¸å¯ç "
+msgid "Default download directory"
+msgstr "é»è®¤ä¸è½½ç®å½"
-msgid "Token"
-msgstr "令ç"
+msgid "Disk cache"
+msgstr "ç£çç¼å"
-msgid "RPC username"
-msgstr "RPCç¨æ·å"
+msgid "Enable log"
+msgstr "å¯ç¨æ¥å¿"
-msgid "RPC password"
-msgstr "RPCå¯ç "
+msgid "Enabled"
+msgstr "å¯ç¨"
-msgid "RPC Token"
-msgstr "RPC令ç"
+msgid "Error"
+msgstr "é误"
-msgid "Generate Randomly"
-msgstr "éæºçæ"
+msgid "Extra Settings"
+msgstr "éå é项"
-msgid "Enable log"
-msgstr "å¯ç¨æ¥å¿"
+msgid "Falloc"
+msgstr "å¿«é allocï¼Fallocï¼"
-msgid "Log file is in the config file dir."
-msgstr "æ¥å¿æ件å¨é
ç½®æ件ç®å½ä¸"
+msgid "Files and Locations"
+msgstr "æ件åç®å½"
-msgid "Log level"
-msgstr "æ¥å¿è®°å½ç级"
+msgid "Follow torrent"
+msgstr "èªå¨æ·»å ä¸è½½çç§å"
-msgid "Debug"
-msgstr "è°è¯"
+msgid "General Settings"
+msgstr ""
+
+msgid "Generate Randomly"
+msgstr "éæºçæ"
msgid "Info"
msgstr "ä¿¡æ¯"
-msgid "Notice"
-msgstr "注æ"
+msgid "List of additional Bt tracker"
+msgstr "éå Bt tracker å表"
-msgid "Warn"
-msgstr "è¦å"
+msgid "List of extra settings"
+msgstr "éå é项å表"
-msgid "Error"
-msgstr "é误"
+msgid "Log file is in the config file dir."
+msgstr "æ¥å¿æ件å¨é
ç½®æ件ç®å½ä¸"
-msgid "Config file directory"
-msgstr "é
ç½®æ件ç®å½"
+msgid "Log level"
+msgstr "æ¥å¿è®°å½ç级"
-msgid "Default download directory"
-msgstr "é»è®¤ä¸è½½ç®å½"
+msgid "Max concurrent downloads"
+msgstr "æ大åæ¶ä¸è½½ä»»å¡æ°"
-msgid "Disk cache"
-msgstr "ç£çç¼å"
+msgid "Max connection per server"
+msgstr "åæå¡å¨æ大è¿æ¥æ°"
-msgid "in bytes, You can append K or M."
-msgstr "åä½ B, ä½ å¯ä»¥å¨æ°ååè·ä¸ K æ M"
+msgid "Max number of peers per torrent"
+msgstr "å个ç§åæ大è¿æ¥æ°"
-msgid "Preallocation"
-msgstr "ç£çé¢åé
"
+msgid "Max number of split"
+msgstr "åæ件æ大线ç¨æ°"
-msgid "Off"
-msgstr "å
³é"
+msgid "Min split size"
+msgstr "æå°æ件åç大å°"
-msgid "Prealloc"
-msgstr ""
+msgid "No Authentication"
+msgstr "æ 认è¯"
-msgid "Trunc"
-msgstr ""
+msgid "Notice"
+msgstr "注æ"
-msgid "Falloc"
-msgstr ""
+msgid "Off"
+msgstr "å
³é"
-msgid "\"Falloc\" is not available in all cases."
-msgstr "\"Falloc\" 并ä¸æ¯å¨æææ
åµä¸é½å¯ç¨"
+msgid "Open WebUI-Aria2"
+msgstr "æå¼ WebUI-Aria2"
-msgid "Overall speed limit enabled"
-msgstr "å¯ç¨å
¨å±éé"
+msgid "Open YAAW"
+msgstr "æå¼ YAAW"
msgid "Overall download limit"
msgstr "å
¨å±ä¸è½½éé"
-msgid "in bytes/sec, You can append K or M."
-msgstr "åä½ B/s, ä½ å¯ä»¥å¨æ°ååè·ä¸ K æ M"
+msgid "Overall speed limit enabled"
+msgstr "å¯ç¨å
¨å±éé"
msgid "Overall upload limit"
msgstr "å
¨å±ä¸ä¼ éé"
-msgid "Per task speed limit enabled"
-msgstr "å¯ç¨åä»»å¡éé"
-
msgid "Per task download limit"
msgstr "åä»»å¡ä¸è½½éé"
+msgid "Per task speed limit enabled"
+msgstr "å¯ç¨åä»»å¡éé"
+
msgid "Per task upload limit"
msgstr "åä»»å¡ä¸ä¼ éé"
-msgid "Max concurrent downloads"
-msgstr "æ大åæ¶ä¸è½½ä»»å¡æ°"
+msgid "Prealloc"
+msgstr "é¢åé
"
-msgid "Max connection per server"
-msgstr "åæå¡å¨æ大è¿æ¥æ°"
+msgid "Preallocation"
+msgstr "ç£çé¢åé
"
-msgid "Min split size"
-msgstr "æå°æ件åç大å°"
+msgid "Prefix of peer ID"
+msgstr "Peer ID åç¼"
-msgid "Max number of split"
-msgstr "åæ件æ大线ç¨æ°"
+msgid "RPC Token"
+msgstr "RPC 令ç"
-msgid "Autosave session interval"
-msgstr "å®æ¶ä¿åä¼è¯é´é"
+msgid "RPC authentication method"
+msgstr "RPC 认è¯æ¹å¼"
-msgid "Sec"
-msgstr "ç§"
+msgid "RPC password"
+msgstr "RPC å¯ç "
-msgid "User agent value"
-msgstr "ç¨æ·ä»£ç(UA)"
+msgid "RPC port"
+msgstr "RPC 端å£"
-msgid "DHT enabled"
-msgstr "å¯ç¨DHT "
+msgid "RPC username"
+msgstr "RPC ç¨æ·å"
-msgid "LPD enabled"
-msgstr "å¯ç¨LPD "
+msgid "Run daemon as user"
+msgstr "以æ¤ç¨æ·æéè¿è¡"
-msgid "Follow torrent"
-msgstr "èªå¨æ·»å ä¸è½½çç§å"
+msgid "Sec"
+msgstr "ç§"
-msgid "BitTorrent listen port"
-msgstr "BTçå¬ç«¯å£"
+msgid "Task Settings"
+msgstr "ä»»å¡è®¾ç½®"
-msgid "Max number of peers per torrent"
-msgstr "å个ç§åæ大è¿æ¥æ°"
+msgid "The Aria2 service is not running."
+msgstr "Aria2 æªè¿è¡"
-msgid "Additional Bt tracker enabled"
-msgstr "æ·»å é¢å¤çTracker"
+msgid "The Aria2 service is running."
+msgstr "Aria2 æ£å¨è¿è¡"
-msgid "List of additional Bt tracker"
-msgstr "éå Trackerå表"
+msgid "Token"
+msgstr "令ç"
-msgid "Prefix of peer ID"
-msgstr "Peer IDåç¼"
+msgid "Trunc"
+msgstr ""
-msgid "Extra Settings"
-msgstr "éå é项"
+msgid "Use WebSocket"
+msgstr "ä½¿ç¨ WebSocket"
-msgid "List of extra settings"
-msgstr "éå é项å表"
+msgid "User agent value"
+msgstr "ç¨æ·ä»£çï¼UAï¼"
+
+msgid "Username & Password"
+msgstr "ç¨æ·åä¸å¯ç "
msgid "View Json-RPC URL"
msgstr "æ¥ç Json-RPC URL"
-msgid "Use WebSocket"
-msgstr "使ç¨WebSocket"
+msgid "Warn"
+msgstr "è¦å"
+
+msgid "in bytes, You can append K or M."
+msgstr "åä½ B, æ¨å¯ä»¥å¨æ°ååè·ä¸ K æ Mã"
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "åä½ B/s, æ¨å¯ä»¥å¨æ°ååè·ä¸ K æ Mã"
+
+#~ msgid "General settings"
+#~ msgstr "åºæ¬è®¾ç½®"
diff --git a/applications/luci-app-aria2/po/zh-tw/aria2.po b/applications/luci-app-aria2/po/zh-tw/aria2.po
new file mode 100644
index 0000000000..ebeeeeef15
--- /dev/null
+++ b/applications/luci-app-aria2/po/zh-tw/aria2.po
@@ -0,0 +1,218 @@
+#
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-28 16:10+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr "\"Falloc\" 並ä¸æ¯å¨æææ
æ³ä¸é½å¯ç¨"
+
+msgid "DHT enabled"
+msgstr "åç¨DHT "
+
+msgid "LPD enabled"
+msgstr "åç¨LPD "
+
+msgid "Additional Bt tracker enabled"
+msgstr "æ°å¢é¡å¤çTracker"
+
+msgid "Aria2"
+msgstr "Aria2"
+
+msgid "Aria2 Settings"
+msgstr "Aria2 é
ç½®"
+
+msgid "Aria2 Status"
+msgstr "Aria2 çæ
"
+
+msgid "General settings"
+msgstr "åºæ¬è¨å®"
+
+msgid "Files and Locations"
+msgstr "æªæ¡åç®é"
+
+msgid ""
+"Aria2 is a multi-protocol & multi-source download utility, here you can "
+"configure the settings."
+msgstr "Aria2 æ¯ä¸åæ¯æ´å¤åè°å¤å·è¡ç·çä¸è¼å¨, æ¨å¯ä»¥å¨é裡å°å
¶é²è¡é
ç½®ã"
+
+msgid "Autosave session interval"
+msgstr "å®æå²åæ話éé"
+
+msgid "BitTorrent Settings"
+msgstr "BitTorrent è¨å®"
+
+msgid "BitTorrent listen port"
+msgstr "BitTorrent ç£è½å "
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éè³æ..."
+
+msgid "Config file directory"
+msgstr "é
ç½®æªæ¡ç®é"
+
+msgid "Debug"
+msgstr "é¤é¯"
+
+msgid "Default download directory"
+msgstr "é è¨ä¸è¼ç®é"
+
+msgid "Disk cache"
+msgstr "ç£ç¢å¿«å"
+
+msgid "Enable log"
+msgstr "åç¨æ¥èª"
+
+msgid "Enabled"
+msgstr "åç¨"
+
+msgid "Error"
+msgstr "é¯èª¤"
+
+msgid "Extra Settings"
+msgstr "éå é¸é
"
+
+msgid "Falloc"
+msgstr "å¿«é allocï¼Fallocï¼"
+
+msgid "Follow torrent"
+msgstr "èªåæ°å¢ä¸è¼ç種å"
+
+msgid "Generate Randomly"
+msgstr "é¨æ©çæ"
+
+msgid "Info"
+msgstr "è³è¨"
+
+msgid "List of additional Bt tracker"
+msgstr "éå Bt tracker å表"
+
+msgid "List of extra settings"
+msgstr "éå é¸é
å表"
+
+msgid "Log file is in the config file dir."
+msgstr "æ¥èªæªæ¡å¨é
ç½®æªæ¡ç®éä¸"
+
+msgid "Log level"
+msgstr "æ¥èªè¨éçç´"
+
+msgid "Max concurrent downloads"
+msgstr "æ大åæä¸è¼ä»»åæ¸"
+
+msgid "Max connection per server"
+msgstr "å®ä¼ºæå¨æ大é£ç·æ¸"
+
+msgid "Max number of peers per torrent"
+msgstr "å®å種åæ大é£ç·æ¸"
+
+msgid "Max number of split"
+msgstr "å®æªæ¡æ大å·è¡ç·æ¸"
+
+msgid "Min split size"
+msgstr "æå°æªæ¡åç大å°"
+
+msgid "No Authentication"
+msgstr "ç¡èªè"
+
+msgid "Notice"
+msgstr "注æ"
+
+msgid "Off"
+msgstr "éé"
+
+msgid "Open WebUI-Aria2"
+msgstr "éå WebUI-Aria2"
+
+msgid "Open YAAW"
+msgstr "éå YAAW"
+
+msgid "Overall download limit"
+msgstr "å
¨åæ§ä¸è¼éé"
+
+msgid "Overall speed limit enabled"
+msgstr "åç¨å
¨ä¾·éé"
+
+msgid "Overall upload limit"
+msgstr "å
¨åæ§ä¸å³éé"
+
+msgid "Per task download limit"
+msgstr "å®ä»»åä¸è¼éé"
+
+msgid "Per task speed limit enabled"
+msgstr "åç¨å®ä»»åéé"
+
+msgid "Per task upload limit"
+msgstr "å®ä»»åä¸å³éé"
+
+msgid "Prealloc"
+msgstr "é åé
"
+
+msgid "Preallocation"
+msgstr "ç£ç¢é åé
"
+
+msgid "Prefix of peer ID"
+msgstr "Peer ID åé¦"
+
+msgid "RPC Token"
+msgstr "RPC 令ç"
+
+msgid "RPC authentication method"
+msgstr "RPC èªèæ¹å¼"
+
+msgid "RPC password"
+msgstr "RPC å¯ç¢¼"
+
+msgid "RPC port"
+msgstr "RPC å "
+
+msgid "RPC username"
+msgstr "RPC 使ç¨è
å稱"
+
+msgid "Run daemon as user"
+msgstr "以æ¤ä½¿ç¨è
許å¯æ¬å·è¡"
+
+msgid "Sec"
+msgstr "ç§"
+
+msgid "Task Settings"
+msgstr "ä»»åè¨å®"
+
+msgid "The Aria2 service is not running."
+msgstr "Aria2 æªå·è¡"
+
+msgid "The Aria2 service is running."
+msgstr "Aria2 æ£å¨å·è¡"
+
+msgid "Token"
+msgstr "令ç"
+
+msgid "Trunc"
+msgstr ""
+
+msgid "Use WebSocket"
+msgstr "ä½¿ç¨ WebSocket"
+
+msgid "User agent value"
+msgstr "使ç¨è
代çï¼UAï¼"
+
+msgid "Username & Password"
+msgstr "使ç¨è
å稱èå¯ç¢¼"
+
+msgid "View Json-RPC URL"
+msgstr "æª¢è¦ Json-RPC URL"
+
+msgid "Warn"
+msgstr "è¦å"
+
+msgid "in bytes, You can append K or M."
+msgstr "å®ä½ B, æ¨å¯ä»¥å¨æ¸åå¾è·ä¸ K æ Mã"
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "å®ä½ B/s, æ¨å¯ä»¥å¨æ¸åå¾è·ä¸ K æ Mã"
diff --git a/applications/luci-app-attendedsysupgrade/Makefile b/applications/luci-app-attendedsysupgrade/Makefile
new file mode 100644
index 0000000000..8d7a6163de
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/Makefile
@@ -0,0 +1,11 @@
+# See /LICENSE for more information.
+# This is free software, licensed under the GNU General Public License v2.
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for attended sysupgrades
+LUCI_DEPENDS:=+luci-base +uhttpd-mod-ubus +rpcd-mod-attendedsysupgrade
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-attendedsysupgrade/luasrc/controller/attendedsysupgrade.lua b/applications/luci-app-attendedsysupgrade/luasrc/controller/attendedsysupgrade.lua
new file mode 100644
index 0000000000..1bd050af66
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/luasrc/controller/attendedsysupgrade.lua
@@ -0,0 +1,5 @@
+module("luci.controller.attendedsysupgrade", package.seeall)
+
+function index()
+ entry({"admin", "system", "attended_sysupgrade"}, template("attendedsysupgrade"), _("Attended Sysupgrade"), 1)
+end
diff --git a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm
new file mode 100644
index 0000000000..e1f715daaa
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm
@@ -0,0 +1,422 @@
+<%
+-- all lua code provided by https://github.com/jow-/
+-- thank you very much!
+
+ function apply_acls(filename, session)
+ local json = require "luci.jsonc"
+ local util = require "luci.util"
+ local fs = require "nixio.fs"
+
+ local grants = { }
+
+ local acl = json.parse(fs.readfile(filename))
+ if type(acl) ~= "table" then
+ return
+ end
+
+ local group, perms
+ for group, perms in pairs(acl) do
+ local perm, scopes
+ for perm, scopes in pairs(perms) do
+ if type(scopes) == "table" then
+ local scope, objects
+ for scope, objects in pairs(scopes) do
+ if type(objects) == "table" then
+ if not grants[scope] then
+ grants[scope] = { }
+ end
+
+ if next(objects) == 1 then
+ local _, object
+ for _, object in ipairs(objects) do
+ if not grants[scope][object] then
+ grants[scope][object] = { }
+ end
+ table.insert(grants[scope][object], perm)
+ end
+ else
+ local object, funcs
+ for object, funcs in pairs(objects) do
+ if type(funcs) == "table" then
+ local _, func
+ for _, func in ipairs(funcs) do
+ if not grants[scope][object] then
+ grants[scope][object] = { }
+ end
+ table.insert(grants[scope][object], func)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
+ local _, scope, object, func
+ for scope, _ in pairs(grants) do
+ local objects = { }
+ for object, _ in pairs(_) do
+ for _, func in ipairs(_) do
+ table.insert(objects, { object, func })
+ end
+ end
+
+ util.ubus("session", "grant", {
+ ubus_rpc_session = session,
+ scope = scope, objects = objects
+ })
+ end
+ end
+
+ apply_acls("/usr/share/rpcd/acl.d/attendedsysupgrade.json", luci.dispatcher.context.authsession)
+ apply_acls("/usr/share/rpcd/acl.d/packagelist.json", luci.dispatcher.context.authsession)
+%>
+<%+header%>
+<%:Attended Sysupgrade%>
+
+ Easily search and install new releases and package upgrades. Sysupgrade images are created on demand based on locally installed packages.
+
+
+
+
+
+
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade b/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade
new file mode 100755
index 0000000000..832744f7d8
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+rm -rf /tmp/luci-indexcache /tmp/luci-modulecache/
+/etc/init.d/uhttpd restart
+
+return 0
diff --git a/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json b/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json
new file mode 100644
index 0000000000..85d6e94a28
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json
@@ -0,0 +1,26 @@
+{
+ "attendedsysupgrade": {
+ "description": "attended sysupgrade via rpcd and luci",
+ "read": {
+ "ubus": {
+ "attendedsysupgrade": [
+ "sysupgrade"
+ ],
+ "system": [
+ "board"
+ ],
+ "uci": [
+ "get"
+ ]
+ },
+ "uci": [
+ "*"
+ ]
+ },
+ "write": {
+ "cgi-io": [
+ "upload"
+ ]
+ }
+ }
+}
diff --git a/applications/luci-app-bcp38/Makefile b/applications/luci-app-bcp38/Makefile
new file mode 100644
index 0000000000..9ab5a6701d
--- /dev/null
+++ b/applications/luci-app-bcp38/Makefile
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=BCP38 LuCI interface
+LUCI_DEPENDS:=+luci-mod-admin-full +bcp38
+
+PKG_MAINTAINER:=Toke Høiland-Jørgensen
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-bcp38/luasrc/controller/bcp38.lua b/applications/luci-app-bcp38/luasrc/controller/bcp38.lua
new file mode 100644
index 0000000000..7ea22835d6
--- /dev/null
+++ b/applications/luci-app-bcp38/luasrc/controller/bcp38.lua
@@ -0,0 +1,7 @@
+module("luci.controller.bcp38", package.seeall)
+
+function index()
+ entry({"admin", "network", "firewall", "bcp38"},
+ cbi("bcp38"),
+ _("BCP38"), 50).dependent = false
+end
diff --git a/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua b/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua
new file mode 100644
index 0000000000..632074a56f
--- /dev/null
+++ b/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua
@@ -0,0 +1,60 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2014 Toke Høiland-Jørgensen
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+local wa = require "luci.tools.webadmin"
+local net = require "luci.model.network".init()
+local ifaces = net:get_interfaces()
+
+m = Map("bcp38", translate("BCP38"),
+ translate("This function blocks packets with private address destinations " ..
+ "from going out onto the internet as per " ..
+ "BCP 38 . " ..
+ "For IPv6, only source specific default routes are installed, so " ..
+ "no BCP38 firewall routes are needed."))
+
+s = m:section(TypedSection, "bcp38", translate("BCP38 config"))
+s.anonymous = true
+-- BASIC
+e = s:option(Flag, "enabled", translate("Enable"))
+e.rmempty = false
+
+a = s:option(Flag, "detect_upstream", translate("Auto-detect upstream IP"),
+ translate("Attempt to automatically detect if the upstream IP " ..
+ "will be blocked by the configuration, and add an exception if it will. " ..
+ "If this does not work correctly, you can add exceptions manually below."))
+a.rmempty = false
+
+n = s:option(ListValue, "interface", translate("Interface name"), translate("Interface to apply the blocking to " ..
+ "(should be the upstream WAN interface)."))
+for _, iface in ipairs(ifaces) do
+ if iface:is_up() then
+ n:value(iface:name())
+ end
+end
+n.rmempty = false
+
+ma = s:option(DynamicList, "match",
+ translate("Blocked IP ranges"))
+
+ma.datatype = "ip4addr"
+
+nm = s:option(DynamicList, "nomatch",
+ translate("Allowed IP ranges"), translate("Takes precedence over blocked ranges. "..
+ "Use to whitelist your upstream network if you're behind a double NAT " ..
+ "and the auto-detection doesn't work."))
+
+nm.datatype = "ip4addr"
+
+
+return m
diff --git a/applications/luci-app-bcp38/po/sv/bcp38.po b/applications/luci-app-bcp38/po/sv/bcp38.po
new file mode 100644
index 0000000000..7293278f26
--- /dev/null
+++ b/applications/luci-app-bcp38/po/sv/bcp38.po
@@ -0,0 +1,45 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Allowed IP ranges"
+msgstr ""
+
+msgid ""
+"Attempt to automatically detect if the upstream IP will be blocked by the "
+"configuration, and add an exception if it will. If this does not work "
+"correctly, you can add exceptions manually below."
+msgstr ""
+
+msgid "Auto-detect upstream IP"
+msgstr "Upptäck automatiskt IP från uppströms"
+
+msgid "BCP38"
+msgstr "BCP38"
+
+msgid "BCP38 config"
+msgstr ""
+
+msgid "Blocked IP ranges"
+msgstr ""
+
+msgid "Enable"
+msgstr "Aktivera"
+
+msgid "Interface name"
+msgstr "Namn på gränssnittet"
+
+msgid ""
+"Interface to apply the blocking to (should be the upstream WAN interface)."
+msgstr ""
+
+msgid ""
+"Takes precedence over blocked ranges. Use to whitelist your upstream network "
+"if you're behind a double NAT and the auto-detection doesn't work."
+msgstr ""
+
+msgid ""
+"This function blocks packets with private address destinations from going "
+"out onto the internet as per BCP 38 . For IPv6, only source specific default routes are "
+"installed, so no BCP38 firewall routes are needed."
+msgstr ""
diff --git a/applications/luci-app-bcp38/po/templates/bcp38.pot b/applications/luci-app-bcp38/po/templates/bcp38.pot
new file mode 100644
index 0000000000..1210784d23
--- /dev/null
+++ b/applications/luci-app-bcp38/po/templates/bcp38.pot
@@ -0,0 +1,45 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Allowed IP ranges"
+msgstr ""
+
+msgid ""
+"Attempt to automatically detect if the upstream IP will be blocked by the "
+"configuration, and add an exception if it will. If this does not work "
+"correctly, you can add exceptions manually below."
+msgstr ""
+
+msgid "Auto-detect upstream IP"
+msgstr ""
+
+msgid "BCP38"
+msgstr ""
+
+msgid "BCP38 config"
+msgstr ""
+
+msgid "Blocked IP ranges"
+msgstr ""
+
+msgid "Enable"
+msgstr ""
+
+msgid "Interface name"
+msgstr ""
+
+msgid ""
+"Interface to apply the blocking to (should be the upstream WAN interface)."
+msgstr ""
+
+msgid ""
+"Takes precedence over blocked ranges. Use to whitelist your upstream network "
+"if you're behind a double NAT and the auto-detection doesn't work."
+msgstr ""
+
+msgid ""
+"This function blocks packets with private address destinations from going "
+"out onto the internet as per BCP 38 . For IPv6, only source specific default routes are "
+"installed, so no BCP38 firewall routes are needed."
+msgstr ""
diff --git a/applications/luci-app-bcp38/po/zh-cn/bcp38.po b/applications/luci-app-bcp38/po/zh-cn/bcp38.po
new file mode 100644
index 0000000000..45eff986b2
--- /dev/null
+++ b/applications/luci-app-bcp38/po/zh-cn/bcp38.po
@@ -0,0 +1,52 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Allowed IP ranges"
+msgstr "å
许ç IP èå´"
+
+msgid ""
+"Attempt to automatically detect if the upstream IP will be blocked by the "
+"configuration, and add an exception if it will. If this does not work "
+"correctly, you can add exceptions manually below."
+msgstr ""
+"èªå¨æ£æµä¸æ¸¸ IP æ¯å¦ä¼è¢«å½åé
ç½®æé»æ¢ï¼å½æ£æµå°ä¼è¢«é»æ¢æ¶å°ä¼æ·»å ä¾å¤ãå¦æ"
+"èªå¨æ£æµæ æ³æ£å¸¸å·¥ä½ï¼æ¨å¯ä»¥å¨ä¸é¢æå¨æ·»å ä¾å¤ã"
+
+msgid "Auto-detect upstream IP"
+msgstr "èªå¨æ£æµä¸æ¸¸ IP"
+
+msgid "BCP38"
+msgstr "BCP38"
+
+msgid "BCP38 config"
+msgstr "BCP38 é
ç½®"
+
+msgid "Blocked IP ranges"
+msgstr "é»æ¢ç IP èå´"
+
+msgid "Enable"
+msgstr "å¯ç¨"
+
+msgid "Interface name"
+msgstr "æ¥å£å称"
+
+msgid ""
+"Interface to apply the blocking to (should be the upstream WAN interface)."
+msgstr "åºç¨âé»æ¢è§åâçæ¥å£ï¼åºå½ä¸ºä¸æ¸¸ WAN æ¥å£ï¼ã"
+
+msgid ""
+"Takes precedence over blocked ranges. Use to whitelist your upstream network "
+"if you're behind a double NAT and the auto-detection doesn't work."
+msgstr ""
+"è¿éçè§åä¼å
äºé»æ¢è§å被使ç¨ãå¦ææ¨å¨åé NAT ä¹å并ä¸èªå¨æ£æµåè½ä¸èµ·ä½"
+"ç¨ï¼è¯·å¨è¿éæ·»å æ¨ä¸æ¸¸ç½ç»çç½ååã"
+
+msgid ""
+"This function blocks packets with private address destinations from going "
+"out onto the internet as per BCP 38 . For IPv6, only source specific default routes are "
+"installed, so no BCP38 firewall routes are needed."
+msgstr ""
+"æ¤åè½å¯ä»¥é»æ¢å
·æç§æç®æ å°åçæ°æ®å
éè¿ BCP 38 åéå°äºèç½ä¸ãå¯¹äº IPv6ï¼ä»
å®è£
æºç¹å®çé»è®¤è·¯ç±ï¼å "
+"æ¤ä¸éè¦ BCP38 é²ç«å¢è·¯ç±ã"
diff --git a/applications/luci-app-bcp38/po/zh-tw/bcp38.po b/applications/luci-app-bcp38/po/zh-tw/bcp38.po
new file mode 100644
index 0000000000..7900cb37f0
--- /dev/null
+++ b/applications/luci-app-bcp38/po/zh-tw/bcp38.po
@@ -0,0 +1,52 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Allowed IP ranges"
+msgstr "å
許ç IP ç¯å"
+
+msgid ""
+"Attempt to automatically detect if the upstream IP will be blocked by the "
+"configuration, and add an exception if it will. If this does not work "
+"correctly, you can add exceptions manually below."
+msgstr ""
+"èªå檢測ä¸æ¸¸ IP æ¯å¦æ被ç¶åé
ç½®æé»æ¢ï¼ç¶æª¢æ¸¬å°æ被é»æ¢æå°ææ°å¢ä¾å¤ãå¦æ"
+"èªå檢測ç¡æ³æ£å¸¸å·¥ä½ï¼æ¨å¯ä»¥å¨ä¸é¢æåæ°å¢ä¾å¤ã"
+
+msgid "Auto-detect upstream IP"
+msgstr "èªå檢測ä¸æ¸¸ IP"
+
+msgid "BCP38"
+msgstr "BCP38"
+
+msgid "BCP38 config"
+msgstr "BCP38 é
ç½®"
+
+msgid "Blocked IP ranges"
+msgstr "é»æ¢ç IP ç¯å"
+
+msgid "Enable"
+msgstr "åç¨"
+
+msgid "Interface name"
+msgstr "ä»é¢å稱"
+
+msgid ""
+"Interface to apply the blocking to (should be the upstream WAN interface)."
+msgstr "æç¨âé»æ¢è¦åâçä»é¢ï¼æç¶çºä¸æ¸¸ WAN ä»é¢ï¼ã"
+
+msgid ""
+"Takes precedence over blocked ranges. Use to whitelist your upstream network "
+"if you're behind a double NAT and the auto-detection doesn't work."
+msgstr ""
+"é裡çè¦ååªå
æ¼é»æ¢è¦å被使ç¨ãå¦ææ¨å¨éé NAT ä¹å¾ä¸¦ä¸èªå檢測åè½ä¸èµ·ä½"
+"ç¨ï¼è«å¨é裡æ°å¢æ¨ä¸æ¸¸ç¶²è·¯çç½åå®ã"
+
+msgid ""
+"This function blocks packets with private address destinations from going "
+"out onto the internet as per BCP 38 . For IPv6, only source specific default routes are "
+"installed, so no BCP38 firewall routes are needed."
+msgstr ""
+"æ¤åè½å¯ä»¥é»æ¢å
·æç§æç®æ¨ä½åçè³æå
éé BCP 38 å³éå°ç¶²é網路ä¸ãå°æ¼ IPv6ï¼å
å®è£æºç¹å®çé è¨è·¯ç±ï¼å "
+"æ¤ä¸éè¦ BCP38 é²ç«çè·¯ç±ã"
diff --git a/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38 b/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38
new file mode 100755
index 0000000000..c204236e37
--- /dev/null
+++ b/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@bcp38[-1]
+ add ucitrack bcp38
+ add_list ucitrack.@bcp38[0].affects=firewall
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-clamav/Makefile b/applications/luci-app-clamav/Makefile
new file mode 100644
index 0000000000..f91e692af8
--- /dev/null
+++ b/applications/luci-app-clamav/Makefile
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=ClamAV LuCI interface
+LUCI_DEPENDS:=+luci-mod-admin-full +clamav
+
+PKG_MAINTAINER:=Marko Ratkaj
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-clamav/luasrc/controller/clamav.lua b/applications/luci-app-clamav/luasrc/controller/clamav.lua
new file mode 100644
index 0000000000..02f3bfc4b1
--- /dev/null
+++ b/applications/luci-app-clamav/luasrc/controller/clamav.lua
@@ -0,0 +1,22 @@
+--[[
+
+LuCI ClamAV module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+ Luka Perkov
+
+]]--
+
+module("luci.controller.clamav", package.seeall)
+
+function index()
+ entry({"admin", "services", "clamav"}, cbi("clamav"), _("ClamAV"))
+end
diff --git a/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua b/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua
new file mode 100644
index 0000000000..ff98139d4a
--- /dev/null
+++ b/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua
@@ -0,0 +1,178 @@
+--[[
+
+LuCI ClamAV module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+ Luka Perkov
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+require "ubus"
+
+m = Map("clamav", translate("ClamAV"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/clamav restart") end
+
+s = m:section(TypedSection, "clamav")
+s.anonymous = true
+s.addremove = false
+
+s:tab("tab_advanced", translate("Settings"))
+s:tab("tab_logs", translate("Log"))
+
+--------------- Settings --------------
+
+LogFileMaxSize = s:taboption("tab_advanced", Value, "LogFileMaxSize", translate("Max size of log file"))
+LogFileMaxSize:value("512K", translate("512K"))
+LogFileMaxSize:value("1M", translate("1M"))
+LogFileMaxSize:value("2M", translate("2M"))
+LogFileMaxSize.default = "1M"
+
+LogTime = s:taboption("tab_advanced", ListValue, "LogTime", translate("Log time with each message"))
+LogTime:value("no", translate("No"))
+LogTime:value("yes", translate("Yes"))
+LogTime.default = "no"
+
+LogVerbose = s:taboption("tab_advanced", ListValue, "LogVerbose", translate("Enable verbose logging"))
+LogVerbose:value("no", translate("No"))
+LogVerbose:value("yes", translate("Yes"))
+LogVerbose.default = "no"
+
+ExtendedDetectionInfo = s:taboption("tab_advanced", ListValue, "ExtendedDetectionInfo", translate("Log additional infection info"))
+ExtendedDetectionInfo:value("no", translate("No"))
+ExtendedDetectionInfo:value("yes", translate("Yes"))
+ExtendedDetectionInfo.default = "no"
+
+dummy3 = s:taboption("tab_advanced", DummyValue, "")
+dummy4 = s:taboption("tab_advanced", DummyValue, "")
+
+MaxDirectoryRecursion = s:taboption("tab_advanced", Value, "MaxDirectoryRecursion", translate("Max directory scan depth"))
+MaxDirectoryRecursion:value("15", translate("15"))
+MaxDirectoryRecursion:value("20", translate("20"))
+MaxDirectoryRecursion.default = "15"
+
+FollowDirectorySymlink = s:taboption("tab_advanced", ListValue, "FollowDirectorySymlink", translate("Follow directory symlinks"))
+FollowDirectorySymlink:value("no", translate("No"))
+FollowDirectorySymlink:value("yes", translate("Yes"))
+FollowDirectorySymlink.default = "no"
+
+FollowFileSymlinks = s:taboption("tab_advanced", ListValue, "FollowFileSymlinks", translate("Follow file symlinks"))
+FollowFileSymlinks:value("no", translate("No"))
+FollowFileSymlinks:value("yes", translate("Yes"))
+FollowFileSymlinks.default = "no"
+
+DetectPUA = s:taboption("tab_advanced", ListValue, "DetectPUA", translate("Detect possibly unwanted apps"))
+DetectPUA:value("no", translate("No"))
+DetectPUA:value("yes", translate("Yes"))
+DetectPUA.default = "no"
+
+ScanPE = s:taboption("tab_advanced", ListValue, "ScanPE", translate("Scan portable executables"))
+ScanPE:value("no", translate("No"))
+ScanPE:value("yes", translate("Yes"))
+ScanPE.default = "yes"
+
+ScanELF = s:taboption("tab_advanced", ListValue, "ScanELF", translate("Scan ELF files"))
+ScanELF:value("no", translate("No"))
+ScanELF:value("yes", translate("Yes"))
+ScanELF.default = "yes"
+
+DetectBrokenExecutables = s:taboption("tab_advanced", ListValue, "DetectBrokenExecutables", translate("Detect broken executables"))
+DetectBrokenExecutables:value("no", translate("No"))
+DetectBrokenExecutables:value("yes", translate("Yes"))
+DetectBrokenExecutables.default = "no"
+
+ScanOLE2 = s:taboption("tab_advanced", ListValue, "ScanOLE2", translate("Scan MS Office and .msi files"))
+ScanOLE2:value("no", translate("No"))
+ScanOLE2:value("yes", translate("Yes"))
+ScanOLE2.default = "yes"
+
+ScanPDF = s:taboption("tab_advanced", ListValue, "ScanPDF", translate("Scan pdf files"))
+ScanPDF:value("no", translate("No"))
+ScanPDF:value("yes", translate("Yes"))
+ScanPDF.default = "yes"
+
+ScanSWF = s:taboption("tab_advanced", ListValue, "ScanSWF", translate("Scan swf files"))
+ScanSWF:value("no", translate("No"))
+ScanSWF:value("yes", translate("Yes"))
+ScanSWF.default = "yes"
+
+ScanMail = s:taboption("tab_advanced", ListValue, "ScanMail", translate("Scan emails"))
+ScanMail:value("no", translate("No"))
+ScanMail:value("yes", translate("Yes"))
+ScanMail.default = "yes"
+
+ScanPartialMessages = s:taboption("tab_advanced", ListValue, "ScanPartialMessages", translate("Scan RFC1341 messages split over many emails"))
+ScanPartialMessages:value("no", translate("No"))
+ScanPartialMessages:value("yes", translate("Yes"))
+ScanPartialMessages.default = "no"
+
+ScanArchive = s:taboption("tab_advanced", ListValue, "ScanArchive", translate("Scan archives"))
+ScanArchive:value("no", translate("No"))
+ScanArchive:value("yes", translate("Yes"))
+ScanArchive.default = "yes"
+
+ArchiveBlockEncrypted = s:taboption("tab_advanced", ListValue, "ArchiveBlockEncrypted", translate("Block encrypted archives"))
+ArchiveBlockEncrypted:value("no", translate("No"))
+ArchiveBlockEncrypted:value("yes", translate("Yes"))
+ArchiveBlockEncrypted.default = "no"
+
+dummy5 = s:taboption("tab_advanced", DummyValue, "")
+dummy6 = s:taboption("tab_advanced", DummyValue, "")
+
+StreamMinPort = s:taboption("tab_advanced", Value, "StreamMinPort", translate("Port range, lowest port"))
+StreamMinPort.datatype = "portrange"
+StreamMinPort:value("1024",translate("1024"))
+StreamMinPort.default = "1024"
+
+StreamMaxPort = s:taboption("tab_advanced", Value, "StreamMaxPort", translate("Port range, highest port"))
+StreamMaxPort.datatype = "portrange"
+StreamMaxPort:value("2048",translate("2048"))
+StreamMaxPort.default = "2048"
+
+MaxThreads = s:taboption("tab_advanced", Value, "MaxThreads", translate("Max number of threads"))
+MaxThreads.datatype = "and(uinteger,min(1))"
+MaxThreads:value("10",translate("10"))
+MaxThreads:value("20",translate("20"))
+MaxThreads.default = "10"
+
+SelfCheck = s:taboption("tab_advanced", Value, "SelfCheck", translate("Database check every N sec"))
+SelfCheck.datatype = "and(uinteger,min(1))"
+SelfCheck:value("600",translate("600"))
+SelfCheck.default = "600"
+
+MaxFileSize = s:taboption("tab_advanced", Value, "MaxFileSize", translate("Max size of scanned file"))
+MaxFileSize.datatype = "string"
+MaxFileSize:value("150M",translate("150M"))
+MaxFileSize:value("50M",translate("50M"))
+MaxFileSize.default = "150M"
+
+------------------ Log --------------------
+
+clamav_logfile = s:taboption("tab_logs", TextValue, "lines", "")
+clamav_logfile.wrap = "off"
+clamav_logfile.rows = 25
+clamav_logfile.rmempty = true
+
+function clamav_logfile.cfgvalue()
+ local uci = require "luci.model.uci".cursor_state()
+ local file = "/tmp/clamd.log"
+ if file then
+ return fs.readfile(file) or ""
+ else
+ return ""
+ end
+end
+
+function clamav_logfile.write()
+end
+
+return m
diff --git a/applications/luci-app-clamav/po/ja/clamav.po b/applications/luci-app-clamav/po/ja/clamav.po
new file mode 100644
index 0000000000..c54c7b18aa
--- /dev/null
+++ b/applications/luci-app-clamav/po/ja/clamav.po
@@ -0,0 +1,130 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.12\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "10"
+msgstr "10"
+
+msgid "1024"
+msgstr "1024"
+
+msgid "15"
+msgstr "15"
+
+msgid "150M"
+msgstr "150M"
+
+msgid "1M"
+msgstr "1M"
+
+msgid "20"
+msgstr "20"
+
+msgid "2048"
+msgstr "2048"
+
+msgid "2M"
+msgstr "2M"
+
+msgid "50M"
+msgstr "50M"
+
+msgid "512K"
+msgstr "512K"
+
+msgid "600"
+msgstr "600"
+
+msgid "Block encrypted archives"
+msgstr "æå·åãããã¢ã¼ã«ã¤ãã®ãããã¯"
+
+msgid "ClamAV"
+msgstr "ClamAV"
+
+msgid "Database check every N sec"
+msgstr "ãã¼ã¿ãã¼ã¹ ãã§ãã¯ééï¼ç§ï¼"
+
+msgid "Detect broken executables"
+msgstr "ç ´æããå®è¡ãã¡ã¤ã«ã®æ¤åº"
+
+msgid "Detect possibly unwanted apps"
+msgstr "ä¸å¿
è¦ã¨æãããã¢ããªã±ã¼ã·ã§ã³ã®æ¤åº"
+
+msgid "Enable verbose logging"
+msgstr "詳細ãªãã°ã®æå¹å"
+
+msgid "Follow directory symlinks"
+msgstr "ãã£ã¬ã¯ã㪠ã·ã³ããªãã¯ãªã³ã¯ã«å¾ã"
+
+msgid "Follow file symlinks"
+msgstr "ãã¡ã¤ã« ã·ã³ããªãã¯ãªã³ã¯ã«å¾ã"
+
+msgid "Log"
+msgstr "ãã°"
+
+msgid "Log additional infection info"
+msgstr "追å ã®æææ
å ±ãã°"
+
+msgid "Log time with each message"
+msgstr "ãã° ã¡ãã»ã¼ã¸æ¯ã«æå»ãä»å "
+
+msgid "Max directory scan depth"
+msgstr "ãã£ã¬ã¯ã㪠ã¹ãã£ã³ã®æ大深度"
+
+msgid "Max number of threads"
+msgstr "ã¹ã¬ããã®æ大æ°"
+
+msgid "Max size of log file"
+msgstr "ãã°ã®æ大ãµã¤ãº"
+
+msgid "Max size of scanned file"
+msgstr ""
+
+msgid "No"
+msgstr "ããã"
+
+msgid "Port range, highest port"
+msgstr "ãã¼ãç¯å²ï¼ä¸éï¼"
+
+msgid "Port range, lowest port"
+msgstr "ãã¼ãç¯å²ï¼ä¸éï¼"
+
+msgid "Scan ELF files"
+msgstr "ELF ãã¡ã¤ã«ã®ã¹ãã£ã³"
+
+msgid "Scan MS Office and .msi files"
+msgstr "MS Office 㨠.msi ãã¡ã¤ã«ã®ã¹ãã£ã³"
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr ""
+
+msgid "Scan archives"
+msgstr "ã¢ã¼ã«ã¤ãã®ã¹ãã£ã³"
+
+msgid "Scan emails"
+msgstr "E-mailã®ã¹ãã£ã³"
+
+msgid "Scan pdf files"
+msgstr "PDF ãã¡ã¤ã«ã®ã¹ãã£ã³"
+
+msgid "Scan portable executables"
+msgstr "ãã¼ã¿ãã« å®è¡ãã¡ã¤ã«ã®ã¹ãã£ã³"
+
+msgid "Scan swf files"
+msgstr "SWF ãã¡ã¤ã«ã®ã¹ãã£ã³"
+
+msgid "Settings"
+msgstr "è¨å®"
+
+msgid "Yes"
+msgstr "ã¯ã"
diff --git a/applications/luci-app-clamav/po/sv/clamav.po b/applications/luci-app-clamav/po/sv/clamav.po
new file mode 100644
index 0000000000..a6c98377df
--- /dev/null
+++ b/applications/luci-app-clamav/po/sv/clamav.po
@@ -0,0 +1,119 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "10"
+msgstr "10"
+
+msgid "1024"
+msgstr "1024"
+
+msgid "15"
+msgstr "15"
+
+msgid "150M"
+msgstr "150M"
+
+msgid "1M"
+msgstr "1M"
+
+msgid "20"
+msgstr "20"
+
+msgid "2048"
+msgstr "2048"
+
+msgid "2M"
+msgstr "2M"
+
+msgid "50M"
+msgstr "50M"
+
+msgid "512K"
+msgstr "512K"
+
+msgid "600"
+msgstr "600"
+
+msgid "Block encrypted archives"
+msgstr "Blockera krypterade arkiv"
+
+msgid "ClamAV"
+msgstr "ClamAV"
+
+msgid "Database check every N sec"
+msgstr "Kontrollera databasen var N sek"
+
+msgid "Detect broken executables"
+msgstr "Upptäck trasiga exekverbara filer"
+
+msgid "Detect possibly unwanted apps"
+msgstr "Upptäck möjliga oönskade appar"
+
+msgid "Enable verbose logging"
+msgstr "Aktivera utförlig loggning"
+
+msgid "Follow directory symlinks"
+msgstr "Följ mappens symbollänkar"
+
+msgid "Follow file symlinks"
+msgstr "Följ symbollänkar för fil"
+
+msgid "Log"
+msgstr "Logg"
+
+msgid "Log additional infection info"
+msgstr "Logga ytterligare information om infektionen"
+
+msgid "Log time with each message"
+msgstr "Loggtid med varje meddelande"
+
+msgid "Max directory scan depth"
+msgstr ""
+
+msgid "Max number of threads"
+msgstr "Maximalt antalet trådar"
+
+msgid "Max size of log file"
+msgstr "Högsta storlek av loggfilen"
+
+msgid "Max size of scanned file"
+msgstr "Högsta storlek av skannad fil"
+
+msgid "No"
+msgstr "Nej"
+
+msgid "Port range, highest port"
+msgstr "Räckvidd för port, högsta port"
+
+msgid "Port range, lowest port"
+msgstr "Räckvidd för port, lägsta port"
+
+msgid "Scan ELF files"
+msgstr "Sök igenom ELF-filer"
+
+msgid "Scan MS Office and .msi files"
+msgstr "Sök igen MS Office och .msi-filer"
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr "Sök igen RFC1341-meddelanden uppdelade över många e-postmeddelanden"
+
+msgid "Scan archives"
+msgstr "Sök igenom arkiven"
+
+msgid "Scan emails"
+msgstr "Sök igenom e-postmeddelanden"
+
+msgid "Scan pdf files"
+msgstr "Sök igenom pdf-filer"
+
+msgid "Scan portable executables"
+msgstr "Sök igenom bärbara exekverbara filer"
+
+msgid "Scan swf files"
+msgstr "Sök igenom swf-filer"
+
+msgid "Settings"
+msgstr "Inställningar"
+
+msgid "Yes"
+msgstr "Ja"
diff --git a/applications/luci-app-clamav/po/templates/clamav.pot b/applications/luci-app-clamav/po/templates/clamav.pot
new file mode 100644
index 0000000000..768f73093a
--- /dev/null
+++ b/applications/luci-app-clamav/po/templates/clamav.pot
@@ -0,0 +1,119 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "10"
+msgstr ""
+
+msgid "1024"
+msgstr ""
+
+msgid "15"
+msgstr ""
+
+msgid "150M"
+msgstr ""
+
+msgid "1M"
+msgstr ""
+
+msgid "20"
+msgstr ""
+
+msgid "2048"
+msgstr ""
+
+msgid "2M"
+msgstr ""
+
+msgid "50M"
+msgstr ""
+
+msgid "512K"
+msgstr ""
+
+msgid "600"
+msgstr ""
+
+msgid "Block encrypted archives"
+msgstr ""
+
+msgid "ClamAV"
+msgstr ""
+
+msgid "Database check every N sec"
+msgstr ""
+
+msgid "Detect broken executables"
+msgstr ""
+
+msgid "Detect possibly unwanted apps"
+msgstr ""
+
+msgid "Enable verbose logging"
+msgstr ""
+
+msgid "Follow directory symlinks"
+msgstr ""
+
+msgid "Follow file symlinks"
+msgstr ""
+
+msgid "Log"
+msgstr ""
+
+msgid "Log additional infection info"
+msgstr ""
+
+msgid "Log time with each message"
+msgstr ""
+
+msgid "Max directory scan depth"
+msgstr ""
+
+msgid "Max number of threads"
+msgstr ""
+
+msgid "Max size of log file"
+msgstr ""
+
+msgid "Max size of scanned file"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "Port range, highest port"
+msgstr ""
+
+msgid "Port range, lowest port"
+msgstr ""
+
+msgid "Scan ELF files"
+msgstr ""
+
+msgid "Scan MS Office and .msi files"
+msgstr ""
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr ""
+
+msgid "Scan archives"
+msgstr ""
+
+msgid "Scan emails"
+msgstr ""
+
+msgid "Scan pdf files"
+msgstr ""
+
+msgid "Scan portable executables"
+msgstr ""
+
+msgid "Scan swf files"
+msgstr ""
+
+msgid "Settings"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
diff --git a/applications/luci-app-clamav/po/zh-cn/clamav.po b/applications/luci-app-clamav/po/zh-cn/clamav.po
new file mode 100644
index 0000000000..6a2c5dfd54
--- /dev/null
+++ b/applications/luci-app-clamav/po/zh-cn/clamav.po
@@ -0,0 +1,131 @@
+# liushuyu , 2017.
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-04-15 21:37-0600\n"
+"Language-Team: Chinese \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.1\n"
+"Last-Translator: liushuyu \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: zh_CN\n"
+
+msgid "10"
+msgstr "10"
+
+msgid "1024"
+msgstr "1024"
+
+msgid "15"
+msgstr "15"
+
+msgid "150M"
+msgstr "150M"
+
+msgid "1M"
+msgstr "1M"
+
+msgid "20"
+msgstr "20"
+
+msgid "2048"
+msgstr "2048"
+
+msgid "2M"
+msgstr "2M"
+
+msgid "50M"
+msgstr "50M"
+
+msgid "512K"
+msgstr "512K"
+
+msgid "600"
+msgstr "600"
+
+msgid "Block encrypted archives"
+msgstr "æ¦æªå å¯çå½æ¡£æ件"
+
+msgid "ClamAV"
+msgstr "ClamAV"
+
+msgid "Database check every N sec"
+msgstr "æ¯ N ç§æ£æµä¸æ¬¡æ°æ®åº"
+
+msgid "Detect broken executables"
+msgstr "æ£æµç ´æçå¯æ§è¡æ件"
+
+msgid "Detect possibly unwanted apps"
+msgstr "æ£æµä¸å欢è¿ç软件"
+
+msgid "Enable verbose logging"
+msgstr "å¯ç¨è¯¦ç»æ¥å¿è¾åº"
+
+msgid "Follow directory symlinks"
+msgstr "è·éç®å½ç¬¦å·é¾æ¥"
+
+msgid "Follow file symlinks"
+msgstr "è·éæ件符å·é¾æ¥"
+
+msgid "Log"
+msgstr "æ¥å¿"
+
+msgid "Log additional infection info"
+msgstr "è®°å½è¯¦ç»çææä¿¡æ¯"
+
+msgid "Log time with each message"
+msgstr "è®°å½æ¶æ¯æ¶é´æ³"
+
+msgid "Max directory scan depth"
+msgstr "æ大æ«æ深度"
+
+msgid "Max number of threads"
+msgstr "æ大线ç¨æ°"
+
+msgid "Max size of log file"
+msgstr "æ大æ¥å¿å¤§å°"
+
+msgid "Max size of scanned file"
+msgstr "æ大å¯æ«æçæ件大å°"
+
+msgid "No"
+msgstr "å¦"
+
+msgid "Port range, highest port"
+msgstr "端å£èå´ï¼æ大端å£"
+
+msgid "Port range, lowest port"
+msgstr "端å£èå´ï¼æå°ç«¯å£"
+
+msgid "Scan ELF files"
+msgstr "æ«æ ELF æ件"
+
+msgid "Scan MS Office and .msi files"
+msgstr "æ«æ MS Office ææ¡£å .msi å®è£
å
æ件"
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr "æ«æ符å RFC1341 é®ä»¶å离è§èçé®ä»¶"
+
+msgid "Scan archives"
+msgstr "æ«æå½æ¡£æ件"
+
+msgid "Scan emails"
+msgstr "æ«æçµåé®ä»¶"
+
+msgid "Scan pdf files"
+msgstr "æ«æ PDF æ件"
+
+msgid "Scan portable executables"
+msgstr "æ«æ PE (Windows) å¯æ§è¡æ件"
+
+msgid "Scan swf files"
+msgstr "æ«æ SWF æ件"
+
+msgid "Settings"
+msgstr "设置"
+
+msgid "Yes"
+msgstr "æ¯"
diff --git a/applications/luci-app-commands/Makefile b/applications/luci-app-commands/Makefile
index dc5d0ca849..f41d6e2d42 100644
--- a/applications/luci-app-commands/Makefile
+++ b/applications/luci-app-commands/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Shell Command Module
LUCI_DEPENDS:=
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-commands/po/pt-br/commands.po b/applications/luci-app-commands/po/pt-br/commands.po
index f6bee73c91..4d04bffbc1 100644
--- a/applications/luci-app-commands/po/pt-br/commands.po
+++ b/applications/luci-app-commands/po/pt-br/commands.po
@@ -1,15 +1,16 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-15 22:02+0200\n"
-"Last-Translator: Luiz Angelo \n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-20 17:39-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
msgid "A short textual description of the configured command"
msgstr "Uma pequena descrição textual do comando configurado"
@@ -40,10 +41,10 @@ msgid "Command"
msgstr "Comando"
msgid "Command executed successfully."
-msgstr ""
+msgstr "O comando executou com sucesso."
msgid "Command exited with status code"
-msgstr ""
+msgstr "O comando encerrou com um estado de erro"
msgid "Command failed"
msgstr "O comando falhou"
@@ -76,7 +77,7 @@ msgid "Download"
msgstr "Baixar"
msgid "Download execution result"
-msgstr ""
+msgstr "Baixar os resultados da execução"
msgid "Failed to execute command!"
msgstr "Falha ao executar comando!"
@@ -88,7 +89,7 @@ msgid "Loading"
msgstr "Carregando"
msgid "Or display result"
-msgstr ""
+msgstr "Ou mostre o resultado"
msgid "Public access"
msgstr "Acesso público"
@@ -97,10 +98,10 @@ msgid "Run"
msgstr "Executar"
msgid "Standard Error"
-msgstr ""
+msgstr "SaÃda de Erro"
msgid "Standard Output"
-msgstr ""
+msgstr "SaÃda Padrão"
msgid ""
"This page allows you to configure custom shell commands which can be easily "
diff --git a/applications/luci-app-commands/po/sv/commands.po b/applications/luci-app-commands/po/sv/commands.po
index 5a4c255e4a..a944fdb63d 100644
--- a/applications/luci-app-commands/po/sv/commands.po
+++ b/applications/luci-app-commands/po/sv/commands.po
@@ -10,98 +10,102 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "A short textual description of the configured command"
-msgstr ""
+msgstr "En kort textuell beskrivning av det inställda kommandot"
msgid ""
"Allow executing the command and downloading its output without prior "
"authentication"
msgstr ""
+"Tillåt att kommandot kan köras och ladda ner dess utmatning utan föregående "
+"autentisering"
msgid "Allow the user to provide additional command line arguments"
-msgstr ""
+msgstr "Tillåt användaren att tillge extra kommandoradsargument"
msgid "Arguments:"
-msgstr ""
+msgstr "Argument:"
msgid "Binary data not displayed, download instead."
-msgstr ""
+msgstr "Binärdatan visades inte, ladda ner istället."
msgid "Code:"
-msgstr ""
+msgstr "Kod:"
msgid "Collecting data..."
-msgstr ""
+msgstr "Samlar in data..."
msgid "Command"
-msgstr ""
+msgstr "Kommando"
msgid "Command executed successfully."
-msgstr ""
+msgstr "Kommandot utfördes korrekt"
msgid "Command exited with status code"
-msgstr ""
+msgstr "Kommandot avslutade med statuskod"
msgid "Command failed"
-msgstr ""
+msgstr "Kommandot misslyckades"
msgid "Command line to execute"
-msgstr ""
+msgstr "Kommandorad att exekvera"
msgid "Command successful"
-msgstr ""
+msgstr "Kommandot lyckades"
msgid "Command:"
-msgstr ""
+msgstr "Kommando:"
msgid "Configure"
-msgstr ""
+msgstr "Ställ in"
msgid "Custom Commands"
-msgstr ""
+msgstr "Anpassade kommandon"
msgid "Custom arguments"
-msgstr ""
+msgstr "Anpassade argument"
msgid "Dashboard"
-msgstr ""
+msgstr "Instrumentpanel"
msgid "Description"
-msgstr ""
+msgstr "Beskrivning"
msgid "Download"
-msgstr ""
+msgstr "Ladda ner"
msgid "Download execution result"
-msgstr ""
+msgstr "Resultatet av nerladdningen"
msgid "Failed to execute command!"
-msgstr ""
+msgstr "Misslyckade med att köra kommando!"
msgid "Link"
-msgstr ""
+msgstr "Länk"
msgid "Loading"
-msgstr ""
+msgstr "Laddar"
msgid "Or display result"
-msgstr ""
+msgstr "Eller visa resultat"
msgid "Public access"
-msgstr ""
+msgstr "Publik tillgång"
msgid "Run"
-msgstr ""
+msgstr "Kör"
msgid "Standard Error"
-msgstr ""
+msgstr "Standardfel"
msgid "Standard Output"
-msgstr ""
+msgstr "Standardinmatning"
msgid ""
"This page allows you to configure custom shell commands which can be easily "
"invoked from the web interface."
msgstr ""
+"Den här sidan tillåter dig att ställa in anpassade skalkommandon som lättast "
+"kan åberopas från webbgränssnittet."
msgid "Waiting for command to complete..."
-msgstr ""
+msgstr "Väntar på att kommandot ska slutföras..."
diff --git a/applications/luci-app-commands/po/zh-tw/commands.po b/applications/luci-app-commands/po/zh-tw/commands.po
index f1f452518c..157c07695f 100644
--- a/applications/luci-app-commands/po/zh-tw/commands.po
+++ b/applications/luci-app-commands/po/zh-tw/commands.po
@@ -103,7 +103,7 @@ msgstr ""
msgid ""
"This page allows you to configure custom shell commands which can be easily "
"invoked from the web interface."
-msgstr "åªè¦å¯ä»¥å¾webä»è¼æ調ç¨, éé é¢å
è¨±ä½ èªå®shellæ令."
+msgstr "åªè¦å¯ä»¥å¾webä»è¼æ調ç¨, éé é¢å
許æ¨èªå®shellæ令."
msgid "Waiting for command to complete..."
msgstr "çå¾
å®æ´å½ä»¤ä¸..."
diff --git a/applications/luci-app-coovachilli/po/sv/coovachilli.po b/applications/luci-app-coovachilli/po/sv/coovachilli.po
index 8695ce5a75..751b9211bf 100644
--- a/applications/luci-app-coovachilli/po/sv/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/sv/coovachilli.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2014-04-28 06:16+0200\n"
-"Last-Translator: Umeaboy \n"
+"Last-Translator: Kristoffer Grundström \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
diff --git a/applications/luci-app-cshark/Makefile b/applications/luci-app-cshark/Makefile
new file mode 100644
index 0000000000..40b0e9fb7f
--- /dev/null
+++ b/applications/luci-app-cshark/Makefile
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2017 Dan Luedtke
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Cloudshark capture tool Web UI
+LUCI_DEPENDS:=+cshark
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Luka Perkov
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-cshark/luasrc/controller/cshark.lua b/applications/luci-app-cshark/luasrc/controller/cshark.lua
new file mode 100644
index 0000000000..4d9bbba290
--- /dev/null
+++ b/applications/luci-app-cshark/luasrc/controller/cshark.lua
@@ -0,0 +1,125 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+module("luci.controller.cshark", package.seeall)
+
+function index()
+ page = node("admin", "network", "cloudshark")
+ page.target = cbi("admin_network/cshark")
+ page.title = _("CloudShark")
+ page.order = 70
+
+ page = entry({"admin", "network", "cshark_iface_dump_start"}, call("cshark_iface_dump_start"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "network", "cshark_iface_dump_stop"}, call("cshark_iface_dump_stop"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "network", "cshark_check_status"}, call("cshark_check_status"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "network", "cshark_link_list_get"}, call("cshark_link_list_get"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "network", "cshark_link_list_clear"}, call("cshark_link_list_clear"), nil)
+ page.leaf = true
+end
+
+function cshark_iface_dump_start(ifname, value, flag, filter)
+ if ifname == nil or ifname == '' then
+ ifname = 'any'
+ end
+ if tonumber(value) == nil
+ then
+ value = '0'
+ end
+ if filter == nil or filter == '' then
+ filter = ''
+ end
+
+ if flag == nil or flag == '' then
+ filter = 'T'
+ end
+
+ luci.http.prepare_content("text/plain")
+
+ local res = os.execute("(/sbin/cshark -i " .. ifname .. " -" .. flag .. " " .. value .. " -p /tmp/cshark-luci.pid " .. filter .. " > /tmp/cshark-luci.out 2>&1) &")
+ luci.http.write(tostring(res))
+end
+
+function cshark_iface_dump_stop()
+ luci.http.prepare_content("text/plain")
+
+ local f = io.open("/tmp/cshark-luci.pid", "rb")
+ local pid = f:read("*all")
+ io.close(f)
+
+ local res = os.execute("kill -TERM " .. pid)
+ luci.http.write(tostring(res))
+end
+
+function cshark_check_status()
+
+ local msg = "";
+ local status;
+ local f = io.open("/tmp/cshark-luci.pid","r")
+ if f ~= nil then
+ status = 1;
+ io.close(f)
+ else
+ status = 0;
+ end
+
+ f = io.open("/tmp/cshark-luci.out","r")
+ if f ~= nil then
+ msg = f:read("*all")
+ io.close(f)
+ if msg ~= '' then
+ os.remove('/tmp/cshark-luci.out')
+ end
+ end
+
+ luci.http.prepare_content("application/json")
+
+ local res = {}
+ res["status"] = status;
+ res["msg"] = msg;
+
+ luci.http.write_json(res)
+end
+
+function cshark_link_list_get()
+ local uci = require("uci").cursor()
+
+ luci.http.prepare_content("application/json")
+
+ luci.http.write("[")
+
+ local t = uci:get("cshark", "cshark", "entry")
+ if (t ~= nil) then
+ for i = #t, 1, -1 do
+ luci.http.write("[\"" .. t[i] .. "\"],")
+ end
+ end
+
+ luci.http.write("[]]")
+end
+
+function cshark_link_list_clear()
+ local uci = require("uci").cursor()
+
+ uci:delete("cshark", "cshark", "entry")
+ uci:commit("cshark");
+
+ luci.http.status(200, "OK")
+end
diff --git a/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua b/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua
new file mode 100644
index 0000000000..8db95596f8
--- /dev/null
+++ b/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua
@@ -0,0 +1,30 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+local fs = require "nixio.fs"
+
+m = Map("cshark", translate("CloudShark"))
+
+if fs.access("/etc/config/cshark") then
+ m:section(SimpleSection).template = "cshark"
+
+ s = m:section(TypedSection, "cshark", translate("Options"))
+ s.anonymous = true
+ s.addremove = false
+
+ s:option(Value, "url", translate("CloudShark URL"))
+ s:option(Value, "token", translate("CloudShark API token"))
+end
+
+return m
diff --git a/applications/luci-app-cshark/luasrc/view/cshark.htm b/applications/luci-app-cshark/luasrc/view/cshark.htm
new file mode 100644
index 0000000000..bc67f806c4
--- /dev/null
+++ b/applications/luci-app-cshark/luasrc/view/cshark.htm
@@ -0,0 +1,291 @@
+<%#
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+
+ <%:Start network capture%>
+
+
+
+
+
+
+
+
+
+
+ <%:Capture links%>
+
+
+
+ <%:Capture URL%>
+ <%:Capture time%>
+
+
+
+
+
+
+ Visit support.cloudshark.org for help.
+
+
+
+
+
+
diff --git a/applications/luci-app-ddns/Makefile b/applications/luci-app-ddns/Makefile
index 88c905a41a..69f9880d4f 100644
--- a/applications/luci-app-ddns/Makefile
+++ b/applications/luci-app-ddns/Makefile
@@ -2,7 +2,7 @@
# Copyright 2008 Steven Barth
# Copyright 2008 Jo-Philipp Wich
# Copyright 2013 Manuel Munz
-# Copyright 2014-2016 Christian Schoenebeck
+# Copyright 2014-2017 Christian Schoenebeck
#
# This is free software, licensed under the Apache License, Version 2.0
@@ -16,7 +16,7 @@ PKG_VERSION:=2.4.8
# Release == build
# increase on changes of translation files
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=Christian Schoenebeck
diff --git a/applications/luci-app-ddns/luasrc/controller/ddns.lua b/applications/luci-app-ddns/luasrc/controller/ddns.lua
index 63bb8bf4be..1dfa625541 100755
--- a/applications/luci-app-ddns/luasrc/controller/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/controller/ddns.lua
@@ -1,7 +1,7 @@
-- Copyright 2008 Steven Barth
-- Copyright 2008 Jo-Philipp Wich
-- Copyright 2013 Manuel Munz
--- Copyright 2014-2016 Christian Schoenebeck
+-- Copyright 2014-2017 Christian Schoenebeck
-- Licensed to the public under the Apache License 2.0.
module("luci.controller.ddns", package.seeall)
@@ -24,7 +24,7 @@ local srv_ver_min = "2.7.6" -- minimum version of service required
local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]]
local app_name = "luci-app-ddns"
local app_title = "Dynamic DNS"
-local app_version = "2.4.8-1"
+local app_version = "2.4.8-2"
function index()
local nxfs = require "nixio.fs" -- global definitions not available
@@ -180,12 +180,10 @@ local function _get_status()
end
-- get/set monitored interface and IP version
- local iface = s["interface"] or "_nonet_"
+ local iface = s["interface"] or "wan"
local use_ipv6 = tonumber(s["use_ipv6"]) or 0
- if iface ~= "_nonet_" then
- local ipv = (use_ipv6 == 1) and "IPv6" or "IPv4"
- iface = ipv .. " / " .. iface
- end
+ local ipv = (use_ipv6 == 1) and "IPv6" or "IPv4"
+ iface = ipv .. " / " .. iface
-- try to get registered IP
local lookup_host = s["lookup_host"] or "_nolookup_"
diff --git a/applications/luci-app-ddns/po/it/ddns.po b/applications/luci-app-ddns/po/it/ddns.po
index f59d053e71..4b8d2f844e 100644
--- a/applications/luci-app-ddns/po/it/ddns.po
+++ b/applications/luci-app-ddns/po/it/ddns.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2013-02-03 13:53+0200\n"
-"Last-Translator: Francesco <3gasas@gmail.com>\n"
+"PO-Revision-Date: 2017-09-06 01:53+0200\n"
+"Last-Translator: Bubu83 \n"
"Language-Team: \n"
"Language: it\n"
"MIME-Version: 1.0\n"
@@ -22,160 +22,182 @@ msgid "-- default --"
msgstr ""
msgid "Advanced Settings"
-msgstr ""
+msgstr "Opzioni Avanzate"
msgid "Allow non-public IP's"
-msgstr ""
+msgstr "Consenti IP non pubblici"
msgid "Applying changes"
-msgstr ""
+msgstr "Applico i cambiamenti"
msgid "Basic Settings"
-msgstr ""
+msgstr "Opzioni di Base"
msgid ""
"Below a list of configuration tips for your system to run Dynamic DNS "
"updates without limitations"
msgstr ""
+"Sotto c'è una lista di consigli di configurazione per il tuo sistema per eseguire "
+"aggiornamenti di Dynamic DNS senza limitazioni"
msgid ""
"Below is a list of configured DDNS configurations and their current state."
msgstr ""
+"Sotto c'è una lista delle configurazioni DDNS configurate e il loro stato attuale."
msgid "Bind Network"
-msgstr ""
+msgstr "Collega Rete"
msgid "Binding to a specific network not supported"
-msgstr ""
+msgstr "Collegamento a una specifica rete non supportato"
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider!"
msgstr ""
+"Nslookup di BusyBox e Wget non supportano lo specificare la versione IP da usare "
+"per la comunicazione con il Provider DDNS!"
msgid ""
"BusyBox's nslookup and hostip do not support to specify to use TCP instead "
"of default UDP when requesting DNS server!"
msgstr ""
+"Nslookup di BusyBox e hostip non supportano lo specificare l'uso di TCP invece "
+"di UDP di default quando richiedono il server DNS!"
msgid ""
"BusyBox's nslookup in the current compiled version does not handle given DNS "
"Servers correctly!"
msgstr ""
+"Nslookup di BusyBox nella versione compilata corrente non gestisce i dati Server "
+"DNS correttamente!"
msgid "Casual users should not change this setting"
-msgstr ""
+msgstr "Gli utenti casuali non dovrebbero cambiare questa opzione"
msgid "Change provider"
-msgstr ""
+msgstr "Cambia provider"
msgid "Check Interval"
-msgstr ""
+msgstr "Controlla Intervallo"
msgid "Collecting data..."
-msgstr ""
+msgstr "Raccogliendo dati..."
msgid "Config error"
-msgstr ""
+msgstr "Errore di configurazione"
msgid "Configuration"
-msgstr ""
+msgstr "Configurazione"
msgid ""
"Configure here the details for all Dynamic DNS services including this LuCI "
"application."
msgstr ""
+"Configura qui i dettagli per tutti i servizi Dynamic DNS inclusa questa "
+"applicazione LuCI."
msgid "Configure here the details for selected Dynamic DNS service."
-msgstr ""
+msgstr "Configura qui i dettagli per il servizio Dynamic DNS selezionato."
msgid "Current setting"
-msgstr ""
+msgstr "Impostazione corrente"
msgid ""
"Currently DDNS updates are not started at boot or on interface events. This is the default if you run DDNS scripts by yourself (i.e. via cron with "
"force_interval set to '0')"
msgstr ""
+"Attualmente gli aggiornamenti DDNS non si avviano al boot o per eventi "
+"dell'interfaccia. Questo è di default se esegui gli script DDNS per conto tuo "
+" (es. usando cron con force_interval impostato a '0')"
msgid ""
"Currently DDNS updates are not started at boot or on interface events. You can start/stop each configuration here. It will run until next reboot."
msgstr ""
+"Attualmente gli aggiornamenti DDNS non si avviano al boot o per eventi "
+"dell'interfaccia. Puoi avviare/fermare ogni configurazione qui. Verrà eseguita "
+"fino al prossimo riavvio."
msgid "Custom update script to be used for updating your DDNS Provider."
-msgstr ""
+msgstr "Script aggiornamento personalizzato da usare per aggiornare il tuo DDNS Provider."
msgid "Custom update-URL"
msgstr "URL di aggiornamento personalizzato"
msgid "Custom update-script"
-msgstr ""
+msgstr "Script di aggiornamento personalizzato"
msgid "DDNS Autostart disabled"
-msgstr ""
+msgstr "Autoavvio DDNS disabilitato"
msgid "DDNS Client Configuration"
-msgstr ""
+msgstr "Configurazione Cliente DDNS"
msgid "DDNS Client Documentation"
-msgstr ""
+msgstr "Documentazione Cliente DDNS"
msgid "DDNS Service provider"
-msgstr ""
+msgstr "Provider del Servizio DDNS"
msgid "DNS requests via TCP not supported"
-msgstr ""
+msgstr "Richieste DNS via TCP non supportate"
msgid "DNS-Server"
-msgstr ""
+msgstr "Server DNS"
msgid "Date format"
-msgstr ""
+msgstr "Formato Data"
msgid "Defines the Web page to read systems IPv4-Address from"
-msgstr ""
+msgstr "Definisce la pagina WEB che legge l'indirizzo IPv4 dei sistemi"
msgid "Defines the Web page to read systems IPv6-Address from"
-msgstr ""
+msgstr "Definisce la pagina WEB che legge l'indirizzo IPv6 dei sistemi"
msgid "Defines the interface to read systems IP-Address from"
-msgstr ""
+msgstr "Definisce l'interfaccia che legge l'indirizzo IP dei sistemi"
msgid "Defines the network to read systems IPv4-Address from"
-msgstr ""
+msgstr "Definisce la rete che legge l'indirizzo IPv4 dei sistemi"
msgid "Defines the network to read systems IPv6-Address from"
-msgstr ""
+msgstr "Definisce la rete che legge l'indirizzo IPv6 dei sistemi"
msgid ""
"Defines the source to read systems IPv4-Address from, that will be send to "
"the DDNS provider"
msgstr ""
+"Definisce la sorgente che legge l'indirizzo IPv4 dei sistemi, che sarà mandata "
+"al provider DDNS"
msgid ""
"Defines the source to read systems IPv6-Address from, that will be send to "
"the DDNS provider"
msgstr ""
+"Definisce la sorgente che legge l'indirizzo IPv6 dei sistemi, che sarà mandata "
+"al provider DDNS"
msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider"
-msgstr ""
+msgstr "Definisce quale indirizzo IP 'IPv4/IPv6' è mandato al provider DDNS"
msgid "Details for"
-msgstr ""
+msgstr "Dettagli per"
msgid "Directory contains Log files for each running section"
-msgstr ""
+msgstr "Directory che contiene i file di registro per ogni sezione avviata"
msgid ""
"Directory contains PID and other status information for each running section"
msgstr ""
+"Directory che contiene il PID e altre informazioni di stato per ogni seziona avviata"
msgid "Disabled"
-msgstr ""
+msgstr "Disabilitato"
msgid "Domain"
-msgstr ""
+msgstr "Dominio"
msgid "Dynamic DNS"
msgstr "DNS Dinamico"
@@ -188,124 +210,136 @@ msgstr ""
"statico anche nel caso in cui tu disponga di un indirizzo IP dinamico."
msgid "Enable secure communication with DDNS provider"
-msgstr ""
+msgstr "Abilita la comunicazione sicura con il provider DDNS"
msgid "Enabled"
-msgstr ""
+msgstr "Abilitato"
msgid "Error"
-msgstr ""
+msgstr "Errore"
msgid "Error Retry Counter"
-msgstr ""
+msgstr "Conteggio errore di riprova"
msgid "Error Retry Interval"
-msgstr ""
+msgstr "Intervallo errore di riprova"
msgid "Event Network"
-msgstr ""
+msgstr "Network Evento"
msgid "File"
msgstr ""
msgid "File not found"
-msgstr ""
+msgstr "File non trovato"
msgid "File not found or empty"
-msgstr ""
+msgstr "File non trovato o vuoto"
msgid ""
"Follow this link You will find more hints to optimize your system to "
"run DDNS scripts with all options"
msgstr ""
+"Segui questo collegamento Troverai più aiuti per ottimizzare il tuo sistema "
+"a eseguire script DDNS con tutte le opzioni"
msgid "For detailed information about parameter settings look here."
-msgstr ""
+msgstr "Per informazioni dettagliate sui parametri opzionali guarda qui."
msgid "For supported codes look here"
-msgstr ""
+msgstr "Per i codici supportati guarda qui"
msgid "Force IP Version"
-msgstr ""
+msgstr "Forza Versione IP"
msgid "Force IP Version not supported"
-msgstr ""
+msgstr "Forza Versione IP non supportato"
msgid "Force Interval"
-msgstr ""
+msgstr "Forza Intervallo"
msgid "Force TCP on DNS"
-msgstr ""
+msgstr "Forza TCP su DNS"
msgid "Forced IP Version don't matched"
-msgstr ""
+msgstr "La Versione IP forzata non corrisponde"
msgid "Format"
-msgstr ""
+msgstr "Formato"
msgid "Format: IP or FQDN"
-msgstr ""
+msgstr "Formato: IP o FQDN"
msgid ""
"GNU Wget will use the IP of given network, cURL will use the physical "
"interface."
msgstr ""
+"GNU Wget userà l'IP della rete data, cURL userà l'interfaccia "
+"fisica."
msgid "Global Settings"
-msgstr ""
+msgstr "Opzioni Globali"
msgid "HTTPS not supported"
-msgstr ""
+msgstr "HTTPS non supportato"
msgid "Hints"
-msgstr ""
+msgstr "Suggerimenti"
msgid "Hostname/FQDN to validate, if IP update happen or necessary"
-msgstr ""
+msgstr "Indirizzo/FQDN da validare, se l'aggiornamento IP avviene o è necessario"
msgid "IP address source"
-msgstr ""
+msgstr "Sorgente indirizzo IP"
msgid "IP address version"
-msgstr ""
+msgstr "Versione indirizzo IP"
msgid "IPv4-Address"
-msgstr ""
+msgstr "Indirizzo IPv4"
msgid "IPv6 address must be given in square brackets"
-msgstr ""
+msgstr "Indirizzo IPv6 deve essere dato con le parentesi quadre"
msgid ""
"IPv6 is currently not (fully) supported by this system Please follow "
"the instructions on OpenWrt's homepage to enable IPv6 support or update "
"your system to the latest OpenWrt Release"
msgstr ""
+"IPv6 non è (pienamente) supportato da questo sistema Per favore segui "
+"le istruzioni sul sito di OpenWrt per abilitare il supporto a IPv6 o aggiorna "
+"il tuo sistema all'ultima Release di OpenWrt"
msgid "IPv6 not supported"
-msgstr ""
+msgstr "IPv6 non supportato"
msgid "IPv6-Address"
-msgstr ""
+msgstr "Indirizzo IPv6"
msgid "If both cURL and GNU Wget are installed, Wget is used by default."
-msgstr ""
+msgstr "Se sia cURL e sia GNU Wget sono installati, Wget è usato di default."
msgid ""
"If this service section is disabled it could not be started. Neither "
"from LuCI interface nor from console"
msgstr ""
+"Se questa sezione del servizio è disabilitata, non può essere avviata Nè "
+"da interfaccia LuCI nè da console"
msgid "If using secure communication you should verify server certificates!"
-msgstr ""
+msgstr "Se usi la comunicazione sicura dovresti verificare i certificati del server!"
msgid ""
"If you want to send updates for IPv4 and IPv6 you need to define two "
"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
msgstr ""
+"Se vuoi mandare aggiornamenti per IPv4 e IPv6, devi definire due "
+"Configurazioni separate es. 'myddns_ipv4' e 'myddns_ipv6'"
msgid ""
"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
msgstr ""
+"In alcune versioni cURL/libcurl in OpenWrt è compilato senza supporto proxy."
msgid "Info"
msgstr ""
@@ -314,6 +348,8 @@ msgid ""
"Install 'ca-certificates' package or needed certificates by hand into /etc/"
"ssl/certs default directory"
msgstr ""
+"Installa il pacchetto 'ca-certificates' o i certificati necessari "
+"a mano nella directory di default /etc/ssl/certs"
msgid "Interface"
msgstr "Interfaccia"
@@ -322,408 +358,431 @@ msgid ""
"Interval to check for changed IP Values below 5 minutes == 300 seconds "
"are not supported"
msgstr ""
+"Intervallo per controllare i cambiamenti dell'IP I valori sotto i 5 minuti == "
+"300 secondi non sono supportati"
msgid ""
"Interval to force updates send to DDNS Provider Setting this parameter "
"to 0 will force the script to only run once Values lower 'Check "
"Interval' except '0' are not supported"
msgstr ""
+"Intervallo per forzare gli aggiornamenti da mandare al provider DDNS Impostanto questo "
+"parametro a 0 forzerà lo script ad eseguirsi una sola volta Valori sotto 'Controllo "
+"Intervallo' eccetto '0' non sono supportati"
msgid "It is NOT recommended for casual users to change settings on this page."
-msgstr ""
+msgstr "Non è raccomandato agli utenti casuali di cambiare le opzioni in questa pagina."
msgid "Last Update"
-msgstr ""
+msgstr "Ultimo Aggiornamento"
msgid "Loading"
-msgstr ""
+msgstr "Caricando"
msgid "Log File Viewer"
-msgstr ""
+msgstr "Visualizzatore Registro"
msgid "Log directory"
-msgstr ""
+msgstr "Directory registro"
msgid "Log length"
-msgstr ""
+msgstr "Lunghezza registro"
msgid "Log to file"
-msgstr ""
+msgstr "Registra su file"
msgid "Log to syslog"
-msgstr ""
+msgstr "Registra su syslog"
msgid "Lookup Hostname"
-msgstr ""
+msgstr "Indirizzo da consultare"
msgid "NOT installed"
-msgstr ""
+msgstr "NON installato"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to select a network to use for "
"communication."
msgstr ""
+"Nè GNU Wget con SSL nè cURL installati per selezionare una rete da usare per "
+"comunicazione."
msgid ""
"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
"HTTPS protocol."
msgstr ""
+"Nè GNU Wget con SSL nè cURL installati per supportare aggiornamenti sicuri via "
+"protocollo HTTPS."
msgid "Network"
msgstr "Rete"
msgid "Network on which the ddns-updater scripts will be started"
-msgstr ""
+msgstr "Rete su cui lo script di aggiornamento DDNS sara avviato"
msgid "Never"
-msgstr ""
+msgstr "Mai"
msgid "Next Update"
-msgstr ""
+msgstr "Prossimo Aggiornamento"
msgid "No certificates found"
-msgstr ""
+msgstr "Nessun certificato trovato"
msgid "No data"
-msgstr ""
+msgstr "Nessuno dato"
msgid "No logging"
-msgstr ""
+msgstr "Nessun registro"
msgid "Non-public and by default blocked IP's"
-msgstr ""
+msgstr "Ip non pubblici e bloccati di default"
msgid "Notice"
-msgstr ""
+msgstr "Avviso"
msgid "Number of last lines stored in log files"
-msgstr ""
+msgstr "Numero di ultime linee memorizzato nei file registro"
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
-msgstr ""
+msgstr "OPZIONALE: Forza l'uso di puro IPv4/IPv6 solo comunicazione."
msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests."
-msgstr ""
+msgstr "OPZIONALE: Forza l'uso del TCP invece del UDP di default per richieste DNS."
msgid "OPTIONAL: Network to use for communication"
-msgstr ""
+msgstr "OPZIONALE: Rete da usare per comunicazione"
msgid "OPTIONAL: Proxy-Server for detection and updates."
-msgstr ""
+msgstr "OPZIONALE: Server Proxy per rivelazioni e aggiornamenti."
msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'."
-msgstr ""
+msgstr "OPZIONALE: Usa Server DNS non di default per individuare 'IP Registrati'."
msgid "On Error the script will retry the failed action after given time"
-msgstr ""
+msgstr "Ad Errore lo script riproverà l'azione fallita dopo il tempo dato"
msgid "On Error the script will stop execution after given number of retrys"
-msgstr ""
+msgstr "Ad Errore lo script fermerà l'esecuzione dopo il numero di tentativi dati"
msgid "OpenWrt Wiki"
msgstr ""
msgid "Optional Encoded Parameter"
-msgstr ""
+msgstr "Parametro Codificato Opzionale"
msgid "Optional Parameter"
-msgstr ""
+msgstr "Parametro Opzionale"
msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Opzionale: Sostituisci [PARAMENC] nell'URL di aggiornamento (URL codificato)"
msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
-msgstr ""
+msgstr "Opzionale: Sostituisci [PARAMOPT] nell'URL di aggiornamento (URL NON codificato)"
msgid "Overview"
-msgstr ""
+msgstr "Riassunto"
msgid "PROXY-Server"
-msgstr ""
+msgstr "Server PROXY"
msgid "PROXY-Server not supported"
-msgstr ""
+msgstr "SERVER PROXY non supportato"
msgid "Password"
msgstr "Password"
msgid "Path to CA-Certificate"
-msgstr ""
+msgstr "Percorso per Certificato CA"
msgid "Please [Save & Apply] your changes first"
-msgstr ""
+msgstr "Per favore [Salva & Applica] prima i cambiamenti"
msgid "Please press [Read] button"
-msgstr ""
+msgstr "Per favore premi il pulsante [Leggi]"
msgid "Please update to the current version!"
-msgstr ""
+msgstr "Per favore aggiorna alla versione corrente!"
msgid "Process ID"
-msgstr ""
+msgstr "ID del Processo"
msgid "Read / Reread log file"
-msgstr ""
+msgstr "Leggi / Rileggi registro"
msgid "Really change DDNS provider?"
-msgstr ""
+msgstr "Cambiare provider DDNS veramente?"
msgid "Registered IP"
-msgstr ""
+msgstr "IP Registrato"
msgid "Replaces [DOMAIN] in Update-URL"
-msgstr ""
+msgstr "Sostituisci [DOMAIN] nell'URL di aggiornamento"
msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Sostituisci [PASSWORD] nell'URL di aggiornamento (URL codificato)"
msgid "Replaces [USERNAME] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Sostituisci [NOME UTENTE] nell'URL di aggiornamento (URL codificato)"
msgid "Run once"
-msgstr ""
+msgstr "Esegui una volta"
msgid "Script"
msgstr ""
msgid "Show more"
-msgstr ""
+msgstr "Mostra di più"
msgid "Software update required"
-msgstr ""
+msgstr "Richiesto aggiornamento Software"
msgid "Specifying a DNS-Server is not supported"
-msgstr ""
+msgstr "Specificare un server DNS non è supportato"
msgid "Start"
-msgstr ""
+msgstr "Inizio"
msgid "Start / Stop"
-msgstr ""
+msgstr "Inizio / Stop"
msgid "Status directory"
msgstr ""
msgid "Stopped"
-msgstr ""
+msgstr "Fermato"
msgid ""
"The currently installed 'ddns-scripts' package did not support all available "
"settings."
msgstr ""
+"Il pacchetto 'ddns-scripts' attualmente installato non supporta tutte le opzioni "
+"disponibili."
msgid "The default setting of '0' will retry infinite."
-msgstr ""
+msgstr "L'opzione di default '0' riproverà all'infinito."
msgid "There is no service configured."
-msgstr ""
+msgstr "Non c'è un servizio configurato."
msgid "Timer Settings"
-msgstr ""
+msgstr "Impostazioni del Timer"
msgid "To change global settings click here"
-msgstr ""
+msgstr "Per cambiare le opzioni globali clicca qui"
msgid "To use cURL activate this option."
-msgstr ""
+msgstr "Per usare cURL attiva questa opzione."
msgid "URL"
msgstr "URL"
msgid "URL to detect"
-msgstr ""
+msgstr "URL da individuare"
msgid "Unknown error"
-msgstr ""
+msgstr "Errore sconosciuto"
msgid ""
"Update URL to be used for updating your DDNS Provider. Follow "
"instructions you will find on their WEB page."
msgstr ""
+"L'URL di aggiornamento da usare per aggiornare il tuo Provider DDNS. "
+"Segui le istruzioni che trovi sulla loro pagina WEB."
msgid "Update error"
-msgstr ""
+msgstr "Errore di aggiornamento"
msgid "Use HTTP Secure"
-msgstr ""
+msgstr "Usa HTTP Sicuro"
msgid "Use cURL"
-msgstr ""
+msgstr "Usa cURL"
msgid "User defined script to read systems IP-Address"
-msgstr ""
+msgstr "Script definito dall'utente per leggere l'indirizzo IP dei sistemi"
msgid "Username"
msgstr "Nome Utente"
msgid "Using specific DNS Server not supported"
-msgstr ""
+msgstr "Usare specifici Server DNS non supportato"
msgid "Verify"
-msgstr ""
+msgstr "Verifica"
msgid "Version"
-msgstr ""
+msgstr "Versione"
msgid "Version Information"
-msgstr ""
+msgstr "Informazione Versione"
msgid "Waiting for changes to be applied..."
-msgstr ""
+msgstr "Aspettando l'applicazione dei cambiamenti..."
msgid "Warning"
-msgstr ""
+msgstr "Allarme"
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
msgstr ""
+"Scrivi messaggi dettagliati sul registro. Il file sarà tagliato automaticamente."
msgid ""
"Writes log messages to syslog. Critical Errors will always be written to "
"syslog."
msgstr ""
+"Scrivi i messaggi registro al syslog. Gli Errori Critici saranno sempre scritti "
+"sul syslog."
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
+"Dovresti installare il pacchetto 'bind-host' o 'knot-host' o 'drill' o 'hostip', "
+"se hai bisogno di specificare un server DNS che identifichi il tuo IP registrato."
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
"requests."
msgstr ""
+"Dovresti installare il pacchetto 'bind-host' o 'knot-host' o 'drill' per le "
+"richieste DNS."
msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
-msgstr ""
+msgstr "Dovresti installare il pacchetto 'wget' o 'curl' o 'uclient-fetch'."
msgid ""
"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
"*ssl' package."
msgstr ""
+"Dovresti installare il pacchetto 'wget' o 'curl' o 'uclient-fetch' con il "
+"pacchetto 'libustream-*ssl'."
msgid "You should install 'wget' or 'curl' package."
-msgstr ""
+msgstr "Dovresti installare il pacchetto 'wget' o 'curl'."
msgid ""
"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
+"Dovresti installare il pacchetto 'wget' o 'uclient-fetch' o sostituire libcurl."
msgid "cURL is installed, but libcurl was compiled without proxy support."
-msgstr ""
+msgstr "cURL è installato, ma libcurl è compilato senza supporto proxy."
msgid "cURL without Proxy Support"
-msgstr ""
+msgstr "cURL senza Supporto Proxy"
msgid "can not detect local IP. Please select a different Source combination"
-msgstr ""
+msgstr "non individuo l'IP locale. Per favore seleziona una combinazione Sorgente diversa"
msgid "can not resolve host:"
-msgstr ""
+msgstr "non posso risolvere host:"
msgid "config error"
-msgstr ""
+msgstr "errore configurazione"
msgid "days"
-msgstr ""
+msgstr "giorni"
msgid "directory or path/file"
-msgstr ""
+msgstr "directory o percorso/file"
msgid "either url or script could be set"
-msgstr ""
+msgstr "o l'url o lo script può essere impostato"
msgid "enable here"
-msgstr ""
+msgstr "abilita qui"
msgid "file or directory not found or not 'IGNORE'"
-msgstr ""
+msgstr "file o directory non trovati o non 'IGNORE'"
msgid "help"
-msgstr ""
+msgstr "aiuto"
msgid "hours"
-msgstr ""
+msgstr "ore"
msgid "installed"
-msgstr ""
+msgstr "installato"
msgid "invalid FQDN / required - Sample"
-msgstr ""
+msgstr "FQDN invalido / richiesto - Esempio"
msgid "minimum value '0'"
-msgstr ""
+msgstr "valore minimo '0'"
msgid "minimum value '1'"
-msgstr ""
+msgstr "valore minimo '1'"
msgid "minimum value 5 minutes == 300 seconds"
-msgstr ""
+msgstr "valore minimo 5 minuti == 300 secondi"
msgid "minutes"
-msgstr ""
+msgstr "minuti"
msgid "missing / required"
-msgstr ""
+msgstr "mancante / richiesto"
msgid "must be greater or equal 'Check Interval'"
-msgstr ""
+msgstr "deve essere più grande o uguale 'Controlla Intervallo'"
msgid "must start with 'http://'"
-msgstr ""
+msgstr "deve iniziare con 'http://'"
msgid "nc (netcat) can not connect"
-msgstr ""
+msgstr "nc (netcat) non può connettersi"
msgid "never"
-msgstr ""
+msgstr "mai"
msgid "no data"
-msgstr ""
+msgstr "Niente dati"
msgid "not found or not executable - Sample: '/path/to/script.sh'"
-msgstr ""
+msgstr "non trovato o non eseguibile - Esempio: '/path/to/script.sh'"
msgid "nslookup can not resolve host"
-msgstr ""
+msgstr "nslookup non può risolvere l'host"
msgid "or"
-msgstr ""
+msgstr "o"
msgid "or higher"
-msgstr ""
+msgstr "o più alto"
msgid "please disable"
-msgstr ""
+msgstr "per favore disabilita"
msgid "please remove entry"
-msgstr ""
+msgstr "per favore rimuovi la voce"
msgid "please select 'IPv4' address version"
-msgstr ""
+msgstr "per favore seleziona versione indirizzo 'IPv4'"
msgid "please select 'IPv4' address version in"
-msgstr ""
+msgstr "per favore seleziona versione indirizzo 'IPv4' in"
msgid "please set to 'default'"
-msgstr ""
+msgstr "per favore imposta a 'default'"
msgid "proxy port missing"
-msgstr ""
+msgstr "porta proxy mancante"
msgid "required"
-msgstr ""
+msgstr "richiesto"
msgid "seconds"
-msgstr ""
+msgstr "secondi"
msgid "to run HTTPS without verification of server certificates (insecure)"
-msgstr ""
+msgstr "per eseguire HTTPS senza la verifica dei certificati del server (insicuro)"
msgid "unknown error"
-msgstr ""
+msgstr "errore sconosciuto"
msgid "unspecific error"
-msgstr ""
+msgstr "errore non specifico"
msgid "use hostname, FQDN, IPv4- or IPv6-Address"
-msgstr ""
+msgstr "usa nome host, FQDN, indirizzo IPv4 o IPv6"
diff --git a/applications/luci-app-ddns/po/pt-br/ddns.po b/applications/luci-app-ddns/po/pt-br/ddns.po
index 4970846516..ab22837b28 100644
--- a/applications/luci-app-ddns/po/pt-br/ddns.po
+++ b/applications/luci-app-ddns/po/pt-br/ddns.po
@@ -2,15 +2,15 @@ msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2016-07-01 22:40-0300\n"
-"Last-Translator: Matheus Dal Mago \n"
+"PO-Revision-Date: 2017-02-20 17:41-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.8.8\n"
+"X-Generator: Poedit 1.8.11\n"
msgid "&"
msgstr "&"
@@ -228,7 +228,7 @@ msgid "Error Retry Interval"
msgstr "Intervalo de tentativas em Erro"
msgid "Event Network"
-msgstr ""
+msgstr "Rede de Evento"
msgid "File"
msgstr "Arquivo"
@@ -438,16 +438,16 @@ msgid "No certificates found"
msgstr "Nenhum certificado encontrado"
msgid "No data"
-msgstr ""
+msgstr "Sem dados"
msgid "No logging"
-msgstr ""
+msgstr "Sem registros"
msgid "Non-public and by default blocked IP's"
msgstr "IPs não públicos e bloqueados por padrão"
msgid "Notice"
-msgstr ""
+msgstr "Aviso"
msgid "Number of last lines stored in log files"
msgstr "Número das últimas linhas salvas nos arquivos de log"
@@ -475,7 +475,7 @@ msgstr ""
"Em Erro, o script irá para a execução após um número definido de tentativas"
msgid "OpenWrt Wiki"
-msgstr ""
+msgstr "Wiki do OpenWRT"
msgid "Optional Encoded Parameter"
msgstr "Parâmetro Opcionalmente Codificado"
@@ -490,7 +490,7 @@ msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
msgstr "Opcional: Substitui [PARAMOPT] na URL de atualização"
msgid "Overview"
-msgstr ""
+msgstr "Visão Geral"
msgid "PROXY-Server"
msgstr "servidor PROXY"
@@ -575,7 +575,7 @@ msgid "There is no service configured."
msgstr "Não há serviço configurado"
msgid "Timer Settings"
-msgstr ""
+msgstr "Configurações do Controlador de Tempo"
msgid "To change global settings click here"
msgstr "Clique aqui para mudar configurações globais"
diff --git a/applications/luci-app-ddns/po/sv/ddns.po b/applications/luci-app-ddns/po/sv/ddns.po
new file mode 100644
index 0000000000..2e63ee1bde
--- /dev/null
+++ b/applications/luci-app-ddns/po/sv/ddns.po
@@ -0,0 +1,724 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "&"
+msgstr "&"
+
+msgid "-- custom --"
+msgstr "-- anpassad --"
+
+msgid "-- default --"
+msgstr "-- standard --"
+
+msgid "Advanced Settings"
+msgstr "Avancerade inställningar"
+
+msgid "Allow non-public IP's"
+msgstr "Tillåt icke-publika IP-adresser"
+
+msgid "Applying changes"
+msgstr "Verkställer ändringar"
+
+msgid "Basic Settings"
+msgstr "Standardinställningar"
+
+msgid ""
+"Below a list of configuration tips for your system to run Dynamic DNS "
+"updates without limitations"
+msgstr ""
+
+msgid ""
+"Below is a list of configured DDNS configurations and their current state."
+msgstr ""
+"Här nedanför finns det en lista över konfigurerade DDNS-konfigurationer och deras nuvarande skick."
+
+msgid "Bind Network"
+msgstr "Bind samman nätverk"
+
+msgid "Binding to a specific network not supported"
+msgstr "Att binda samman med ett specifikt nätverk stöds inte"
+
+msgid ""
+"BusyBox's nslookup and Wget do not support to specify the IP version to use "
+"for communication with DDNS Provider!"
+msgstr ""
+
+msgid ""
+"BusyBox's nslookup and hostip do not support to specify to use TCP instead "
+"of default UDP when requesting DNS server!"
+msgstr ""
+
+msgid ""
+"BusyBox's nslookup in the current compiled version does not handle given DNS "
+"Servers correctly!"
+msgstr ""
+
+msgid "Casual users should not change this setting"
+msgstr ""
+
+msgid "Change provider"
+msgstr "Byt operatör"
+
+msgid "Check Interval"
+msgstr "Kontroll-intervall"
+
+msgid "Collecting data..."
+msgstr "Samlar in data..."
+
+msgid "Config error"
+msgstr "Konfigurationsfel"
+
+msgid "Configuration"
+msgstr "Konfiguration"
+
+msgid ""
+"Configure here the details for all Dynamic DNS services including this LuCI "
+"application."
+msgstr ""
+
+msgid "Configure here the details for selected Dynamic DNS service."
+msgstr ""
+
+msgid "Current setting"
+msgstr "Nuvarande inställning"
+
+msgid ""
+"Currently DDNS updates are not started at boot or on interface events. This is the default if you run DDNS scripts by yourself (i.e. via cron with "
+"force_interval set to '0')"
+msgstr ""
+
+msgid ""
+"Currently DDNS updates are not started at boot or on interface events. You can start/stop each configuration here. It will run until next reboot."
+msgstr ""
+
+msgid "Custom update script to be used for updating your DDNS Provider."
+msgstr ""
+
+msgid "Custom update-URL"
+msgstr "Anpassad webbadress för uppdatering"
+
+msgid "Custom update-script"
+msgstr "Anpassat uppdateringsskript"
+
+msgid "DDNS Autostart disabled"
+msgstr ""
+
+msgid "DDNS Client Configuration"
+msgstr ""
+
+msgid "DDNS Client Documentation"
+msgstr ""
+
+msgid "DDNS Service provider"
+msgstr ""
+
+msgid "DNS requests via TCP not supported"
+msgstr ""
+
+msgid "DNS-Server"
+msgstr "DNS-server"
+
+msgid "Date format"
+msgstr "Datumformat"
+
+msgid "Defines the Web page to read systems IPv4-Address from"
+msgstr ""
+
+msgid "Defines the Web page to read systems IPv6-Address from"
+msgstr ""
+
+msgid "Defines the interface to read systems IP-Address from"
+msgstr ""
+
+msgid "Defines the network to read systems IPv4-Address from"
+msgstr ""
+
+msgid "Defines the network to read systems IPv6-Address from"
+msgstr ""
+
+msgid ""
+"Defines the source to read systems IPv4-Address from, that will be send to "
+"the DDNS provider"
+msgstr ""
+
+msgid ""
+"Defines the source to read systems IPv6-Address from, that will be send to "
+"the DDNS provider"
+msgstr ""
+
+msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider"
+msgstr ""
+
+msgid "Details for"
+msgstr "Detaljer för"
+
+msgid "Directory contains Log files for each running section"
+msgstr ""
+
+msgid ""
+"Directory contains PID and other status information for each running section"
+msgstr ""
+
+msgid "Disabled"
+msgstr "Inaktivera"
+
+msgid "Domain"
+msgstr "Domän"
+
+msgid "Dynamic DNS"
+msgstr "Dynamisk DNS"
+
+msgid ""
+"Dynamic DNS allows that your router can be reached with a fixed hostname "
+"while having a dynamically changing IP address."
+msgstr ""
+
+msgid "Enable secure communication with DDNS provider"
+msgstr ""
+
+msgid "Enabled"
+msgstr "Aktiverad"
+
+msgid "Error"
+msgstr "Fel"
+
+msgid "Error Retry Counter"
+msgstr ""
+
+msgid "Error Retry Interval"
+msgstr ""
+
+msgid "Event Network"
+msgstr ""
+
+msgid "File"
+msgstr "Fil"
+
+msgid "File not found"
+msgstr "Filen hittades inte"
+
+msgid "File not found or empty"
+msgstr "Filen hittades inte eller tom"
+
+msgid ""
+"Follow this link You will find more hints to optimize your system to "
+"run DDNS scripts with all options"
+msgstr ""
+
+msgid "For detailed information about parameter settings look here."
+msgstr ""
+
+msgid "For supported codes look here"
+msgstr ""
+
+msgid "Force IP Version"
+msgstr "Tvinga IP-version"
+
+msgid "Force IP Version not supported"
+msgstr "Påtvingad IP-version stöds inte"
+
+msgid "Force Interval"
+msgstr ""
+
+msgid "Force TCP on DNS"
+msgstr ""
+
+msgid "Forced IP Version don't matched"
+msgstr ""
+
+msgid "Format"
+msgstr "Format"
+
+msgid "Format: IP or FQDN"
+msgstr "Format: IP eller FQDN"
+
+msgid ""
+"GNU Wget will use the IP of given network, cURL will use the physical "
+"interface."
+msgstr ""
+"GNU Wget kommer att använda IP-adressen för det angivna nätverket, cURL "
+"kommer att använda det fysiska gränssnittet."
+
+msgid "Global Settings"
+msgstr "Globala inställningar"
+
+msgid "HTTPS not supported"
+msgstr "HTTPS stöds inte"
+
+msgid "Hints"
+msgstr "Ledtrådar"
+
+msgid "Hostname/FQDN to validate, if IP update happen or necessary"
+msgstr ""
+
+msgid "IP address source"
+msgstr "IP-adressens källa"
+
+msgid "IP address version"
+msgstr "Version för IP-adress"
+
+msgid "IPv4-Address"
+msgstr "IPv4-adress"
+
+msgid "IPv6 address must be given in square brackets"
+msgstr ""
+
+msgid ""
+"IPv6 is currently not (fully) supported by this system Please follow "
+"the instructions on OpenWrt's homepage to enable IPv6 support or update "
+"your system to the latest OpenWrt Release"
+msgstr ""
+
+msgid "IPv6 not supported"
+msgstr "IPv6 stöds inte"
+
+msgid "IPv6-Address"
+msgstr "IPv6-adress"
+
+msgid "If both cURL and GNU Wget are installed, Wget is used by default."
+msgstr ""
+"Om både cURL och GNU Wget är installerade så används Wget som standard."
+
+msgid ""
+"If this service section is disabled it could not be started. Neither "
+"from LuCI interface nor from console"
+msgstr ""
+
+msgid "If using secure communication you should verify server certificates!"
+msgstr ""
+
+msgid ""
+"If you want to send updates for IPv4 and IPv6 you need to define two "
+"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
+msgstr ""
+
+msgid ""
+"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
+msgstr ""
+
+msgid "Info"
+msgstr "Info"
+
+msgid ""
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
+msgstr ""
+
+msgid "Interface"
+msgstr "Gränssnitt"
+
+msgid ""
+"Interval to check for changed IP Values below 5 minutes == 300 seconds "
+"are not supported"
+msgstr ""
+
+msgid ""
+"Interval to force updates send to DDNS Provider Setting this parameter "
+"to 0 will force the script to only run once Values lower 'Check "
+"Interval' except '0' are not supported"
+msgstr ""
+
+msgid "It is NOT recommended for casual users to change settings on this page."
+msgstr ""
+"Det är INTE rekommenderat för vanliga användare att ändra inställningar på "
+"den här sidan."
+
+msgid "Last Update"
+msgstr "Senaste uppdateringen"
+
+msgid "Loading"
+msgstr "Laddar"
+
+msgid "Log File Viewer"
+msgstr "Visare för loggfil"
+
+msgid "Log directory"
+msgstr ""
+
+msgid "Log length"
+msgstr "Loggens längd"
+
+msgid "Log to file"
+msgstr "Logga till fil"
+
+msgid "Log to syslog"
+msgstr "Logga till syslog"
+
+msgid "Lookup Hostname"
+msgstr "Kolla upp värdnamn"
+
+msgid "NOT installed"
+msgstr "INTE installerad"
+
+msgid ""
+"Neither GNU Wget with SSL nor cURL installed to select a network to use for "
+"communication."
+msgstr ""
+
+msgid ""
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
+msgstr ""
+
+msgid "Network"
+msgstr "Nätverk"
+
+msgid "Network on which the ddns-updater scripts will be started"
+msgstr ""
+
+msgid "Never"
+msgstr "Aldrig"
+
+msgid "Next Update"
+msgstr "Nästa uppdatering"
+
+msgid "No certificates found"
+msgstr "Inga ceritifikat hittades"
+
+msgid "No data"
+msgstr "Ingen data"
+
+msgid "No logging"
+msgstr "Ingen loggning"
+
+msgid "Non-public and by default blocked IP's"
+msgstr ""
+
+msgid "Notice"
+msgstr ""
+
+msgid "Number of last lines stored in log files"
+msgstr ""
+
+msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
+msgstr ""
+
+msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests."
+msgstr ""
+
+msgid "OPTIONAL: Network to use for communication"
+msgstr ""
+
+msgid "OPTIONAL: Proxy-Server for detection and updates."
+msgstr ""
+
+msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'."
+msgstr ""
+
+msgid "On Error the script will retry the failed action after given time"
+msgstr ""
+
+msgid "On Error the script will stop execution after given number of retrys"
+msgstr ""
+
+msgid "OpenWrt Wiki"
+msgstr "Wiki för OpenWrt"
+
+msgid "Optional Encoded Parameter"
+msgstr ""
+
+msgid "Optional Parameter"
+msgstr "Valfri parameter"
+
+msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)"
+msgstr ""
+
+msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "PROXY-Server"
+msgstr "PROXY-server"
+
+msgid "PROXY-Server not supported"
+msgstr "PROXY-servern stöds inte"
+
+msgid "Password"
+msgstr "Lösenord"
+
+msgid "Path to CA-Certificate"
+msgstr ""
+
+msgid "Please [Save & Apply] your changes first"
+msgstr "Vänligen [Spara & Verkställ] dina ändringar först"
+
+msgid "Please press [Read] button"
+msgstr "Vänligen tryck på [Läs]-knappen"
+
+msgid "Please update to the current version!"
+msgstr "Vänligen uppdatera till den senaste versionen!"
+
+msgid "Process ID"
+msgstr ""
+
+msgid "Read / Reread log file"
+msgstr "Läs / Läs om loggfilen"
+
+msgid "Really change DDNS provider?"
+msgstr ""
+
+msgid "Registered IP"
+msgstr "Registrerad IP"
+
+msgid "Replaces [DOMAIN] in Update-URL"
+msgstr ""
+
+msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)"
+msgstr ""
+
+msgid "Replaces [USERNAME] in Update-URL (URL-encoded)"
+msgstr ""
+
+msgid "Run once"
+msgstr "Kör en gång"
+
+msgid "Script"
+msgstr "Skript"
+
+msgid "Show more"
+msgstr "Visa mer"
+
+msgid "Software update required"
+msgstr ""
+
+msgid "Specifying a DNS-Server is not supported"
+msgstr ""
+
+msgid "Start"
+msgstr "Starta"
+
+msgid "Start / Stop"
+msgstr "Starta / Stoppa"
+
+msgid "Status directory"
+msgstr ""
+
+msgid "Stopped"
+msgstr "Stoppad"
+
+msgid ""
+"The currently installed 'ddns-scripts' package did not support all available "
+"settings."
+msgstr ""
+
+msgid "The default setting of '0' will retry infinite."
+msgstr ""
+
+msgid "There is no service configured."
+msgstr "Det finns ingen tjänst inställd."
+
+msgid "Timer Settings"
+msgstr ""
+
+msgid "To change global settings click here"
+msgstr "Klicka här för att ändra på globala inställningar"
+
+msgid "To use cURL activate this option."
+msgstr ""
+
+msgid "URL"
+msgstr "Webbadress"
+
+msgid "URL to detect"
+msgstr "Webbadress att upptäcka"
+
+msgid "Unknown error"
+msgstr "Okänt fel"
+
+msgid ""
+"Update URL to be used for updating your DDNS Provider. Follow "
+"instructions you will find on their WEB page."
+msgstr ""
+
+msgid "Update error"
+msgstr "Uppdateringsfel"
+
+msgid "Use HTTP Secure"
+msgstr "Använd Säker HTTP"
+
+msgid "Use cURL"
+msgstr "Använd cURL"
+
+msgid "User defined script to read systems IP-Address"
+msgstr ""
+
+msgid "Username"
+msgstr "Användarnamn"
+
+msgid "Using specific DNS Server not supported"
+msgstr ""
+
+msgid "Verify"
+msgstr "Verkställ"
+
+msgid "Version"
+msgstr "Version"
+
+msgid "Version Information"
+msgstr "Information om versionen"
+
+msgid "Waiting for changes to be applied..."
+msgstr "Väntar på att ändringarna ska bli verkställda..."
+
+msgid "Warning"
+msgstr "Varning"
+
+msgid ""
+"Writes detailed messages to log file. File will be truncated automatically."
+msgstr ""
+
+msgid ""
+"Writes log messages to syslog. Critical Errors will always be written to "
+"syslog."
+msgstr ""
+
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
+msgstr ""
+
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
+msgstr ""
+
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
+msgstr ""
+
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
+msgstr ""
+
+msgid "You should install 'wget' or 'curl' package."
+msgstr ""
+
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
+msgstr ""
+
+msgid "cURL is installed, but libcurl was compiled without proxy support."
+msgstr ""
+
+msgid "cURL without Proxy Support"
+msgstr "cURL utan Proxy-stöd"
+
+msgid "can not detect local IP. Please select a different Source combination"
+msgstr ""
+"kan inte upptäcka lokal IP-adress. Vänligen välj en annorlunda Käll-"
+"kombination"
+
+msgid "can not resolve host:"
+msgstr "kan inte avgöra värd:"
+
+msgid "config error"
+msgstr "konfigurationsfel"
+
+msgid "days"
+msgstr "dagar"
+
+msgid "directory or path/file"
+msgstr ""
+
+msgid "either url or script could be set"
+msgstr "kunde varken fastställa webbadress eller skript"
+
+msgid "enable here"
+msgstr "aktivera här"
+
+msgid "file or directory not found or not 'IGNORE'"
+msgstr ""
+
+msgid "help"
+msgstr "hjälp"
+
+msgid "hours"
+msgstr "timmar"
+
+msgid "installed"
+msgstr "installerad"
+
+msgid "invalid FQDN / required - Sample"
+msgstr "ogiltig FQDN / behövs - Urval"
+
+msgid "minimum value '0'"
+msgstr "minimalt värde '0'"
+
+msgid "minimum value '1'"
+msgstr "minimalt värde '1'"
+
+msgid "minimum value 5 minutes == 300 seconds"
+msgstr "minimalt värde 5 minuter == 300 sekunder"
+
+msgid "minutes"
+msgstr "minutrar"
+
+msgid "missing / required"
+msgstr "saknas / behövs"
+
+msgid "must be greater or equal 'Check Interval'"
+msgstr ""
+
+msgid "must start with 'http://'"
+msgstr "måste börja med 'http://"
+
+msgid "nc (netcat) can not connect"
+msgstr "nc (netcat) kan inte ansluta"
+
+msgid "never"
+msgstr "aldrig"
+
+msgid "no data"
+msgstr "ingen data"
+
+msgid "not found or not executable - Sample: '/path/to/script.sh'"
+msgstr ""
+
+msgid "nslookup can not resolve host"
+msgstr ""
+
+msgid "or"
+msgstr "eller"
+
+msgid "or higher"
+msgstr "eller större"
+
+msgid "please disable"
+msgstr "vänligen inaktivera"
+
+msgid "please remove entry"
+msgstr "vänligen ta bort inmatningen"
+
+msgid "please select 'IPv4' address version"
+msgstr "vänligen välj version för 'IPv4'-adress"
+
+msgid "please select 'IPv4' address version in"
+msgstr ""
+
+msgid "please set to 'default'"
+msgstr ""
+
+msgid "proxy port missing"
+msgstr ""
+
+msgid "required"
+msgstr "behövs"
+
+msgid "seconds"
+msgstr "sekunder"
+
+msgid "to run HTTPS without verification of server certificates (insecure)"
+msgstr "för att köra HTTPS utan verifiering av server-certifikaten (osäkert)"
+
+msgid "unknown error"
+msgstr "okänt fel"
+
+msgid "unspecific error"
+msgstr "ospecifierat fel"
+
+msgid "use hostname, FQDN, IPv4- or IPv6-Address"
+msgstr "använd värdnamn, FQDN, IPv4- eller IPv6-adress"
diff --git a/applications/luci-app-ddns/po/zh-cn/ddns.po b/applications/luci-app-ddns/po/zh-cn/ddns.po
index 91bb756b37..f004f8282f 100644
--- a/applications/luci-app-ddns/po/zh-cn/ddns.po
+++ b/applications/luci-app-ddns/po/zh-cn/ddns.po
@@ -1,18 +1,22 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2015-04-23 13:00+0800\n"
-"Last-Translator: Syrone Wong \n"
+"PO-Revision-Date: 2017-10-29 14:14+0800\n"
+"Last-Translator: Yangfl \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.4\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Language-Team: \n"
msgid "&"
-msgstr ""
+msgstr "&"
msgid "-- custom --"
msgstr "-- èªå®ä¹ --"
@@ -24,7 +28,7 @@ msgid "Advanced Settings"
msgstr "é«çº§è®¾ç½®"
msgid "Allow non-public IP's"
-msgstr "å
许éå
¬ç½IP"
+msgstr "å
许éå
¬ç½ IP"
msgid "Applying changes"
msgstr "æ£å¨åºç¨æ´æ¹"
@@ -35,11 +39,11 @@ msgstr "åºç¡è®¾ç½®"
msgid ""
"Below a list of configuration tips for your system to run Dynamic DNS "
"updates without limitations"
-msgstr "以ä¸æ¯ä¸ä¸ªè½å¤è®©ä½ çç³»ç»ä¸åéå¶å°è¿è¡å¨æDNSæ´æ°ç设置贴士."
+msgstr "以ä¸æ¯ä¸ä¸ªè½å¤è®©æ¨çç³»ç»ä¸åéå¶å°è¿è¡å¨æ DNS æ´æ°è®¾ç½®çæ示å表"
msgid ""
"Below is a list of configured DDNS configurations and their current state."
-msgstr "ä¸ä¸æ¯å½åå·²ç»é
置好çDDNS设置项å表以åå®ä»¬çå½åç¶æ."
+msgstr "以ä¸æ¯å½åå·²ç»é
置好ç DDNS 设置项å表以åå®ä»¬çå½åç¶æã"
msgid "Bind Network"
msgstr "使ç¨çæ¥å£"
@@ -50,23 +54,27 @@ msgstr "ä¸æ¯æç»å®å°ä¸ä¸ªæå®çç½ç»"
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider!"
-msgstr "ä¸DDNSä¾åºåé讯æ¶BusyBoxçnslookupåWgetä¸æ¯æ设置ç¹å®çIPåè®®çæ¬."
+msgstr ""
+"ä¸ DDNS ä¾åºåé讯æ¶ï¼BusyBox ç nslookup å Wget ä¸æ¯æ设置ç¹å®ç IP åè®®ç"
+"æ¬ã"
msgid ""
"BusyBox's nslookup and hostip do not support to specify to use TCP instead "
"of default UDP when requesting DNS server!"
msgstr ""
+"å DNS æå¡å¨æ¥è¯¢æ¶ï¼BusyBox ç nslookup å hostip ä¸æ¯æä½¿ç¨ TCP èä¸æ¯é»è®¤"
+"ç UDPï¼"
msgid ""
"BusyBox's nslookup in the current compiled version does not handle given DNS "
"Servers correctly!"
-msgstr ""
+msgstr "å½åç¼è¯çæ¬ä¸ BusyBox ç nslookup å¨å¤çç»å®ç DNS æå¡å¨ä¸æ£ç¡®ï¼"
msgid "Casual users should not change this setting"
msgstr "æ®éç¨æ·ä¸åºè¯¥æ¹åè¿ä¸ªè®¾ç½®"
msgid "Change provider"
-msgstr ""
+msgstr "æ´æ¹æä¾è
"
msgid "Check Interval"
msgstr "æ£æ¥æ¶é´å¨æ"
@@ -83,10 +91,10 @@ msgstr "设置"
msgid ""
"Configure here the details for all Dynamic DNS services including this LuCI "
"application."
-msgstr "å¨è¿éä¿®æ¹å¨æDNSæå¡ç详ç»é
ç½®"
+msgstr "å¨è¿éä¿®æ¹å¨æ DNS æå¡ç详ç»é
ç½®ã"
msgid "Configure here the details for selected Dynamic DNS service."
-msgstr "å¨è¿éä¿®æ¹éæ©çDDNSæå¡ç详ç»é
ç½®"
+msgstr "å¨è¿éä¿®æ¹éæ©ç DDNS æå¡ç详ç»é
ç½®ã"
msgid "Current setting"
msgstr "å½å设置"
@@ -96,76 +104,76 @@ msgid ""
">This is the default if you run DDNS scripts by yourself (i.e. via cron with "
"force_interval set to '0')"
msgstr ""
-"ç°å¨,DDNSæ´æ°å¨å¼æºæè
æ¥å£å¨ä½æ¶ä¸ä¼è¢«è§¦å å¦æä½ æå·¥è¿è¡DDNSèæ¬çè¯"
-"(ä¾å¦ä½¿ç¨cronæ¶æforce_interval设置为0),è¿æ¯é»è®¤è®¾ç½®."
+"ç°å¨ï¼DDNS æ´æ°å¨å¼æºæè
æ¥å£å¨ä½æ¶ä¸ä¼è¢«è§¦åã å¦ææ¨æå·¥è¿è¡ DDNS èæ¬"
+"çè¯ï¼ä¾å¦ä½¿ç¨ cron æ¶æ force_interval 设置为 0ï¼ï¼è¿æ¯é»è®¤è®¾ç½®ã"
msgid ""
"Currently DDNS updates are not started at boot or on interface events. You can start/stop each configuration here. It will run until next reboot."
msgstr ""
-"ç°å¨,DDNSæ´æ°å¨å¼æºæè
æ¥å£å¨ä½æ¶ä¸ä¼è¢«è§¦å ä½ å¯ä»¥å¨è¿éå¼å§/åæ¢æ¯ä¸ä¸ª"
-"设置çæ¡ç®.å®å¨ä¸æ¬¡éå¯ä¹åä¸ç´ææ."
+"ç°å¨ï¼DDNS æ´æ°å¨å¼æºæè
æ¥å£å¨ä½æ¶ä¸ä¼è¢«è§¦åã æ¨å¯ä»¥å¨è¿éå¼å§/åæ¢æ¯"
+"ä¸ä¸ªè®¾ç½®çæ¡ç®ãå®å¨ä¸æ¬¡éå¯ä¹åä¸ç´ææã"
msgid "Custom update script to be used for updating your DDNS Provider."
-msgstr "ç¨æ¥æ´æ°å¨æDNSçèªå®ä¹èæ¬"
+msgstr "ç¨æ¥æ´æ°å¨æ DNS çèªå®ä¹èæ¬ã"
msgid "Custom update-URL"
-msgstr "èªå®ä¹æ´æ°URL"
+msgstr "èªå®ä¹æ´æ° URL"
msgid "Custom update-script"
msgstr "èªå®ä¹æ´æ°èæ¬"
msgid "DDNS Autostart disabled"
-msgstr "DDNSèªå¨å¯å¨å·²ç¦ç¨."
+msgstr "DDNS èªå¨å¯å¨å·²ç¦ç¨ã"
msgid "DDNS Client Configuration"
-msgstr ""
+msgstr "DDNS 客æ·ç«¯é
ç½®"
msgid "DDNS Client Documentation"
-msgstr ""
+msgstr "DDNS 客æ·ç«¯ææ¡£"
msgid "DDNS Service provider"
-msgstr "DDNSæå¡æä¾å"
+msgstr "DDNS æå¡æä¾å"
msgid "DNS requests via TCP not supported"
-msgstr "ä¸æ¯æ使ç¨TCPè¿è¡DNS解æ"
+msgstr "ä¸æ¯æä½¿ç¨ TCP è¿è¡ DNS 解æ"
msgid "DNS-Server"
-msgstr "DNSæå¡å¨"
+msgstr "DNS-æå¡å¨"
msgid "Date format"
msgstr "æ¥ææ ¼å¼"
msgid "Defines the Web page to read systems IPv4-Address from"
-msgstr "设å®ç¨æ¥è¯»åç³»ç»IPv4å°åçç½é¡µ"
+msgstr "设å®ç¨æ¥è¯»åç³»ç» IPv4 å°åçç½é¡µ"
msgid "Defines the Web page to read systems IPv6-Address from"
-msgstr "设å®ç¨æ¥è¯»åç³»ç»IPv6å°åçç½é¡µ"
+msgstr "设å®ç¨æ¥è¯»åç³»ç» IPv6 å°åçç½é¡µ"
msgid "Defines the interface to read systems IP-Address from"
-msgstr "设å®ç¨æ¥è¯»åç³»ç»IPå°åçæ¥å£"
+msgstr "设å®ç¨æ¥è¯»åç³»ç» IP å°åçæ¥å£"
msgid "Defines the network to read systems IPv4-Address from"
-msgstr "设å®ç¨æ¥è¯»åç³»ç»IPv4å°åçç½ç»"
+msgstr "设å®ç¨æ¥è¯»åç³»ç» IPv4 å°åçç½ç»"
msgid "Defines the network to read systems IPv6-Address from"
-msgstr "设å®ç¨æ¥è¯»åç³»ç»IPv6å°åçç½ç»"
+msgstr "设å®ç¨æ¥è¯»åç³»ç» IPv6 å°åçç½ç»"
msgid ""
"Defines the source to read systems IPv4-Address from, that will be send to "
"the DDNS provider"
-msgstr "设å®IPv4å°åçæ¥æº.è¿å°ä¼è¢«åéç»DDNSæä¾å"
+msgstr "è®¾å® IPv4 å°åçæ¥æºãè¿å°ä¼è¢«åéç» DDNS æä¾å"
msgid ""
"Defines the source to read systems IPv6-Address from, that will be send to "
"the DDNS provider"
-msgstr "设å®IPv6å°åçæ¥æº.è¿å°ä¼è¢«åéç»DDNSæä¾å"
+msgstr "è®¾å® IPv6 å°åçæ¥æºãè¿å°ä¼è¢«åéç» DDNS æä¾å"
msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider"
-msgstr "设å®åªä¸ä¸ªIPå°å(IPv4æIPv6)ä¼è¢«åéç»DDNSæä¾å"
+msgstr "设å®åªä¸ä¸ª IP å°åï¼IPv4 æ IPv6ï¼ä¼è¢«åéç» DDNS æä¾å"
msgid "Details for"
-msgstr "详æ
:"
+msgstr "详æ
"
msgid "Directory contains Log files for each running section"
msgstr "ä¿åæ¯ä¸ä¸ªè¿è¡ä¸ç设置çè¿è¡æ¥å¿çç®å½"
@@ -178,18 +186,18 @@ msgid "Disabled"
msgstr "å·²ç¦ç¨"
msgid "Domain"
-msgstr ""
+msgstr "åå"
msgid "Dynamic DNS"
-msgstr "å¨æDNS"
+msgstr "å¨æ DNS"
msgid ""
"Dynamic DNS allows that your router can be reached with a fixed hostname "
"while having a dynamically changing IP address."
-msgstr "å¨æDNSå
许为æ¥æå¨æIPç主æºé
ç½®ä¸ä¸ªåºå®çå¯è®¿é®åå."
+msgstr "å¨æ DNS å
许为æ¥æå¨æ IP ç主æºé
ç½®ä¸ä¸ªåºå®çå¯è®¿é®ååã"
msgid "Enable secure communication with DDNS provider"
-msgstr "å¯ç¨å®å
¨è¿æ¥ä¸DDNSä¾åºåèç³»"
+msgstr "å¯ç¨å®å
¨è¿æ¥ä¸ DDNS æä¾åèç³»"
msgid "Enabled"
msgstr "å·²å¯ç¨"
@@ -219,8 +227,8 @@ msgid ""
"Follow this link You will find more hints to optimize your system to "
"run DDNS scripts with all options"
msgstr ""
-"æå¼è¿ä¸ªé¾æ¥ ä½ å°ä¼å¾å°æ´å¤å
³äºå¦ä½éè¿ææ设置项ä¼åä½ çç³»ç»ä»¥è¿è¡DDNS"
-"èæ¬çæ示."
+"æå¼è¿ä¸ªé¾æ¥ æ¨å°ä¼å¾å°æ´å¤å
³äºå¦ä½éè¿ææ设置项ä¼åæ¨çç³»ç»ä»¥è¿è¡ "
+"DDNS èæ¬çæ示"
msgid "For detailed information about parameter settings look here."
msgstr "请çè¿éè·å¾å
³äºåæ°è®¾ç½®ç详ç»ä¿¡æ¯"
@@ -229,91 +237,92 @@ msgid "For supported codes look here"
msgstr "æ¥çè¿éè·åæ¯æçç¼ç "
msgid "Force IP Version"
-msgstr "强å¶è®¾å®IPçæ¬"
+msgstr "强å¶è®¾å® IP çæ¬"
msgid "Force IP Version not supported"
-msgstr "ä¸æ¯æ强å¶è®¾å®IPçæ¬"
+msgstr "ä¸æ¯æ强å¶è®¾å® IP çæ¬"
msgid "Force Interval"
msgstr "设å®å¨æ"
msgid "Force TCP on DNS"
-msgstr "强å¶ä½¿ç¨TCPè¿è¡DNSæ¥è¯¢"
+msgstr "强å¶ä½¿ç¨ TCP è¿è¡ DNS æ¥è¯¢"
msgid "Forced IP Version don't matched"
-msgstr "强å¶è®¾å®çIPçæ¬ä¸å¹é
"
+msgstr "强å¶è®¾å®ç IP çæ¬ä¸å¹é
"
msgid "Format"
msgstr "æ ¼å¼"
msgid "Format: IP or FQDN"
-msgstr "æ ¼å¼:IPæè
FQDN"
+msgstr "æ ¼å¼ï¼IP æè
FQDN"
msgid ""
"GNU Wget will use the IP of given network, cURL will use the physical "
"interface."
-msgstr "GNU Wgetå°ä¼ä½¿ç¨ç»å®çç½ç»çIPå°å,ècURLå°ä¼ä½¿ç¨ç©çæ¥å£"
+msgstr "GNU Wget å°ä¼ä½¿ç¨ç»å®çç½ç»ç IP å°åï¼è cURL å°ä¼ä½¿ç¨ç©çæ¥å£ã"
msgid "Global Settings"
msgstr "å
¨å±è®¾ç½®"
msgid "HTTPS not supported"
-msgstr "ä¸æ¯æHTTPS"
+msgstr "ä¸æ¯æ HTTPS"
msgid "Hints"
msgstr "æ示"
msgid "Hostname/FQDN to validate, if IP update happen or necessary"
-msgstr ""
+msgstr "主æºå/FQDN éªè¯ï¼å¦æ IP æ´æ°åçæå¿
è¦"
msgid "IP address source"
-msgstr "IPå°åæ¥æº"
+msgstr "IP å°åæ¥æº"
msgid "IP address version"
-msgstr "IPå°åçæ¬"
+msgstr "IP å°åçæ¬"
msgid "IPv4-Address"
-msgstr "IPv4å°å"
+msgstr "IPv4 å°å"
msgid "IPv6 address must be given in square brackets"
-msgstr "IPv6å°åå¿
须填åå¨ä¸æ¬å·(\"[ ]\")å
"
+msgstr "IPv6 å°åå¿
须填åå¨ä¸æ¬å·ï¼\"[ ]\"ï¼å
"
msgid ""
"IPv6 is currently not (fully) supported by this system Please follow "
"the instructions on OpenWrt's homepage to enable IPv6 support or update "
"your system to the latest OpenWrt Release"
msgstr ""
-"å½åç³»ç»ææ¶ä¸è½(å®æ´å°)æ¯æIPv6 请æ¥çOpenWrté¦é¡µçä»ç»ä»¥å¯ç¨IPv6æ¯æ"
-" æè
æ´æ°ä½ çç³»ç»å°ææ°OpenWrtçæ¬"
+"å½åç³»ç»ææ¶ä¸è½ï¼å®æ´å°ï¼æ¯æ IPv6 请æ¥ç OpenWrt é¦é¡µçä»ç»ä»¥å¯ç¨ "
+"IPv6 æ¯æ æè
æ´æ°æ¨çç³»ç»å°ææ° OpenWrt çæ¬"
msgid "IPv6 not supported"
-msgstr "IPv6ä¸è¢«æ¯æ"
+msgstr "IPv6 ä¸è¢«æ¯æ"
msgid "IPv6-Address"
-msgstr "IPv6å°å"
+msgstr "IPv6 å°å"
msgid "If both cURL and GNU Wget are installed, Wget is used by default."
-msgstr "å¦æcURLåGNU Wgetåæ¶è¢«å®è£
,é£ä¹Wgetå°ä¼è¢«ä¼å
使ç¨."
+msgstr "å¦æ cURL å GNU Wget åæ¶è¢«å®è£
ï¼é£ä¹ Wget å°ä¼è¢«ä¼å
使ç¨ã"
msgid ""
"If this service section is disabled it could not be started. Neither "
"from LuCI interface nor from console"
msgstr ""
-"å¦ææå¡é
置被ç¦ç¨é£ä¹å®å°ä¸è½è¢«å¯å¨. æ 论æ¯éè¿LuCI页é¢æè
æ¯éè¿ç»ç«¯."
+"å¦ææå¡é
置被ç¦ç¨ï¼é£ä¹å®å°ä¸è½è¢«å¯å¨ã æ 论æ¯éè¿ LuCI 页é¢æè
æ¯éè¿"
+"ç»ç«¯ã"
msgid "If using secure communication you should verify server certificates!"
-msgstr ""
+msgstr "å¦æ使ç¨å®å
¨éä¿¡ï¼æ¨åºè¯¥éªè¯æå¡å¨è¯ä¹¦ï¼"
msgid ""
"If you want to send updates for IPv4 and IPv6 you need to define two "
"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
msgstr ""
-"å¦æä½ éè¦åæ¶æ´æ°IPv4åIPv6å°å,ä½ éè¦åç¬æ·»å 两个é
置项(ä¾"
-"å¦'myddns_ipv4'å'myddns_ipv6')"
+"å¦ææ¨éè¦åæ¶æ´æ° IPv4 å IPv6 å°åï¼æ¨éè¦åç¬æ·»å 两个é
置项ï¼ä¾"
+"å¦'myddns_ipv4'å'myddns_ipv6'ï¼"
msgid ""
"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
-msgstr "OpenWrtä¸,cURL/libcurlçæäºçæ¬ç¼è¯æ¶æ²¡æå¯ç¨ä»£çæå¡å¨æ¯æ"
+msgstr "OpenWrt ä¸ï¼cURL/libcurl çæäºçæ¬ç¼è¯æ¶æ²¡æå¯ç¨ä»£çæå¡å¨æ¯æ"
msgid "Info"
msgstr "ä¿¡æ¯"
@@ -322,6 +331,7 @@ msgid ""
"Install 'ca-certificates' package or needed certificates by hand into /etc/"
"ssl/certs default directory"
msgstr ""
+"æå¨å°âca-certificatesâå
æéè¦çè¯ä¹¦å®è£
å° /etc/ssl/certs çé»è®¤ç®å½ä¸"
msgid "Interface"
msgstr "æ¥å£"
@@ -329,18 +339,18 @@ msgstr "æ¥å£"
msgid ""
"Interval to check for changed IP Values below 5 minutes == 300 seconds "
"are not supported"
-msgstr "æ£æ¥IPæ¯å¦æ¹åçæ¶é´é ä¸æ¯æä½äº5åé(300ç§)çæ°å¼."
+msgstr "æ£æ¥ IP æ¯å¦æ¹åçæ¶é´é ä¸æ¯æå°äº 5 åéï¼300 ç§ï¼çæ°å¼ã"
msgid ""
"Interval to force updates send to DDNS Provider Setting this parameter "
"to 0 will force the script to only run once Values lower 'Check "
"Interval' except '0' are not supported"
msgstr ""
-"强å¶åæä¾åæ´æ°DDNSçæ¶é´å¨æ æè¿ä¸ªåæ°è®¾ç½®ä¸º0å°ä¼è®©èæ¬ä»
æ§è¡ä¸æ¬¡"
-" ä¸æ¯æä½äº\"æ£æ¥æ¶é´å¨æ\"çæ°å¼(é¤äº0)."
+"强å¶åæä¾åæ´æ° DDNS çæ¶é´å¨æ å°è¿ä¸ªåæ°è®¾ç½®ä¸º 0 åä¼è®©èæ¬ä»
æ§è¡ä¸æ¬¡"
+" ä¸æ¯æå°äº\"æ£æ¥æ¶é´å¨æ\"çæ°å¼ï¼é¤äº 0ï¼ã"
msgid "It is NOT recommended for casual users to change settings on this page."
-msgstr "强çä¸å»ºè®®å次使ç¨çç¨æ·ä¿®æ¹æ¬é¡µè®¾å®."
+msgstr "强çä¸å»ºè®®å次使ç¨çç¨æ·ä¿®æ¹æ¬é¡µè®¾å®ã"
msgid "Last Update"
msgstr "ä¸æ¬¡æ´æ°"
@@ -364,26 +374,28 @@ msgid "Log to syslog"
msgstr "ææ¥å¿è®°å½å°ç³»ç»æ¥å¿"
msgid "Lookup Hostname"
-msgstr ""
+msgstr "æ¥è¯¢ä¸»æºå"
msgid "NOT installed"
-msgstr ""
+msgstr "æªå®è£
"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to select a network to use for "
"communication."
-msgstr "å
å«SSLæ¯æçGNU Wgetæè
cURLåæªè¢«å®è£
.æ æ³éæ©ä¸ä¸ªç½ç»ç¨äºéä¿¡."
+msgstr "å
å« SSL æ¯æç GNU Wget æè
cURL åæªå®è£
ï¼æ æ³éæ©ç½ç»ç¨äºéä¿¡ã"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
"HTTPS protocol."
msgstr ""
+"å
å« SSL æ¯æç GNU Wget æè
cURL åæªå®è£
ï¼æ æ³éè¿ HTTPS åè®®è¿è¡å®å
¨çæ´"
+"æ°ã"
msgid "Network"
msgstr "ç½ç»"
msgid "Network on which the ddns-updater scripts will be started"
-msgstr "DDNSæ´æ°èæ¬å°ä¼è¢«è¿è¡äºè¯¥ç½ç»"
+msgstr "DDNS æ´æ°èæ¬å°ä¼è¿è¡äºè¯¥ç½ç»"
msgid "Never"
msgstr "ä»ä¸"
@@ -392,7 +404,7 @@ msgid "Next Update"
msgstr "ä¸æ¬¡æ´æ°"
msgid "No certificates found"
-msgstr ""
+msgstr "æ¾ä¸å°è¯ä¹¦"
msgid "No data"
msgstr "æ æ°æ®"
@@ -401,7 +413,7 @@ msgid "No logging"
msgstr "æ æ¥å¿"
msgid "Non-public and by default blocked IP's"
-msgstr "éå
¬ç½IP以åé»è®¤è¢«éå®çIP"
+msgstr "éå
¬ç½ IP 以åé»è®¤è¢«éå®ç IP"
msgid "Notice"
msgstr "æ示"
@@ -410,40 +422,40 @@ msgid "Number of last lines stored in log files"
msgstr "æ¥å¿æ件ä¸çæåå è¡"
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
-msgstr "å¯é:强å¶ä½¿ç¨ä»
IPv4/IPv6éä¿¡."
+msgstr "å¯éï¼å¼ºå¶ä»
ä½¿ç¨ IPv4/IPv6 éä¿¡ã"
msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests."
-msgstr "å¯é:强å¶ä½¿ç¨TCPèéUDP请æ±DNS."
+msgstr "å¯éï¼å¼ºå¶ä½¿ç¨ TCP èé UDP è¯·æ± DNSã"
msgid "OPTIONAL: Network to use for communication"
-msgstr "å¯é:ç¨äºéä¿¡çç½ç»"
+msgstr "å¯éï¼ç¨äºéä¿¡çç½ç»"
msgid "OPTIONAL: Proxy-Server for detection and updates."
-msgstr "å¯é:ç¨äºæ£æµä»¥åæ´æ°ç代çæå¡å¨"
+msgstr "å¯éï¼ç¨äºæ£æµä»¥åæ´æ°ç代çæå¡å¨ã"
msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'."
-msgstr "å¯é:使ç¨éé»è®¤DNSæå¡å¨æ£æµ\"已注åçIPå°å\""
+msgstr "å¯éï¼ä½¿ç¨éé»è®¤ DNS æå¡å¨æ£æµ\"已注åç IP å°å\"ã"
msgid "On Error the script will retry the failed action after given time"
-msgstr "å½åºéæ¶,èæ¬å°ä¼éè¯å¤±è´¥çå¨ä½ç次æ°"
+msgstr "å½åºéæ¶ï¼èæ¬å°ä¼éè¯å¤±è´¥çå¨ä½ç次æ°"
msgid "On Error the script will stop execution after given number of retrys"
-msgstr "å½åºéæ¶,èæ¬å°ä¼éè¯è¯¥æ¬¡æ°ä¹åéåº"
+msgstr "å½åºéæ¶ï¼èæ¬å°ä¼éè¯è¯¥æ¬¡æ°ä¹åéåº"
msgid "OpenWrt Wiki"
-msgstr ""
+msgstr "OpenWrt Wiki"
msgid "Optional Encoded Parameter"
-msgstr ""
+msgstr "å¯éç¼ç åæ°"
msgid "Optional Parameter"
-msgstr ""
+msgstr "å¯éåæ°"
msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "å¯éï¼æ¿æ¢æ´æ° URLï¼å·²ç¼ç URLï¼ä¸ç [PARAMENC]"
msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
-msgstr ""
+msgstr "å¯éï¼æ¿æ¢æ´æ° URLï¼æªç¼ç URLï¼ä¸ç [PARAMENC]"
msgid "Overview"
msgstr "æ»è§"
@@ -458,7 +470,7 @@ msgid "Password"
msgstr "å¯ç "
msgid "Path to CA-Certificate"
-msgstr "CAè¯ä¹¦è·¯å¾"
+msgstr "CA è¯ä¹¦è·¯å¾"
msgid "Please [Save & Apply] your changes first"
msgstr "请å
ä¿å并åºç¨æ¨ç设置"
@@ -470,25 +482,25 @@ msgid "Please update to the current version!"
msgstr "请æ´æ°å°ææ°çæ¬!"
msgid "Process ID"
-msgstr "å¤çID"
+msgstr "è¿ç¨ ID"
msgid "Read / Reread log file"
msgstr "读å/éæ°è¯»åæ¥å¿æ件"
msgid "Really change DDNS provider?"
-msgstr ""
+msgstr "ç¡®å®æ´æ¹ DDNS æä¾ååï¼"
msgid "Registered IP"
-msgstr "已注åçIPå°å"
+msgstr "已注åç IP å°å"
msgid "Replaces [DOMAIN] in Update-URL"
-msgstr "å¨æ´æ°URLä¸ä½¿ç¨[DOMAIN]æ¿æ¢åå"
+msgstr "æ¿æ¢æ´æ° URL ä¸ç [DOMAIN]"
msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)"
-msgstr "å¨æ´æ°URLä¸ä½¿ç¨[PASSWORD]æ¿æ¢å¯ç "
+msgstr "æ¿æ¢æ´æ° URLï¼å·²ç¼ç URLï¼ä¸ç [PASSWORD]"
msgid "Replaces [USERNAME] in Update-URL (URL-encoded)"
-msgstr "å¨æ´æ°URLä¸ä½¿ç¨[USERNAME]æ¿æ¢ç¨æ·å"
+msgstr "æ¿æ¢æ´æ° URLï¼å·²ç¼ç URLï¼ä¸ç [USERNAME]"
msgid "Run once"
msgstr "è¿è¡ä¸æ¬¡"
@@ -503,13 +515,13 @@ msgid "Software update required"
msgstr "éè¦è¿è¡è½¯ä»¶æ´æ°"
msgid "Specifying a DNS-Server is not supported"
-msgstr ""
+msgstr "ä¸æ¯ææå® DNS æå¡å¨"
msgid "Start"
-msgstr "å¯ç¨"
+msgstr "å¯å¨"
msgid "Start / Stop"
-msgstr "å¯ç¨/ç¦ç¨"
+msgstr "å¯å¨ / åæ¢"
msgid "Status directory"
msgstr "ç¶æç®å½"
@@ -523,7 +535,7 @@ msgid ""
msgstr "å½åå·²å®è£
ç'ddns-scripts'软件å
æä¸æ¯æææå¯ç¨è®¾ç½®é¡¹"
msgid "The default setting of '0' will retry infinite."
-msgstr ""
+msgstr "é»è®¤è®¾ç½®â0âå°æ ééè¯ã"
msgid "There is no service configured."
msgstr "没æå·²ç»é
置好çæå¡é¡¹"
@@ -532,16 +544,16 @@ msgid "Timer Settings"
msgstr "计æ¶å¨è®¾å®"
msgid "To change global settings click here"
-msgstr "ç¹å»è¿é以æ´æ¹å
¨å±è®¾ç½®"
+msgstr "ç¹å»è¿éæ´æ¹å
¨å±è®¾ç½®"
msgid "To use cURL activate this option."
-msgstr "éä¸è¿ä¸ªé¡¹ä»¥ä½¿ç¨cURL"
+msgstr "éä¸æ¤é¡¹ä»¥ä½¿ç¨ cURL"
msgid "URL"
msgstr "URL"
msgid "URL to detect"
-msgstr "ç¨äºæ£æµçURL"
+msgstr "ç¨äºæ£æµç URL"
msgid "Unknown error"
msgstr "æªç¥é误"
@@ -550,25 +562,26 @@ msgid ""
"Update URL to be used for updating your DDNS Provider. Follow "
"instructions you will find on their WEB page."
msgstr ""
-"DDNSæä¾åç¨äºæ´æ°DDNSçURL è·éæç¨ä½ å°ä¼å¨å®ä»¬çç½ç«ä¸æä¾è¿ä¸ªURL."
+"DDNS æä¾åç¨äºæ´æ° DDNS ç URLã è·éæç¨ï¼æ¨å¯ä»¥å¨å®ä»¬çç½ç«ä¸æ¾å°è¿"
+"个 URLã"
msgid "Update error"
msgstr "æ´æ°é误"
msgid "Use HTTP Secure"
-msgstr "使ç¨HTTPS"
+msgstr "ä½¿ç¨ HTTPS"
msgid "Use cURL"
-msgstr "使ç¨cURL"
+msgstr "ä½¿ç¨ cURL"
msgid "User defined script to read systems IP-Address"
-msgstr "使ç¨è®¾å®çèæ¬æ¥è¯»åç³»ç»IPå°å"
+msgstr "使ç¨è®¾å®çèæ¬æ¥è¯»åç³»ç» IP å°å"
msgid "Username"
msgstr "ç¨æ·å"
msgid "Using specific DNS Server not supported"
-msgstr ""
+msgstr "ä¸æ¯æ使ç¨ç¹å®ç DNS æå¡å¨"
msgid "Verify"
msgstr "éªè¯"
@@ -587,49 +600,51 @@ msgstr "çå¾
"
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
-msgstr "åæ¥å¿ä¸åå
¥è¯¦ç»ä¿¡æ¯.æ件å°ä¼è¢«èªå¨åå°."
+msgstr "åæ¥å¿ä¸åå
¥è¯¦ç»ä¿¡æ¯ãæ件å°èªå¨ç¼©å°ã"
msgid ""
"Writes log messages to syslog. Critical Errors will always be written to "
"syslog."
-msgstr "ææ¥å¿åå
¥ç³»ç»æ¥å¿.æ 论æ¯å¦å¯ç¨è¿é¡¹,é误信æ¯æ»æ¯ä¼è¢«åå
¥ç³»ç»æ¥å¿"
+msgstr "ææ¥å¿åå
¥ç³»ç»æ¥å¿ãæ 论æ¯å¦å¯ç¨è¿é¡¹ï¼é误信æ¯æ»æ¯ä¼è¢«åå
¥ç³»ç»æ¥å¿ã"
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
+"å¦ææ¨éè¦æå® DNS æå¡å¨æ¥æ£æµæ¨æ³¨åç IPï¼æ¨åºè¯¥å®è£
âbind-hostâæâknot-"
+"hostâæâdrillâæâhostipâ软件å
ã"
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
"requests."
-msgstr ""
+msgstr "æ¨åºè¯¥ä¸º DNS 请æ±å®è£
âbind-hostâæâknot-hostâæâdrillâ软件å
ã"
msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
-msgstr ""
+msgstr "æ¨åºè¯¥å®è£
âwgetâæâcurlâæâuclient-fetchâ软件å
ã"
msgid ""
"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
"*ssl' package."
-msgstr ""
+msgstr "æ¨åºè¯¥å®è£
âwgetâæâcurlâæâuclient-fetchâï¼åâlibustream-*sslâ软件å
ã"
msgid "You should install 'wget' or 'curl' package."
-msgstr ""
+msgstr "æ¨åºè¯¥å®è£
âwgetâæâcurlâ软件å
ã"
msgid ""
"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
-msgstr ""
+msgstr "æ¨åºè¯¥å®è£
âwgetâæâuclient-fetchâ软件å
ï¼ææ¿æ¢ libcurlã"
msgid "cURL is installed, but libcurl was compiled without proxy support."
-msgstr "cURLå·²ç»å®è£
,ä½æ¯libcurlç¼è¯æ¶æ²¡æå¯ç¨ä»£çæ¯æ."
+msgstr "cURL å·²ç»å®è£
ï¼ä½æ¯ libcurl ç¼è¯æ¶æ²¡æå¯ç¨ä»£çæ¯æã"
msgid "cURL without Proxy Support"
-msgstr "cURLä¸å
å«ä»£çæ¯æ"
+msgstr "cURL 没æå
å«ä»£çæ¯æ"
msgid "can not detect local IP. Please select a different Source combination"
-msgstr "ä¸è½ç¡®å®æ¬å°IP.请æ´æ¢IPæ¥æº."
+msgstr "æ æ³ç¡®å®æ¬å° IPã请æ´æ¢ IP æ¥æºã"
msgid "can not resolve host:"
-msgstr "ä¸è½è§£æ主æº:"
+msgstr "æ æ³è§£æ主æºï¼"
msgid "config error"
msgstr "é
ç½®é误"
@@ -641,7 +656,7 @@ msgid "directory or path/file"
msgstr "ç®å½æè
å°æ件çè·¯å¾"
msgid "either url or script could be set"
-msgstr "æ¥åURLæè
èæ¬"
+msgstr "æ¥å URL æè
èæ¬"
msgid "enable here"
msgstr "å¨è¿éå¯ç¨"
@@ -659,16 +674,16 @@ msgid "installed"
msgstr "å·²å®è£
"
msgid "invalid FQDN / required - Sample"
-msgstr ""
+msgstr "FQDN æ æ / å¿
é - 示ä¾"
msgid "minimum value '0'"
-msgstr "æå°å¼0"
+msgstr "æå°å¼ 0"
msgid "minimum value '1'"
-msgstr "æå°å¼1"
+msgstr "æå°å¼ 1"
msgid "minimum value 5 minutes == 300 seconds"
-msgstr "æå°å¼ä¸º5åé(300ç§)"
+msgstr "æå°å¼ä¸º 5 åéï¼300 ç§ï¼"
msgid "minutes"
msgstr "åé"
@@ -683,7 +698,7 @@ msgid "must start with 'http://'"
msgstr "å¿
须以'http://'å¼å¤´"
msgid "nc (netcat) can not connect"
-msgstr "nc(netcat)ä¸å¯è¿æ¥"
+msgstr "ncï¼netcatï¼ä¸å¯è¿æ¥"
msgid "never"
msgstr "ä»ä¸"
@@ -692,10 +707,10 @@ msgid "no data"
msgstr "æ æ°æ®"
msgid "not found or not executable - Sample: '/path/to/script.sh'"
-msgstr "æªæ¾å°æè
ä¸å¯æ§è¡ - 示ä¾: '/path/to/script.sh'"
+msgstr "æªæ¾å°æè
ä¸å¯æ§è¡ - 示ä¾ï¼â/path/to/script.shâ"
msgid "nslookup can not resolve host"
-msgstr "nslookupä¸è½è§£æ主æº"
+msgstr "nslookup ä¸è½è§£æ主æº"
msgid "or"
msgstr "æè
"
@@ -710,10 +725,10 @@ msgid "please remove entry"
msgstr "请移é¤è¯¥å段"
msgid "please select 'IPv4' address version"
-msgstr "请设å®IPv4å°å"
+msgstr "è¯·è®¾å® IPv4 å°å"
msgid "please select 'IPv4' address version in"
-msgstr "请设å®IPv4å°åäº"
+msgstr "è¯·è®¾å® IPv4 å°åäº"
msgid "please set to 'default'"
msgstr "请设置为\"é»è®¤\""
@@ -728,7 +743,7 @@ msgid "seconds"
msgstr "ç§"
msgid "to run HTTPS without verification of server certificates (insecure)"
-msgstr "使ç¨HTTPSä½ä¸æ£æ¥æå¡å¨è¯ä¹¦(ä¸å®å
¨)"
+msgstr "ä½¿ç¨ HTTPS ä½ä¸æ£æ¥æå¡å¨è¯ä¹¦ï¼ä¸å®å
¨ï¼"
msgid "unknown error"
msgstr "æªç¥é误"
@@ -737,7 +752,7 @@ msgid "unspecific error"
msgstr "æªæå®çé误"
msgid "use hostname, FQDN, IPv4- or IPv6-Address"
-msgstr "使ç¨ä¸»æºåæIPv4/IPv6å°å"
+msgstr "使ç¨ä¸»æºåæ IPv4/IPv6 å°å"
#~ msgid ""
#~ "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
@@ -745,13 +760,13 @@ msgstr "使ç¨ä¸»æºåæIPv4/IPv6å°å"
#~ msgstr "å
å«SSLæ¯æçGNU Wgetæè
cURLåæªè¢«å®è£
.æ æ³ä½¿ç¨HTTPSæ´æ°DDNS"
#~ msgid "You should install BIND host package for DNS requests."
-#~ msgstr "ä½ éè¦å®è£
BIND以请æ±DNSè®°å½."
+#~ msgstr "æ¨éè¦å®è£
BIND以请æ±DNSè®°å½."
#~ msgid "You should install GNU Wget with SSL (preferred) or cURL package."
-#~ msgstr "ä½ éè¦å®è£
å
å«SSLæ¯æçGNU Wget(æ¨è)ææ¯cURL软件å
."
+#~ msgstr "æ¨éè¦å®è£
å
å«SSLæ¯æçGNU Wget(æ¨è)ææ¯cURL软件å
."
#~ msgid "You should install GNU Wget with SSL or cURL package."
-#~ msgstr "ä½ éè¦å®è£
å
å«SSLæ¯æçGNU Wgetææ¯cURL软件å
."
+#~ msgstr "æ¨éè¦å®è£
å
å«SSLæ¯æçGNU Wgetææ¯cURL软件å
."
#~ msgid "You should install GNU Wget with SSL or replace libcurl."
-#~ msgstr "ä½ éè¦å®è£
å
å«SSLæ¯æçGNU Wgetææ¿æ¢libcurl."
+#~ msgstr "æ¨éè¦å®è£
å
å«SSLæ¯æçGNU Wgetææ¿æ¢libcurl."
diff --git a/applications/luci-app-ddns/po/zh-tw/ddns.po b/applications/luci-app-ddns/po/zh-tw/ddns.po
index ae0aaba8d9..581973bd1f 100644
--- a/applications/luci-app-ddns/po/zh-tw/ddns.po
+++ b/applications/luci-app-ddns/po/zh-tw/ddns.po
@@ -1,728 +1,772 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2013-08-07 15:53+0200\n"
-"Last-Translator: Ethan \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2017-10-29 14:14+0800\n"
+"Last-Translator: Yangfl \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.4\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Language-Team: \n"
msgid "&"
-msgstr ""
+msgstr "&"
msgid "-- custom --"
-msgstr ""
+msgstr "-- èªå®ç¾© --"
msgid "-- default --"
-msgstr ""
+msgstr "-- é è¨ --"
msgid "Advanced Settings"
-msgstr ""
+msgstr "é«éè¨å®"
msgid "Allow non-public IP's"
-msgstr ""
+msgstr "å
許éå
¬ç¶² IP"
msgid "Applying changes"
-msgstr ""
+msgstr "æ£å¨æç¨æ´æ¹"
msgid "Basic Settings"
-msgstr ""
+msgstr "åºç¤è¨å®"
msgid ""
"Below a list of configuration tips for your system to run Dynamic DNS "
"updates without limitations"
-msgstr ""
+msgstr "以ä¸æ¯ä¸åè½å¤ è®æ¨ç系統ä¸åéå¶å°é²è¡åæ
DNS æ´æ°è¨å®çæ示å表"
msgid ""
"Below is a list of configured DDNS configurations and their current state."
-msgstr ""
+msgstr "以ä¸æ¯ç¶åå·²ç¶é
置好ç DDNS è¨å®é
å表以åå®åçç¶åçæ
ã"
msgid "Bind Network"
-msgstr ""
+msgstr "使ç¨çä»é¢"
msgid "Binding to a specific network not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´ç¹«çµå°ä¸åæå®ç網路"
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider!"
msgstr ""
+"è DDNS ä¾æåéè¨æï¼BusyBox ç nslookup å Wget ä¸æ¯æ´è¨å®ç¹å®ç IP åè°ç"
+"æ¬ã"
msgid ""
"BusyBox's nslookup and hostip do not support to specify to use TCP instead "
"of default UDP when requesting DNS server!"
msgstr ""
+"å DNS 伺æå¨æ¥è©¢æï¼BusyBox ç nslookup å hostip ä¸æ¯æ´ä½¿ç¨ TCP èä¸æ¯é è¨"
+"ç UDPï¼"
msgid ""
"BusyBox's nslookup in the current compiled version does not handle given DNS "
"Servers correctly!"
-msgstr ""
+msgstr "ç¶åç·¨è¯çæ¬ä¸ BusyBox ç nslookup å¨èç給å®ç DNS 伺æå¨ä¸æ£ç¢ºï¼"
msgid "Casual users should not change this setting"
-msgstr ""
+msgstr "æ®é使ç¨è
ä¸æ該æ¹è®éåè¨å®"
msgid "Change provider"
-msgstr ""
+msgstr "æ´æ¹æä¾è
"
msgid "Check Interval"
-msgstr ""
+msgstr "檢æ¥æéé±æ"
msgid "Collecting data..."
-msgstr ""
+msgstr "æ£å¨æ¶éè³æ..."
msgid "Config error"
-msgstr ""
+msgstr "é
ç½®é¯èª¤"
msgid "Configuration"
-msgstr ""
+msgstr "è¨å®"
msgid ""
"Configure here the details for all Dynamic DNS services including this LuCI "
"application."
-msgstr ""
+msgstr "å¨é裡修æ¹åæ
DNS æåç詳細é
ç½®ã"
msgid "Configure here the details for selected Dynamic DNS service."
-msgstr ""
+msgstr "å¨é裡修æ¹é¸æç DDNS æåç詳細é
ç½®ã"
msgid "Current setting"
-msgstr ""
+msgstr "ç¶åè¨å®"
msgid ""
"Currently DDNS updates are not started at boot or on interface events. This is the default if you run DDNS scripts by yourself (i.e. via cron with "
"force_interval set to '0')"
msgstr ""
+"ç¾å¨ï¼DDNS æ´æ°å¨éæ©æè
ä»é¢åä½æä¸æ被觸ç¼ã å¦ææ¨æå·¥å·è¡ DDNS æ令碼"
+"ç話ï¼ä¾å¦ä½¿ç¨ cron ææ force_interval è¨å®çº 0ï¼ï¼éæ¯é è¨è¨å®ã"
msgid ""
"Currently DDNS updates are not started at boot or on interface events. You can start/stop each configuration here. It will run until next reboot."
msgstr ""
+"ç¾å¨ï¼DDNS æ´æ°å¨éæ©æè
ä»é¢åä½æä¸æ被觸ç¼ã æ¨å¯ä»¥å¨é裡éå§/åæ¢æ¯"
+"ä¸åè¨å®çæ¢ç®ãå®å¨ä¸æ¬¡éåä¹åä¸ç´ææã"
msgid "Custom update script to be used for updating your DDNS Provider."
-msgstr ""
+msgstr "ç¨ä¾æ´æ°åæ
DNS çèªå®ç¾©æ令碼ã"
msgid "Custom update-URL"
-msgstr "èªè¨æ´æ°çURL"
+msgstr "èªå®ç¾©æ´æ° URL"
msgid "Custom update-script"
-msgstr ""
+msgstr "èªå®ç¾©æ´æ°æ令碼"
msgid "DDNS Autostart disabled"
-msgstr ""
+msgstr "DDNS èªåååå·²ç¦ç¨ã"
msgid "DDNS Client Configuration"
-msgstr ""
+msgstr "DDNS 客æ¶ç«¯é
ç½®"
msgid "DDNS Client Documentation"
-msgstr ""
+msgstr "DDNS 客æ¶ç«¯æ件"
msgid "DDNS Service provider"
-msgstr ""
+msgstr "DDNS æåæä¾å"
msgid "DNS requests via TCP not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´ä½¿ç¨ TCP é²è¡ DNS 解æ"
msgid "DNS-Server"
-msgstr ""
+msgstr "DNS-伺æå¨"
msgid "Date format"
-msgstr ""
+msgstr "æ¥ææ ¼å¼"
msgid "Defines the Web page to read systems IPv4-Address from"
-msgstr ""
+msgstr "è¨å®ç¨ä¾è®å系統 IPv4 ä½åç網é "
msgid "Defines the Web page to read systems IPv6-Address from"
-msgstr ""
+msgstr "è¨å®ç¨ä¾è®å系統 IPv6 ä½åç網é "
msgid "Defines the interface to read systems IP-Address from"
-msgstr ""
+msgstr "è¨å®ç¨ä¾è®å系統 IP ä½åçä»é¢"
msgid "Defines the network to read systems IPv4-Address from"
-msgstr ""
+msgstr "è¨å®ç¨ä¾è®å系統 IPv4 ä½åç網路"
msgid "Defines the network to read systems IPv6-Address from"
-msgstr ""
+msgstr "è¨å®ç¨ä¾è®å系統 IPv6 ä½åç網路"
msgid ""
"Defines the source to read systems IPv4-Address from, that will be send to "
"the DDNS provider"
-msgstr ""
+msgstr "è¨å® IPv4 ä½åçä¾æºãéå°æ被髮é給 DDNS æä¾å"
msgid ""
"Defines the source to read systems IPv6-Address from, that will be send to "
"the DDNS provider"
-msgstr ""
+msgstr "è¨å® IPv6 ä½åçä¾æºãéå°æ被髮é給 DDNS æä¾å"
msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider"
-msgstr ""
+msgstr "è¨å®åªä¸å IP ä½åï¼IPv4 æ IPv6ï¼æ被髮é給 DDNS æä¾å"
msgid "Details for"
-msgstr ""
+msgstr "詳æ
"
msgid "Directory contains Log files for each running section"
-msgstr ""
+msgstr "å²åæ¯ä¸åå·è¡ä¸çè¨å®çå·è¡æ¥èªçç®é"
msgid ""
"Directory contains PID and other status information for each running section"
-msgstr ""
+msgstr "å²åæ¯åå·è¡ä¸çè¨å®çPID以åå
¶å®çæ
è³è¨çç®é"
msgid "Disabled"
-msgstr ""
+msgstr "å·²ç¦ç¨"
msgid "Domain"
-msgstr ""
+msgstr "åå"
msgid "Dynamic DNS"
-msgstr "åæ
DNS"
+msgstr "åæ
DNS"
msgid ""
"Dynamic DNS allows that your router can be reached with a fixed hostname "
"while having a dynamically changing IP address."
-msgstr ""
-"åæ
DNSå
許çºä¸»æ©é
ç½®ä¸ååºå®ç網åå稱ï¼ä½è©²ç¶²è·¯å稱å»æ¯å°æå°åæ
çIPä½ç½®"
+msgstr "åæ
DNS å
許çºææåæ
IP ç主æ©é
ç½®ä¸ååºå®çå¯è¨ªåååã"
msgid "Enable secure communication with DDNS provider"
-msgstr ""
+msgstr "åç¨å®å
¨é£ç·è DDNS æä¾åè¯çµ¡"
msgid "Enabled"
-msgstr ""
+msgstr "å·²åç¨"
msgid "Error"
-msgstr ""
+msgstr "é¯èª¤"
msgid "Error Retry Counter"
-msgstr ""
+msgstr "é¯èª¤é試è¨æ¸"
msgid "Error Retry Interval"
-msgstr ""
+msgstr "é¯èª¤é試éé"
msgid "Event Network"
-msgstr ""
+msgstr "äºä»¶ç¶²è·¯"
msgid "File"
-msgstr ""
+msgstr "æªæ¡"
msgid "File not found"
-msgstr ""
+msgstr "æªæ¡æªæ¾å°"
msgid "File not found or empty"
-msgstr ""
+msgstr "æªæ¡æªæ¾å°æçºç©º"
msgid ""
"Follow this link You will find more hints to optimize your system to "
"run DDNS scripts with all options"
msgstr ""
+"éåéåé£çµ æ¨å°æå¾å°æ´å¤éæ¼å¦ä½ééææè¨å®é
åªåæ¨ç系統以å·è¡ "
+"DDNS æ令碼çæ示"
msgid "For detailed information about parameter settings look here."
-msgstr ""
+msgstr "è«çé裡ç²å¾éæ¼å¼æ¸è¨å®ç詳細è³è¨"
msgid "For supported codes look here"
-msgstr ""
+msgstr "檢è¦é裡ç²åæ¯æ´ç編碼"
msgid "Force IP Version"
-msgstr ""
+msgstr "å¼·å¶è¨å® IP çæ¬"
msgid "Force IP Version not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´å¼·å¶è¨å® IP çæ¬"
msgid "Force Interval"
-msgstr ""
+msgstr "è¨å®é±æ"
msgid "Force TCP on DNS"
-msgstr ""
+msgstr "å¼·å¶ä½¿ç¨ TCP é²è¡ DNS æ¥è©¢"
msgid "Forced IP Version don't matched"
-msgstr ""
+msgstr "å¼·å¶è¨å®ç IP çæ¬ä¸å¹é
"
msgid "Format"
-msgstr ""
+msgstr "æ ¼å¼"
msgid "Format: IP or FQDN"
-msgstr ""
+msgstr "æ ¼å¼ï¼IP æè
FQDN"
msgid ""
"GNU Wget will use the IP of given network, cURL will use the physical "
"interface."
-msgstr ""
+msgstr "GNU Wget å°æ使ç¨çµ¦å®ç網路ç IP ä½åï¼è cURL å°æ使ç¨ç©çä»é¢ã"
msgid "Global Settings"
-msgstr ""
+msgstr "å
¨åæ§è¨å®"
msgid "HTTPS not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´ HTTPS"
msgid "Hints"
-msgstr ""
+msgstr "æ示"
msgid "Hostname/FQDN to validate, if IP update happen or necessary"
-msgstr ""
+msgstr "主æ©å/FQDN é©èï¼å¦æ IP æ´æ°ç¼çæå¿
è¦"
msgid "IP address source"
-msgstr ""
+msgstr "IP ä½åä¾æº"
msgid "IP address version"
-msgstr ""
+msgstr "IP ä½åçæ¬"
msgid "IPv4-Address"
-msgstr ""
+msgstr "IPv4 ä½å"
msgid "IPv6 address must be given in square brackets"
-msgstr ""
+msgstr "IPv6 ä½åå¿
é 填寫å¨ä¸æ¬èï¼\"[ ]\"ï¼å
§"
msgid ""
"IPv6 is currently not (fully) supported by this system Please follow "
"the instructions on OpenWrt's homepage to enable IPv6 support or update "
"your system to the latest OpenWrt Release"
msgstr ""
+"ç¶å系統æ«æä¸è½ï¼å®æ´å°ï¼æ¯æ´ IPv6 è«æª¢è¦ OpenWrt é¦é çä»ç´¹ä»¥åç¨ "
+"IPv6 æ¯æ´ æè
æ´æ°æ¨ç系統å°ææ° OpenWrt çæ¬"
msgid "IPv6 not supported"
-msgstr ""
+msgstr "IPv6 ä¸è¢«æ¯æ´"
msgid "IPv6-Address"
-msgstr ""
+msgstr "IPv6 ä½å"
msgid "If both cURL and GNU Wget are installed, Wget is used by default."
-msgstr ""
+msgstr "å¦æ cURL å GNU Wget åæ被å®è£ï¼é£éº¼ Wget å°æ被åªå
使ç¨ã"
msgid ""
"If this service section is disabled it could not be started. Neither "
"from LuCI interface nor from console"
msgstr ""
+"å¦ææåé
置被ç¦ç¨ï¼é£éº¼å®å°ä¸è½è¢«ååã ç¡è«æ¯éé LuCI é é¢æè
æ¯éé"
+"çµç«¯ã"
msgid "If using secure communication you should verify server certificates!"
-msgstr ""
+msgstr "å¦æ使ç¨å®å
¨éè¨ï¼æ¨æ該é©è伺æå¨èæ¸ï¼"
msgid ""
"If you want to send updates for IPv4 and IPv6 you need to define two "
"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
msgstr ""
+"å¦ææ¨éè¦åææ´æ° IPv4 å IPv6 ä½åï¼æ¨éè¦å®ç¨æ°å¢å
©åé
ç½®é
ï¼ä¾"
+"å¦'myddns_ipv4'å'myddns_ipv6'ï¼"
msgid ""
"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
-msgstr ""
+msgstr "OpenWrt ä¸ï¼cURL/libcurl çæäºçæ¬ç·¨è¯ææ²æåç¨ä»£ç伺æå¨æ¯æ´"
msgid "Info"
-msgstr ""
+msgstr "è³è¨"
msgid ""
"Install 'ca-certificates' package or needed certificates by hand into /etc/"
"ssl/certs default directory"
msgstr ""
+"æåå°âca-certificatesâå
æéè¦çèæ¸å®è£å° /etc/ssl/certs çé è¨ç®éä¸"
msgid "Interface"
-msgstr "çé¢"
+msgstr "ä»é¢"
msgid ""
"Interval to check for changed IP Values below 5 minutes == 300 seconds "
"are not supported"
-msgstr ""
+msgstr "æª¢æ¥ IP æ¯å¦æ¹è®çæéé ä¸æ¯æ´å°æ¼ 5 åéï¼300 ç§ï¼çæ¸å¼ã"
msgid ""
"Interval to force updates send to DDNS Provider Setting this parameter "
"to 0 will force the script to only run once Values lower 'Check "
"Interval' except '0' are not supported"
msgstr ""
+"å¼·å¶åæä¾åæ´æ° DDNS çæéé±æ å°éåå¼æ¸è¨å®çº 0 åæè®æ令碼å
å·è¡ä¸æ¬¡"
+" ä¸æ¯æ´å°æ¼\"檢æ¥æéé±æ\"çæ¸å¼ï¼é¤äº 0ï¼ã"
msgid "It is NOT recommended for casual users to change settings on this page."
-msgstr ""
+msgstr "å¼·çä¸å»ºè°å次使ç¨ç使ç¨è
ä¿®æ¹æ¬é è¨å®ã"
msgid "Last Update"
-msgstr ""
+msgstr "ä¸æ¬¡æ´æ°"
msgid "Loading"
-msgstr ""
+msgstr "è¼å
¥ä¸"
msgid "Log File Viewer"
-msgstr ""
+msgstr "æ¥èªæª¢è¦å¨"
msgid "Log directory"
-msgstr ""
+msgstr "æ¥èªç®é"
msgid "Log length"
-msgstr ""
+msgstr "æ¥èªé·åº¦"
msgid "Log to file"
-msgstr ""
+msgstr "ææ¥èªè¨éå°æªæ¡"
msgid "Log to syslog"
-msgstr ""
+msgstr "ææ¥èªè¨éå°ç³»çµ±æ¥èª"
msgid "Lookup Hostname"
-msgstr ""
+msgstr "æ¥è©¢ä¸»æ©å"
msgid "NOT installed"
-msgstr ""
+msgstr "æªå®è£"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to select a network to use for "
"communication."
-msgstr ""
+msgstr "å
å« SSL æ¯æ´ç GNU Wget æè
cURL åæªå®è£ï¼ç¡æ³é¸æ網路ç¨æ¼éè¨ã"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
"HTTPS protocol."
msgstr ""
+"å
å« SSL æ¯æ´ç GNU Wget æè
cURL åæªå®è£ï¼ç¡æ³éé HTTPS åè°é²è¡å®å
¨çæ´"
+"æ°ã"
msgid "Network"
msgstr "網路"
msgid "Network on which the ddns-updater scripts will be started"
-msgstr ""
+msgstr "DDNS æ´æ°æ令碼å°æéè¡æ¼è©²ç¶²è·¯"
msgid "Never"
-msgstr ""
+msgstr "å¾ä¸"
msgid "Next Update"
-msgstr ""
+msgstr "ä¸æ¬¡æ´æ°"
msgid "No certificates found"
-msgstr ""
+msgstr "æ¾ä¸å°èæ¸"
msgid "No data"
-msgstr ""
+msgstr "ç¡è³æ"
msgid "No logging"
-msgstr ""
+msgstr "ç¡æ¥èª"
msgid "Non-public and by default blocked IP's"
-msgstr ""
+msgstr "éå
¬ç¶² IP 以åé è¨è¢«éå®ç IP"
msgid "Notice"
-msgstr ""
+msgstr "æ示"
msgid "Number of last lines stored in log files"
-msgstr ""
+msgstr "æ¥èªæªæ¡ä¸çæå¾å¹¾è¡"
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
-msgstr ""
+msgstr "å¯é¸ï¼å¼·å¶å
ä½¿ç¨ IPv4/IPv6 éè¨ã"
msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests."
-msgstr ""
+msgstr "å¯é¸ï¼å¼·å¶ä½¿ç¨ TCP èé UDP è«æ± DNSã"
msgid "OPTIONAL: Network to use for communication"
-msgstr ""
+msgstr "å¯é¸ï¼ç¨æ¼éè¨ç網路"
msgid "OPTIONAL: Proxy-Server for detection and updates."
-msgstr ""
+msgstr "å¯é¸ï¼ç¨æ¼æª¢æ¸¬ä»¥åæ´æ°ç代ç伺æå¨ã"
msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'."
-msgstr ""
+msgstr "å¯é¸ï¼ä½¿ç¨éé è¨ DNS 伺æå¨æª¢æ¸¬\"已註åç IP ä½å\"ã"
msgid "On Error the script will retry the failed action after given time"
-msgstr ""
+msgstr "ç¶åºé¯æï¼æ令碼å°æé試失æçåä½ç次æ¸"
msgid "On Error the script will stop execution after given number of retrys"
-msgstr ""
+msgstr "ç¶åºé¯æï¼æ令碼å°æé試該次æ¸ä¹å¾éåº"
msgid "OpenWrt Wiki"
-msgstr ""
+msgstr "OpenWrt Wiki"
msgid "Optional Encoded Parameter"
-msgstr ""
+msgstr "å¯é¸ç·¨ç¢¼å¼æ¸"
msgid "Optional Parameter"
-msgstr ""
+msgstr "å¯é¸å¼æ¸"
msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "å¯é¸ï¼æ¿ææ´æ° URLï¼å·²ç·¨ç¢¼ URLï¼ä¸ç [PARAMENC]"
msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
-msgstr ""
+msgstr "å¯é¸ï¼æ¿ææ´æ° URLï¼æªç·¨ç¢¼ URLï¼ä¸ç [PARAMENC]"
msgid "Overview"
-msgstr ""
+msgstr "總覽"
msgid "PROXY-Server"
-msgstr ""
+msgstr "代ç伺æå¨"
msgid "PROXY-Server not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´ä»£ç伺æå¨"
msgid "Password"
msgstr "å¯ç¢¼"
msgid "Path to CA-Certificate"
-msgstr ""
+msgstr "CA èæ¸è·¯å¾"
msgid "Please [Save & Apply] your changes first"
-msgstr ""
+msgstr "è«å
å²å並æç¨æ¨çè¨å®"
msgid "Please press [Read] button"
-msgstr ""
+msgstr "è«æä¸\"è®å\"æé"
msgid "Please update to the current version!"
-msgstr ""
+msgstr "è«æ´æ°å°ææ°çæ¬!"
msgid "Process ID"
-msgstr ""
+msgstr "ç¨åº ID"
msgid "Read / Reread log file"
-msgstr ""
+msgstr "è®å/éæ°è®åæ¥èªæªæ¡"
msgid "Really change DDNS provider?"
-msgstr ""
+msgstr "確å®æ´æ¹ DDNS æä¾ååï¼"
msgid "Registered IP"
-msgstr ""
+msgstr "已註åç IP ä½å"
msgid "Replaces [DOMAIN] in Update-URL"
-msgstr ""
+msgstr "æ¿ææ´æ° URL ä¸ç [DOMAIN]"
msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "æ¿ææ´æ° URLï¼å·²ç·¨ç¢¼ URLï¼ä¸ç [PASSWORD]"
msgid "Replaces [USERNAME] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "æ¿ææ´æ° URLï¼å·²ç·¨ç¢¼ URLï¼ä¸ç [USERNAME]"
msgid "Run once"
-msgstr ""
+msgstr "å·è¡ä¸æ¬¡"
msgid "Script"
-msgstr ""
+msgstr "æ令碼"
msgid "Show more"
-msgstr ""
+msgstr "檢è¦æ´å¤"
msgid "Software update required"
-msgstr ""
+msgstr "éè¦é²è¡è»é«æ´æ°"
msgid "Specifying a DNS-Server is not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´æå® DNS 伺æå¨"
msgid "Start"
-msgstr ""
+msgstr "åå"
msgid "Start / Stop"
-msgstr ""
+msgstr "åå / åæ¢"
msgid "Status directory"
-msgstr ""
+msgstr "çæ
ç®é"
msgid "Stopped"
-msgstr ""
+msgstr "å·²åæ¢"
msgid ""
"The currently installed 'ddns-scripts' package did not support all available "
"settings."
-msgstr ""
+msgstr "ç¶åå·²å®è£ç'ddns-scripts'è»é«å
æ«ä¸æ¯æ´ææå¯ç¨è¨å®é
"
msgid "The default setting of '0' will retry infinite."
-msgstr ""
+msgstr "é è¨è¨å®â0âå°ç¡éé試ã"
msgid "There is no service configured."
-msgstr ""
+msgstr "æ²æå·²ç¶é
置好çæåé
"
msgid "Timer Settings"
-msgstr ""
+msgstr "è¨æå¨è¨å®"
msgid "To change global settings click here"
-msgstr ""
+msgstr "é»é¸é裡æ´æ¹å
¨åæ§è¨å®"
msgid "To use cURL activate this option."
-msgstr ""
+msgstr "é¸ä¸æ¤é
ä»¥ä½¿ç¨ cURL"
msgid "URL"
msgstr "URL"
msgid "URL to detect"
-msgstr ""
+msgstr "ç¨æ¼æª¢æ¸¬ç URL"
msgid "Unknown error"
-msgstr ""
+msgstr "æªç¥é¯èª¤"
msgid ""
"Update URL to be used for updating your DDNS Provider. Follow "
"instructions you will find on their WEB page."
msgstr ""
+"DDNS æä¾åç¨æ¼æ´æ° DDNS ç URLã è·é¨æç¨ï¼æ¨å¯ä»¥å¨å®åç網ç«ä¸æ¾å°é"
+"å URLã"
msgid "Update error"
-msgstr ""
+msgstr "æ´æ°é¯èª¤"
msgid "Use HTTP Secure"
-msgstr ""
+msgstr "ä½¿ç¨ HTTPS"
msgid "Use cURL"
-msgstr ""
+msgstr "ä½¿ç¨ cURL"
msgid "User defined script to read systems IP-Address"
-msgstr ""
+msgstr "使ç¨è¨å®çæ令碼ä¾è®å系統 IP ä½å"
msgid "Username"
msgstr "使ç¨è
å稱"
msgid "Using specific DNS Server not supported"
-msgstr ""
+msgstr "ä¸æ¯æ´ä½¿ç¨ç¹å®ç DNS 伺æå¨"
msgid "Verify"
-msgstr ""
+msgstr "é©è"
msgid "Version"
-msgstr ""
+msgstr "çæ¬"
msgid "Version Information"
-msgstr ""
+msgstr "çæ¬è³è¨"
msgid "Waiting for changes to be applied..."
-msgstr ""
+msgstr "æ£å¨æç¨æ´æ¹..."
msgid "Warning"
-msgstr ""
+msgstr "çå¾
"
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
-msgstr ""
+msgstr "åæ¥å¿ä¸å¯«å
¥è©³ç´°è³è¨ãæªæ¡å°èªå縮å°ã"
msgid ""
"Writes log messages to syslog. Critical Errors will always be written to "
"syslog."
-msgstr ""
+msgstr "ææ¥èªå¯«å
¥ç³»çµ±æ¥èªãç¡è«æ¯å¦åç¨éé
ï¼é¯èª¤è³è¨ç¸½æ¯æ被寫å
¥ç³»çµ±æ¥èªã"
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
+"å¦ææ¨éè¦æå® DNS 伺æå¨ä¾æª¢æ¸¬æ¨è¨»åç IPï¼æ¨æ該å®è£âbind-hostâæâknot-"
+"hostâæâdrillâæâhostipâè»é«å
ã"
msgid ""
"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
"requests."
-msgstr ""
+msgstr "æ¨æè©²çº DNS è«æ±å®è£âbind-hostâæâknot-hostâæâdrillâè»é«å
ã"
msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
-msgstr ""
+msgstr "æ¨æ該å®è£âwgetâæâcurlâæâuclient-fetchâè»é«å
ã"
msgid ""
"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
"*ssl' package."
-msgstr ""
+msgstr "æ¨æ該å®è£âwgetâæâcurlâæâuclient-fetchâï¼åâlibustream-*sslâè»é«å
ã"
msgid "You should install 'wget' or 'curl' package."
-msgstr ""
+msgstr "æ¨æ該å®è£âwgetâæâcurlâè»é«å
ã"
msgid ""
"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
-msgstr ""
+msgstr "æ¨æ該å®è£âwgetâæâuclient-fetchâè»é«å
ï¼ææ¿æ libcurlã"
msgid "cURL is installed, but libcurl was compiled without proxy support."
-msgstr ""
+msgstr "cURL å·²ç¶å®è£ï¼ä½æ¯ libcurl ç·¨è¯ææ²æåç¨ä»£çæ¯æ´ã"
msgid "cURL without Proxy Support"
-msgstr ""
+msgstr "cURL æ²æå
å«ä»£çæ¯æ´"
msgid "can not detect local IP. Please select a different Source combination"
-msgstr ""
+msgstr "ç¡æ³ç¢ºå®æ¬å° IPãè«æ´æ IP ä¾æºã"
msgid "can not resolve host:"
-msgstr ""
+msgstr "ç¡æ³è§£æ主æ©ï¼"
msgid "config error"
-msgstr ""
+msgstr "é
ç½®é¯èª¤"
msgid "days"
-msgstr ""
+msgstr "天"
msgid "directory or path/file"
-msgstr ""
+msgstr "ç®éæè
å°æªæ¡çè·¯å¾"
msgid "either url or script could be set"
-msgstr ""
+msgstr "æ¥å URL æè
æ令碼"
msgid "enable here"
-msgstr ""
+msgstr "å¨é裡åç¨"
msgid "file or directory not found or not 'IGNORE'"
-msgstr ""
+msgstr "æªæ¡æç®éæªæ¾å°ææª\"被忽è¦\""
msgid "help"
-msgstr ""
+msgstr "幫å©"
msgid "hours"
-msgstr ""
+msgstr "å°æ"
msgid "installed"
-msgstr ""
+msgstr "å·²å®è£"
msgid "invalid FQDN / required - Sample"
-msgstr ""
+msgstr "FQDN ç¡æ / å¿
é - 示ä¾"
msgid "minimum value '0'"
-msgstr ""
+msgstr "æå°å¼ 0"
msgid "minimum value '1'"
-msgstr ""
+msgstr "æå°å¼ 1"
msgid "minimum value 5 minutes == 300 seconds"
-msgstr ""
+msgstr "æå°å¼çº 5 åéï¼300 ç§ï¼"
msgid "minutes"
-msgstr ""
+msgstr "åé"
msgid "missing / required"
-msgstr ""
+msgstr "å¿
é 填寫"
msgid "must be greater or equal 'Check Interval'"
-msgstr ""
+msgstr "å¿
é 大æ¼æçæ¼\"檢æ¥æéé±æ\""
msgid "must start with 'http://'"
-msgstr ""
+msgstr "å¿
é 以'http://'éé "
msgid "nc (netcat) can not connect"
-msgstr ""
+msgstr "ncï¼netcatï¼ä¸å¯é£ç·"
msgid "never"
-msgstr ""
+msgstr "å¾ä¸"
msgid "no data"
-msgstr ""
+msgstr "ç¡è³æ"
msgid "not found or not executable - Sample: '/path/to/script.sh'"
-msgstr ""
+msgstr "æªæ¾å°æè
ä¸å¯å·è¡ - 示ä¾ï¼â/path/to/script.shâ"
msgid "nslookup can not resolve host"
-msgstr ""
+msgstr "nslookup ä¸è½è§£æ主æ©"
msgid "or"
-msgstr ""
+msgstr "æè
"
msgid "or higher"
-msgstr ""
+msgstr "æè
æ´å¤§"
msgid "please disable"
-msgstr ""
+msgstr "è«ç¦ç¨"
msgid "please remove entry"
-msgstr ""
+msgstr "è«ç§»é¤è©²æ¬ä½"
msgid "please select 'IPv4' address version"
-msgstr ""
+msgstr "è«è¨å® IPv4 ä½å"
msgid "please select 'IPv4' address version in"
-msgstr ""
+msgstr "è«è¨å® IPv4 ä½åæ¼"
msgid "please set to 'default'"
-msgstr ""
+msgstr "è«è¨å®çº\"é è¨\""
msgid "proxy port missing"
-msgstr ""
+msgstr "代çå æªå¡«"
msgid "required"
-msgstr ""
+msgstr "å¿
é 填寫"
msgid "seconds"
-msgstr ""
+msgstr "ç§"
msgid "to run HTTPS without verification of server certificates (insecure)"
-msgstr ""
+msgstr "ä½¿ç¨ HTTPS ä½ä¸æª¢æ¥ä¼ºæå¨èæ¸ï¼ä¸å®å
¨ï¼"
msgid "unknown error"
-msgstr ""
+msgstr "æªç¥é¯èª¤"
msgid "unspecific error"
-msgstr ""
+msgstr "æªæå®çé¯èª¤"
msgid "use hostname, FQDN, IPv4- or IPv6-Address"
-msgstr ""
+msgstr "使ç¨ä¸»æ©åæ IPv4/IPv6 ä½å"
+
+#~ msgid ""
+#~ "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
+#~ "protocol."
+#~ msgstr "å
å«SSLæ¯æ´çGNU Wgetæè
cURLåæªè¢«å®è£.ç¡æ³ä½¿ç¨HTTPSæ´æ°DDNS"
+
+#~ msgid "You should install BIND host package for DNS requests."
+#~ msgstr "æ¨éè¦å®è£BIND以è«æ±DNSè¨é."
+
+#~ msgid "You should install GNU Wget with SSL (preferred) or cURL package."
+#~ msgstr "æ¨éè¦å®è£å
å«SSLæ¯æ´çGNU Wget(æ¨è¦)ææ¯cURLè»é«å
."
+
+#~ msgid "You should install GNU Wget with SSL or cURL package."
+#~ msgstr "æ¨éè¦å®è£å
å«SSLæ¯æ´çGNU Wgetææ¯cURLè»é«å
."
+
+#~ msgid "You should install GNU Wget with SSL or replace libcurl."
+#~ msgstr "æ¨éè¦å®è£å
å«SSLæ¯æ´çGNU Wgetææ¿ælibcurl."
diff --git a/applications/luci-app-diag-core/po/sv/diag_core.po b/applications/luci-app-diag-core/po/sv/diag_core.po
index dd0a81a644..c31433287f 100644
--- a/applications/luci-app-diag-core/po/sv/diag_core.po
+++ b/applications/luci-app-diag-core/po/sv/diag_core.po
@@ -10,10 +10,10 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Configure Diagnostics"
-msgstr ""
+msgstr "Ställ in diagnostik"
msgid "Diagnostics"
-msgstr ""
+msgstr "Diagnostik"
msgid ""
"The diagnostics available under this menu depend on what modules you have "
@@ -29,3 +29,5 @@ msgid ""
"With this menu you can configure network diagnostics, such as network device "
"scans and ping tests."
msgstr ""
+"Med den här menyn så kan du ställa in nätverksdiagnostik så som "
+"igenomsökningar och ping-tester för nätverksenheten."
diff --git a/applications/luci-app-diag-core/po/zh-tw/diag_core.po b/applications/luci-app-diag-core/po/zh-tw/diag_core.po
index 3cb3169998..2d62488451 100644
--- a/applications/luci-app-diag-core/po/zh-tw/diag_core.po
+++ b/applications/luci-app-diag-core/po/zh-tw/diag_core.po
@@ -20,14 +20,14 @@ msgstr "診æ·"
msgid ""
"The diagnostics available under this menu depend on what modules you have "
"installed on your device."
-msgstr "éé¸å®ä¸ç診æ·æ©å¶å¯éç¨æ§, 端çä½ è¨åä¸å·²å®è£ç模çµèå®"
+msgstr "éé¸å®ä¸ç診æ·æ©å¶å¯éç¨æ§, 端çæ¨è¨åä¸å·²å®è£ç模çµèå®"
msgid ""
"The entries in the menu allow you to perform diagnostic tests on your system "
"to aid in troubleshooting."
-msgstr "é¸å®å
§çé
ç®å
è¨±ä½ å¨ç³»çµ±å
§å·è¡è¨ºæ·æ¸¬è©¦ä»¥ä¾¿è§£æ±ºçé£éç"
+msgstr "é¸å®å
§çé
ç®å
許æ¨å¨ç³»çµ±å
§å·è¡è¨ºæ·æ¸¬è©¦ä»¥ä¾¿è§£æ±ºçé£éç"
msgid ""
"With this menu you can configure network diagnostics, such as network device "
"scans and ping tests."
-msgstr "æ¡ç¨éé¸é
å¯ä»¥è®ä½ è¨å®ç¶²è·¯è¨ºæ·, ä¾å¦ç¶²è·¯è¨åææè·pingç測試."
+msgstr "æ¡ç¨éé¸é
å¯ä»¥è®æ¨è¨å®ç¶²è·¯è¨ºæ·, ä¾å¦ç¶²è·¯è¨åææè·pingç測試."
diff --git a/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po b/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po
index cf74fbc77f..d68116bf7b 100644
--- a/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po
+++ b/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"Last-Translator: Kristoffer Grundström \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -10,22 +10,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Actions"
-msgstr ""
+msgstr "Ã
tgärder"
msgid "Add"
-msgstr ""
+msgstr "Lägg till"
msgid "Beginning of MAC address range"
-msgstr ""
+msgstr "Början av räckvidd för MAC-adress"
msgid "Config Phone Scan"
-msgstr ""
+msgstr "Konfigurera skanning av telefon"
msgid "Configure"
-msgstr ""
+msgstr "Konfigurera"
msgid "Configure Scans"
-msgstr ""
+msgstr "Konfigurera skanningar"
msgid ""
"Configure scanning for devices on specified networks. Decreasing 'Timeout', "
@@ -40,46 +40,46 @@ msgid ""
msgstr ""
msgid "Delete"
-msgstr ""
+msgstr "Radera"
msgid "Device Scan Config"
msgstr ""
msgid "Device Type"
-msgstr ""
+msgstr "Enhetstyp"
msgid "Devices discovered for"
msgstr ""
msgid "Devices on Network"
-msgstr ""
+msgstr "Enheter på nätverket"
msgid "Edit"
-msgstr ""
+msgstr "Redigera"
msgid "Enable"
-msgstr ""
+msgstr "Aktivera"
msgid "End of MAC address range"
msgstr ""
msgid "Go to relevant configuration page"
-msgstr ""
+msgstr "GÃ¥ till relevant konfigurationssida"
msgid "IP Address"
-msgstr ""
+msgstr "IP-adress"
msgid "Interface"
-msgstr ""
+msgstr "Gränssnitt"
msgid "Invalid"
-msgstr ""
+msgstr "Ogiltig"
msgid "Link to Device"
-msgstr ""
+msgstr "Länka till enhet"
msgid "MAC Address"
-msgstr ""
+msgstr "MAC-adress"
msgid "MAC Device Info Overrides"
msgstr ""
@@ -91,13 +91,13 @@ msgid "MAC range and information used to override system and IEEE databases"
msgstr ""
msgid "Milliseconds to sleep between requests (default 100)"
-msgstr ""
+msgstr "Millisekunder att sova mellan förfrågningar (100 är standard)"
msgid "Model"
-msgstr ""
+msgstr "Modell"
msgid "Name"
-msgstr ""
+msgstr "Namn"
msgid "Network Device Scan"
msgstr ""
@@ -106,22 +106,22 @@ msgid "Network Device Scanning Configuration"
msgstr ""
msgid "Networks to scan for devices"
-msgstr ""
+msgstr "Nätverk att skanna efter enheter i"
msgid "Networks to scan for supported devices"
-msgstr ""
+msgstr "Nätverk att skanna efter enheter som stöds"
msgid "No SIP devices"
-msgstr ""
+msgstr "Inga SIP-enheter"
msgid "No devices detected"
-msgstr ""
+msgstr "Upptäckte inga enheter"
msgid "Number of times to send requests (default 1)"
-msgstr ""
+msgstr "Antalet gånger att skicka förfrågningar (1 är standard)"
msgid "OUI Owner"
-msgstr ""
+msgstr "OUI-ägare"
msgid ""
"Override the information returned by the MAC to Device Info Script (mac-to-"
@@ -129,79 +129,79 @@ msgid ""
msgstr ""
msgid "Perform Scans (this can take a few minutes)"
-msgstr ""
+msgstr "Utför skanningar (det här kan ta ett par minuter)"
msgid "Phone Information"
-msgstr ""
+msgstr "Information om telefon"
msgid "Phone Scan"
-msgstr ""
+msgstr "Skanna telefon"
msgid "Phone Scanning Configuration"
-msgstr ""
+msgstr "Konfiguration av skanning i telefon"
msgid "Phones"
-msgstr ""
+msgstr "Telefoner"
msgid "Ports"
-msgstr ""
+msgstr "Portar"
msgid "Raw"
-msgstr ""
+msgstr "RÃ¥"
msgid "Repeat Count"
msgstr ""
msgid "Repeat Scans (this can take a few minutes)"
-msgstr ""
+msgstr "Repetera skanningar (det här kan ta några minuter)"
msgid "SIP Device Information"
-msgstr ""
+msgstr "Information om SIP-enhet"
msgid "SIP Device Scan"
msgstr ""
msgid "SIP Device Scanning Configuration"
-msgstr ""
+msgstr "Skanningskonfiguration för SIP-enhet"
msgid "SIP Devices on Network"
-msgstr ""
+msgstr "SIP-enheter på nätverk"
msgid "SIP devices discovered for"
-msgstr ""
+msgstr "Upptäckta SIP-enheter för"
msgid "Scan for devices on specified networks."
-msgstr ""
+msgstr "Skanna efter enheter i angivna nätverk."
msgid "Scan for supported SIP devices on specified networks."
-msgstr ""
+msgstr "Skannar efter SIP-enheter som stöds i angivna nätverk."
msgid "Scanning Configuration"
-msgstr ""
+msgstr "Skannar konfiguration"
msgid "Scans for devices on specified networks."
-msgstr ""
+msgstr "Skannar efter enheter i angivna nätverk."
msgid "Sleep Between Requests"
-msgstr ""
+msgstr "Sov mellan förfrågningar"
msgid "Subnet"
-msgstr ""
+msgstr "Subnät"
msgid "This section contains no values yet"
-msgstr ""
+msgstr "Den här sektionen innehåller inga värden än"
msgid "Time to wait for responses in seconds (default 10)"
-msgstr ""
+msgstr "Tid att vänta på svar i sekunder (standard 10)"
msgid "Timeout"
-msgstr ""
+msgstr "Avbrott"
msgid "Use Configuration"
-msgstr ""
+msgstr "Använd konfiguration"
msgid "Vendor"
-msgstr ""
+msgstr "Tillverkare"
msgid "check other networks"
-msgstr ""
+msgstr "kolla andra nätverk"
diff --git a/applications/luci-app-dnscrypt-proxy/Makefile b/applications/luci-app-dnscrypt-proxy/Makefile
new file mode 100644
index 0000000000..4b632b8d04
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/Makefile
@@ -0,0 +1,13 @@
+# Copyright 2017 Dirk Brenken (dev@brenken.org)
+# This is free software, licensed under the Apache License, Version 2.0
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for DNSCrypt-Proxy
+LUCI_DEPENDS:=+uclient-fetch +dnscrypt-proxy
+LUCI_PKGARCH:=all
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua
new file mode 100644
index 0000000000..9f6472e7de
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua
@@ -0,0 +1,38 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+module("luci.controller.dnscrypt-proxy", package.seeall)
+
+local util = require("luci.util")
+local i18n = require("luci.i18n")
+local templ = require("luci.template")
+
+function index()
+ if not nixio.fs.access("/etc/config/dnscrypt-proxy") then
+ nixio.fs.writefile("/etc/config/dnscrypt-proxy", "")
+ end
+ entry({"admin", "services", "dnscrypt-proxy"}, firstchild(), _("DNSCrypt-Proxy"), 60).dependent = false
+ entry({"admin", "services", "dnscrypt-proxy", "tab_from_cbi"}, cbi("dnscrypt-proxy/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
+ entry({"admin", "services", "dnscrypt-proxy", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true
+ entry({"admin", "services", "dnscrypt-proxy", "advanced"}, firstchild(), _("Advanced"), 100)
+ entry({"admin", "services", "dnscrypt-proxy", "advanced", "configuration"}, cbi("dnscrypt-proxy/configuration_tab"), _("Edit DNSCrypt-Proxy Configuration"), 110).leaf = true
+ entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_dnsmasq"}, cbi("dnscrypt-proxy/cfg_dnsmasq_tab"), _("Edit Dnsmasq Configuration"), 120).leaf = true
+ entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_resolvcrypt"}, cbi("dnscrypt-proxy/cfg_resolvcrypt_tab"), _("Edit Resolvcrypt Configuration"), 130).leaf = true
+ entry({"admin", "services", "dnscrypt-proxy", "advanced", "view_reslist"}, call("view_reslist"), _("View Resolver List"), 140).leaf = true
+end
+
+function view_reslist()
+ local reslist = util.trim(util.exec("cat /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv"))
+ templ.render("dnscrypt-proxy/view_reslist", {title = i18n.translate("DNSCrypt-Proxy Resolver List"), content = reslist})
+end
+
+function logread()
+ local logfile
+
+ if nixio.fs.access("/var/log/messages") then
+ logfile = util.trim(util.exec("cat /var/log/messages | grep 'dnscrypt-proxy'"))
+ else
+ logfile = util.trim(util.exec("logread -e 'dnscrypt-proxy'"))
+ end
+ templ.render("dnscrypt-proxy/logread", {title = i18n.translate("DNSCrypt-Proxy Logfile"), content = logfile})
+end
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua
new file mode 100644
index 0000000000..6e75ac9f97
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local nxfs = require("nixio.fs")
+local util = require("luci.util")
+local uci_input = "/etc/config/dhcp"
+
+if not nxfs.access(uci_input) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("dnscrypt-proxy/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main Dnsmasq configuration file (/etc/config/dhcp)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nxfs.readfile(uci_input) or ""
+end
+
+function f.write(self, section, data)
+ return nxfs.writefile(uci_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua
new file mode 100644
index 0000000000..f172b15f81
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local nxfs = require("nixio.fs")
+local util = require("luci.util")
+local res_input = "/etc/resolv-crypt.conf"
+
+if not nxfs.access(res_input) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("dnscrypt-proxy/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the resolv-crypt configuration file (/etc/resolv-crypt.conf)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nxfs.readfile(res_input) or ""
+end
+
+function f.write(self, section, data)
+ return nxfs.writefile(res_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua
new file mode 100644
index 0000000000..f1842731d5
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local nxfs = require("nixio.fs")
+local util = require("luci.util")
+local uci_input = "/etc/config/dnscrypt-proxy"
+
+if not nxfs.access(uci_input) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("dnscrypt-proxy/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main DNSCrypt-Proxy configuration file (/etc/config/dnscrypt-proxy)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nxfs.readfile(uci_input) or ""
+end
+
+function f.write(self, section, data)
+ return nxfs.writefile(uci_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua
new file mode 100644
index 0000000000..368c6673ad
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua
@@ -0,0 +1,245 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local util = require("luci.util")
+local date = require("luci.http.protocol.date")
+local res_input = "/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
+local dump = util.ubus("network.interface", "dump", {})
+local plug_cnt = tonumber(luci.sys.exec("env -i /usr/sbin/dnscrypt-proxy --version | grep 'Support for plugins: present' | wc -l"))
+local res_list = {}
+local url = "https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv"
+
+if not fs.access(res_input) then
+ if not fs.access("/lib/libustream-ssl.so") then
+ m = SimpleForm("error", nil, translate("No default resolver list and no SSL support available. ")
+ .. translate("Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv' to use this package."))
+ m.submit = false
+ m.reset = false
+ return m
+ else
+ luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1")
+ end
+end
+
+if not uci:get_first("dnscrypt-proxy", "global") then
+ uci:add("dnscrypt-proxy", "global")
+ uci:save("dnscrypt-proxy")
+ uci:commit("dnscrypt-proxy")
+end
+
+for line in io.lines(res_input) do
+ local name,
+ location,
+ dnssec,
+ nolog = line:match("^([^,]+),.-,\".-\",\"*(.-)\"*,.-,[0-9],\"*([yesno]+)\"*,\"*([yesno]+)\"*,.*")
+ if name ~= "" and name ~= "Name" then
+ if location == "" then
+ location = "-"
+ end
+ if dnssec == "" then
+ dnssec = "-"
+ end
+ if nolog == "" then
+ nolog = "-"
+ end
+ res_list[#res_list + 1] = { name = name, location = location, dnssec = dnssec, nolog = nolog }
+ end
+end
+
+m = Map("dnscrypt-proxy", translate("DNSCrypt-Proxy"),
+ translate("Configuration of the DNSCrypt-Proxy package. ")
+ .. translatef("For further information "
+ .. ""
+ .. "see the wiki online ", "https://wiki.openwrt.org/inbox/dnscrypt"))
+m:chain("dhcp")
+
+function m.on_after_commit(self)
+ function d1.validate(self, value, s1)
+ if value == "1" then
+ uci:commit("dnscrypt-proxy")
+ uci:set("dhcp", s1, "noresolv", 1)
+ if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then
+ uci:set("dhcp", s1, "resolvfile", "/tmp/resolv.conf.auto")
+ else
+ uci:set("dhcp", s1, "resolvfile", "/etc/resolv-crypt.conf")
+ end
+ local server_list = {}
+ local cnt = 1
+ uci:foreach("dnscrypt-proxy", "dnscrypt-proxy", function(s)
+ server_list[cnt] = s['address'] .. "#" .. s['port']
+ cnt = cnt + 1
+ end)
+ server_list[cnt] = "/pool.ntp.org/8.8.8.8"
+ uci:set_list("dhcp", s1, "server", server_list)
+ if cnt > 2 then
+ uci:set("dhcp", s1, "allservers", 1)
+ else
+ uci:set("dhcp", s1, "allservers", 0)
+ end
+ uci:save("dhcp")
+ uci:commit("dhcp")
+ end
+ return value
+ end
+ luci.sys.call("env -i /etc/init.d/dnscrypt-proxy restart >/dev/null 2>&1")
+ luci.sys.call("env -i /etc/init.d/dnsmasq restart >/dev/null 2>&1")
+end
+
+s = m:section(TypedSection, "global", translate("General Options"))
+s.anonymous = true
+
+-- Main dnscrypt-proxy resource list
+
+o1 = s:option(DummyValue, "", translate("Default Resolver List"))
+o1.template = "dnscrypt-proxy/res_options"
+o1.value = res_input
+
+o2 = s:option(DummyValue, "", translate("File Date"))
+o2.template = "dnscrypt-proxy/res_options"
+o2.value = date.to_http(nixio.fs.stat(res_input).mtime)
+
+o3 = s:option(DummyValue, "", translate("File Checksum"))
+o3.template = "dnscrypt-proxy/res_options"
+o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'")
+
+if fs.access("/lib/libustream-ssl.so") then
+ btn1 = s:option(Button, "", translate("Refresh Resolver List"),
+ translate("Download the current resolver list from 'download.dnscrypt.org'."))
+ btn1.inputtitle = translate("Refresh List")
+ btn1.inputstyle = "apply"
+ btn1.disabled = false
+ function btn1.write()
+ luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy"))
+ end
+else
+ btn1 = s:option(Button, "", translate("Refresh Resolver List"),
+ translate("No SSL support available. ")
+ .. translate("Please install a 'libustream-ssl' library to download the current resolver list from 'download.dnscrypt.org'."))
+ btn1.inputtitle = translate("-------")
+ btn1.inputstyle = "button"
+ btn1.disabled = true
+end
+
+if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then
+ btn2 = s:option(Button, "", translate("Create Custom Config File"),
+ translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances. ")
+ .. translatef("For further information "
+ .. ""
+ .. "see the wiki online ", "https://wiki.openwrt.org/inbox/dnscrypt"))
+ btn2.inputtitle = translate("Create Config File")
+ btn2.inputstyle = "apply"
+ btn2.disabled = false
+ function btn2.write()
+ luci.sys.call("env -i echo 'options timeout:1' > '/etc/resolv-crypt.conf'")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy"))
+ end
+else
+ btn2 = s:option(Button, "", translate("Create Custom Config File"),
+ translate("The config file '/etc/resolv-crypt.conf' already exist. ")
+ .. translate("Please edit the file manually in the 'Advanced' section."))
+ btn2.inputtitle = translate("-------")
+ btn2.inputstyle = "button"
+ btn2.disabled = true
+end
+
+-- Trigger settings
+
+t = s:option(ListValue, "procd_trigger", translate("Startup Trigger"),
+ translate("By default the DNSCrypt-Proxy startup will be triggered by ifup events of 'All' available network interfaces. ")
+ .. translate("To restrict the trigger, select only the relevant network interface. Usually the 'wan' interface should work for most users."))
+t:value("", "All")
+if dump then
+ local i, v
+ for i, v in ipairs(dump.interface) do
+ if v.interface ~= "loopback" then
+ t:value(v.interface)
+ end
+ end
+end
+t.default = procd_trigger or "All"
+t.rmempty = true
+
+-- Mandatory options per instance
+
+s = m:section(TypedSection, "dnscrypt-proxy", translate("Instance Options"))
+s.anonymous = true
+s.addremove = true
+
+i1 = s:option(Value, "address", translate("IP Address"),
+ translate("The local IPv4 or IPv6 address. The latter one should be specified within brackets, e.g. '[::1]'."))
+i1.default = address or "127.0.0.1"
+i1.rmempty = false
+
+i2 = s:option(Value, "port", translate("Port"),
+ translate("The listening port for DNS queries."))
+i2.datatype = "port"
+i2.default = port
+i2.rmempty = false
+
+i3 = s:option(ListValue, "resolver", translate("Resolver (LOC/SEC/NOLOG)"),
+ translate("Name of the remote DNS service for resolving queries incl. Location, DNSSEC- and NOLOG-Flag."))
+i3.datatype = "hostname"
+i3.widget = "select"
+local i, v
+for i, v in ipairs(res_list) do
+ if v.name then
+ i3:value(v.name, v.name .. " (" .. v.location .. "/" .. v.dnssec .. "/" .. v.nolog .. ")")
+ end
+end
+i3.default = resolver
+i3.rmempty = false
+
+-- Extra options per instance
+
+e1 = s:option(Value, "resolvers_list", translate("Alternate Resolver List"),
+ translate("Specify a non-default Resolver List."))
+e1.datatype = "file"
+e1.optional = true
+
+e2 = s:option(Value, "ephemeral_keys", translate("Ephemeral Keys"),
+ translate("Improve privacy by using an ephemeral public key for each query. ")
+ .. translate("This option requires extra CPU cycles and is useless with most DNSCrypt server."))
+e2.datatype = "bool"
+e2.value = 1
+e2.optional = true
+
+if plug_cnt > 0 then
+ e3 = s:option(DynamicList, "blacklist", translate("Blacklist"),
+ translate("Local blacklists allow you to block abuse sites by domains or ip addresses. ")
+ .. translate("The value for this property is the blocklist type and path to the file, e.g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'."))
+ e3.optional = true
+
+ e4 = s:option(Value, "block_ipv6", translate("Block IPv6"),
+ translate("Disable IPv6 to speed up DNSCrypt-Proxy."))
+ e4.datatype = "bool"
+ e4.value = 1
+ e4.optional = true
+
+ e5 = s:option(Value, "local_cache", translate("Local Cache"),
+ translate("Enable Caching to speed up DNSCcrypt-Proxy."))
+ e5.datatype = "bool"
+ e5.value = 1
+ e5.optional = true
+
+ e6 = s:option(Value, "query_log_file", translate("DNS Query Logfile"),
+ translate("Log the received DNS queries to a file, so you can watch in real-time what is happening on the network."))
+ e6.optional = true
+end
+
+-- Dnsmasq options
+
+m1 = Map("dhcp")
+
+s1 = m1:section(TypedSection, "dnsmasq", translate("Dnsmasq Options"))
+s1.anonymous = true
+
+d1 = s1:option(Flag, "", translate("Transfer Options To Dnsmasq"),
+ translate("Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration. ")
+ .. translate("Please note: This may change the values for 'noresolv', 'resolvfile', 'allservers' and the list 'server' settings."))
+d1.default = d1.enabled
+d1.rmempty = false
+
+return m, m1
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm
new file mode 100644
index 0000000000..2233a15e31
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm
@@ -0,0 +1,13 @@
+
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm
new file mode 100644
index 0000000000..5c5ac6f81f
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm
@@ -0,0 +1,15 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+
+
+ <%:This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related messages only.%>
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm
new file mode 100644
index 0000000000..04dc37bc9d
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm
@@ -0,0 +1,10 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+cbi/valueheader%>
+
+
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm
new file mode 100644
index 0000000000..76a2300932
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm
@@ -0,0 +1,15 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+
+
+ <%:This form shows the content of the current DNSCrypt Resolver List.%>
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po b/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po
new file mode 100644
index 0000000000..2cd01c019e
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po
@@ -0,0 +1,279 @@
+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.0.4\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "-------"
+msgstr "ï¼å©ç¨ä¸å¯ï¼"
+
+msgid "Advanced"
+msgstr "詳細"
+
+msgid "Alternate Resolver List"
+msgstr "ä»£æ¿ ãªã¾ã«ã ãªã¹ã"
+
+msgid ""
+"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration. "
+msgstr "Dnsmasq ã®æ§æã«ãDNSCrypt-Proxy ãæå®ããè¨å®ãé©ç¨ãã¾ãã "
+
+msgid "Blacklist"
+msgstr "ãã©ãã¯ãªã¹ã"
+
+msgid "Block IPv6"
+msgstr "IPv6 ã®ãããã¯"
+
+msgid ""
+"By default the DNSCrypt-Proxy startup will be triggered by ifup events of "
+"'All' available network interfaces. "
+msgstr ""
+"ããã©ã«ãã§ã¯ã DNSCrypt-Proxy ã¯å©ç¨å¯è½ãªå
¨ãããã¯ã¼ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+"ã® ifup ã¤ãã³ãã«ããããªã¬ããèµ·åãã¾ãã "
+
+msgid "Configuration of the DNSCrypt-Proxy package."
+msgstr "DNSCrypt-Proxy ããã±ã¼ã¸ã®è¨å®ã§ãã"
+
+msgid ""
+"Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS "
+"upstream timeouts with multiple DNSCrypt instances. "
+msgstr ""
+"è¤æ°ã® DNSCrypt ã¤ã³ã¹ã¿ã³ã¹ã§ DNS ã¢ããã¹ããªã¼ã ã¿ã¤ã ã¢ã¦ãã®è¨å®å¤ãå
±"
+"ç¨ããããã 'options timeout:1' ãå«ãã '/etc/resolv-crypt.conf' ãä½æãã¾"
+"ãã "
+
+msgid "Create Config File"
+msgstr "è¨å®ãã¡ã¤ã«ã®ä½æ"
+
+msgid "Create Custom Config File"
+msgstr "ã«ã¹ã¿ã è¨å®ãã¡ã¤ã«ã®ä½æ"
+
+msgid "DNS Query Logfile"
+msgstr "DNS ã¯ã¨ãª ãã°ãã¡ã¤ã«"
+
+msgid "DNSCrypt-Proxy"
+msgstr "DNSCrypt-Proxy"
+
+msgid "DNSCrypt-Proxy Logfile"
+msgstr "DNSCrypt-Proxy ãã°ãã¡ã¤ã«"
+
+msgid "DNSCrypt-Proxy Resolver List"
+msgstr "DNSCrypt-Proxy ãªã¾ã«ã ãªã¹ã"
+
+msgid "Default Resolver List"
+msgstr "ããã©ã«ã ãªã¾ã«ã ãªã¹ã"
+
+msgid "Disable IPv6 to speed up DNSCrypt-Proxy."
+msgstr "DNSCrypt-Proxy ã®é«éåã®ãããIPv6 ãç¡å¹åãã¾ãã"
+
+msgid "Dnsmasq Options"
+msgstr "Dnsmasq ãªãã·ã§ã³"
+
+msgid "Download the current resolver list from 'download.dnscrypt.org'."
+msgstr ""
+"ç¾å¨ã®ãªã¾ã«ã ãªã¹ãã 'download.dnscrypt.org' ãããã¦ã³ãã¼ããã¾ãã"
+
+msgid "Edit DNSCrypt-Proxy Configuration"
+msgstr "DNSCrypt-Proxy è¨å®ã®ç·¨é"
+
+msgid "Edit Dnsmasq Configuration"
+msgstr "Dnsmasq è¨å®ã®ç·¨é"
+
+msgid "Edit Resolvcrypt Configuration"
+msgstr "Resolvcrypt è¨å®ã®ç·¨é"
+
+msgid "Enable Caching to speed up DNSCcrypt-Proxy."
+msgstr "DNSCrypt-Proxy ã®é«éåã®ããããã£ãã·ã¥æ©è½ãæå¹åãã¾ãã"
+
+msgid "Ephemeral Keys"
+msgstr "ä¸æçãªãã¼"
+
+msgid "File Checksum"
+msgstr "ãã¡ã¤ã« ãã§ãã¯ãµã "
+
+msgid "File Date"
+msgstr "ãã¡ã¤ã«æ¥ä»"
+
+msgid ""
+"For further information see the wiki "
+"online "
+msgstr ""
+"詳細ãªæ
å ±ã¯ ãªã³ã©ã¤ã³ Wiki ã確èªãã¦"
+"ãã ããã"
+
+msgid "General Options"
+msgstr "å
¨è¬ãªãã·ã§ã³"
+
+msgid "IP Address"
+msgstr "IP ã¢ãã¬ã¹"
+
+msgid "Improve privacy by using an ephemeral public key for each query."
+msgstr ""
+"ã¯ã¨ãªæ¯ã«ä¸æçãªå
¬ééµã使ç¨ãããã¨ã«ããããã©ã¤ãã·ã¼ãåä¸ãã¾ãã"
+
+msgid "Input file not found, please check your configuration."
+msgstr "å
¥åãã¡ã¤ã«ãè¦ã¤ããã¾ãããè¨å®ã確èªãã¦ãã ããã"
+
+msgid "Instance Options"
+msgstr "ã¤ã³ã¹ã¿ã³ã¹ ãªãã·ã§ã³"
+
+msgid "Local Cache"
+msgstr "ãã¼ã«ã« ãã£ãã·ã¥"
+
+msgid ""
+"Local blacklists allow you to block abuse sites by domains or ip addresses."
+msgstr ""
+"ãã¼ã«ã« ãã©ãã¯ãªã¹ãã¯ãä¸æ£ãªãµã¤ãããã¡ã¤ã³åã¾ã㯠IP ã¢ãã¬ã¹ã«ãã£ã¦"
+"ãããã¯ãããã¨ãå¯è½ã§ãã"
+
+msgid ""
+"Log the received DNS queries to a file, so you can watch in real-time what "
+"is happening on the network."
+msgstr ""
+"åä¿¡ãã DNS ã¯ã¨ãªããã¡ã¤ã«ã«è¨é²ãã¾ããããã«ããããããã¯ã¼ã¯ã§ä½ãèµ·ã"
+"ã¦ãããããªã¢ã«ã¿ã¤ã ã«ææ¡ãããã¨ãå¯è½ã§ãã"
+
+msgid ""
+"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- "
+"and NOLOG-Flag."
+msgstr ""
+"ã¯ã¨ãªã®åå解決ãè¡ãããã±ã¼ã·ã§ã³, DNSSECã®æç¡, NOLOG ãã©ã°ãå«ãããª"
+"ã¢ã¼ã DNS ãµã¼ãã¹ã®ååã§ãã"
+
+msgid "No SSL support available. "
+msgstr "å©ç¨å¯è½ãª SSL ãµãã¼ããããã¾ããã "
+
+msgid "No default resolver list and no SSL support available. "
+msgstr ""
+"ããã©ã«ãã®ãªã¾ã«ã ãªã¹ãã¨ãå©ç¨å¯è½ãª SSL ãµãã¼ããããã¾ããã "
+
+msgid "Overview"
+msgstr "æ¦è¦"
+
+msgid "Please edit the file manually in the 'Advanced' section."
+msgstr "'詳細' ã¿ãã§æåã§ãã¡ã¤ã«ãç·¨éãã¦ãã ããã"
+
+msgid ""
+"Please install a 'libustream-ssl' library to download the current resolver "
+"list from 'download.dnscrypt.org'."
+msgstr ""
+"ç¾å¨ã®ãªã¾ã«ã ãªã¹ãã 'download.dnscrypt.org' ãããã¦ã³ãã¼ãããããã«ã "
+"'libustream-ssl' ã©ã¤ãã©ãªãã¤ã³ã¹ãã¼ã«ãã¦ãã ããã"
+
+msgid ""
+"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-"
+"resolvers.csv' to use this package."
+msgstr ""
+"ãã®ããã±ã¼ã¸ãå©ç¨ããã«ã¯ããªã¾ã«ã ãªã¹ãã '/usr/share/dnscrypt-proxy/"
+"dnscrypt-resolvers.csv' ã«ã¤ã³ã¹ãã¼ã«ãã¦ãã ããã"
+
+msgid ""
+"Please note: This may change the values for 'noresolv', 'resolvfile', "
+"'allservers' and the list 'server' settings."
+msgstr ""
+"注: ããã¯ã 'noresolv' ããã³ 'resolvfile', 'allservers', 'list server' ã®è¨"
+"å®å¤ãå¤æ´ããå ´åãããã¾ãã"
+
+msgid "Port"
+msgstr "ãã¼ã"
+
+msgid "Refresh List"
+msgstr "ãªã¹ãã®ãªãã¬ãã·ã¥"
+
+msgid "Refresh Resolver List"
+msgstr "ãªã¾ã«ã ãªã¹ãã®ãªãã¬ãã·ã¥"
+
+msgid "Resolver (LOC/SEC/NOLOG)"
+msgstr "ãªã¾ã«ãï¼LOC/SEC/NOLOGï¼"
+
+msgid "Save"
+msgstr "ä¿å"
+
+msgid "Specify a non-default Resolver List."
+msgstr "ããã©ã«ãã¨ã¯ç°ãªããªã¾ã«ã ãªã¹ããè¨å®ãã¾ãã"
+
+msgid "Startup Trigger"
+msgstr "ã¹ã¿ã¼ãã¢ãã ããªã¬"
+
+msgid "The config file '/etc/resolv-crypt.conf' already exist. "
+msgstr "è¨å®ãã¡ã¤ã« '/etc/resolv-crypt.conf' ã¯æ¢ã«åå¨ãã¦ãã¾ãã "
+
+msgid "The listening port for DNS queries."
+msgstr "DNS ã¯ã¨ãªãå¾
ã¡åãããã¼ãã§ãã"
+
+msgid ""
+"The local IPv4 or IPv6 address. The latter one should be specified within "
+"brackets, e.g. '[::1]'."
+msgstr ""
+"ãã¼ã«ã«ã® IPv4 ã¾ã㯠IPv6 ã¢ãã¬ã¹ã§ãã IPv6 ã¢ãã¬ã¹ã®å ´åããã©ã±ãã "
+"\"[ ]\" ãå«ãã¦è¨è¿°ãããå¿
è¦ãããã¾ãï¼ä¾: '[::1]'ï¼ã"
+
+msgid ""
+"The value for this property is the blocklist type and path to the file, e."
+"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'."
+msgstr ""
+"ãã®ããããã£ã®å¤ã¯ããããã¯ãªã¹ãã®ã¿ã¤ãåã³ãã¡ã¤ã«ã¸ã®ãã¹ã®çµã¿åãã"
+"ã§ããï¼ä¾: 'domains:/path/to/domainlist.txt' ã¾ã㯠'ips:/path/to/iplist."
+"txt'ï¼"
+
+msgid ""
+"This form allows you to modify the content of the main DNSCrypt-Proxy "
+"configuration file (/etc/config/dnscrypt-proxy)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãã¡ã¤ã³ã® DNSCrypt-Proxy è¨å®ãã¡ã¤ã« (/etc/config/dnscrypt-"
+"proxy) ã®å
容ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form allows you to modify the content of the main Dnsmasq configuration "
+"file (/etc/config/dhcp)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãã¡ã¤ã³ã® Dnsmasq è¨å®ãã¡ã¤ã« (/etc/config/dhcp) ã®å
容ãå¤"
+"æ´ãããã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form allows you to modify the content of the resolv-crypt configuration "
+"file (/etc/resolv-crypt.conf)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ã resolv-crypt è¨å®ãã¡ã¤ã«ï¼/etc/resolv-crypt.confï¼ã®å
容"
+"ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid "This form shows the content of the current DNSCrypt Resolver List."
+msgstr ""
+"ãã®ãã©ã¼ã ã«ã¯ãç¾å¨ã® DNSCrypt ãªã¾ã«ã ãªã¹ãã®å
容ã表示ããã¾ãã"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related "
+"messages only."
+msgstr ""
+"ãã®ãã©ã¼ã ã«ã¯ãã·ã¹ãã ãã°å
ã® DNSCrypt-Proxy ã«é¢é£ããã¡ãã»ã¼ã¸ã®ã¿ã"
+"表示ããã¾ãã"
+
+msgid ""
+"This option requires extra CPU cycles and is useless with most DNSCrypt "
+"server."
+msgstr ""
+"ãã®ãªãã·ã§ã³ã¯ãé常ããã CPU ãªã½ã¼ã¹ãå¤ã使ç¨ããã»ããã»ã¨ãã©ã® "
+"DNSCrypt ãµã¼ãã¼ã§ã¯ä¸è¦ãªãã®ã§ãã"
+
+msgid ""
+"To restrict the trigger, select only the relevant network interface. Usually "
+"the 'wan' interface should work for most users."
+msgstr ""
+"ããªã¬ãéå®ããã«ã¯ãé©åãªã¤ã³ã¿ã¼ãã§ã¼ã¹ãé¸æãã¦ãã ãããé常ã 'wan' "
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã»ã¨ãã©ã®ã¦ã¼ã¶ã¼ã«é©ãã¦ãã¾ãã"
+
+msgid "Transfer Options To Dnsmasq"
+msgstr "Dnsmasq ã®è»¢éãªãã·ã§ã³"
+
+msgid "View Logfile"
+msgstr "ãã°ãã¡ã¤ã«ã®ç¢ºèª"
+
+msgid "View Resolver List"
+msgstr "ãªã¾ã«ã ãªã¹ãã®ç¢ºèª"
diff --git a/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot b/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot
new file mode 100644
index 0000000000..59bded87b8
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot
@@ -0,0 +1,228 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "-------"
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Alternate Resolver List"
+msgstr ""
+
+msgid ""
+"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration. "
+msgstr ""
+
+msgid "Blacklist"
+msgstr ""
+
+msgid "Block IPv6"
+msgstr ""
+
+msgid ""
+"By default the DNSCrypt-Proxy startup will be triggered by ifup events of "
+"'All' available network interfaces. "
+msgstr ""
+
+msgid "Configuration of the DNSCrypt-Proxy package."
+msgstr ""
+
+msgid ""
+"Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS "
+"upstream timeouts with multiple DNSCrypt instances. "
+msgstr ""
+
+msgid "Create Config File"
+msgstr ""
+
+msgid "Create Custom Config File"
+msgstr ""
+
+msgid "DNS Query Logfile"
+msgstr ""
+
+msgid "DNSCrypt-Proxy"
+msgstr ""
+
+msgid "DNSCrypt-Proxy Logfile"
+msgstr ""
+
+msgid "DNSCrypt-Proxy Resolver List"
+msgstr ""
+
+msgid "Default Resolver List"
+msgstr ""
+
+msgid "Disable IPv6 to speed up DNSCrypt-Proxy."
+msgstr ""
+
+msgid "Dnsmasq Options"
+msgstr ""
+
+msgid "Download the current resolver list from 'download.dnscrypt.org'."
+msgstr ""
+
+msgid "Edit DNSCrypt-Proxy Configuration"
+msgstr ""
+
+msgid "Edit Dnsmasq Configuration"
+msgstr ""
+
+msgid "Edit Resolvcrypt Configuration"
+msgstr ""
+
+msgid "Enable Caching to speed up DNSCcrypt-Proxy."
+msgstr ""
+
+msgid "Ephemeral Keys"
+msgstr ""
+
+msgid "File Checksum"
+msgstr ""
+
+msgid "File Date"
+msgstr ""
+
+msgid ""
+"For further information see the wiki "
+"online "
+msgstr ""
+
+msgid "General Options"
+msgstr ""
+
+msgid "IP Address"
+msgstr ""
+
+msgid "Improve privacy by using an ephemeral public key for each query."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Instance Options"
+msgstr ""
+
+msgid "Local Cache"
+msgstr ""
+
+msgid ""
+"Local blacklists allow you to block abuse sites by domains or ip addresses."
+msgstr ""
+
+msgid ""
+"Log the received DNS queries to a file, so you can watch in real-time what "
+"is happening on the network."
+msgstr ""
+
+msgid ""
+"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- "
+"and NOLOG-Flag."
+msgstr ""
+
+msgid "No SSL support available. "
+msgstr ""
+
+msgid "No default resolver list and no SSL support available. "
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Please edit the file manually in the 'Advanced' section."
+msgstr ""
+
+msgid ""
+"Please install a 'libustream-ssl' library to download the current resolver "
+"list from 'download.dnscrypt.org'."
+msgstr ""
+
+msgid ""
+"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-"
+"resolvers.csv' to use this package."
+msgstr ""
+
+msgid ""
+"Please note: This may change the values for 'noresolv', 'resolvfile', "
+"'allservers' and the list 'server' settings."
+msgstr ""
+
+msgid "Port"
+msgstr ""
+
+msgid "Refresh List"
+msgstr ""
+
+msgid "Refresh Resolver List"
+msgstr ""
+
+msgid "Resolver (LOC/SEC/NOLOG)"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Specify a non-default Resolver List."
+msgstr ""
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "The config file '/etc/resolv-crypt.conf' already exist. "
+msgstr ""
+
+msgid "The listening port for DNS queries."
+msgstr ""
+
+msgid ""
+"The local IPv4 or IPv6 address. The latter one should be specified within "
+"brackets, e.g. '[::1]'."
+msgstr ""
+
+msgid ""
+"The value for this property is the blocklist type and path to the file, e."
+"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main DNSCrypt-Proxy "
+"configuration file (/etc/config/dnscrypt-proxy)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main Dnsmasq configuration "
+"file (/etc/config/dhcp)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the resolv-crypt configuration "
+"file (/etc/resolv-crypt.conf)."
+msgstr ""
+
+msgid "This form shows the content of the current DNSCrypt Resolver List."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related "
+"messages only."
+msgstr ""
+
+msgid ""
+"This option requires extra CPU cycles and is useless with most DNSCrypt "
+"server."
+msgstr ""
+
+msgid ""
+"To restrict the trigger, select only the relevant network interface. Usually "
+"the 'wan' interface should work for most users."
+msgstr ""
+
+msgid "Transfer Options To Dnsmasq"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "View Resolver List"
+msgstr ""
diff --git a/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy b/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy
new file mode 100755
index 0000000000..ec4da17c9a
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@dnscrypt-proxy[-1]
+ add ucitrack dnscrypt-proxy
+ set ucitrack.@dnscrypt-proxy[-1].init=dnscrypt-proxy
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-dynapoint/Makefile b/applications/luci-app-dynapoint/Makefile
index d16ef4a8fa..83512dba5e 100644
--- a/applications/luci-app-dynapoint/Makefile
+++ b/applications/luci-app-dynapoint/Makefile
@@ -9,9 +9,6 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for DynaPoint
LUCI_DEPENDS:=+dynapoint
-PKG_NAME:=luci-app-dynapoint
-PKG_VERSION:=1.0
-PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Tobias Ilte
include ../../luci.mk
diff --git a/applications/luci-app-dynapoint/po/pt-br/dynapoint.po b/applications/luci-app-dynapoint/po/pt-br/dynapoint.po
new file mode 100644
index 0000000000..59b02629a9
--- /dev/null
+++ b/applications/luci-app-dynapoint/po/pt-br/dynapoint.po
@@ -0,0 +1,107 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Activate this wVIF if status is:"
+msgstr "Aivar este wVIF se o estado for:"
+
+msgid "Append hostname to ssid"
+msgstr "Sufixar o nome do equipamento ao SSID"
+
+msgid "Append the router's hostname to the SSID when connectivity check fails"
+msgstr ""
+"Sufixar o nome do roteador ao SSID quando a verificação da conectividade "
+"falhar"
+
+msgid "Check Internet connectivity via HTTP header download"
+msgstr "Cerifique a conectividade com a internet baixando o cabeçalho HTTP "
+
+msgid "Configuration"
+msgstr "Configuração"
+
+msgid "Curl is currently not installed."
+msgstr "O cURL não está instalado."
+
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Disabled"
+msgstr "Desabilitado"
+
+msgid "DynaPoint"
+msgstr "DynaPoint"
+
+msgid "Dynamic Access Point Manager"
+msgstr "Gerenciamento do Ponto de Acesso Dinâmico"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid ""
+"Failure counter after how many failed download attempts, the state is "
+"considered as offline"
+msgstr "Numero de falhar para considerar como inalcançável"
+
+msgid "List of Wireless Virtual Interfaces (wVIF)"
+msgstr "Lista de Interfaces Virtuais Wireless (wVIF)"
+
+msgid "List of host addresses"
+msgstr "Lista de endereços dos equipamentos"
+
+msgid ""
+"List of host addresses (url or IP) to track and request http headers from"
+msgstr ""
+"Lista de endereços dos equipamentos (URL ou endereço IP) para requisitar "
+"cabeçalhos HTTP"
+
+msgid "Mode"
+msgstr "Modo"
+
+msgid "Not used by DynaPoint"
+msgstr "Não usado pelo DynaPoint"
+
+msgid "Offline"
+msgstr "Desconectado"
+
+msgid "Online"
+msgstr "Conectado"
+
+msgid "SSID"
+msgstr "SSID"
+
+msgid "Switch_to_offline threshold"
+msgstr "Limiar para mudar para desconectado"
+
+msgid "Test-run interval"
+msgstr "Intervalo para execução do teste"
+
+msgid "Time interval in seconds to re-start a new test run"
+msgstr "Intervalo, em segundos, para reiniciar um nova execução do teste"
+
+msgid "Use curl"
+msgstr "Usar cURL"
+
+msgid "Use curl instead of wget"
+msgstr "Usar cURL ao invés do wget"
+
+msgid "Use curl instead of wget for testing the connectivity."
+msgstr "Usar cURL ao invés do wget para testar a conectividade."
+
+msgid "Used interface"
+msgstr "Dispositivos usadas"
+
+msgid "Which interface should curl use. (Use ifconfig to find out)"
+msgstr "Qual dispositivo o cURL deve usar. (Use ifconfig para listá-las)"
+
+msgid "WiFi Status"
+msgstr "Estado da WiFi"
diff --git a/applications/luci-app-e2guardian/Makefile b/applications/luci-app-e2guardian/Makefile
new file mode 100644
index 0000000000..c3ac029885
--- /dev/null
+++ b/applications/luci-app-e2guardian/Makefile
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=E2Guardian LuCI Interface
+LUCI_DEPENDS:=+luci-mod-admin-full +e2guardian
+
+PKG_MAINTAINER:=Marko Ratkaj
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua b/applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua
new file mode 100644
index 0000000000..dd545f50ba
--- /dev/null
+++ b/applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua
@@ -0,0 +1,22 @@
+--[[
+
+LuCI E2Guardian module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+ Luka Perkov
+
+]]--
+
+module("luci.controller.e2guardian", package.seeall)
+
+function index()
+ entry({"admin", "services", "e2guardian"}, cbi("e2guardian"), _("E2Guardian"))
+end
diff --git a/applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua b/applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua
new file mode 100644
index 0000000000..b62132108c
--- /dev/null
+++ b/applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua
@@ -0,0 +1,399 @@
+--[[
+
+LuCI E2Guardian module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+ Luka Perkov
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+
+m = Map("e2guardian", translate("E2Guardian"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/e2guardian restart") end
+
+s = m:section(TypedSection, "e2guardian")
+s.anonymous = true
+s.addremove = false
+
+s:tab("tab_general", translate("General Settings"))
+s:tab("tab_additional", translate("Additional Settings"))
+s:tab("tab_logs", translate("Logs"))
+
+
+----------------- General Settings Tab -----------------------
+
+filterip = s:taboption("tab_general", Value, "filterip", translate("IP that E2Guardian listens"))
+filterip.datatype = "ip4addr"
+
+filterports = s:taboption("tab_general", Value, "filterports", translate("Port that E2Guardian listens"))
+filterports.datatype = "portrange"
+filterports.placeholder = "0-65535"
+
+proxyip = s:taboption("tab_general", Value, "proxyip", translate("IP address of the proxy"))
+proxyip.datatype = "ip4addr"
+proxyip.default = "127.0.0.1"
+
+proxyport = s:taboption("tab_general", Value, "proxyport", translate("Port of the proxy"))
+proxyport.datatype = "portrange"
+proxyport.placeholder = "0-65535"
+
+languagedir = s:taboption("tab_general", Value, "languagedir", translate("Language dir"))
+languagedir.datatype = "string"
+languagedir.default = "/usr/share/e2guardian/languages"
+
+language = s:taboption("tab_general", Value, "language", translate("Language to use"))
+language.datatype = "string"
+language.default = "ukenglish"
+
+loglevel = s:taboption("tab_general", ListValue, "loglevel", translate("Logging Settings"))
+loglevel:value("0", translate("none"))
+loglevel:value("1", translate("just denied"))
+loglevel:value("2", translate("all text based"))
+loglevel:value("3", translate("all requests"))
+loglevel.default = "2"
+
+logexceptionhits = s:taboption("tab_general", ListValue, "logexceptionhits", translate("Log Exception Hits"))
+logexceptionhits:value("0", translate("never"))
+logexceptionhits:value("1", translate("log, but don't mark as exceptions"))
+logexceptionhits:value("2", translate("log and mark"))
+logexceptionhits.default = "2"
+
+logfileformat = s:taboption("tab_general", ListValue, "logfileformat", translate("Log File Format"))
+logfileformat:value("1", translate("DansgGuardian format, space delimited"))
+logfileformat:value("2", translate("CSV-style format"))
+logfileformat:value("3", translate("Squid Log File Format"))
+logfileformat:value("4", translate("Tab delimited"))
+logfileformat:value("5", translate("Protex format"))
+logfileformat:value("6", translate("Protex format with server field blanked"))
+logfileformat.default = "1"
+
+accessdeniedaddress = s:taboption("tab_general", Value, "accessdeniedaddress", translate("Access denied address"),
+translate("Server to which the cgi e2guardian reporting script was copied. Reporting levels 1 and 2 only"))
+accessdeniedaddress.datatype = "string"
+accessdeniedaddress.default = "http://YOURSERVER.YOURDOMAIN/cgi-bin/e2guardian.pl"
+
+usecustombannedimage = s:taboption("tab_general", ListValue, "usecustombannedimage", translate("Banned image replacement"))
+usecustombannedimage:value("on", translate("Yes"))
+usecustombannedimage:value("off", translate("No"))
+usecustombannedimage.default = "on"
+
+custombannedimagefile = s:taboption("tab_general", Value, "custombannedimagefile", translate("Custom banned image file"))
+custombannedimagefile.datatype = "string"
+custombannedimagefile.default = "/usr/share/e2guardian/transparent1x1.gif"
+
+usecustombannedflash = s:taboption("tab_general", ListValue, "usecustombannedflash", translate("Banned flash replacement"))
+usecustombannedflash:value("on", translate("Yes"))
+usecustombannedflash:value("off", translate("No"))
+usecustombannedflash.default = "on"
+
+custombannedflashfile = s:taboption("tab_general", Value, "custombannedflashfile", translate("Custom banned flash file"))
+custombannedflashfile.datatype = "string"
+custombannedflashfile.default = "/usr/share/e2guardian/blockedflash.swf"
+
+filtergroups = s:taboption("tab_general", Value, "filtergroups", translate("Number of filter groups"))
+filtergroups.datatype = "and(uinteger,min(1))"
+filtergroups.default = "1"
+
+filtergroupslist = s:taboption("tab_general", Value, "filtergroupslist", translate("List of filter groups"))
+filtergroupslist.datatype = "string"
+filtergroupslist.default = "/etc/e2guardian/lists/filtergroupslist"
+
+bannediplist = s:taboption("tab_general", Value, "bannediplist", translate("List of banned IPs"))
+bannediplist.datatype = "string"
+bannediplist.default = "/etc/e2guardian/lists/bannediplist"
+
+exceptioniplist = s:taboption("tab_general", Value, "exceptioniplist", translate("List of IP exceptions"))
+exceptioniplist.datatype = "string"
+exceptioniplist.default = "/etc/e2guardian/lists/exceptioniplist"
+
+perroomblockingdirectory = s:taboption("tab_general", Value, "perroomblockingdirectory", translate("Per-Room blocking definition directory"))
+perroomblockingdirectory.datatype = "string"
+perroomblockingdirectory.default = "/etc/e2guardian/lists/bannedrooms/"
+
+showweightedfound = s:taboption("tab_general", ListValue, "showweightedfound", translate("Show weighted phrases found"))
+showweightedfound:value("on", translate("Yes"))
+showweightedfound:value("off", translate("No"))
+showweightedfound.default = "on"
+
+weightedphrasemode = s:taboption("tab_general", ListValue, "weightedphrasemode", translate("Weighted phrase mode"))
+weightedphrasemode:value("0", translate("off"))
+weightedphrasemode:value("1", translate("on, normal operation"))
+weightedphrasemode:value("2", translate("on, phrase found only counts once on a page"))
+weightedphrasemode.default = "2"
+
+urlcachenumber = s:taboption("tab_general", Value, "urlcachenumber", translate("Clean result caching for URLs"))
+urlcachenumber.datatype = "and(uinteger,min(0))"
+urlcachenumber.default = "1000"
+
+urlcacheage = s:taboption("tab_general", Value, "urlcacheage", translate("Age before they should be ignored in seconds"))
+urlcacheage.datatype = "and(uinteger,min(0))"
+urlcacheage.default = "900"
+
+scancleancache = s:taboption("tab_general", ListValue, "scancleancache", translate("Cache for content (AV) scans as 'clean'"))
+scancleancache:value("on", translate("Yes"))
+scancleancache:value("off", translate("No"))
+scancleancache.default = "on"
+
+phrasefiltermode = s:taboption("tab_general", ListValue, "phrasefiltermode", translate("Filtering options"))
+phrasefiltermode:value("0", translate("raw"))
+phrasefiltermode:value("1", translate("smart"))
+phrasefiltermode:value("2", translate("both raw and smart"))
+phrasefiltermode:value("3", translate("meta/title"))
+phrasefiltermode.default = "2"
+
+preservecase = s:taboption("tab_general", ListValue, "perservecase", translate("Lower caseing options"))
+preservecase:value("0", translate("force lower case"))
+preservecase:value("1", translate("don't change"))
+preservecase:value("2", translate("scan fist in lower, then in original"))
+preservecase.default = "0"
+
+hexdecodecontent = s:taboption("tab_general", ListValue, "hexdecodecontent", translate("Hex decoding options"))
+hexdecodecontent:value("on", translate("Yes"))
+hexdecodecontent:value("off", translate("No"))
+hexdecodecontent.default = "off"
+
+forcequicksearch = s:taboption("tab_general", ListValue, "forcequicksearch", translate("Quick search"))
+forcequicksearch:value("on", translate("Yes"))
+forcequicksearch:value("off", translate("No"))
+forcequicksearch.default = "off"
+
+reverseaddresslookups= s:taboption("tab_general", ListValue, "reverseaddresslookups", translate("Reverse lookups for banned site and URLs"))
+reverseaddresslookups:value("on", translate("Yes"))
+reverseaddresslookups:value("off", translate("No"))
+reverseaddresslookups.default = "off"
+
+reverseclientiplookups = s:taboption("tab_general", ListValue, "reverseclientiplookups", translate("Reverse lookups for banned and exception IP lists"))
+reverseclientiplookups:value("on", translate("Yes"))
+reverseclientiplookups:value("off", translate("No"))
+reverseclientiplookups.default = "off"
+
+logclienthostnames = s:taboption("tab_general", ListValue, "logclienthostnames", translate("Perform reverse lookups on client IPs for successful requests"))
+logclienthostnames:value("on", translate("Yes"))
+logclienthostnames:value("off", translate("No"))
+logclienthostnames.default = "off"
+
+createlistcachefiles = s:taboption("tab_general", ListValue, "createlistcachefiles", translate("Build bannedsitelist and bannedurllist cache files"))
+createlistcachefiles:value("on",translate("Yes"))
+createlistcachefiles:value("off",translate("No"))
+createlistcachefiles.default = "on"
+
+prefercachedlists = s:taboption("tab_general", ListValue, "prefercachedlists", translate("Prefer cached list files"))
+prefercachedlists:value("on", translate("Yes"))
+prefercachedlists:value("off", translate("No"))
+prefercachedlists.default = "off"
+
+maxuploadsize = s:taboption("tab_general", Value, "maxuploadsize", translate("Max upload size (in Kbytes)"))
+maxuploadsize:value("-1", translate("no blocking"))
+maxuploadsize:value("0", translate("complete block"))
+maxuploadsize.default = "-1"
+
+maxcontentfiltersize = s:taboption("tab_general", Value, "maxcontentfiltersize", translate("Max content filter size"),
+translate("The value must not be higher than max content ram cache scan size or 0 to match it"))
+maxcontentfiltersize.datatype = "and(uinteger,min(0))"
+maxcontentfiltersize.default = "256"
+
+maxcontentramcachescansize = s:taboption("tab_general", Value, "maxcontentramcachescansize", translate("Max content ram cache scan size"),
+translate("This is the max size of file that DG will download and cache in RAM"))
+maxcontentramcachescansize.datatype = "and(uinteger,min(0))"
+maxcontentramcachescansize.default = "2000"
+
+maxcontentfilecachescansize = s:taboption("tab_general", Value, "maxcontentfilecachescansize", translate("Max content file cache scan size"))
+maxcontentfilecachescansize.datatype = "and(uinteger,min(0))"
+maxcontentfilecachescansize.default = "20000"
+
+proxytimeout = s:taboption("tab_general", Value, "proxytimeout", translate("Proxy timeout (5-100)"))
+proxytimeout.datatype = "range(5,100)"
+proxytimeout.default = "20"
+
+proxyexchange = s:taboption("tab_general", Value, "proxyexchange", translate("Proxy header excahnge (20-300)"))
+proxyexchange.datatype = "range(20,300)"
+proxyexchange.default = "20"
+
+pcontimeout = s:taboption("tab_general", Value, "pcontimeout", translate("Pconn timeout"),
+translate("How long a persistent connection will wait for other requests"))
+pcontimeout.datatype = "range(5,300)"
+pcontimeout.default = "55"
+
+filecachedir = s:taboption("tab_general", Value, "filecachedir", translate("File cache directory"))
+filecachedir.datatype = "string"
+filecachedir.default = "/tmp"
+
+deletedownloadedtempfiles = s:taboption("tab_general", ListValue, "deletedownloadedtempfiles", translate("Delete file cache after user completes download"))
+deletedownloadedtempfiles:value("on", translate("Yes"))
+deletedownloadedtempfiles:value("off", translate("No"))
+deletedownloadedtempfiles.default = "on"
+
+initialtrickledelay = s:taboption("tab_general", Value, "initialtrickledelay", translate("Initial Trickle delay"),
+translate("Number of seconds a browser connection is left waiting before first being sent *something* to keep it alive"))
+initialtrickledelay.datatype = "and(uinteger,min(0))"
+initialtrickledelay.default = "20"
+
+trickledelay = s:taboption("tab_general", Value, "trickledelay", translate("Trickle delay"),
+translate("Number of seconds a browser connection is left waiting before being sent more *something* to keep it alive"))
+trickledelay.datatype = "and(uinteger,min(0))"
+trickledelay.default = "10"
+
+downloadmanager = s:taboption("tab_general", Value, "downloadmanager", translate("Download manager"))
+downloadmanager.datatype = "string"
+downloadmanager.default = "/etc/e2guardian/downloadmanagers/default.conf"
+
+contentscannertimeout = s:taboption("tab_general", Value, "contentscannertimeout", translate("Content scanner timeout"))
+contentscannertimeout.datatype = "and(uinteger,min(0))"
+contentscannertimeout.default = "60"
+
+contentscanexceptions = s:taboption("tab_general", ListValue, "contentscanexceptions", translate("Content scan exceptions"))
+contentscanexceptions:value("on", translate("Yes"))
+contentscanexceptions:value("off", translate("No"))
+contentscanexceptions.default = "off"
+
+recheckreplacedurls = s:taboption("tab_general", ListValue, "recheckreplacedurls", translate("e-check replaced URLs"))
+recheckreplacedurls:value("on", translate("Yes"))
+recheckreplacedurls:value("off", translate("No"))
+recheckreplacedurls.default = "off"
+
+forwardedfor = s:taboption("tab_general", ListValue, "forwardedfor", translate("Misc setting: forwardedfor"),
+translate("If on, it may help solve some problem sites that need to know the source ip."))
+forwardedfor:value("on", translate("Yes"))
+forwardedfor:value("off", translate("No"))
+forwardedfor.default = "off"
+
+usexforwardedfor = s:taboption("tab_general", ListValue, "usexforwardedfor", translate("Misc setting: usexforwardedfor"),
+translate("This is for when you have squid between the clients and E2Guardian"))
+usexforwardedfor:value("on", translate("Yes"))
+usexforwardedfor:value("off", translate("No"))
+usexforwardedfor.default = "off"
+
+logconnectionhandlingerrors = s:taboption("tab_general", ListValue, "logconnectionhandlingerrors", translate("Log debug info about log()ing and accept()ing"))
+logconnectionhandlingerrors:value("on", translate("Yes"))
+logconnectionhandlingerrors:value("off", translate("No"))
+logconnectionhandlingerrors.default = "on"
+
+logchildprocesshandling = s:taboption("tab_general", ListValue, "logchildprocesshandling", translate("Log child process handling"))
+logchildprocesshandling:value("on", translate("Yes"))
+logchildprocesshandling:value("off", translate("No"))
+logchildprocesshandling.default = "off"
+
+maxchildren = s:taboption("tab_general", Value, "maxchildren", translate("Max number of processes to spawn"))
+maxchildren.datatype = "and(uinteger,min(0))"
+maxchildren.default = "180"
+
+minchildren = s:taboption("tab_general", Value, "minchildren", translate("Min number of processes to spawn"))
+minchildren.datatype = "and(uinteger,min(0))"
+minchildren.default = "20"
+
+minsparechildren = s:taboption("tab_general", Value, "minsparechildren", translate("Min number of processes to keep ready"))
+minsparechildren.datatype = "and(uinteger,min(0))"
+minsparechildren.default = "16"
+
+preforkchildren = s:taboption("tab_general", Value, "preforkchildren", translate("Sets minimum nuber of processes when it runs out"))
+preforkchildren.datatype = "and(uinteger,min(0))"
+preforkchildren.default = "10"
+
+maxsparechildren = s:taboption("tab_general", Value, "maxsparechildren", translate("Sets the maximum number of processes to have doing nothing"))
+maxsparechildren.datatype = "and(uinteger,min(0))"
+maxsparechildren.default = "32"
+
+maxagechildren = s:taboption("tab_general", Value, "maxagechildren", translate("Max age of child process"))
+maxagechildren.datatype = "and(uinteger,min(0))"
+maxagechildren.default = "500"
+
+maxips = s:taboption("tab_general", Value, "maxips", translate("Max number of clinets allowed to connect"))
+maxips:value("0", translate("no limit"))
+maxips.default = "0"
+
+ipipcfilename = s:taboption("tab_general", Value, "ipipcfilename", translate("IP list IPC server directory and filename"))
+ipipcfilename.datatype = "string"
+ipipcfilename.default = "/tmp/.dguardianipc"
+
+urlipcfilename = s:taboption("tab_general", Value, "urlipcfilename", translate("Defines URL list IPC server directory and filename used to communicate with the URL cache process"))
+urlipcfilename.datatype = "string"
+urlipcfilename.default = "/tmp/.dguardianurlipc"
+
+ipcfilename = s:taboption("tab_general", Value, "ipcfilename", translate("Defines URL list IPC server directory and filename used to communicate with the URL cache process"))
+ipcfilename.datatype = "string"
+ipcfilename.default = "/tmp/.dguardianipipc"
+
+nodeamon = s:taboption("tab_general", ListValue, "nodeamon", translate("Disable deamoning"))
+nodeamon:value("on", translate("Yes"))
+nodeamon:value("off", translate("No"))
+nodeamon.default = "off"
+
+nologger = s:taboption("tab_general", ListValue, "nologger", translate("Disable logger"))
+nologger:value("on", translate("Yes"))
+nologger:value("off", translate("No"))
+nologger.default = "off"
+
+logadblock = s:taboption("tab_general", ListValue, "logadblock", translate("Enable logging of ADs"))
+logadblock:value("on", translate("Yes"))
+logadblock:value("off", translate("No"))
+logadblock.default = "off"
+
+loguseragent = s:taboption("tab_general", ListValue, "loguseragent", translate("Enable logging of client user agent"))
+loguseragent:value("on", translate("Yes"))
+loguseragent:value("off", translate("No"))
+loguseragent.default = "off"
+
+softrestart = s:taboption("tab_general", ListValue, "softrestart", translate("Enable soft restart"))
+softrestart:value("on", translate("Yes"))
+softrestart:value("off", translate("No"))
+softrestart.default = "off"
+
+
+------------------------ Additional Settings Tab ----------------------------
+
+e2guardian_config_file = s:taboption("tab_additional", TextValue, "_data", "")
+e2guardian_config_file.wrap = "off"
+e2guardian_config_file.rows = 25
+e2guardian_config_file.rmempty = false
+
+function e2guardian_config_file.cfgvalue()
+ local uci = require "luci.model.uci".cursor_state()
+ file = "/etc/e2guardian/e2guardianf1.conf"
+ if file then
+ return fs.readfile(file) or ""
+ else
+ return ""
+ end
+end
+
+function e2guardian_config_file.write(self, section, value)
+ if value then
+ local uci = require "luci.model.uci".cursor_state()
+ file = "/etc/e2guardian/e2guardianf1.conf"
+ fs.writefile(file, value:gsub("\r\n", "\n"))
+ end
+end
+
+
+---------------------------- Logs Tab -----------------------------
+
+e2guardian_logfile = s:taboption("tab_logs", TextValue, "lines", "")
+e2guardian_logfile.wrap = "off"
+e2guardian_logfile.rows = 25
+e2guardian_logfile.rmempty = true
+
+function e2guardian_logfile.cfgvalue()
+ local uci = require "luci.model.uci".cursor_state()
+ file = "/tmp/e2guardian/access.log"
+ if file then
+ return fs.readfile(file) or ""
+ else
+ return "Can't read log file"
+ end
+end
+
+function e2guardian_logfile.write()
+ return ""
+end
+
+return m
diff --git a/applications/luci-app-firewall/Makefile b/applications/luci-app-firewall/Makefile
index 21804d7c2d..4fa85f2d5b 100644
--- a/applications/luci-app-firewall/Makefile
+++ b/applications/luci-app-firewall/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Firewall and Portforwarding application
LUCI_DEPENDS:=+firewall
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua
index 2b3cee3283..21a1b2796d 100644
--- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua
+++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua
@@ -5,7 +5,7 @@ local fs = require "nixio.fs"
local f = SimpleForm("firewall",
translate("Firewall - Custom Rules"),
- translate("Custom rules allow you to execute arbritary iptables commands \
+ translate("Custom rules allow you to execute arbitrary iptables commands \
which are not otherwise covered by the firewall framework. \
The commands are executed after each firewall restart, right after \
the default ruleset has been loaded."))
diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
index 500d1bf32f..7553504572 100644
--- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
+++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
@@ -21,7 +21,7 @@ nw.init(m.uci)
local zone = fw:get_zone(arg[1])
if not zone then
- luci.http.redirect(dsp.build_url("admin/network/firewall/zones"))
+ luci.http.redirect(ds.build_url("admin/network/firewall/zones"))
return
else
m.title = "%s - %s" %{
diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua
index 694bbd872e..500e5078f4 100644
--- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua
+++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua
@@ -19,7 +19,6 @@ s.addremove = false
s:option(Flag, "syn_flood", translate("Enable SYN-flood protection"))
o = s:option(Flag, "drop_invalid", translate("Drop invalid packets"))
-o.default = o.enabled
p = {
s:option(ListValue, "input", translate("Input")),
diff --git a/applications/luci-app-firewall/po/ca/firewall.po b/applications/luci-app-firewall/po/ca/firewall.po
index 913fb759e4..3abdc892d8 100644
--- a/applications/luci-app-firewall/po/ca/firewall.po
+++ b/applications/luci-app-firewall/po/ca/firewall.po
@@ -70,7 +70,7 @@ msgid "Custom Rules"
msgstr "Regles personalitzades"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/cs/firewall.po b/applications/luci-app-firewall/po/cs/firewall.po
index 1ab1360f57..c796873ded 100644
--- a/applications/luci-app-firewall/po/cs/firewall.po
+++ b/applications/luci-app-firewall/po/cs/firewall.po
@@ -66,7 +66,7 @@ msgid "Custom Rules"
msgstr "Vlastnà pravidla"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/de/firewall.po b/applications/luci-app-firewall/po/de/firewall.po
index 448f951fa0..00e259ca70 100644
--- a/applications/luci-app-firewall/po/de/firewall.po
+++ b/applications/luci-app-firewall/po/de/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Benutzerdefinierte Regeln"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/el/firewall.po b/applications/luci-app-firewall/po/el/firewall.po
index 2229bf09f6..6ebc2286ab 100644
--- a/applications/luci-app-firewall/po/el/firewall.po
+++ b/applications/luci-app-firewall/po/el/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Î ÏοÏαÏμοÏμÎνοι ÎανÏνεÏ"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/en/firewall.po b/applications/luci-app-firewall/po/en/firewall.po
index 9dc277dbed..f7658a5b0c 100644
--- a/applications/luci-app-firewall/po/en/firewall.po
+++ b/applications/luci-app-firewall/po/en/firewall.po
@@ -66,7 +66,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/es/firewall.po b/applications/luci-app-firewall/po/es/firewall.po
index 670b4db6f6..8550d0567a 100644
--- a/applications/luci-app-firewall/po/es/firewall.po
+++ b/applications/luci-app-firewall/po/es/firewall.po
@@ -69,7 +69,7 @@ msgid "Custom Rules"
msgstr "Reglas propias"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/fr/firewall.po b/applications/luci-app-firewall/po/fr/firewall.po
index cdff282964..7be4d8f4f4 100644
--- a/applications/luci-app-firewall/po/fr/firewall.po
+++ b/applications/luci-app-firewall/po/fr/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Régles spécifiques"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/he/firewall.po b/applications/luci-app-firewall/po/he/firewall.po
index ce0ad04050..e269e58cb2 100644
--- a/applications/luci-app-firewall/po/he/firewall.po
+++ b/applications/luci-app-firewall/po/he/firewall.po
@@ -63,7 +63,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/hu/firewall.po b/applications/luci-app-firewall/po/hu/firewall.po
index c201e3da88..2c3ae02f61 100644
--- a/applications/luci-app-firewall/po/hu/firewall.po
+++ b/applications/luci-app-firewall/po/hu/firewall.po
@@ -66,7 +66,7 @@ msgid "Custom Rules"
msgstr "Egyéni szabályok"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/it/firewall.po b/applications/luci-app-firewall/po/it/firewall.po
index 88535243be..a5c4a1ee08 100644
--- a/applications/luci-app-firewall/po/it/firewall.po
+++ b/applications/luci-app-firewall/po/it/firewall.po
@@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2012-04-19 23:05+0200\n"
-"Last-Translator: claudyus \n"
+"PO-Revision-Date: 2017-09-02 23:05+0200\n"
+"Last-Translator: bubu83 \n"
"Language-Team: LANGUAGE \n"
"Language: it\n"
"MIME-Version: 1.0\n"
@@ -47,35 +47,35 @@ msgid "Add"
msgstr "Aggiungi"
msgid "Add and edit..."
-msgstr "Aggiungi e edita..."
+msgstr "Aggiungi e modifica..."
msgid "Advanced Settings"
msgstr "Opzioni Avanzate"
msgid "Allow forward from source zones :"
-msgstr "Permetti routing da zone di origini :"
+msgstr "Permetti routing da zone di origine :"
msgid "Allow forward to destination zones :"
-msgstr "Permetti rountin a zone di destinazione :"
+msgstr "Permetti rounting a zone di destinazione :"
msgid "Any"
msgstr "Qualsiasi"
msgid "Covered networks"
-msgstr ""
+msgstr "Reti coperte"
msgid "Custom Rules"
msgstr "Regole Personalizzate"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
"Le regole personalizzate ti permettorno di eseguire comandi iptables "
-"arbitrari che non solo altrimenti coperti dall'applicazione firewall. I "
+"arbitrari che non sono altrimenti coperti dall'applicazione firewall. I "
"comandi sono eseguiti dopo ogni riavvio del firewall, giusto dopo le altre "
-"regole che son state caricate."
+"regole che sono state caricate."
msgid "Destination IP address"
msgstr "Indirizzo IP destinazione"
@@ -90,22 +90,22 @@ msgid "Destination zone"
msgstr "Zona di destinazione"
msgid "Do not rewrite"
-msgstr ""
+msgstr "Non riscrivere"
msgid "Drop invalid packets"
-msgstr "Attiva"
+msgstr "Scarta pacchetti invalidi"
msgid "Enable"
-msgstr ""
+msgstr "Attiva"
msgid "Enable NAT Loopback"
-msgstr ""
+msgstr "Attiva NAT Loopback"
msgid "Enable SYN-flood protection"
-msgstr ""
+msgstr "Attiva protezione SYN-flood"
msgid "Enable logging on this zone"
-msgstr ""
+msgstr "Attiva registro su questa zona"
msgid "External IP address"
msgstr "Indirizzo IP Esterno"
@@ -135,25 +135,25 @@ msgid "Firewall - Zone Settings"
msgstr "Firewall - Opzioni delle Zone"
msgid "Force connection tracking"
-msgstr ""
+msgstr "Forza tracciamento connessione"
msgid "Forward"
msgstr "Inoltra"
msgid "Forward to"
-msgstr "Inoltro a"
+msgstr "Inoltra a"
msgid "Friday"
-msgstr ""
+msgstr "Venerdì"
msgid "From %s in %s"
-msgstr ""
+msgstr "Da %s a %s"
msgid "From %s in %s with source %s"
-msgstr ""
+msgstr "Da %s a %s con sorgente %s"
msgid "From %s in %s with source %s and %s"
-msgstr ""
+msgstr "Da %s a %s con sorgente %s e %s"
msgid "General Settings"
msgstr "Opzioni Generali"
@@ -177,10 +177,10 @@ msgid "Input"
msgstr "Ingresso"
msgid "Inter-Zone Forwarding"
-msgstr ""
+msgstr "Inoltro tra le zone"
msgid "Internal IP address"
-msgstr "Indirizzo IP Interno"
+msgstr "Indirizzo IP interno"
msgid "Internal port"
msgstr "Porta interna"
@@ -189,92 +189,98 @@ msgid "Internal zone"
msgstr "Zona Interna"
msgid "Limit log messages"
-msgstr ""
+msgstr "Limita messaggi del registro"
msgid "MSS clamping"
msgstr ""
msgid "Masquerading"
-msgstr "Dettagli"
+msgstr ""
msgid "Match"
-msgstr ""
+msgstr "Corrispondenza"
msgid "Match ICMP type"
-msgstr ""
+msgstr "Corrispondenza tipo ICMP"
msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
+msgstr "Corrispondi traffico inoltrato alla porta o intervallo di porte dato."
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
+"Corrispondi traffico in entrata diretto alla porta o intervallo di porte dato "
+"su questo host"
msgid ""
"Match incoming traffic originating from the given source port or port range "
"on the client host."
msgstr ""
+"Corrispondi traffico in entrata originato dalla porta o intervallo di porte dato "
+"su host cliente"
msgid "Monday"
-msgstr ""
+msgstr "Lunedì"
msgid "Month Days"
-msgstr ""
+msgstr "Giorni del Mese"
msgid "Name"
msgstr "Nome"
msgid "New SNAT rule"
-msgstr ""
+msgstr "Nuova regola SNAT"
msgid "New forward rule"
-msgstr ""
+msgstr "Nuova regola di inoltro"
msgid "New input rule"
-msgstr "Nuova regola di inoltro porta"
+msgstr "Nuova regola di ingresso"
msgid "New port forward"
-msgstr ""
+msgstr "Nuova porta di inoltro"
msgid "New source NAT"
-msgstr ""
+msgstr "Nuova sorgente NAT"
msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
+msgstr "Corrispondi solo traffico in entrata diretto al dato indirizzo IP."
msgid "Only match incoming traffic from these MACs."
-msgstr ""
+msgstr "Corrispondi solo traffico in entrata da questi MAC."
msgid "Only match incoming traffic from this IP or range."
-msgstr ""
+msgstr "Corrispondi solo traffico in entrata da questo IP o intervallo."
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
+"Corrispondi solo traffico in entrata originato dalla porta o intervallo di "
+"porte sorgenti su host cliente"
msgid "Open ports on router"
-msgstr ""
+msgstr "Porte aperte sul router"
msgid "Other..."
-msgstr ""
+msgstr "Altri..."
msgid "Output"
msgstr ""
msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
+msgstr "Passa comandi addizionali a iptables. Usare con cura!"
msgid "Port Forwards"
-msgstr ""
+msgstr "Inoltri Porta"
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-"L'inoltro delle porte permette ai computer in remoto su Internet "
-"diconnettersi a uno specifico computer o servizio presente nella tua LAN "
+"L'inoltro delle porte permette ai computer in remoto su Internet di "
+"connettersi a uno specifico computer o servizio presente nella LAN "
"privata"
msgid "Protocol"
@@ -283,44 +289,47 @@ msgstr "Protocollo"
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
+"Reindirizza il traffico in entrata alla porta data su host interno"
msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
+msgstr "Reindirizza il traffico in entrata allo specifico host interno"
msgid "Restart Firewall"
-msgstr ""
+msgstr "Riavvia Firewall"
msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
+msgstr "Limita il Masquerading alle subnet di destinazione date"
msgid "Restrict Masquerading to given source subnets"
-msgstr ""
+msgstr "Limita il Masquerading alle subnet sorgente date"
msgid "Restrict to address family"
-msgstr ""
+msgstr "Limita agli indirizzi famiglia"
msgid "Rewrite matched traffic to the given address."
-msgstr ""
+msgstr "Riscrivi il traffico verso l'indirizzo dato."
msgid ""
"Rewrite matched traffic to the given source port. May be left empty to only "
"rewrite the IP address."
msgstr ""
+"Riscrivi il traffico corrispondente alla porta sorgente data. Può essere "
+"lasciato vuoto per riscrivere solo l'indirizzo IP."
msgid "Rewrite to source %s"
-msgstr ""
+msgstr "Riscrivi alla sorgente %s"
msgid "Rewrite to source %s, %s"
-msgstr ""
+msgstr "Riscrivi alla sorgente %s, %s"
msgid "SNAT IP address"
-msgstr ""
+msgstr "Indirizzo IP SNAT"
msgid "SNAT port"
-msgstr ""
+msgstr "Porta SNAT"
msgid "Saturday"
-msgstr ""
+msgstr "Sabato"
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua #
@@ -350,13 +359,17 @@ msgid "Source MAC address"
msgstr "Indirizzo MAC di origine"
msgid "Source NAT"
-msgstr ""
+msgstr "NAT di origine"
msgid ""
"Source NAT is a specific form of masquerading which allows fine grained "
"control over the source IP used for outgoing traffic, for example to map "
"multiple WAN addresses to internal subnets."
msgstr ""
+"La sorgente NAT è una forma specifica di masquerading che consente un controllo "
+"preciso sull'IP sorgente usato per il traffico in uscita, per esempio per "
+"mappare indirizzi WAN multipli verso le subnet interne."
+
msgid "Source address"
msgstr "Indirizzo di origine"
@@ -368,25 +381,25 @@ msgid "Source zone"
msgstr "Zona di origine"
msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Data di Inizio (yyyy-mm-dd)"
msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "Ora di Inizio (hh:mm:ss)"
msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Data di Stop (yyyy-mm-dd)"
msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "Ora di Stop (hh:mm:ss)"
msgid "Sunday"
-msgstr ""
+msgstr "Domenica"
msgid ""
"The firewall creates zones over your network interfaces to control network "
"traffic flow."
msgstr ""
-"Il firewall crea delle zone nelle tue interfacce di rete per controllareil "
+"Il firewall crea delle zone nelle tue interfacce di rete per controllare il "
"flusso del traffico."
msgid ""
@@ -397,16 +410,26 @@ msgid ""
"rule is unidirectional , e.g. a forward from lan to wan does "
"not imply a permission to forward from wan to lan as well."
msgstr ""
+"Queste opzioni controllano le regole di inoltro tra questa zona (%s) e "
+"altre zone. Le zone di destinazione coprono il traffico inoltrato "
+"originato da %q . Le zone di origine corrispondono il "
+"traffico inoltrato da altre zone che puntano a %q . La regola di "
+"inoltro è unidirezionale , esempio: un inoltro dalla lan alla wan "
+"non implica anche un permesso da inoltrare dalla wan alla lan."
msgid ""
"This page allows you to change advanced properties of the port forwarding "
"entry. In most cases there is no need to modify those settings."
msgstr ""
+"Questa pagina ti consente di cambiare le opzioni avanzate della voce porta di "
+"inoltro. Nella maggioranza dei casi non serve modificare queste impostazioni."
msgid ""
"This page allows you to change advanced properties of the traffic rule "
"entry, such as matched source and destination hosts."
msgstr ""
+"Questa pagina ti consente di cambiare le opzioni avanzate della voce regola del "
+"traffico, come la sorgente corrispondente e gli host di destinazione."
msgid ""
"This section defines common properties of %q. The input and "
@@ -415,68 +438,78 @@ msgid ""
"forwarded traffic between different networks within the zone. Covered "
"networks specifies which available networks are members of this zone."
msgstr ""
+"Questa sezione definisce le proprietà comuni di %q. Le opzioni diingresso "
+"e uscita definiscono le regole di default per il traffico in entrata e "
+"uscita di questa zona mentre l'opzione di inoltro descrive il metodo per il "
+"traffico inoltrato tra reti differenti nella zona. Le reti coperte "
+"specificano quali reti disponibili sono membri di questa zona."
msgid "Thursday"
-msgstr ""
+msgstr "Giovedì"
msgid "Time in UTC"
-msgstr ""
+msgstr "Orario in UTC"
msgid "To %s at %s on this device "
-msgstr ""
+msgstr "Verso %s a %s su questo dispositivo "
msgid "To %s in %s"
-msgstr ""
+msgstr "Verso %s in %s"
msgid "To %s on this device "
-msgstr ""
+msgstr "Verso %s su questo dispositivo "
msgid "To %s, %s in %s"
-msgstr ""
+msgstr "Verso %s, %s in %s"
msgid "To source IP"
-msgstr ""
+msgstr "Verso IP sorgente"
msgid "To source port"
-msgstr ""
+msgstr "Verso la porta sorgente"
msgid "Traffic Rules"
-msgstr ""
+msgstr "Regole di Traffico"
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
+"Le regole del traffico definiscono il metodo per il viaggio dei pacchetti tra "
+"zone differenti, per esempio per rifiutare il traffico tra certi host o per "
+"aprire porte WAN sul router."
msgid "Tuesday"
-msgstr ""
+msgstr "Martedì"
msgid "Via %s"
msgstr ""
msgid "Via %s at %s"
-msgstr ""
+msgstr "Via %s a %s"
msgid "Wednesday"
-msgstr ""
+msgstr "Mercoledì"
msgid "Week Days"
-msgstr ""
+msgstr "Giorni della Settimana"
msgid ""
"You may specify multiple by selecting \"-- custom --\" and then entering "
"protocols separated by space."
msgstr ""
+"Puoi specificare multipli selezionando \"-- custom --\" e poi inserendo "
+"i protocolli separati da uno spazio."
msgid "Zone %q"
-msgstr ""
+msgstr "Zona %q"
msgid "Zone â Forwardings"
-msgstr ""
+msgstr "Zona â Inoltri"
msgid "Zones"
-msgstr ""
+msgstr "Zone"
msgid "accept"
msgstr "accetta"
@@ -485,22 +518,22 @@ msgid "any"
msgstr "qualsiasi"
msgid "any host"
-msgstr ""
+msgstr "qualsiasi host"
msgid "any router IP"
-msgstr ""
+msgstr "qualsiasi router IP"
msgid "any zone"
-msgstr ""
+msgstr "qualsiasi zona"
msgid "don't track"
-msgstr ""
+msgstr "non tracciare"
msgid "drop"
-msgstr ""
+msgstr "scarta"
msgid "reject"
msgstr "rifiuta"
msgid "traffic"
-msgstr ""
+msgstr "traffico"
diff --git a/applications/luci-app-firewall/po/ja/firewall.po b/applications/luci-app-firewall/po/ja/firewall.po
index 0e8d71c6b3..eb4b06f29a 100644
--- a/applications/luci-app-firewall/po/ja/firewall.po
+++ b/applications/luci-app-firewall/po/ja/firewall.po
@@ -69,7 +69,7 @@ msgid "Custom Rules"
msgstr "æåè¨å®ã«ã¼ã«"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/ko/firewall.po b/applications/luci-app-firewall/po/ko/firewall.po
index f43fdc8826..e5e0e871ee 100644
--- a/applications/luci-app-firewall/po/ko/firewall.po
+++ b/applications/luci-app-firewall/po/ko/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Custom Rule"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/ms/firewall.po b/applications/luci-app-firewall/po/ms/firewall.po
index b82e2c116f..edc92514fb 100644
--- a/applications/luci-app-firewall/po/ms/firewall.po
+++ b/applications/luci-app-firewall/po/ms/firewall.po
@@ -62,7 +62,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/no/firewall.po b/applications/luci-app-firewall/po/no/firewall.po
index 59167db541..e26e36564d 100644
--- a/applications/luci-app-firewall/po/no/firewall.po
+++ b/applications/luci-app-firewall/po/no/firewall.po
@@ -63,7 +63,7 @@ msgid "Custom Rules"
msgstr "Egendefinerte Regler"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/pl/firewall.po b/applications/luci-app-firewall/po/pl/firewall.po
index 2eea8c31f8..77e6a956a2 100644
--- a/applications/luci-app-firewall/po/pl/firewall.po
+++ b/applications/luci-app-firewall/po/pl/firewall.po
@@ -70,7 +70,7 @@ msgid "Custom Rules"
msgstr "WÅasne reguÅy"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/pt-br/firewall.po b/applications/luci-app-firewall/po/pt-br/firewall.po
index 2d601f8575..1ee89cfbfb 100644
--- a/applications/luci-app-firewall/po/pt-br/firewall.po
+++ b/applications/luci-app-firewall/po/pt-br/firewall.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-06-21 19:03+0200\n"
-"Last-Translator: Ãder \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-20 17:43-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
msgid "%s in %s"
msgstr "%s in %s"
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Regras Personalizadas"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
@@ -143,7 +143,7 @@ msgid "Forward to"
msgstr "Encaminhar para"
msgid "Friday"
-msgstr ""
+msgstr "Sexta-feira"
msgid "From %s in %s"
msgstr "Vindo de %s em %s"
@@ -222,10 +222,10 @@ msgstr ""
"equipamento cliente."
msgid "Monday"
-msgstr ""
+msgstr "Segunda-Feira"
msgid "Month Days"
-msgstr ""
+msgstr "Dias do mês"
msgid "Name"
msgstr "Nome"
@@ -296,7 +296,7 @@ msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Redireciona tráfego entrante para o computador interno especificado"
msgid "Restart Firewall"
-msgstr ""
+msgstr "Reiniciar o Firewall"
msgid "Restrict Masquerading to given destination subnets"
msgstr "Restringe o mascaramento para uma subrede de destino especÃfica"
@@ -330,7 +330,7 @@ msgid "SNAT port"
msgstr "Porta da SNAT"
msgid "Saturday"
-msgstr ""
+msgstr "Sábado"
msgid "Source IP address"
msgstr "Endereço IP de origem"
@@ -360,19 +360,19 @@ msgid "Source zone"
msgstr "Zona de origem"
msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Dia inicial (aaaa-mm-dd)"
msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "Hora inicial (hh:mm:ss)"
msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Dia final (aaaa-mm-dd)"
msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "Hora final (hh:mm:ss)"
msgid "Sunday"
-msgstr ""
+msgstr "Domingo"
msgid ""
"The firewall creates zones over your network interfaces to control network "
@@ -411,7 +411,6 @@ msgstr ""
"Esta página permite que você mude propriedades avançadas da entrada da regra "
"de tráfego, como os equipamentos de origem e destino."
-#, fuzzy
msgid ""
"This section defines common properties of %q. The input and "
"output options set the default policies for traffic entering and "
@@ -427,10 +426,10 @@ msgstr ""
"zona."
msgid "Thursday"
-msgstr ""
+msgstr "Quita-feira"
msgid "Time in UTC"
-msgstr ""
+msgstr "Hora em UTC"
msgid "To %s at %s on this device "
msgstr "Para %s em %s neste dispositivo "
@@ -463,7 +462,7 @@ msgstr ""
"ou abrir portas WAN no roteador."
msgid "Tuesday"
-msgstr ""
+msgstr "Terça-feira"
msgid "Via %s"
msgstr "Via %s"
@@ -472,10 +471,10 @@ msgid "Via %s at %s"
msgstr "Via %s at %s"
msgid "Wednesday"
-msgstr ""
+msgstr "Quarta-feira"
msgid "Week Days"
-msgstr ""
+msgstr "Dias da semana"
msgid ""
"You may specify multiple by selecting \"-- custom --\" and then entering "
diff --git a/applications/luci-app-firewall/po/pt/firewall.po b/applications/luci-app-firewall/po/pt/firewall.po
index f552616714..d803dfab10 100644
--- a/applications/luci-app-firewall/po/pt/firewall.po
+++ b/applications/luci-app-firewall/po/pt/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr "Regras Personalizadas"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/ro/firewall.po b/applications/luci-app-firewall/po/ro/firewall.po
index 69b911e17f..e0027de417 100644
--- a/applications/luci-app-firewall/po/ro/firewall.po
+++ b/applications/luci-app-firewall/po/ro/firewall.po
@@ -67,7 +67,7 @@ msgid "Custom Rules"
msgstr "Reguli suplimentare"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/ru/firewall.po b/applications/luci-app-firewall/po/ru/firewall.po
index 98bc92dd6b..be16fece88 100644
--- a/applications/luci-app-firewall/po/ru/firewall.po
+++ b/applications/luci-app-firewall/po/ru/firewall.po
@@ -70,7 +70,7 @@ msgid "Custom Rules"
msgstr "ÐолÑзоваÑелÑÑкие пÑавила"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/sk/firewall.po b/applications/luci-app-firewall/po/sk/firewall.po
index f45e74b14f..1dda5bf53a 100644
--- a/applications/luci-app-firewall/po/sk/firewall.po
+++ b/applications/luci-app-firewall/po/sk/firewall.po
@@ -63,7 +63,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/sv/firewall.po b/applications/luci-app-firewall/po/sv/firewall.po
index 2e169fb927..f9fd920727 100644
--- a/applications/luci-app-firewall/po/sv/firewall.po
+++ b/applications/luci-app-firewall/po/sv/firewall.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"Last-Translator: Kristoffer Grundström \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -10,85 +10,85 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "%s in %s"
-msgstr ""
+msgstr "%s i %s"
msgid "%s%s with %s"
-msgstr ""
+msgstr "%s%s med %s"
msgid "%s, %s in %s"
-msgstr ""
+msgstr "%2, %s i %s"
msgid "(Unnamed Entry)"
-msgstr ""
+msgstr "(Namnlös post)"
msgid "(Unnamed Rule)"
-msgstr ""
+msgstr "(Namnlös regel)"
msgid "(Unnamed SNAT)"
-msgstr ""
+msgstr "(Namnlös SNAT)"
msgid "%d pkts. per %s "
-msgstr ""
+msgstr "%d pkt. per %s "
msgid "%d pkts. per %s , burst %d pkts."
-msgstr ""
+msgstr "%d pkt. per %s , brustna %d pkt."
msgid "%s and limit to %s"
-msgstr ""
+msgstr "%s och gränsen till %s"
msgid "Action"
-msgstr ""
+msgstr "Ã
tgärd"
msgid "Add"
-msgstr ""
+msgstr "Lägg till"
msgid "Add and edit..."
-msgstr ""
+msgstr "Lägg till och redigera..."
msgid "Advanced Settings"
-msgstr ""
+msgstr "Avancerade inställningar"
msgid "Allow forward from source zones :"
-msgstr ""
+msgstr "Tillåt vidarebefordring från källzonerna :"
msgid "Allow forward to destination zones :"
-msgstr ""
+msgstr "Till vidarebefordring till destinationszonerna: :"
msgid "Any"
-msgstr ""
+msgstr "Alla"
msgid "Covered networks"
-msgstr ""
+msgstr "Nätverk som omfattas"
msgid "Custom Rules"
-msgstr ""
+msgstr "Anpassade regler"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
msgid "Destination IP address"
-msgstr ""
+msgstr "Destinationens IP-adress"
msgid "Destination address"
-msgstr ""
+msgstr "Destinationens adress"
msgid "Destination port"
-msgstr ""
+msgstr "Destinationsport"
msgid "Destination zone"
-msgstr ""
+msgstr "Destinationens zon"
msgid "Do not rewrite"
-msgstr ""
+msgstr "Skriv inte om igen"
msgid "Drop invalid packets"
-msgstr ""
+msgstr "Släpp ogiltiga paket"
msgid "Enable"
-msgstr ""
+msgstr "Aktivera"
msgid "Enable NAT Loopback"
msgstr ""
@@ -97,111 +97,115 @@ msgid "Enable SYN-flood protection"
msgstr ""
msgid "Enable logging on this zone"
-msgstr ""
+msgstr "Aktivera loggning i den här zonen"
msgid "External IP address"
-msgstr ""
+msgstr "Extern IP-adress"
msgid "External port"
-msgstr ""
+msgstr "Extern port"
msgid "External zone"
-msgstr ""
+msgstr "Extern zon"
msgid "Extra arguments"
-msgstr ""
+msgstr "Extra argument"
msgid "Firewall"
-msgstr ""
+msgstr "Brandvägg"
msgid "Firewall - Custom Rules"
-msgstr ""
+msgstr "Brandvägg - Anpassade regler"
msgid "Firewall - Port Forwards"
-msgstr ""
+msgstr "Brandvägg - Vidarebefordring av port"
msgid "Firewall - Traffic Rules"
-msgstr ""
+msgstr "Brandvägg - Trafikregler"
msgid "Firewall - Zone Settings"
-msgstr ""
+msgstr "Brandvägg - Zoninställningar"
msgid "Force connection tracking"
msgstr ""
msgid "Forward"
-msgstr ""
+msgstr "Vidarebefordra"
msgid "Forward to"
-msgstr ""
+msgstr "Vidarebefordra till"
msgid "Friday"
-msgstr ""
+msgstr "Fredag"
msgid "From %s in %s"
-msgstr ""
+msgstr "Från %s i %s"
msgid "From %s in %s with source %s"
-msgstr ""
+msgstr "Från %s i %s med källa %s"
msgid "From %s in %s with source %s and %s"
-msgstr ""
+msgstr "Från %s i %s med källa %s och %s"
msgid "General Settings"
-msgstr ""
+msgstr "Generella inställningar"
msgid "IPv4"
-msgstr ""
+msgstr "IPv4"
msgid "IPv4 and IPv6"
-msgstr ""
+msgstr "IPv4 och IPv6"
msgid "IPv4 only"
-msgstr ""
+msgstr "Endast IPv4"
msgid "IPv6"
-msgstr ""
+msgstr "IPv6"
msgid "IPv6 only"
-msgstr ""
+msgstr "Endast IPv6"
msgid "Input"
-msgstr ""
+msgstr "Inmatning"
msgid "Inter-Zone Forwarding"
msgstr ""
msgid "Internal IP address"
-msgstr ""
+msgstr "Intern IP-adress"
msgid "Internal port"
-msgstr ""
+msgstr "Intern port"
msgid "Internal zone"
-msgstr ""
+msgstr "Intern zon"
msgid "Limit log messages"
-msgstr ""
+msgstr "Begränsa loggmeddelanden"
msgid "MSS clamping"
msgstr ""
msgid "Masquerading"
-msgstr ""
+msgstr "Maskering"
msgid "Match"
-msgstr ""
+msgstr "Matcha"
msgid "Match ICMP type"
-msgstr ""
+msgstr "Matchar ICMP-typ"
msgid "Match forwarded traffic to the given destination port or port range."
msgstr ""
+"Matcha vidarebefordrad trafik till den angivna destinationsporten eller "
+"portens räckvidd."
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
+"Matcha inkommande trafik dirigerad till den angivna destinationsporten eller "
+"portens räckvidd på den här värden"
msgid ""
"Match incoming traffic originating from the given source port or port range "
@@ -209,28 +213,28 @@ msgid ""
msgstr ""
msgid "Monday"
-msgstr ""
+msgstr "MÃ¥ndag"
msgid "Month Days"
-msgstr ""
+msgstr "Dagar i månaden"
msgid "Name"
-msgstr ""
+msgstr "Namn"
msgid "New SNAT rule"
-msgstr ""
+msgstr "Ny SNAT-regel"
msgid "New forward rule"
-msgstr ""
+msgstr "Ny regel för vidarebefordring"
msgid "New input rule"
-msgstr ""
+msgstr "Ny inmatningsregel"
msgid "New port forward"
-msgstr ""
+msgstr "Ny vidarebefordring av port"
msgid "New source NAT"
-msgstr ""
+msgstr "Ny käll-NAT"
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
@@ -240,6 +244,7 @@ msgstr ""
msgid "Only match incoming traffic from this IP or range."
msgstr ""
+"Matcha endast inkommande trafik från den här IP-adressen eller räckvidden."
msgid ""
"Only match incoming traffic originating from the given source port or port "
@@ -247,19 +252,19 @@ msgid ""
msgstr ""
msgid "Open ports on router"
-msgstr ""
+msgstr "Ãppna portar i router"
msgid "Other..."
-msgstr ""
+msgstr "Andra..."
msgid "Output"
-msgstr ""
+msgstr "Utmatning"
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
msgid "Port Forwards"
-msgstr ""
+msgstr "Vidarebefordringar av port"
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
@@ -267,7 +272,7 @@ msgid ""
msgstr ""
msgid "Protocol"
-msgstr ""
+msgstr "Protokoll"
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
@@ -277,7 +282,7 @@ msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
msgid "Restart Firewall"
-msgstr ""
+msgstr "Starta om brandvägg"
msgid "Restrict Masquerading to given destination subnets"
msgstr ""
@@ -286,7 +291,7 @@ msgid "Restrict Masquerading to given source subnets"
msgstr ""
msgid "Restrict to address family"
-msgstr ""
+msgstr "Begränsa till adressfamilj"
msgid "Rewrite matched traffic to the given address."
msgstr ""
@@ -297,25 +302,25 @@ msgid ""
msgstr ""
msgid "Rewrite to source %s"
-msgstr ""
+msgstr "Skriv om igen till källan %s"
msgid "Rewrite to source %s, %s"
msgstr ""
msgid "SNAT IP address"
-msgstr ""
+msgstr "IP-adress för SNAT"
msgid "SNAT port"
-msgstr ""
+msgstr "SNAT-port"
msgid "Saturday"
-msgstr ""
+msgstr "Lördag"
msgid "Source IP address"
-msgstr ""
+msgstr "IP-adress för källa"
msgid "Source MAC address"
-msgstr ""
+msgstr "MAC-adress för källa"
msgid "Source NAT"
msgstr ""
@@ -336,19 +341,19 @@ msgid "Source zone"
msgstr ""
msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Startdatum (åååå-mm-dd)"
msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "Starttid (tt:mm:ss)"
msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Stopptid (åååå-mm-dd)"
msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "Stopptid (tt:mm:ss)"
msgid "Sunday"
-msgstr ""
+msgstr "Söndag"
msgid ""
"The firewall creates zones over your network interfaces to control network "
@@ -383,22 +388,22 @@ msgid ""
msgstr ""
msgid "Thursday"
-msgstr ""
+msgstr "Torsdag"
msgid "Time in UTC"
-msgstr ""
+msgstr "Tid enligt UTC"
msgid "To %s at %s on this device "
-msgstr ""
+msgstr "Till %s vid %s på den här enheten "
msgid "To %s in %s"
-msgstr ""
+msgstr "Till %s i %s"
msgid "To %s on this device "
-msgstr ""
+msgstr "Till %s på den här enheten "
msgid "To %s, %s in %s"
-msgstr ""
+msgstr "Till %s, %s i %s"
msgid "To source IP"
msgstr ""
@@ -407,7 +412,7 @@ msgid "To source port"
msgstr ""
msgid "Traffic Rules"
-msgstr ""
+msgstr "Trafikregler"
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
@@ -416,19 +421,19 @@ msgid ""
msgstr ""
msgid "Tuesday"
-msgstr ""
+msgstr "Tisdag"
msgid "Via %s"
-msgstr ""
+msgstr "Via %s"
msgid "Via %s at %s"
msgstr ""
msgid "Wednesday"
-msgstr ""
+msgstr "Onsdag"
msgid "Week Days"
-msgstr ""
+msgstr "Veckodagar"
msgid ""
"You may specify multiple by selecting \"-- custom --\" and then entering "
@@ -436,37 +441,37 @@ msgid ""
msgstr ""
msgid "Zone %q"
-msgstr ""
+msgstr "Zon %q"
msgid "Zone â Forwardings"
msgstr ""
msgid "Zones"
-msgstr ""
+msgstr "Zoner"
msgid "accept"
-msgstr ""
+msgstr "acceptera"
msgid "any"
-msgstr ""
+msgstr "alla"
msgid "any host"
-msgstr ""
+msgstr "alla värdar"
msgid "any router IP"
msgstr ""
msgid "any zone"
-msgstr ""
+msgstr "alla zoner"
msgid "don't track"
-msgstr ""
+msgstr "spåra inte"
msgid "drop"
-msgstr ""
+msgstr "släpp"
msgid "reject"
-msgstr ""
+msgstr "neka"
msgid "traffic"
-msgstr ""
+msgstr "trafik"
diff --git a/applications/luci-app-firewall/po/templates/firewall.pot b/applications/luci-app-firewall/po/templates/firewall.pot
index d1e8eeca16..bec02d4486 100644
--- a/applications/luci-app-firewall/po/templates/firewall.pot
+++ b/applications/luci-app-firewall/po/templates/firewall.pot
@@ -56,7 +56,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/tr/firewall.po b/applications/luci-app-firewall/po/tr/firewall.po
index 1b5444f0f4..5bb897cc28 100644
--- a/applications/luci-app-firewall/po/tr/firewall.po
+++ b/applications/luci-app-firewall/po/tr/firewall.po
@@ -63,7 +63,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/uk/firewall.po b/applications/luci-app-firewall/po/uk/firewall.po
index 1c4117f3f0..8ca1428e71 100644
--- a/applications/luci-app-firewall/po/uk/firewall.po
+++ b/applications/luci-app-firewall/po/uk/firewall.po
@@ -67,7 +67,7 @@ msgid "Custom Rules"
msgstr "ÐаÑÑÑоÑÐ²Ð°Ð½Ñ Ð¿Ñавила"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/vi/firewall.po b/applications/luci-app-firewall/po/vi/firewall.po
index 6c00a6f298..9509613f23 100644
--- a/applications/luci-app-firewall/po/vi/firewall.po
+++ b/applications/luci-app-firewall/po/vi/firewall.po
@@ -68,7 +68,7 @@ msgid "Custom Rules"
msgstr ""
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
diff --git a/applications/luci-app-firewall/po/zh-cn/firewall.po b/applications/luci-app-firewall/po/zh-cn/firewall.po
index d36eeeaa6d..f21d49250a 100644
--- a/applications/luci-app-firewall/po/zh-cn/firewall.po
+++ b/applications/luci-app-firewall/po/zh-cn/firewall.po
@@ -1,17 +1,15 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-06-14 18:05+0200\n"
-"Last-Translator: jame-he <755085131@qq.com>\n"
-"Language-Team: QQ Group 75543259 \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"PO-Revision-Date: 2017-10-28 18:56+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "%s in %s"
msgstr "%s ä½äº %s"
@@ -23,22 +21,22 @@ msgid "%s, %s in %s"
msgstr "%s, %s ä½äº %s"
msgid "(Unnamed Entry)"
-msgstr "(æªå½åæ¡ç®)"
+msgstr "ï¼æªå½åæ¡ç®ï¼"
msgid "(Unnamed Rule)"
-msgstr "(æªå½åè§å)"
+msgstr "ï¼æªå½åè§åï¼"
msgid "(Unnamed SNAT)"
-msgstr "(æªå½åSNAT)"
+msgstr "ï¼æªå½å SNATï¼"
msgid "%d pkts. per %s "
-msgstr "%d å
.æ¯ %s "
+msgstr "%d æ°æ®å
ãæ¯ %s "
msgid "%d pkts. per %s , burst %d pkts."
-msgstr "%d å
. æ¯ %s , çªå %d å
."
+msgstr "%d æ°æ®å
ãæ¯ %s ï¼çªå %d æ°æ®å
ã"
msgid "%s and limit to %s"
-msgstr "%s 并ä¸éå¶å° %s"
+msgstr "%s 并éå¶å° %s"
msgid "Action"
msgstr "å¨ä½"
@@ -53,10 +51,10 @@ msgid "Advanced Settings"
msgstr "é«çº§è®¾ç½®"
msgid "Allow forward from source zones :"
-msgstr "å
许ä»æºåºå 转å"
+msgstr "å
许ä»æºåºå 转åï¼"
msgid "Allow forward to destination zones :"
-msgstr "å
许转åå°ç®æ åºå "
+msgstr "å
许转åå°ç®æ åºå ï¼"
msgid "Any"
msgstr "ä»»ä½"
@@ -68,15 +66,15 @@ msgid "Custom Rules"
msgstr "èªå®ä¹è§å"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-"èªå®ä¹è§åå
许è¿è¡ä¸äºé²ç«å¢æ²¡æå
å«çåè½ãè¿äºå½ä»¤å°å¨æ¯æ¬¡éå¯é²ç«å¢æ¶ï¼å¨"
-"é»è®¤çè§åè¿è¡åç«å³æ§è¡ã"
+"èªå®ä¹è§åå
许æ¨æ§è¡ä¸å±äºé²ç«å¢æ¡æ¶çä»»æ iptables å½ä»¤ãæ¯æ¬¡éå¯é²ç«å¢æ¶ï¼"
+"å¨é»è®¤çè§åè¿è¡åè¿äºå½ä»¤å°ç«å³æ§è¡ã"
msgid "Destination IP address"
-msgstr "ç®æ IPå°å"
+msgstr "ç®æ IP å°å"
msgid "Destination address"
msgstr "ç®æ å°å"
@@ -88,7 +86,7 @@ msgid "Destination zone"
msgstr "ç®æ åºå"
msgid "Do not rewrite"
-msgstr "ä¸å¡«å=ï¼ææ端å£ï¼"
+msgstr "ä¸éå"
msgid "Drop invalid packets"
msgstr "丢å¼æ ææ°æ®å
"
@@ -97,16 +95,16 @@ msgid "Enable"
msgstr "å¯ç¨"
msgid "Enable NAT Loopback"
-msgstr "å¯ç¨NATç¯å"
+msgstr "å¯ç¨ NAT ç¯å"
msgid "Enable SYN-flood protection"
-msgstr "å¯ç¨SYN-floodé²å¾¡"
+msgstr "å¯ç¨ SYN-flood é²å¾¡"
msgid "Enable logging on this zone"
-msgstr "å¨æ¤åºåå
许è¿å
¥"
+msgstr "å¯ç¨æ¤åºåçæ¥å¿è®°å½"
msgid "External IP address"
-msgstr "å¤é¨IPå°å"
+msgstr "å¤é¨ IP å°å"
msgid "External port"
msgstr "å¤é¨ç«¯å£"
@@ -130,7 +128,7 @@ msgid "Firewall - Traffic Rules"
msgstr "é²ç«å¢ - éä¿¡è§å"
msgid "Firewall - Zone Settings"
-msgstr "é²ç«å¢-åºå设置"
+msgstr "é²ç«å¢ - åºå设置"
msgid "Force connection tracking"
msgstr "强å¶è¿æ¥è¿½è¸ª"
@@ -142,16 +140,16 @@ msgid "Forward to"
msgstr "转åå°"
msgid "Friday"
-msgstr ""
+msgstr "ææäº"
msgid "From %s in %s"
msgstr "æ¥èª %s ä½äº %s"
msgid "From %s in %s with source %s"
-msgstr "æ¥èª %s ä½äº %s å¸¦æº %s"
+msgstr "æ¥èª %s ä½äº %s æºäº %s"
msgid "From %s in %s with source %s and %s"
-msgstr "æ¥èª %s ä½äº %s å¸¦æº %s å¹¶ä¸ %s"
+msgstr "æ¥èª %s ä½äº %s æºç«¯å£ %s æº MAC %s"
msgid "General Settings"
msgstr "åºæ¬è®¾ç½®"
@@ -163,13 +161,13 @@ msgid "IPv4 and IPv6"
msgstr "IPv4 å IPv6"
msgid "IPv4 only"
-msgstr "ä»
IPv4"
+msgstr "ä»
IPv4"
msgid "IPv6"
msgstr "IPv6"
msgid "IPv6 only"
-msgstr "ä»
IPv6"
+msgstr "ä»
IPv6"
msgid "Input"
msgstr "å
¥ç«æ°æ®"
@@ -178,7 +176,7 @@ msgid "Inter-Zone Forwarding"
msgstr "端å£è§¦å"
msgid "Internal IP address"
-msgstr "å
é¨IPå°å"
+msgstr "å
é¨ IP å°å"
msgid "Internal port"
msgstr "å
é¨ç«¯å£"
@@ -190,41 +188,41 @@ msgid "Limit log messages"
msgstr "éå¶æ¥å¿ä¿¡æ¯"
msgid "MSS clamping"
-msgstr "MSSé³å¶"
+msgstr "MSS é³å¶"
msgid "Masquerading"
-msgstr "IPå¨æ伪è£
"
+msgstr "IP å¨æ伪è£
"
msgid "Match"
msgstr "å¹é
è§å"
msgid "Match ICMP type"
-msgstr "å¹é
ICMPç±»å"
+msgstr "å¹é
ICMP ç±»å"
msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "éè¦å¹é
转åæµéå°çç®æ 端å£æ端å£èå´"
+msgstr "å¹é
æå®ç®æ 端å£æç®æ 端å£èå´ç转åæµéã"
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
-msgstr "éè¦å¹é
å
¥ç«æµéå°çç®æ 端å£æ端å£èå´"
+msgstr "å¹é
æåæ¤ä¸»æºä¸æå®ç®æ 端å£æç®æ 端å£èå´çå
¥ç«æµéã"
msgid ""
"Match incoming traffic originating from the given source port or port range "
"on the client host."
-msgstr "éè¦å¹é
å
¥ç«æµéçæºç«¯å£æ端å£èå´"
+msgstr "å¹é
æ¥èªå®¢æ·ç«¯ä¸»æºä¸æå®æºç«¯å£ææºç«¯å£èå´çå
¥ç«æµéã"
msgid "Monday"
-msgstr ""
+msgstr "ææä¸"
msgid "Month Days"
-msgstr ""
+msgstr "æ¥æ"
msgid "Name"
msgstr "åå"
msgid "New SNAT rule"
-msgstr "æ°å»ºSNATè§å"
+msgstr "æ°å»º SNAT è§å"
msgid "New forward rule"
msgstr "æ°å»ºè½¬åè§å"
@@ -236,21 +234,21 @@ msgid "New port forward"
msgstr "æ°å»ºç«¯å£è½¬å"
msgid "New source NAT"
-msgstr "æ°å»ºSource NAT"
+msgstr "æ°å»º Source NAT"
msgid "Only match incoming traffic directed at the given IP address."
-msgstr "éè¦å¹é
å
¥ç«æµéçæºIP"
+msgstr "ä»
å¹é
æå®ç®ç IP å°åçå
¥ç«æµéã"
msgid "Only match incoming traffic from these MACs."
-msgstr "éè¦å¹é
å
¥ç«æµéçæºMACsï¼å¯ä»¥ä¸ºå¤ä¸ªï¼"
+msgstr "ä»
å¹é
æ¥èªè¿äº MAC çå
¥ç«æµéã"
msgid "Only match incoming traffic from this IP or range."
-msgstr "éè¦å¹é
å
¥ç«æµéçæºIPæIPèå´"
+msgstr "ä»
å¹é
æ¥èªæ¤ IP æ IP èå´çå
¥ç«æµéã"
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
-msgstr "éè¦å¹é
å
¥ç«æµéçæºç«¯å£æ端å£èå´"
+msgstr "ä»
å¹é
æºèªå®¢æ·ç«¯ä¸»æºä¸ç»å®æºç«¯å£ææºç«¯å£èå´çå
¥ç«æµéã"
msgid "Open ports on router"
msgstr "æå¼è·¯ç±å¨ç«¯å£"
@@ -262,7 +260,7 @@ msgid "Output"
msgstr "åºç«æ°æ®"
msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "ä¼ éå°iptablesçé¢å¤åæ°ãå°å¿ä½¿ç¨ï¼"
+msgstr "ä¼ éå° iptables çé¢å¤åæ°ãå°å¿ä½¿ç¨ï¼"
msgid "Port Forwards"
msgstr "端å£è½¬å"
@@ -270,7 +268,8 @@ msgstr "端å£è½¬å"
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
-msgstr "端å£è½¬åå
许æ¥èªInternetç计ç®æºè®¿é®ç§æå±åç½å
ç计ç®æºææå¡"
+msgstr ""
+"端å£è½¬åå
许 Internet ä¸çè¿ç¨è®¡ç®æºè¿æ¥å°å
é¨ç½ç»ä¸çç¹å®è®¡ç®æºææå¡ã"
msgid "Protocol"
msgstr "åè®®"
@@ -280,27 +279,27 @@ msgid ""
msgstr "éå®åå¹é
çå
¥ç«æµéå°å
é¨ä¸»æºç端å£"
msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "éå®åå¹é
çå
¥ç«æµéå°çå
é¨ä¸»æº"
+msgstr "éå®åå¹é
çå
¥ç«æµéå°æå®çå
é¨ä¸»æº"
msgid "Restart Firewall"
-msgstr ""
+msgstr "éå¯é²ç«å¢"
msgid "Restrict Masquerading to given destination subnets"
-msgstr "è¦éå¶IPå¨æ伪è£
çç®æ åç½"
+msgstr "è¦éå¶ IP å¨æ伪è£
çç®æ åç½"
msgid "Restrict Masquerading to given source subnets"
-msgstr "è¦éå¶IPå¨æ伪è£
çæºåç½"
+msgstr "è¦éå¶ IP å¨æ伪è£
çæºåç½"
msgid "Restrict to address family"
msgstr "éå¶å°å"
msgid "Rewrite matched traffic to the given address."
-msgstr "å°å¹é
æµéçæºå°åæ¹åææå®å°å"
+msgstr "å°å¹é
æµéçæºå°åæ¹åææå®å°åã"
msgid ""
"Rewrite matched traffic to the given source port. May be left empty to only "
"rewrite the IP address."
-msgstr "å°å¹é
æµéçæºç«¯å£æ¹åææå®ç«¯å£ãä¹å¯ä»¥ç空ï¼åªæ¹åIPå°åã"
+msgstr "å°å¹é
æµéçæºç«¯å£æ¹åææå®ç«¯å£ãç空åªæ¹å IP å°åã"
msgid "Rewrite to source %s"
msgstr "æºå°åæ¹åæ %s"
@@ -309,49 +308,19 @@ msgid "Rewrite to source %s, %s"
msgstr "æºå°åæ¹åæ %s, %s"
msgid "SNAT IP address"
-msgstr "SNAT IPå°å"
+msgstr "SNAT IP å°å"
msgid "SNAT port"
msgstr "SNAT 端å£"
msgid "Saturday"
-msgstr ""
+msgstr "ææå
"
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Traffic Redirection"
-# msgstr ""
-#
-# msgid ""
-# "Traffic redirection allows you to change the destination address of "
-# "forwarded packets."
-# msgstr ""
-#
-# msgid "Overview"
-# msgstr ""
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Source zone"
-# msgstr ""
-#
-# msgid "Source MAC-address"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
msgid "Source IP address"
-msgstr "æºIPå°å"
+msgstr "æº IP å°å"
msgid "Source MAC address"
-msgstr "æºMACå°å"
+msgstr "æº MAC å°å"
msgid "Source NAT"
msgstr "Source NAT"
@@ -361,8 +330,8 @@ msgid ""
"control over the source IP used for outgoing traffic, for example to map "
"multiple WAN addresses to internal subnets."
msgstr ""
-"Source NATæ¯ä¸ç§ç¹æ®å½¢å¼çå°å
伪è£
ï¼å®å
许精ç»çæ§å¶ä¼ åºæµéçæºIPï¼ä¾å¦ï¼å°"
-"å¤ä¸ªWANå°åæ å°å°å
é¨åç½ã"
+"Source NAT æ¯ä¸ç§ç¹æ®å½¢å¼çå°å
伪è£
ï¼å®å
许精ç»çæ§å¶ä¼ åºæµéçæº IPï¼ä¾å¦ï¼"
+"å°å¤ä¸ª WAN å°åæ å°å°å
é¨åç½ã"
msgid "Source address"
msgstr "æºå°å"
@@ -374,24 +343,24 @@ msgid "Source zone"
msgstr "æºåºå"
msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "å¼å§æ¥æï¼yyyy-mm-ddï¼"
msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "å¼å§æ¶é´ï¼hh:mm:ssï¼"
msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "åæ¢æ¥æï¼yyyy-mm-ddï¼"
msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "åæ¢æ¶é´ï¼hh:mm:ssï¼"
msgid "Sunday"
-msgstr ""
+msgstr "æææ¥"
msgid ""
"The firewall creates zones over your network interfaces to control network "
"traffic flow."
-msgstr "é²ç«å¢æç½ç»æ¥å£å为ä¸åçåºåè¿è¡ç®¡ç"
+msgstr "é²ç«å¢éè¿å¨ç½ç»æ¥å£ä¸å建åºåæ¥æ§å¶ç½ç»æµéã"
msgid ""
"The options below control the forwarding policies between this zone (%s) and "
@@ -401,10 +370,10 @@ msgid ""
"rule is unidirectional , e.g. a forward from lan to wan does "
"not imply a permission to forward from wan to lan as well."
msgstr ""
-"以ä¸é项å¯ä»¥æ§å¶åºå(%s)åå
¶å®åºåé´ç转åè§åã ç®æ åºå æ¥æ¶"
-"ä»%q 转åçæµéãæºåºå å¹é
ä»ç®æ 为%q"
-"strong>çåºåçé转åæµéã以ä¸è§åæ æ³è½¬å ,ä¾å¦ï¼è½¬ålanæµéå°wanï¼"
-"ä½æ¯ä¸å
许 ä»wan转åå°lanã"
+"以ä¸é项å¯ä»¥æ§å¶åºåï¼%sï¼åå
¶å®åºåé´ç转åè§åãç®æ åºå æ¥æ¶"
+"æºèª %q ç转åæµéãæºåºå å¹é
ä»ç®æ 为 %q"
+"strong> çåºåçé转åæµéã转åè§åçä½ç¨æ¯åå çï¼ä¾å¦ï¼ä¸æ¡å
许"
+"ä» lan å° wan ç转åè§å并ä¸éå«æå
许ç¸åæ¹åä» wan å° lan çæµé转åã"
msgid ""
"This page allows you to change advanced properties of the port forwarding "
@@ -416,7 +385,6 @@ msgid ""
"entry, such as matched source and destination hosts."
msgstr "æ¬é¡µé¢å¯ä»¥æ´æ¹éä¿¡è§åçé«çº§è®¾ç½®ï¼æ¯å¦ï¼éå¹é
çæºä¸»æºåç®æ 主æºã"
-#, fuzzy
msgid ""
"This section defines common properties of %q. The input and "
"output options set the default policies for traffic entering and "
@@ -424,19 +392,18 @@ msgid ""
"forwarded traffic between different networks within the zone. Covered "
"networks specifies which available networks are members of this zone."
msgstr ""
-"æ¬èå®ä¹ %q çéç¨å±æ§ï¼ å
¥ç«æ°æ® å åºç«æ°æ® è§åç¨äºè®¾ç½®æ°"
-"æ®å
âè¿âåâåºâè·¯ç±å¨ï¼æ个æ¥å£ï¼é»è®¤ç转åååï¼è½¬å è§åç¨äºç¹å®ï¼ä¸"
-"个æå¤ä¸ªï¼åºåçä¸ååç½ä¹é´çæ°æ®å
转åãè¦çç½ç» éæ©ä»å±äºè¿ä¸ªåºå"
-"çç½ç»ã"
+"æ¬èå®ä¹ %q çéç¨å±æ§ï¼å
¥ç«æ°æ® ååºç«æ°æ® é项ç¨äºè®¾ç½®æ¤åº"
+"åå
¥ç«ååºç«æµéçé»è®¤çç¥ï¼è½¬å é项æ述该åºåå
ä¸åç½ç»ä¹é´çæµé转"
+"åçç¥ãè¦çç½ç» æå®ä»å±äºè¿ä¸ªåºåçç½ç»ã"
msgid "Thursday"
-msgstr ""
+msgstr "ææå"
msgid "Time in UTC"
-msgstr ""
+msgstr "UTC æ¶é´"
msgid "To %s at %s on this device "
-msgstr "å° %s at %s ä½äºæ¬è®¾å¤ "
+msgstr "å° %s å¨ %s ä½äºæ¬è®¾å¤ "
msgid "To %s in %s"
msgstr "å° %s ä½äº %s"
@@ -448,7 +415,7 @@ msgid "To %s, %s in %s"
msgstr "å° %s, %s ä½äº %s"
msgid "To source IP"
-msgstr "å°æºIP"
+msgstr "å°æº IP"
msgid "To source port"
msgstr "å°æºç«¯å£"
@@ -461,28 +428,28 @@ msgid ""
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-"éä¿¡è§åå®ä¹äºä¸ååºåé´çæµéä¼ éï¼ä¾å¦ï¼æç»ä¸äºä¸»æºä¹é´çéä¿¡ãæå¼å°WANç"
-"端å£ã"
+"éä¿¡è§åå®ä¹äºä¸ååºåé´çæ°æ®å
ä¼ è¾çç¥ï¼ä¾å¦ï¼æç»ä¸äºä¸»æºä¹é´çéä¿¡ï¼å¼æ¾"
+"è·¯ç±å¨ WAN ä¸ç端å£ã"
msgid "Tuesday"
-msgstr ""
+msgstr "ææäº"
msgid "Via %s"
msgstr "éè¿ %s"
msgid "Via %s at %s"
-msgstr "éè¿ %s at %s"
+msgstr "éè¿ %s å¨ %s"
msgid "Wednesday"
-msgstr ""
+msgstr "ææä¸"
msgid "Week Days"
-msgstr ""
+msgstr "ææ"
msgid ""
"You may specify multiple by selecting \"-- custom --\" and then entering "
"protocols separated by space."
-msgstr "ä½ ä¹å¯ä»¥éæ©â--èªå®ä¹--âæ¥å®ä¹å¤ä¸ªåè®®ï¼å¨å¤ä¸ªåè®®é´éå ç©ºæ ¼ã"
+msgstr "æ¨ä¹å¯ä»¥éæ©â--èªå®ä¹--âæ¥å®ä¹å¤ä¸ªåè®®ï¼å¨å¤ä¸ªåè®®é´éå ç©ºæ ¼ã"
msgid "Zone %q"
msgstr "åºå %q"
@@ -503,13 +470,13 @@ msgid "any host"
msgstr "ææ主æº"
msgid "any router IP"
-msgstr "ææè·¯ç±å°å"
+msgstr "ææè·¯ç± IP"
msgid "any zone"
msgstr "ææåºå"
msgid "don't track"
-msgstr "æ å¨ä½"
+msgstr "ä¸è·è¸ª"
msgid "drop"
msgstr "丢å¼"
@@ -518,4 +485,4 @@ msgid "reject"
msgstr "æç»"
msgid "traffic"
-msgstr "交é"
+msgstr "éä¿¡"
diff --git a/applications/luci-app-firewall/po/zh-tw/firewall.po b/applications/luci-app-firewall/po/zh-tw/firewall.po
index b89cfab7fd..39d67721fb 100644
--- a/applications/luci-app-firewall/po/zh-tw/firewall.po
+++ b/applications/luci-app-firewall/po/zh-tw/firewall.po
@@ -1,42 +1,42 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-21 12:45+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"PO-Revision-Date: 2017-10-28 18:56+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "%s in %s"
-msgstr "%s å¨ %s ä¹ä¸"
+msgstr "%s ä½æ¼ %s"
msgid "%s%s with %s"
-msgstr "%s%s å %s"
+msgstr "%s%s å %s"
msgid "%s, %s in %s"
-msgstr " %s, %s å¨ %s ä¹ä¸"
+msgstr "%s, %s ä½æ¼ %s"
msgid "(Unnamed Entry)"
-msgstr "(æªå½åçé
ç®)"
+msgstr "ï¼æªå½åæ¢ç®ï¼"
msgid "(Unnamed Rule)"
-msgstr "(æªå½åçè¦å)"
+msgstr "ï¼æªå½åè¦åï¼"
msgid "(Unnamed SNAT)"
-msgstr "(æªå½åçä¾æºNAT)"
+msgstr "ï¼æªå½å SNATï¼"
msgid "%d pkts. per %s "
-msgstr "%d å°å
æ¸. æ¯%s "
+msgstr "%d è³æå
ãæ¯ %s "
msgid "%d pkts. per %s , burst %d pkts."
-msgstr "%d å°å
æ¸. æ¯%s , çé %d å°å
æ¸."
+msgstr "%d è³æå
ãæ¯ %s ï¼çªç¼ %d è³æå
ã"
msgid "%s and limit to %s"
-msgstr "%s ä¸éå¶å° %s"
+msgstr "%s 並éå¶å° %s"
msgid "Action"
msgstr "åä½"
@@ -48,63 +48,63 @@ msgid "Add and edit..."
msgstr "æ°å¢ä¸¦ç·¨è¼¯..."
msgid "Advanced Settings"
-msgstr "é²éè¨å®"
+msgstr "é«éè¨å®"
msgid "Allow forward from source zones :"
-msgstr "å
許å¾source zones è½ç¼:"
+msgstr "å
許å¾æºåå è½ç¼ï¼"
msgid "Allow forward to destination zones :"
-msgstr "å
è¨±å¾ destination zones è½ç¼:"
+msgstr "å
許è½ç¼å°ç®æ¨åå ï¼"
msgid "Any"
-msgstr "ä»»æ"
+msgstr "ä»»ä½"
msgid "Covered networks"
-msgstr "å·²è¦èç網路"
+msgstr "è¦è網路"
msgid "Custom Rules"
-msgstr "èªè¨çè¦å群"
+msgstr "èªå®ç¾©è¦å"
msgid ""
-"Custom rules allow you to execute arbritary iptables commands which are not "
+"Custom rules allow you to execute arbitrary iptables commands which are not "
"otherwise covered by the firewall framework. The commands are executed after "
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-"èªå®ç¾©è¦åå
è¨±ä½ å·è¡éæ¯ä¸ä»¥å
¶ä»æ¹å¼æ¶åçé²ç«çæ¡æ¶arbritaryçiptableså½ä»¤ã"
-"該å½ä»¤æ¯æ¯åé²ç«çéåå¾å·è¡ï¼é»èªè¦åéå·²ç¶å è¼ä¹å¾ã"
+"èªå®ç¾©è¦åå
許æ¨å·è¡ä¸å±¬æ¼é²ç«çæ¡æ¶çä»»æ iptables å½ä»¤ãæ¯æ¬¡éåé²ç«çæï¼"
+"å¨é è¨çè¦åå·è¡å¾éäºå½ä»¤å°ç«å³å·è¡ã"
msgid "Destination IP address"
-msgstr "ç®æ¨IPä½å"
+msgstr "ç®æ¨ IP ä½å"
msgid "Destination address"
msgstr "ç®æ¨ä½å"
msgid "Destination port"
-msgstr "ç®å°å "
+msgstr "ç®æ¨å "
msgid "Destination zone"
-msgstr "ç®æ¨å"
+msgstr "ç®æ¨åå"
msgid "Do not rewrite"
-msgstr "ä¸è¦æ¹å¯«"
+msgstr "ä¸é寫"
msgid "Drop invalid packets"
-msgstr "ä¸æ£ä¸æ£ç¢ºçå°å
群"
+msgstr "ä¸æ£ç¡æè³æå
"
msgid "Enable"
msgstr "åç¨"
msgid "Enable NAT Loopback"
-msgstr "åç¨NATåå³"
+msgstr "åç¨ NAT ç°å"
msgid "Enable SYN-flood protection"
-msgstr "åç¨SYN-floodæ»æçä¿è·"
+msgstr "åç¨ SYN-flood é²ç¦¦"
msgid "Enable logging on this zone"
-msgstr "åç¨æ¥èªè¨ééå"
+msgstr "åç¨æ¤ååçæ¥èªè¨é"
msgid "External IP address"
-msgstr "å¤é¨IPä½å"
+msgstr "å¤é¨ IP ä½å"
msgid "External port"
msgstr "å¤é¨å "
@@ -113,22 +113,22 @@ msgid "External zone"
msgstr "å¤é¨åå"
msgid "Extra arguments"
-msgstr "é¡å¤åæ¸"
+msgstr "éå å¼æ¸"
msgid "Firewall"
msgstr "é²ç«ç"
msgid "Firewall - Custom Rules"
-msgstr "é²ç«ç-èªè¨è¦å"
+msgstr "é²ç«ç - èªå®ç¾©è¦å"
msgid "Firewall - Port Forwards"
-msgstr "é²ç«ç-å è½ç¼"
+msgstr "é²ç«ç - å è½ç¼"
msgid "Firewall - Traffic Rules"
-msgstr "é²ç«ç-æµéè¦å"
+msgstr "é²ç«ç - éè¨è¦å"
msgid "Firewall - Zone Settings"
-msgstr "é²ç«ç-ååè¨å®"
+msgstr "é²ç«ç - ååè¨å®"
msgid "Force connection tracking"
msgstr "å¼·å¶é£ç·è¿½è¹¤"
@@ -140,19 +140,19 @@ msgid "Forward to"
msgstr "è½ç¼å°"
msgid "Friday"
-msgstr ""
+msgstr "ææäº"
msgid "From %s in %s"
-msgstr "å¾ï¼
så¨ï¼
s"
+msgstr "ä¾èª %s ä½æ¼ %s"
msgid "From %s in %s with source %s"
-msgstr "å¾ï¼
så¨ï¼
sèä¾æºï¼
"
+msgstr "ä¾èª %s ä½æ¼ %s æºæ¼ %s"
msgid "From %s in %s with source %s and %s"
-msgstr "å¾ï¼
så¨ï¼
sèä¾æºï¼
såï¼
s"
+msgstr "ä¾èª %s ä½æ¼ %s æºå %s æº MAC %s"
msgid "General Settings"
-msgstr "ä¸è¬è¨å®"
+msgstr "åºæ¬è¨å®"
msgid "IPv4"
msgstr "IPv4"
@@ -161,205 +161,206 @@ msgid "IPv4 and IPv6"
msgstr "IPv4 å IPv6"
msgid "IPv4 only"
-msgstr "å
æIPv4"
+msgstr "å
IPv4"
msgid "IPv6"
msgstr "IPv6"
msgid "IPv6 only"
-msgstr "å
æIPv6"
+msgstr "å
IPv6"
msgid "Input"
-msgstr "輸å
¥"
+msgstr "å
¥ç«è³æ"
msgid "Inter-Zone Forwarding"
-msgstr "å
§é¨-åè½ç¼"
+msgstr "å 觸ç¼"
msgid "Internal IP address"
-msgstr "å
§é¨çIPä½å"
+msgstr "å
§é¨ IP ä½å"
msgid "Internal port"
-msgstr "å
§é¨çå è"
+msgstr "å
§é¨å "
msgid "Internal zone"
-msgstr "å
§é¨å"
+msgstr "å
§é¨åå"
msgid "Limit log messages"
-msgstr "éå¶æ¥èªè¨æ¯æ¸"
+msgstr "éå¶æ¥èªè³è¨"
msgid "MSS clamping"
-msgstr "MSS調ç¯"
+msgstr "MSS éå¶"
msgid "Masquerading"
-msgstr "å½è£"
+msgstr "IP åæ
å½è£"
msgid "Match"
-msgstr "å¹é
"
+msgstr "å¹é
è¦å"
msgid "Match ICMP type"
-msgstr "å¹é
çICMPåæ
"
+msgstr "å¹é
ICMP åå¥"
msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "å¹é
å·²è½ç¼çæµéå°çµ¦å®çç®æ¨å æè
ç¯åå "
+msgstr "å¹é
æå®ç®æ¨å æç®æ¨å ç¯åçè½ç¼æµéã"
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
-msgstr "å¹é
輸å
¥çæµéå°ä¸»æ©ä¸çµ¦å®çç®æ¨å æè
ç¯åå "
+msgstr "å¹é
æåæ¤ä¸»æ©ä¸æå®ç®æ¨å æç®æ¨å ç¯åçå
¥ç«æµéã"
msgid ""
"Match incoming traffic originating from the given source port or port range "
"on the client host."
-msgstr "å¾çµ¦å®çä¾æºå æç¯åå å¨å®¢æ¶ç«¯ä¸»æ©ä¸çå¹é
å³å
¥æµéå§ç¼ã"
+msgstr "å¹é
ä¾èªå®¢æ¶ç«¯ä¸»æ©ä¸æå®æºå ææºå ç¯åçå
¥ç«æµéã"
msgid "Monday"
-msgstr ""
+msgstr "ææä¸"
msgid "Month Days"
-msgstr ""
+msgstr "æ¥æ"
msgid "Name"
-msgstr "å稱"
+msgstr "åå"
msgid "New SNAT rule"
-msgstr "æ°çä¾æºNATè¦å"
+msgstr "æ°å»º SNAT è¦å"
msgid "New forward rule"
-msgstr "æ°è½ç¼è¦å"
+msgstr "æ°å»ºè½ç¼è¦å"
msgid "New input rule"
-msgstr "æ°è¼¸å
¥è¦å"
+msgstr "æ°å»ºé²å
¥è¦å"
msgid "New port forward"
-msgstr "æ°è½ç¼å "
+msgstr "æ°å»ºå è½ç¼"
msgid "New source NAT"
-msgstr "æ°ä¾æºå "
+msgstr "æ°å»º Source NAT"
msgid "Only match incoming traffic directed at the given IP address."
-msgstr "å
å¹é
å³å
¥æµéäºçµ¦å®çIPå°å."
+msgstr "å
å¹é
æå®ç®ç IP ä½åçå
¥ç«æµéã"
msgid "Only match incoming traffic from these MACs."
-msgstr "å
å¹é
å¾éäºMAC群çå³å
¥æµé."
+msgstr "å
å¹é
ä¾èªéäº MAC çå
¥ç«æµéã"
msgid "Only match incoming traffic from this IP or range."
-msgstr "å
å¹é
å¾éåIPæç¯åIP給å³å
¥æµé."
+msgstr "å
å¹é
ä¾èªæ¤ IP æ IP ç¯åçå
¥ç«æµéã"
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
-msgstr "å
å¹é
å¾çµ¦å®çä¾æºå æç¯åå ç客æ¶ç«¯ä¸»æ©ä¸çµ¦å³å
¥æµé."
+msgstr "å
å¹é
æºèªå®¢æ¶ç«¯ä¸»æ©ä¸çµ¦å®æºå ææºå ç¯åçå
¥ç«æµéã"
msgid "Open ports on router"
-msgstr "éåè·¯ç±å¨ä¸çå è群"
+msgstr "éåè·¯ç±å¨å "
msgid "Other..."
msgstr "å
¶å®..."
msgid "Output"
-msgstr "輸åº"
+msgstr "åºç«è³æ"
msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "éè¡é¡å¤çåæ¸å° iptablesä¸. 使ç¨è¦å°å¿!"
+msgstr "å³éå° iptables çé¡å¤å¼æ¸ãå°å¿ä½¿ç¨ï¼"
msgid "Port Forwards"
-msgstr "å è½é"
+msgstr "å è½ç¼"
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
-msgstr "å è½ç¼å
許é 端網é網路ä¸çé»è
¦ä¾é£æ¥å°å¨ç§äººå網å
§æå®çé»è
¦ææå."
+msgstr ""
+"å è½ç¼å
許 Internet ä¸çé 端è¨ç®æ©é£ç·å°å
§é¨ç¶²è·¯ä¸çç¹å®è¨ç®æ©ææåã"
msgid "Protocol"
-msgstr "åå®"
+msgstr "åè°"
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "éå°åå·²å¹é
å³å
¥æµéå°å
§é¨ä¸»æ©ä¸çæå®å "
+msgstr "éå®åå¹é
çå
¥ç«æµéå°å
§é¨ä¸»æ©çå "
msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "éå°åå·²å¹é
å³å
¥æµéå°å
§é¨ä¸»æ©ä¸"
+msgstr "éå®åå¹é
çå
¥ç«æµéå°æå®çå
§é¨ä¸»æ©"
msgid "Restart Firewall"
-msgstr ""
+msgstr "éåé²ç«ç"
msgid "Restrict Masquerading to given destination subnets"
-msgstr "éå¶å½è£å°å·²çµ¦äºçç®æ¨å網路"
+msgstr "è¦éå¶ IP åæ
å½è£çç®æ¨å網"
msgid "Restrict Masquerading to given source subnets"
-msgstr "éå¶å½è£å°å·²çµ¦äºçä¾æºå網路"
+msgstr "è¦éå¶ IP åæ
å½è£çæºå網"
msgid "Restrict to address family"
-msgstr "éå¶çä½å群"
+msgstr "éå¶ä½å"
msgid "Rewrite matched traffic to the given address."
-msgstr "æ¹å¯«å·²å¹é
çæµéå°çµ¦å®çä½å."
+msgstr "å°å¹é
æµéçæºä½åæ¹å¯«ææå®ä½åã"
msgid ""
"Rewrite matched traffic to the given source port. May be left empty to only "
"rewrite the IP address."
-msgstr "æ¹å¯«å·²å¹é
çæµéå°çµ¦å®çä¾æºå . æ許å¯ä»¥ä¿ç空ç½å°å¯ä¸æ¹å¯«çIPä½å."
+msgstr "å°å¹é
æµéçæºå æ¹å¯«ææå®å ãç空åªæ¹å¯« IP ä½åã"
msgid "Rewrite to source %s"
-msgstr "æ¹å¯«å°ä¾æº %s"
+msgstr "æºä½åæ¹å¯«æ %s"
msgid "Rewrite to source %s, %s"
-msgstr "æ¹å¯«å°ä¾æº %s, %s"
+msgstr "æºä½åæ¹å¯«æ %s, %s"
msgid "SNAT IP address"
-msgstr "ä¾æºNAT IP ä½å"
+msgstr "SNAT IP ä½å"
msgid "SNAT port"
-msgstr "ä¾æºNAT IP å "
+msgstr "SNAT å "
msgid "Saturday"
-msgstr ""
+msgstr "ææå
"
msgid "Source IP address"
-msgstr "ä¾æº IP ä½å"
+msgstr "æº IP ä½å"
msgid "Source MAC address"
-msgstr "ä¾æº MAC硬é«ä½å"
+msgstr "æº MAC ä½å"
msgid "Source NAT"
-msgstr "ä¾æºNAT"
+msgstr "Source NAT"
msgid ""
"Source NAT is a specific form of masquerading which allows fine grained "
"control over the source IP used for outgoing traffic, for example to map "
"multiple WAN addresses to internal subnets."
msgstr ""
-"ä¾æºNATæ¯å½è£çä¸ç¨®ç¹æ®å½¢å¼,å®å
許å°è¼¸åºæµéçä¾æºIPé²è¡ç²¾ç´°æ§å¶, ä¾å¦è¦å°æ "
-"å°å¤åWANä½åå°å
§é¨å網路群ä¸."
+"Source NAT æ¯ä¸ç¨®ç¹æ®å½¢å¼çå°å
å½è£ï¼å®å
許精細çæ§å¶å³åºæµéçæº IPï¼ä¾å¦ï¼"
+"å°å¤å WAN ä½åå°æ å°å
§é¨å網ã"
msgid "Source address"
-msgstr "ä¾æºä½å"
+msgstr "æºä½å"
msgid "Source port"
-msgstr "ä¾æºå "
+msgstr "æºå "
msgid "Source zone"
-msgstr "ä¾æºå"
+msgstr "æºåå"
msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "éå§æ¥æï¼yyyy-mm-ddï¼"
msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "éå§æéï¼hh:mm:ssï¼"
msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "åæ¢æ¥æï¼yyyy-mm-ddï¼"
msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "åæ¢æéï¼hh:mm:ssï¼"
msgid "Sunday"
-msgstr ""
+msgstr "æææ¥"
msgid ""
"The firewall creates zones over your network interfaces to control network "
"traffic flow."
-msgstr "é²ç«çå°ä½ ç網路建ç«åå以便æ§å¶ç¶²è·¯æµå."
+msgstr "é²ç«çééå¨ç¶²è·¯ä»é¢ä¸å»ºç«ååä¾æ§å¶ç¶²è·¯æµéã"
msgid ""
"The options below control the forwarding policies between this zone (%s) and "
@@ -369,22 +370,21 @@ msgid ""
"rule is unidirectional , e.g. a forward from lan to wan does "
"not imply a permission to forward from wan to lan as well."
msgstr ""
-"ä¸åçé¸é
æ§å¶éåå(%s)åå
¶å®åè½ç¼çç¥.ç®å°å è¦èå¾ %q èµ·"
-"æºç å·²è½ç¼çæµé.ä¾æºå å¹é
å¾å
¶å®ååéå° %q"
-"strong>çè½ç¼æµé.è½ç¼è¦åæ¯å®åç ."
+"以ä¸é¸é
å¯ä»¥æ§å¶ååï¼%sï¼åå
¶å®ååéçè½ç¼è¦åãç®æ¨åå æ¥æ¶"
+"æºèª %q çè½ç¼æµéãæºåå å¹é
å¾ç®æ¨çº %q"
+"strong> çååçéè½ç¼æµéãè½ç¼è¦åçä½ç¨æ¯å®å çï¼ä¾å¦ï¼ä¸æ¢å
許"
+"å¾ lan å° wan çè½ç¼è¦å並ä¸é±å«æå
許ç¸åæ¹åå¾ wan å° lan çæµéè½ç¼ã"
msgid ""
"This page allows you to change advanced properties of the port forwarding "
"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"éé é¢å
è¨±ä½ ä¿®æ¹éåè½ç¼å é
ç®çé²éé¸é
. å¨å¤§å¤æ¸æ
æ³ä¸,ä¸éè¦ä¿®æ¹éäºè¨å®."
+msgstr "æ¬é é¢å¯ä»¥æ´æ¹å è½ç¼çé«éè¨å®ã大å¤æ¸æ
æ³ä¸ï¼ä¸éè¦æ´æ¹éäºè¨å®ã"
msgid ""
"This page allows you to change advanced properties of the traffic rule "
"entry, such as matched source and destination hosts."
-msgstr "éé é¢å
許æ¹è®é²éæµéè¦åé
ç®çé²éè¨ç½®, ä¾å¦å¹é
çä¾æºåç®æ¨ä¸»æ©."
+msgstr "æ¬é é¢å¯ä»¥æ´æ¹éè¨è¦åçé«éè¨å®ï¼æ¯å¦ï¼éå¹é
çæºä¸»æ©åç®æ¨ä¸»æ©ã"
-#, fuzzy
msgid ""
"This section defines common properties of %q. The input and "
"output options set the default policies for traffic entering and "
@@ -392,91 +392,91 @@ msgid ""
"forwarded traffic between different networks within the zone. Covered "
"networks specifies which available networks are members of this zone."
msgstr ""
-"æ¬ç¯å®ç¾© %q çéç¨å±¬æ§.å¨è¼¸å
¥ åè¼¸åº é¸é
è¨ç½®äº¤éé²åºçé»èªç"
-"ç¥,èå¨è½ç¼ çé¸é
æè¿°å¨éååå
§ä¸å網路çè½ç¼æµé.å·²è¦èç網路群"
-" æå®ç¹å®ååæå¡å¯ä»¥æ¯è¢«éç¨ç網路."
+"æ¬ç¯å®ç¾© %q çéç¨å±¬æ§ï¼å
¥ç«è³æ ååºç«è³æ é¸é
ç¨æ¼è¨å®æ¤å"
+"åå
¥ç«ååºç«æµéçé è¨çç¥ï¼è½ç¼ é¸é
æ述該ååå
§ä¸å網路ä¹éçæµéè½"
+"ç¼çç¥ãè¦è網路 æå®å¾å±¬æ¼éåååç網路ã"
msgid "Thursday"
-msgstr ""
+msgstr "ææå"
msgid "Time in UTC"
-msgstr ""
+msgstr "UTC æé"
msgid "To %s at %s on this device "
-msgstr "å°ï¼
så¨ä¸çæ¤è¨å çï¼
sç"
+msgstr "å° %s å¨ %s ä½æ¼æ¬è£ç½® "
msgid "To %s in %s"
-msgstr "å°ï¼
så¨ï¼
s"
+msgstr "å° %s ä½æ¼ %s"
msgid "To %s on this device "
-msgstr "å°ï¼
sä¸çæ¤è¨å ç"
+msgstr "å° %s ä½æ¼æ¬è£ç½® "
msgid "To %s, %s in %s"
-msgstr "å°ï¼
sï¼ï¼
sçï¼
sä¸"
+msgstr "å° %s, %s ä½æ¼ %s"
msgid "To source IP"
-msgstr "ä¾æºIP"
+msgstr "å°æº IP"
msgid "To source port"
-msgstr "ä¾æºå "
+msgstr "å°æºå "
msgid "Traffic Rules"
-msgstr "æµéè¦å"
+msgstr "éè¨è¦å"
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-"æµéè¦åå®ç¾©å¨ä¸åååä¹éç«è¡å°å
ççç¥,ä¾å¦è¦æçµç¹å®ä¸»æ©ç¾¤çæµéæè
è¦æé"
-"è·¯ç±å¨ä¸WANå ã"
+"éè¨è¦åå®ç¾©äºä¸åååéçè³æå
å³è¼¸çç¥ï¼ä¾å¦ï¼æçµä¸äºä¸»æ©ä¹éçéè¨ï¼éæ¾"
+"è·¯ç±å¨ WAN ä¸çå ã"
msgid "Tuesday"
-msgstr ""
+msgstr "ææäº"
msgid "Via %s"
-msgstr "ééï¼
sç"
+msgstr "éé %s"
msgid "Via %s at %s"
-msgstr "ééï¼
så¨ï¼
sç"
+msgstr "éé %s å¨ %s"
msgid "Wednesday"
-msgstr ""
+msgstr "ææä¸"
msgid "Week Days"
-msgstr ""
+msgstr "ææ"
msgid ""
"You may specify multiple by selecting \"-- custom --\" and then entering "
"protocols separated by space."
-msgstr "ä½ å¯ä»¥ä»¥é¸æ\"-- èªè¨ --\"並ä¸æå
¥ç±ç©ºæ ¼åéçåå®ä¾åå¤éæå®."
+msgstr "æ¨ä¹å¯ä»¥é¸æâ--èªå®ç¾©--âä¾å®ç¾©å¤ååè°ï¼å¨å¤ååè°ééå ç©ºæ ¼ã"
msgid "Zone %q"
msgstr "åå %q"
msgid "Zone â Forwardings"
-msgstr "åå â è½ç¼é²è¡"
+msgstr "åå â è½ç¼"
msgid "Zones"
-msgstr "é å"
+msgstr "åå"
msgid "accept"
msgstr "æ¥å"
msgid "any"
-msgstr "ä»»æ"
+msgstr "ææ"
msgid "any host"
-msgstr "ä»»æå "
+msgstr "ææ主æ©"
msgid "any router IP"
-msgstr "ä»»æè·¯ç±å¨IP"
+msgstr "ææè·¯ç± IP"
msgid "any zone"
-msgstr "ä»»æå"
+msgstr "ææåå"
msgid "don't track"
-msgstr "ä¸è¦è¿½è¹¤"
+msgstr "ä¸è·è¹¤"
msgid "drop"
msgstr "ä¸æ£"
@@ -485,10 +485,4 @@ msgid "reject"
msgstr "æçµ"
msgid "traffic"
-msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- è«é¸æ --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- èªè¨ --"
+msgstr "éè¨"
diff --git a/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po b/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po
index ff0aabc3ce..6a07b1dce9 100644
--- a/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po
+++ b/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po
@@ -33,7 +33,7 @@ msgid ""
"connection as a fallback. If you do not want this and instead block that "
"traffic then you should select this option."
msgstr ""
-"å¦æ没æ缺ççmeshç½ç»è·¯ç±ï¼å使ç¨å±äºé²ç«å¢åºåå
çInternetè¿æ¥ä½ä¸ºå¤ç¨è·¯ç±ãå¦æä½ ä¸æ³è¦è¿ä¸ªï¼èæ¯é»æ¢è¯¥æµéï¼é£ä¹ä½ åºè¯¥éæ©æ¤é项ã"
+"å¦æ没æ缺ççmeshç½ç»è·¯ç±ï¼å使ç¨å±äºé²ç«å¢åºåå
çInternetè¿æ¥ä½ä¸ºå¤ç¨è·¯ç±ãå¦ææ¨ä¸æ³è¦è¿ä¸ªï¼èæ¯é»æ¢è¯¥æµéï¼é£ä¹æ¨åºè¯¥éæ©æ¤é项ã"
msgid ""
"If your own gateway is not available then fallback to the mesh default "
@@ -53,5 +53,5 @@ msgid ""
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
-"è¿äºé¡µé¢ç¨äºæäºé²ç«å¢åºå设置çç¥è·¯ç±ãè¿æ¯é常æç¨çï¼å¦æä½ éè¦èªå·±ä½¿ç¨èªå·±çäºèç½è¿æ¥ï¼ä½ä½ ä¸æ³æå®å享ç»å
¶ä»äººï¼è¿å°±æ¯ä¸ºä»ä¹å®ä¹è¢«ç§°ä¸ºâèªæ模å¼'"
-"ï¼ãä½ èªå·±çæµéï¼éè¿ä½ çäºèç½è¿æ¥åéï¼èmeshä¸çæ°æ®å
å°ä½¿ç¨meshä¸å¦å¤çç½å
³ã"
+"è¿äºé¡µé¢ç¨äºæäºé²ç«å¢åºå设置çç¥è·¯ç±ãè¿æ¯é常æç¨çï¼å¦ææ¨éè¦èªå·±ä½¿ç¨èªå·±çäºèç½è¿æ¥ï¼ä½æ¨ä¸æ³æå®å享ç»å
¶ä»äººï¼è¿å°±æ¯ä¸ºä»ä¹å®ä¹è¢«ç§°ä¸ºâèªæ模å¼'"
+"ï¼ãæ¨èªå·±çæµéï¼éè¿æ¨çäºèç½è¿æ¥åéï¼èmeshä¸çæ°æ®å
å°ä½¿ç¨meshä¸å¦å¤çç½å
³ã"
diff --git a/applications/luci-app-fwknopd/Makefile b/applications/luci-app-fwknopd/Makefile
index 3fbd88ad61..ba7a8568e7 100644
--- a/applications/luci-app-fwknopd/Makefile
+++ b/applications/luci-app-fwknopd/Makefile
@@ -8,8 +8,6 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Fwknopd config - web config for the firewall knock daemon
LUCI_DEPENDS:=+fwknopd +qrencode
-PKG_VERSION:=1.0
-PKG_RELEASE:=1
PKG_LICENSE:=GPLv2
PKG_MAINTAINER:=Jonathan Bennett
include ../../luci.mk
diff --git a/applications/luci-app-fwknopd/po/pt-br/fwknopd.po b/applications/luci-app-fwknopd/po/pt-br/fwknopd.po
new file mode 100644
index 0000000000..286b49db31
--- /dev/null
+++ b/applications/luci-app-fwknopd/po/pt-br/fwknopd.po
@@ -0,0 +1,116 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"Allow SPA clients to request access to services through an iptables firewall "
+"instead of just to it."
+msgstr ""
+"Permitir que clientes SPA requeiram acesso a serviços através de um firewall "
+"iptables ao invés de apenas fazê-lo."
+
+msgid "Allow SPA clients to request forwarding destination by DNS name."
+msgstr ""
+"Permitir que clientes SPA requeiram encaminhamento de destinos por nome DNS."
+
+msgid "Base 64 key"
+msgstr "Chave em formato base64"
+
+msgid ""
+"Define a set of ports and protocols (tcp or udp) that will be opened if a "
+"valid knock sequence is seen. If this entry is not set, fwknopd will attempt "
+"to honor any proto/port request specified in the SPA data (unless of it "
+"matches any âRESTRICT_PORTSâ entries). Multiple entries are comma-separated."
+msgstr ""
+"Define um conjunto de porta e protocolos (TCP ou UDP) que serão abertos se "
+"uma sequência de batidas for observada. Se esta entrada não estiver "
+"definida, fwknopd irá tentar honrar qualquer requisição de protocolo/porta "
+"especificada nos dados SPA (a não ser se casar com qualquer entrada de "
+"\"RESTRICT_PORTS\"). Múltiplas entradas serão separadas por vÃrgula."
+
+msgid ""
+"Define the length of time access will be granted by fwknopd through the "
+"firewall after a valid knock sequence from a source IP address. If "
+"âFW_ACCESS_TIMEOUTâ is not set then the default timeout of 30 seconds will "
+"automatically be set."
+msgstr ""
+"Define a duração do tempo de acesso que será concedido pelo fwknopd através "
+"do firewall depois de uma sequência de batidas válida de um endereço IP. Se "
+"âFW_ACCESS_TIMEOUTâ não estiver definido, o valor padrão será de 30 "
+"segundos. "
+
+msgid ""
+"Define the symmetric key used for decrypting an incoming SPA packet that is "
+"encrypted by the fwknop client with Rijndael."
+msgstr ""
+"Define a chave simétrica usada para decifrar um pacote SPA entrante que foi "
+"cifrado pelo cliente fwknop com o algoritmo Rijndael."
+
+msgid "Enable Uci/Luci control"
+msgstr "Habilitar o controle UCI/Luci"
+
+msgid "Enable config overwrite"
+msgstr "Habilitar a sobrescrita da configuração"
+
+msgid "Firewall Knock Daemon"
+msgstr "Servidor do Firwall Knock"
+
+msgid "Firewall Knock Operator"
+msgstr "Operador do Firewall Knock"
+
+msgid ""
+"Force all SPA packets to contain a real IP address within the encrypted "
+"data. This makes it impossible to use the -s command line argument on the "
+"fwknop client command line, so either -R has to be used to automatically "
+"resolve the external address (if the client behind a NAT) or the client must "
+"know the external IP and set it via the -a argument."
+msgstr ""
+"Forçar que todos os pacotes SPA contenham um endereço IP real dentro do "
+"pacote cifrado. Isto torna impossÃvel o uso do argumento de linha de comando "
+"'-s' no cliente fwknop. Desta forma, ou o argumento '-R' deve ser usada para "
+"resolver os endereços externos automaticamente (se o cliente estiver atrás "
+"de uma NAT) ou o ciente deve conhecer o seu endereço IP externo e defini-lo "
+"através do argumento '-a'."
+
+msgid ""
+"Maximum age in seconds that an SPA packet will be accepted. defaults to 120 "
+"seconds"
+msgstr ""
+"Idade máxima, em segundos, que um pacote SPA será aceito. Padrão é 120 "
+"segundos."
+
+msgid "Normal Key"
+msgstr "Chave Normal"
+
+msgid "Specify the ethernet interface on which fwknopd will sniff packets."
+msgstr ""
+"Especifica o dispositivo ethernet no qual o fwknopd irá observar os pacotes."
+
+msgid "The base64 hmac key"
+msgstr "A chave de autenticação HMAC em formato base64"
+
+msgid "Use ANY for any source ip"
+msgstr "Use \"ANY\" para qualquer endereço IP de origem"
+
+msgid ""
+"When unchecked, the config files in /etc/fwknopd will be used as is, "
+"ignoring any settings here."
+msgstr ""
+"Quando desmarcado, os arquivos de configuração em /etc/fwknopd serão usados "
+"como estão, ignorando qualquer ajustes feitos aqui."
+
+msgid "access.conf stanzas"
+msgstr "Estâncias do access.conf"
+
+msgid "fwknopd.conf config options"
+msgstr "Opções do fwknopd.conf"
diff --git a/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd b/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd
index 65ef012450..9e5057e701 100644
--- a/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd
+++ b/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd
@@ -3,6 +3,7 @@
#-- Licensed to the public under the GNU General Public License v2.
. /lib/functions/network.sh
+[ "$(uci -q get fwknopd.@access[0].KEY)" != "CHANGEME" ] && exit 0
uci batch <
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LXC management Web UI
+LUCI_DEPENDS:=+luci-mod-admin-full +lxc +lxc-create +liblxc +rpcd-mod-lxc +getopt +xz
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Petar Koretic
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif
new file mode 100644
index 0000000000..d09febf127
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif differ
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif
new file mode 100644
index 0000000000..f0d68cc8b2
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif differ
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif
new file mode 100644
index 0000000000..c1b39bbedb
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif differ
diff --git a/applications/luci-app-lxc/luasrc/controller/lxc.lua b/applications/luci-app-lxc/luasrc/controller/lxc.lua
new file mode 100644
index 0000000000..ea7adbafbb
--- /dev/null
+++ b/applications/luci-app-lxc/luasrc/controller/lxc.lua
@@ -0,0 +1,167 @@
+--[[
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Petar Koretic
+
+]]--
+
+module("luci.controller.lxc", package.seeall)
+
+require "ubus"
+local conn = ubus.connect()
+if not conn then
+ error("Failed to connect to ubus")
+end
+
+
+function fork_exec(command)
+ local pid = nixio.fork()
+ if pid > 0 then
+ return
+ elseif pid == 0 then
+ -- change to root dir
+ nixio.chdir("/")
+
+ -- patch stdin, out, err to /dev/null
+ local null = nixio.open("/dev/null", "w+")
+ if null then
+ nixio.dup(null, nixio.stderr)
+ nixio.dup(null, nixio.stdout)
+ nixio.dup(null, nixio.stdin)
+ if null:fileno() > 2 then
+ null:close()
+ end
+ end
+
+ -- replace with target command
+ nixio.exec("/bin/sh", "-c", command)
+ end
+end
+
+function index()
+ page = node("admin", "services", "lxc")
+ page.target = cbi("lxc")
+ page.title = _("LXC Containers")
+ page.order = 70
+
+ page = entry({"admin", "services", "lxc_create"}, call("lxc_create"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "services", "lxc_action"}, call("lxc_action"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "services", "lxc_get_downloadable"}, call("lxc_get_downloadable"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "services", "lxc_configuration_get"}, call("lxc_configuration_get"), nil)
+ page.leaf = true
+
+ page = entry({"admin", "services", "lxc_configuration_set"}, call("lxc_configuration_set"), nil)
+ page.leaf = true
+
+end
+
+function lxc_get_downloadable()
+ luci.http.prepare_content("application/json")
+
+ local f = io.popen('uname -m', 'r')
+ local target = f:read('*a')
+ f:close()
+ target = target:gsub("^%s*(.-)%s*$", "%1")
+
+ local templates = {}
+
+ local f = io.popen('lxc-create -n just_want_to_list_available_lxc_templates -t download -- --list', 'r')
+
+ for line in f:lines() do
+ local dist,version = line:match("^(%S+)%s+(%S+)%s+" .. target .. "%s+default%s+%S+$")
+ if dist~=nil and version~=nil then templates[#templates + 1] = dist .. ":" .. version end
+ end
+
+ f:close()
+ luci.http.write_json(templates)
+end
+
+function lxc_create(lxc_name, lxc_template)
+ luci.http.prepare_content("text/plain")
+
+ local uci = require("uci").cursor()
+
+ local url = uci:get("lxc", "lxc", "url")
+
+ if not pcall(dofile, "/etc/openwrt_release") then
+ return luci.http.write("1")
+ end
+
+ local f = io.popen('uname -m', 'r')
+ local target = f:read('*a')
+ f:close()
+ target = target:gsub("^%s*(.-)%s*$", "%1")
+
+ local lxc_dist = lxc_template:gsub("(.*):(.*)", '%1')
+ local lxc_release = lxc_template:gsub("(.*):(.*)", '%2')
+
+ local data = conn:call("lxc", "create", { name = lxc_name, template = "download", args = { "--server", url, "--no-validate", "--dist", lxc_dist, "--release", lxc_release, "--arch", target } } )
+
+ luci.http.write(data)
+end
+
+function lxc_action(lxc_action, lxc_name)
+ luci.http.prepare_content("application/json")
+
+ local data, ec = conn:call("lxc", lxc_action, lxc_name and { name = lxc_name} or {} )
+
+ luci.http.write_json(ec and {} or data)
+end
+
+function lxc_get_config_path()
+ local f = io.open("/etc/lxc/lxc.conf", "r")
+ local content = f:read("*all")
+ f:close()
+ local ret = content:match('^%s*lxc.lxcpath%s*=%s*([^%s]*)')
+ if ret then
+ return ret .. "/"
+ else
+ return "/srv/lxc/"
+ end
+end
+
+function lxc_configuration_get(lxc_name)
+ luci.http.prepare_content("text/plain")
+
+ local f = io.open(lxc_get_config_path() .. lxc_name .. "/config", "r")
+ local content = f:read("*all")
+ f:close()
+
+ luci.http.write(content)
+end
+
+function lxc_configuration_set(lxc_name)
+ luci.http.prepare_content("text/plain")
+
+ local lxc_configuration = luci.http.formvalue("lxc_configuration")
+
+ if lxc_configuration == nil then
+ return luci.http.write("1")
+ end
+
+ local f, err = io.open(lxc_get_config_path() .. lxc_name .. "/config","w+")
+ if not f then
+ return luci.http.write("2")
+ end
+
+ f:write(lxc_configuration)
+ f:close()
+
+ luci.http.write("0")
+end
+
diff --git a/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua b/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua
new file mode 100644
index 0000000000..ac0fdff332
--- /dev/null
+++ b/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua
@@ -0,0 +1,31 @@
+--[[
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Petar Koretic
+
+]]--
+
+local fs = require "nixio.fs"
+
+m = Map("lxc", translate("LXC Containers"))
+
+if fs.access("/etc/config/lxc") then
+ m:section(SimpleSection).template = "lxc"
+
+ s = m:section(TypedSection, "lxc", translate("Options"))
+ s.anonymous = true
+ s.addremove = false
+
+ s:option(Value, "url", translate("Containers URL"))
+end
+
+return m
diff --git a/applications/luci-app-lxc/luasrc/view/lxc.htm b/applications/luci-app-lxc/luasrc/view/lxc.htm
new file mode 100644
index 0000000000..edfff8e063
--- /dev/null
+++ b/applications/luci-app-lxc/luasrc/view/lxc.htm
@@ -0,0 +1,458 @@
+<%#
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Petar Koretic
+
+-%>
+
+
+ <%:Available Containers%>
+
+
+
+ <%:Name%>
+ <%:Status%>
+ <%:Actions%>
+
+
+
+
+
+
+
+
+
+
+
+ <%:Create New Container%>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/applications/luci-app-lxc/root/etc/config/lxc b/applications/luci-app-lxc/root/etc/config/lxc
new file mode 100644
index 0000000000..5572c735fa
--- /dev/null
+++ b/applications/luci-app-lxc/root/etc/config/lxc
@@ -0,0 +1,6 @@
+#
+# lxc uci configuration
+#
+
+config lxc 'lxc'
+ option url 'virtualwrt.org/containers/'
diff --git a/applications/luci-app-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua b/applications/luci-app-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua
index 68f7a5a257..62ce25effb 100644
--- a/applications/luci-app-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua
+++ b/applications/luci-app-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua
@@ -103,10 +103,7 @@ uci:foreach("wireless", "wifi-device", function(section)
-- Channel selection
- if hwtype == "atheros" then
- local cc = util.trim(sys.exec("grep -i '" .. syscc .. "' /lib/wifi/cc_translate.txt |cut -d ' ' -f 2")) or 0
- sys.exec('"echo " .. cc .. " > /proc/sys/dev/" .. device .. "/countrycode"')
- elseif hwtype == "mac80211" then
+ if hwtype == "mac80211" then
sys.exec("iw reg set " .. syscc)
elseif hwtype == "broadcom" then
sys.exec ("wlc country " .. syscc)
diff --git a/applications/luci-app-meshwizard/po/pt-br/meshwizard.po b/applications/luci-app-meshwizard/po/pt-br/meshwizard.po
index a2238e52e8..9421e02531 100644
--- a/applications/luci-app-meshwizard/po/pt-br/meshwizard.po
+++ b/applications/luci-app-meshwizard/po/pt-br/meshwizard.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-10-11 00:23+0200\n"
-"PO-Revision-Date: 2014-03-17 10:01+0200\n"
-"Last-Translator: Luiz Angelo \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-20 18:00-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
msgid "Activate or deactivate IPv6 config globally."
msgstr "Habilita e desabilita a configuração IPv6 globalmente."
@@ -70,7 +70,6 @@ msgstr "Endereço IPv6 da rede em malha"
msgid "Mesh Wizard"
msgstr "Assistente de Configuração da Rede em Malha"
-#, fuzzy
msgid ""
"Note: this will set up this interface for mesh operation, i.e. add it to "
"zone 'freifunk' and enable olsr."
diff --git a/applications/luci-app-meshwizard/po/zh-cn/meshwizard.po b/applications/luci-app-meshwizard/po/zh-cn/meshwizard.po
index d5d0707f17..b04c880183 100644
--- a/applications/luci-app-meshwizard/po/zh-cn/meshwizard.po
+++ b/applications/luci-app-meshwizard/po/zh-cn/meshwizard.po
@@ -20,7 +20,7 @@ msgid "Channel"
msgstr "é¢é"
msgid "Check this to protect your LAN from other nodes or clients"
-msgstr "éæ©æ¤é¡¹ï¼é离å
¶ä»èç¹æ客æ·ç«¯çæ»å»æ¥ä¿æ¤ä½ çå±åç½"
+msgstr "éæ©æ¤é¡¹ï¼é离å
¶ä»èç¹æ客æ·ç«¯çæ»å»æ¥ä¿æ¤æ¨çå±åç½"
msgid "Cleanup config"
msgstr "æ¸
空é
ç½®"
@@ -76,14 +76,14 @@ msgstr "ä¿æ¤LANå£"
msgid ""
"Select this to allow others to use your connection to access the internet."
-msgstr "éæ©è¿é¡¹æ¥å
许å
¶å®ç¨åºç¨ä½ è¿ä¸ªè¿æ¥æ¥æ¥å
¥å ç¹ç½"
+msgstr "éæ©è¿é¡¹æ¥å
许å
¶å®ç¨åºç¨æ¨è¿ä¸ªè¿æ¥æ¥æ¥å
¥å ç¹ç½"
#, fuzzy
msgid "Send router advertisements on this device."
msgstr "å¨è¿ä¸ªè®¾å¤ä¸åéè·¯ç±å¹¿æ"
msgid "Share your internet connection"
-msgstr "åäº«ä½ çInternetè¿æ¥"
+msgstr "å享æ¨çInternetè¿æ¥"
msgid ""
"The IP range from which clients are assigned ip addresses (e.g. "
diff --git a/applications/luci-app-minidlna/luasrc/model/cbi/minidlna.lua b/applications/luci-app-minidlna/luasrc/model/cbi/minidlna.lua
index 99ef68cbca..067d08cf0a 100644
--- a/applications/luci-app-minidlna/luasrc/model/cbi/minidlna.lua
+++ b/applications/luci-app-minidlna/luasrc/model/cbi/minidlna.lua
@@ -91,6 +91,10 @@ s:taboption("advanced", Flag, "enable_tivo", translate("Enable TIVO:"),
translate("Set this to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO."))
o.rmempty = true
+s:taboption("advanced", Flag, "wide_links", translate("Allow wide links:"),
+ translate("Set this to allow serving content outside the media root (via symlinks)."))
+o.rmempty = true
+
o = s:taboption("advanced", Flag, "strict_dlna", translate("Strict to DLNA standard:"),
translate("Set this to strictly adhere to DLNA standards. This will allow server-side downscaling of very large JPEG images, which may hurt JPEG serving performance on (at least) Sony DLNA products."))
o.rmempty = true
@@ -126,7 +130,7 @@ o:value("P", translate("Pictures"))
s:taboption("general", DynamicList, "media_dir", translate("Media directories:"),
- translate("Set this to the directory you want scanned. If you want to restrict the directory to a specific content type, you can prepend the type ('A' for audio, 'V' for video, 'P' for images), followed by a comma, to the directory (eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."))
+ translate("Set this to the directory you want scanned. If you want to restrict the directory to a specific content type, you can prepend the type ('A' for audio, 'V' for video, 'P' for images), followed by a comma, to the directory (eg. A,/mnt/media/Music). Multiple directories can be specified."))
o = s:taboption("general", DynamicList, "album_art_names", translate("Album art names:"),
diff --git a/applications/luci-app-minidlna/po/ca/minidlna.po b/applications/luci-app-minidlna/po/ca/minidlna.po
index bf160080ec..dadcf04aeb 100644
--- a/applications/luci-app-minidlna/po/ca/minidlna.po
+++ b/applications/luci-app-minidlna/po/ca/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Ajusts avançats"
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -112,6 +115,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -131,7 +138,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/cs/minidlna.po b/applications/luci-app-minidlna/po/cs/minidlna.po
index bf5a7f442c..f4cbd76ec0 100644
--- a/applications/luci-app-minidlna/po/cs/minidlna.po
+++ b/applications/luci-app-minidlna/po/cs/minidlna.po
@@ -17,6 +17,9 @@ msgstr "PokroÄilé nastavenÃ"
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -114,6 +117,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -133,7 +140,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/de/minidlna.po b/applications/luci-app-minidlna/po/de/minidlna.po
index 22cb0f7e9e..d001696874 100644
--- a/applications/luci-app-minidlna/po/de/minidlna.po
+++ b/applications/luci-app-minidlna/po/de/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Erweiterte Einstellungen"
msgid "Album art names:"
msgstr "Dateinamen für Cover-Bilder:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Angekündigte Modellnummer:"
@@ -122,6 +125,10 @@ msgstr ""
"Diesen Wert setzen um das Verzeichnis zu bestimmen in dem miniDLNA seine "
"Protokolldateien ablegt."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -149,7 +156,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Spezifiziert die zu durchsuchenden Medienverzeichnisse. Durch Voranstellung "
"eines Buchstaben gefolgt von einem Komma kann ein Verzeichnis auf einen "
diff --git a/applications/luci-app-minidlna/po/el/minidlna.po b/applications/luci-app-minidlna/po/el/minidlna.po
index 48c6188390..d319afd238 100644
--- a/applications/luci-app-minidlna/po/el/minidlna.po
+++ b/applications/luci-app-minidlna/po/el/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/en/minidlna.po b/applications/luci-app-minidlna/po/en/minidlna.po
index 5934d42e9e..ca5bc3b593 100644
--- a/applications/luci-app-minidlna/po/en/minidlna.po
+++ b/applications/luci-app-minidlna/po/en/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr "Album art names:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Announced model number:"
@@ -120,6 +123,10 @@ msgstr ""
"Set this if you would like to specify the directory where you want MiniDLNA "
"to store its log file."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -145,12 +152,12 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/es/minidlna.po b/applications/luci-app-minidlna/po/es/minidlna.po
index 5f6b3964f3..f71e9a2b9e 100644
--- a/applications/luci-app-minidlna/po/es/minidlna.po
+++ b/applications/luci-app-minidlna/po/es/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Configuración avanzada"
msgid "Album art names:"
msgstr "Imágenes de álbumes:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Número de modelo declarado:"
@@ -120,6 +123,10 @@ msgid ""
"to store its log file."
msgstr "Indicar el directorio donde MiniDLNA guardará su archivo de registro."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr "Inotify descubrirá automáticamente nuevos archivos."
@@ -142,12 +149,12 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Directorio a explorar. Si quiere restringir el directorio a un contenido "
"especÃfico puede añadir el tipo ('A' par audio, 'V' para vÃdeo o 'P' para "
-"imágenes), seguido por una coma al nombre del directorio (ej. media_dir=A,/"
-"mnt/media/Music). Se puede establecer varios directorios."
+"imágenes), seguido por una coma al nombre del directorio (ej. A,/mnt/media/"
+"Music). Se puede establecer varios directorios."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Camino al socket de MiniSSDPd."
diff --git a/applications/luci-app-minidlna/po/fr/minidlna.po b/applications/luci-app-minidlna/po/fr/minidlna.po
index d638b0cba7..498dea6c80 100644
--- a/applications/luci-app-minidlna/po/fr/minidlna.po
+++ b/applications/luci-app-minidlna/po/fr/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/he/minidlna.po b/applications/luci-app-minidlna/po/he/minidlna.po
index 48c6188390..d319afd238 100644
--- a/applications/luci-app-minidlna/po/he/minidlna.po
+++ b/applications/luci-app-minidlna/po/he/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/hu/minidlna.po b/applications/luci-app-minidlna/po/hu/minidlna.po
index 52fbe749eb..c1371afd9e 100644
--- a/applications/luci-app-minidlna/po/hu/minidlna.po
+++ b/applications/luci-app-minidlna/po/hu/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Haladó beállÃtások"
msgid "Album art names:"
msgstr "BorÃtó album nevek:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Közölt modellszám:"
@@ -122,6 +125,10 @@ msgstr ""
"ÃttÃtsa be, ha meg szeretné adni azt a könyvtárat, ahová a MiniDLNA a napló "
"állományait mentse."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -147,12 +154,12 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"ÃllÃtsa be a vizsgálandó könyvtárra. Ha a könyvtárat egy adott tÃpusú "
"tartalom szerint szeretné korlátozni, akkor a neve elÅtt vesszÅvel "
"elválasztva megadhatja a tÃpust ('A' az audió, 'V' a videó, 'P' a képek "
-"számára. pl.: media_dir=A,/mnt/media/Music). Több könyvtár is megadható."
+"számára. pl.: A,/mnt/media/Music). Több könyvtár is megadható."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "A MiniSSDPd socket elérési útját határozza meg."
diff --git a/applications/luci-app-minidlna/po/it/minidlna.po b/applications/luci-app-minidlna/po/it/minidlna.po
index 1c0abc6722..4ecc3d4ae5 100644
--- a/applications/luci-app-minidlna/po/it/minidlna.po
+++ b/applications/luci-app-minidlna/po/it/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Opzioni avanzate"
msgid "Album art names:"
msgstr "Nome Copertina Album:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Numero modello annunciato:"
@@ -101,8 +104,7 @@ msgid ""
"Serial number the miniDLNA daemon will report to clients in its XML "
"description."
msgstr ""
-"Serial number che il server miniDLNA invierà ai client nella descrizione "
-"XML."
+"Serial number che il server miniDLNA invierà ai client nella descrizione XML."
msgid ""
"Set this if you want to customize the name that shows up on your clients."
@@ -122,6 +124,10 @@ msgstr ""
"Impostare questa opzione se si desidera specificare la cartella in cui si "
"desidera che MiniDLNA archivi i propri file di registro."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -132,8 +138,8 @@ msgid ""
"Set this to enable support for streaming .jpg and .mp3 files to a TiVo "
"supporting HMO."
msgstr ""
-"Impostare questo per abilitare il supporto per lo streaming di file .jpg e "
-".mp3 ad un supporto TiVo che supporta HMO."
+"Impostare questo per abilitare il supporto per lo streaming di file .jpg e ."
+"mp3 ad un supporto TiVo che supporta HMO."
msgid ""
"Set this to strictly adhere to DLNA standards. This will allow server-side "
@@ -149,13 +155,13 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Impostare la cartella che si desidera sottoporre a scansione. Se si desidera "
"limitare la directory per un tipo di contenuto specifico, è possibile "
"anteporre il tipo ('A' per l'audio, 'V' per video, 'P' per le immagini), "
-"seguito da una virgola, nella cartella (es. media_dir = A,/mnt/media/Music). "
-"Cartelle multiple possono essere specificate."
+"seguito da una virgola, nella cartella (es. A,/mnt/media/Music). Cartelle "
+"multiple possono essere specificate."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Specificare il percorso del socket MiniSSDPd."
@@ -170,8 +176,7 @@ msgid ""
"The miniDLNA service is active, serving %d audio, %d video and %d image "
"files."
msgstr ""
-"Il servizio miniDLNA è attivo, servo %d audio, %d video, %d file di "
-"immagine."
+"Il servizio miniDLNA è attivo, servo %d audio, %d video, %d file di immagine."
msgid "The miniDLNA service is not running."
msgstr "Il servizio miniDLNA non è in esecuzione."
diff --git a/applications/luci-app-minidlna/po/ja/minidlna.po b/applications/luci-app-minidlna/po/ja/minidlna.po
index 4cfc3385b9..de2eb9b57e 100644
--- a/applications/luci-app-minidlna/po/ja/minidlna.po
+++ b/applications/luci-app-minidlna/po/ja/minidlna.po
@@ -1,21 +1,25 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-10 09:10+0200\n"
-"Last-Translator: Kentaro \n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-10-25 22:33+0900\n"
+"Last-Translator: INAGAKI Hiroshi \n"
"Language-Team: none\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Poedit 2.0.4\n"
+"POT-Creation-Date: \n"
msgid "Advanced Settings"
msgstr "詳細è¨å®"
msgid "Album art names:"
-msgstr "ã¢ã«ãã ã¢ã¼ãã¯ã¼ã¯ã»ãã¡ã¤ã«å:"
+msgstr "ã¢ã«ãã ã¢ã¼ãã¯ã¼ã¯ ãã¡ã¤ã«å:"
+
+msgid "Allow wide links:"
+msgstr "ã¯ã¤ã ãªã³ã¯ã®è¨±å¯:"
msgid "Announced model number:"
msgstr "éç¥ããã¢ãã«çªå·:"
@@ -116,6 +120,12 @@ msgid ""
"to store its log file."
msgstr "miniDLNAãæ¸ãã ããã°ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªãã¹ãè¨å®ãã¦ãã ããã"
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+"ã·ã³ããªãã¯ãªã³ã¯ãéãã¦ã¡ãã£ã¢ ã«ã¼ãå¤ã®ã³ã³ãã³ãã®æä¾ã許å¯ããã«ã¯ã"
+"ãã®ãªãã·ã§ã³ãæå¹ã«ãã¦ãã ããã"
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -143,13 +153,13 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"miniDLNA ãã¹ãã£ã³ãããã£ã¬ã¯ããªãè¨å®ãã¾ãããã£ã¬ã¯ããªãç¹å®ã®ã³ã³ãã³"
"ãã«å¶éãããå ´åãã¿ã¤ãããã¹ã®ã¯ããã«ä»ããã³ã³ãè¨å·ã§åºåããã¨ã§è¨å®"
"ã§ãã¾ã ('A'=ãªã¼ãã£ãª \"audio\", 'V'=ãã㪠\"video\", 'P'=åç \"images"
-"\", ä¾: media_dir=A,/mnt/media/Music)ãã¾ãããã®ãªãã·ã§ã³ã¯è¤æ°ã®ãã£ã¬ã¯ã"
-"ãªãç»é²å¯è½ã§ãã"
+"\", ä¾: A,/mnt/media/Music)ãã¾ãããã®ãªãã·ã§ã³ã¯è¤æ°ã®ãã£ã¬ã¯ããªãç»é²å¯"
+"è½ã§ãã"
msgid "Specify the path to the MiniSSDPd socket."
msgstr "MiniSSDPd ã½ã±ããã®ãã¹ãè¨å®ãã¦ãã ããã"
@@ -164,8 +174,8 @@ msgid ""
"The miniDLNA service is active, serving %d audio, %d video and %d image "
"files."
msgstr ""
-"miniDLNA ãµã¼ãã¹ã¯ç¨¼åä¸ã§ãã%d åã®é³æ¥½ãã¡ã¤ã« , %d åã®ãããªãã¡ã¤ã«, %"
-"d åã®åçãã¡ã¤ã«ãèªèãã¦ãã¾ãã"
+"miniDLNA ãµã¼ãã¹ã¯ç¨¼åä¸ã§ãã%d åã®é³æ¥½ãã¡ã¤ã« , %d åã®ãããªãã¡ã¤ã«, "
+"%d åã®åçãã¡ã¤ã«ãèªèãã¦ãã¾ãã"
msgid "The miniDLNA service is not running."
msgstr "miniDLNA ãµã¼ãã¹ã¯ç¨¼åãã¦ãã¾ããã"
diff --git a/applications/luci-app-minidlna/po/ms/minidlna.po b/applications/luci-app-minidlna/po/ms/minidlna.po
index 8df98a821f..7372c90a83 100644
--- a/applications/luci-app-minidlna/po/ms/minidlna.po
+++ b/applications/luci-app-minidlna/po/ms/minidlna.po
@@ -13,6 +13,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -108,6 +111,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -127,7 +134,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/no/minidlna.po b/applications/luci-app-minidlna/po/no/minidlna.po
index 4b24712f74..daf1996564 100644
--- a/applications/luci-app-minidlna/po/no/minidlna.po
+++ b/applications/luci-app-minidlna/po/no/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Avanserte Innstillinger"
msgid "Album art names:"
msgstr "Albumbilder navn:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Annonsert modellnummer:"
@@ -60,8 +63,8 @@ msgid ""
"MiniDLNA is server software with the aim of being fully compliant with DLNA/"
"UPnP-AV clients."
msgstr ""
-"MiniDLNA er serverprogramvare som sikter på å være fullt kompatibel med DLNA"
-"/UPnP-AV klienter."
+"MiniDLNA er serverprogramvare som sikter på å være fullt kompatibel med DLNA/"
+"UPnP-AV klienter."
msgid ""
"Model number the miniDLNA daemon will report to clients in its XML "
@@ -121,6 +124,10 @@ msgstr ""
"Her kan en definere hvilken katalog som MiniDLNA skal bruke til å lagre log "
"filen i."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -147,12 +154,12 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Her kan en velge den katalogen som blir skannet. Om du ønsker å begrense "
"katalogen til en spesifikk innholdstype kan sette en bokstav foran ('A' for "
-"lyd, 'V' for video, 'P' for bilder), etterfulgt av et komma og katalogen. "
-"(f.eks media_dir=A,/mnt/media/Musikk). Flere kataloger kan brukes."
+"lyd, 'V' for video, 'P' for bilder), etterfulgt av et komma og katalogen. (f."
+"eks A,/mnt/media/Musikk). Flere kataloger kan brukes."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Angi banen til MiniSSDPd socketen."
diff --git a/applications/luci-app-minidlna/po/pl/minidlna.po b/applications/luci-app-minidlna/po/pl/minidlna.po
index b4a8a6f676..8c03b51556 100644
--- a/applications/luci-app-minidlna/po/pl/minidlna.po
+++ b/applications/luci-app-minidlna/po/pl/minidlna.po
@@ -18,6 +18,9 @@ msgstr "Ustawienia zaawansowane"
msgid "Album art names:"
msgstr "Nazwy okÅadek albumów:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "RozgÅaszany model:"
@@ -120,6 +123,10 @@ msgstr ""
"Ustaw to, jeÅli chcesz podaÄ folder, w którym miniDLNA powinien przechowywaÄ "
"dzienniki (logi)."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -146,12 +153,12 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Ustaw tu folder, który chcesz skanowaÄ. JeÅli chcesz ograniczyÄ folder do "
"konkretnego typu zawartoÅci, możesz poprzedziÄ ÅcieżkÄ typem (\"A\" dla "
-"audio, \"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np media_dir=A,/"
-"mnt/media/Muzyka). Możesz podaÄ kilka folderów."
+"audio, \"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np A,/mnt/media/"
+"Muzyka). Możesz podaÄ kilka folderów."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Podaj ÅcieżkÄ do gniazda (socketu) miniSSDPd."
diff --git a/applications/luci-app-minidlna/po/pt-br/minidlna.po b/applications/luci-app-minidlna/po/pt-br/minidlna.po
index 3d53abd466..5ae9226d18 100644
--- a/applications/luci-app-minidlna/po/pt-br/minidlna.po
+++ b/applications/luci-app-minidlna/po/pt-br/minidlna.po
@@ -14,6 +14,9 @@ msgstr "Configuração Avançada"
msgid "Album art names:"
msgstr "Nomes do Ãlbum artistico: "
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "numero de modelo anunciado:"
@@ -121,6 +124,10 @@ msgstr ""
"Defina esta opção se você gostaria de especificar o diretório onde você "
"deseja MiniDLNA para armazenar seu arquivo de log."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -148,13 +155,13 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"Defina esta opção para o diretório que você deseja verificar. Se você quiser "
"restringir o diretório para um tipo especÃfico de conteúdo, você pode "
"prefixar o tipo ('A' para áudio, 'V' para o vÃdeo, 'P' para imagens), "
-"seguido por uma vÃrgula, para o diretório (por exemplo media_dir = A, / "
-"mnt / media / Música). Vários diretórios podem ser especificados."
+"seguido por uma vÃrgula, para o diretório (por exemplo A, / mnt / media / "
+"Música). Vários diretórios podem ser especificados."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "Especifique o caminho para o soquete MiniSSDPd."
diff --git a/applications/luci-app-minidlna/po/pt/minidlna.po b/applications/luci-app-minidlna/po/pt/minidlna.po
index 96132cdf61..dbd835f509 100644
--- a/applications/luci-app-minidlna/po/pt/minidlna.po
+++ b/applications/luci-app-minidlna/po/pt/minidlna.po
@@ -17,6 +17,9 @@ msgstr "Definições Avançadas"
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "Número modelo anunciado:"
@@ -116,6 +119,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -135,7 +142,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/ro/minidlna.po b/applications/luci-app-minidlna/po/ro/minidlna.po
index cba5fe6a7a..5e79cd2cf7 100644
--- a/applications/luci-app-minidlna/po/ro/minidlna.po
+++ b/applications/luci-app-minidlna/po/ro/minidlna.po
@@ -18,6 +18,9 @@ msgstr "SetÄri avansate"
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -113,6 +116,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -132,7 +139,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/ru/minidlna.po b/applications/luci-app-minidlna/po/ru/minidlna.po
index 539e8ca03d..28ae3165a9 100644
--- a/applications/luci-app-minidlna/po/ru/minidlna.po
+++ b/applications/luci-app-minidlna/po/ru/minidlna.po
@@ -20,6 +20,9 @@ msgstr "РаÑÑиÑеннÑе наÑÑÑойки"
msgid "Album art names:"
msgstr "Ðмена обложек алÑбома:"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "ÐÐ¾Ð¼ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸:"
@@ -122,6 +125,10 @@ msgid ""
"to store its log file."
msgstr "Ðапка, в коÑоÑой miniDLNA бÑÐ´ÐµÑ Ñ
ÑаниÑÑ Ñвой Ñайл жÑÑнала."
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -148,13 +155,13 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
"ÐиÑекÑоÑии, коÑоÑÑе необÑ
одимо ÑканиÑоваÑÑ. ÐÑли Ð²Ñ Ñ
оÑиÑе ÑÑÑановиÑÑ "
"огÑаниÑение на опÑеделÑннÑй Ñип ÑодеÑжимого в диÑекÑоÑии, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе напиÑаÑÑ "
"Ñип ('A' Ð´Ð»Ñ Ð°Ñдио, 'V' Ð´Ð»Ñ Ð²Ð¸Ð´ÐµÐ¾, 'P' Ð´Ð»Ñ Ð¸Ð·Ð¾Ð±Ñажений) пеÑед пÑÑÑм к "
-"диÑекÑоÑии, за коÑоÑÑм ÑледÑÐµÑ Ð·Ð°Ð¿ÑÑÐ°Ñ (напÑ. media_dir=A,/mnt/media/Music). "
-"ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ñказано неÑколÑко диÑекÑоÑий."
+"диÑекÑоÑии, за коÑоÑÑм ÑледÑÐµÑ Ð·Ð°Ð¿ÑÑÐ°Ñ (напÑ. A,/mnt/media/Music). ÐÐ¾Ð¶ÐµÑ "
+"бÑÑÑ Ñказано неÑколÑко диÑекÑоÑий."
msgid "Specify the path to the MiniSSDPd socket."
msgstr "УкажиÑе пÑÑÑ Ðº ÑокеÑÑ MiniSSDPd."
diff --git a/applications/luci-app-minidlna/po/sk/minidlna.po b/applications/luci-app-minidlna/po/sk/minidlna.po
index 19c3e536d4..2968311d2a 100644
--- a/applications/luci-app-minidlna/po/sk/minidlna.po
+++ b/applications/luci-app-minidlna/po/sk/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/sv/minidlna.po b/applications/luci-app-minidlna/po/sv/minidlna.po
index 51a3f3a63f..d06abfd4cd 100644
--- a/applications/luci-app-minidlna/po/sv/minidlna.po
+++ b/applications/luci-app-minidlna/po/sv/minidlna.po
@@ -15,6 +15,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -110,6 +113,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -129,7 +136,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/templates/minidlna.pot b/applications/luci-app-minidlna/po/templates/minidlna.pot
index 2b35d1e716..0f22c674dd 100644
--- a/applications/luci-app-minidlna/po/templates/minidlna.pot
+++ b/applications/luci-app-minidlna/po/templates/minidlna.pot
@@ -7,6 +7,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -102,6 +105,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -121,7 +128,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/tr/minidlna.po b/applications/luci-app-minidlna/po/tr/minidlna.po
index 070d64c4e8..1eeba3f1bc 100644
--- a/applications/luci-app-minidlna/po/tr/minidlna.po
+++ b/applications/luci-app-minidlna/po/tr/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/uk/minidlna.po b/applications/luci-app-minidlna/po/uk/minidlna.po
index 7df732fb0f..db23241cc5 100644
--- a/applications/luci-app-minidlna/po/uk/minidlna.po
+++ b/applications/luci-app-minidlna/po/uk/minidlna.po
@@ -15,6 +15,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -110,6 +113,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -129,7 +136,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/vi/minidlna.po b/applications/luci-app-minidlna/po/vi/minidlna.po
index 070d64c4e8..1eeba3f1bc 100644
--- a/applications/luci-app-minidlna/po/vi/minidlna.po
+++ b/applications/luci-app-minidlna/po/vi/minidlna.po
@@ -14,6 +14,9 @@ msgstr ""
msgid "Album art names:"
msgstr ""
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr ""
@@ -109,6 +112,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -128,7 +135,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/po/zh-cn/minidlna.po b/applications/luci-app-minidlna/po/zh-cn/minidlna.po
index 998975689f..76ebcdade2 100644
--- a/applications/luci-app-minidlna/po/zh-cn/minidlna.po
+++ b/applications/luci-app-minidlna/po/zh-cn/minidlna.po
@@ -17,6 +17,9 @@ msgstr "é«çº§è®¾ç½®"
msgid "Album art names:"
msgstr "ä¸è¾å°é¢å称ï¼"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "éååå·ï¼"
@@ -112,6 +115,10 @@ msgid ""
"to store its log file."
msgstr "设置miniDLNAæ¥å¿ç®å½"
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr "设å®å¯ç¨inotifyçæ§ï¼èªå¨åç°æ°çæ件ã"
@@ -129,15 +136,16 @@ msgstr ""
"设å®ä¸¥æ ¼éµå®DLNAæ åãè¿å°å
许æå¡å¨ç«¯éå°å¤§å°ºå¯¸JPEGå¾åï¼å¨ï¼è³å°ï¼ç´¢å°¼DLNA"
"ç产åè¿å¯è½ä¼éä½JPEGæå¡æ§è½ã"
-# å¦æåæmedia_dir=A,/mnt/media/Musicï¼uciä¼æ¥éãå®é
ä¸åºè¯¥æ¯A,/mnt/media/Musicï¼è¿æ ·çæçminidlna.confå好æ¯media_dir=A,/mnt/media/Music
+# å¦æåæA,/mnt/media/Musicï¼uciä¼æ¥éãå®é
ä¸åºè¯¥æ¯A,/mnt/media/Musicï¼è¿æ ·çæçminidlna.confå好æ¯A,/mnt/media/Music
msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
-"设置è¦æ«æçç®å½ãå¦æä½ æ³éå¶ç¹å®å
容类åçç®å½ï¼ä½ å¯ä»¥å¨åé¢å ä¸ç±»åï¼ç¨äºé³é¢'A'ï¼'V'è§é¢ï¼'P'å¾çï¼ï¼å
¶æ¬¡æ¯ç¨éå·åéçç®å½ï¼å¦A,/mnt"
-"/åªä½/é³ä¹ï¼ãå¯ä»¥æå®å¤ä¸ªç®å½ã"
+"设置è¦æ«æçç®å½ãå¦ææ¨æ³éå¶ç¹å®å
容类åçç®å½ï¼æ¨å¯ä»¥å¨åé¢å ä¸ç±»åï¼ç¨äº"
+"é³é¢'A'ï¼'V'è§é¢ï¼'P'å¾çï¼ï¼å
¶æ¬¡æ¯ç¨éå·åéçç®å½ï¼å¦A,/mnt/åªä½/é³ä¹ï¼ãå¯"
+"以æå®å¤ä¸ªç®å½ã"
msgid "Specify the path to the MiniSSDPd socket."
msgstr "æå®MiniSSDPd socketçè·¯å¾ã"
diff --git a/applications/luci-app-minidlna/po/zh-tw/minidlna.po b/applications/luci-app-minidlna/po/zh-tw/minidlna.po
index 1af3280993..2c636757d2 100644
--- a/applications/luci-app-minidlna/po/zh-tw/minidlna.po
+++ b/applications/luci-app-minidlna/po/zh-tw/minidlna.po
@@ -17,6 +17,9 @@ msgstr "é²éè¨å®å¼"
msgid "Album art names:"
msgstr "å°è¼¯å稱"
+msgid "Allow wide links:"
+msgstr ""
+
msgid "Announced model number:"
msgstr "已宣ååèæ¸é"
@@ -112,6 +115,10 @@ msgid ""
"to store its log file."
msgstr ""
+msgid ""
+"Set this to allow serving content outside the media root (via symlinks)."
+msgstr ""
+
msgid ""
"Set this to enable inotify monitoring to automatically discover new files."
msgstr ""
@@ -131,7 +138,7 @@ msgid ""
"Set this to the directory you want scanned. If you want to restrict the "
"directory to a specific content type, you can prepend the type ('A' for "
"audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
-"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
+"(eg. A,/mnt/media/Music). Multiple directories can be specified."
msgstr ""
msgid "Specify the path to the MiniSSDPd socket."
diff --git a/applications/luci-app-minidlna/root/etc/uci-defaults/40_luci-minidlna b/applications/luci-app-minidlna/root/etc/uci-defaults/40_luci-minidlna
index df43c1b37b..47570307ba 100755
--- a/applications/luci-app-minidlna/root/etc/uci-defaults/40_luci-minidlna
+++ b/applications/luci-app-minidlna/root/etc/uci-defaults/40_luci-minidlna
@@ -1,10 +1,5 @@
#!/bin/sh
-/etc/init.d/minidlna enabled && {
- /etc/init.d/minidlna stop
- /etc/init.d/minidlna disable
-}
-
uci -q batch <<-EOF >/dev/null
delete ucitrack.minidlna
set ucitrack.minidlna=minidlna
diff --git a/applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po
new file mode 100644
index 0000000000..28bfa186b0
--- /dev/null
+++ b/applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po
@@ -0,0 +1,172 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Allow ringbuffer to exceed limit by this amount"
+msgstr "Permitir que o buffer em anel exceda o limite por essa quantidade"
+
+msgid "Ask for username and password on connect"
+msgstr "Pergunte por um usuário e senha na conexão"
+
+msgid "Authentication required"
+msgstr "Requer autenticação"
+
+msgid "Auto"
+msgstr "Automático"
+
+msgid "Automatic disabling of MJPEG mode"
+msgstr "Desativação automática do modo MJPEG"
+
+msgid "Blink"
+msgstr "Pisca"
+
+msgid "Check to save the stream to an mjpeg file"
+msgstr "Marque para salvar o fluxo em um arquivo MJPEG"
+
+msgid "Command to run"
+msgstr "Comando para executar:"
+
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgstr "Não inicie o dynctrls do driver do Linux-UVC"
+
+msgid "Don't initalize dynctrls"
+msgstr "Não inicia o dynctrls"
+
+msgid "Drop frames smaller then this limit"
+msgstr "Descarte quadros menores que este limite"
+
+msgid "Enable MJPG-streamer"
+msgstr "Ativa o MJPG-streamer"
+
+msgid "Enable YUYV format"
+msgstr "Ativar Formato YUYV"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Exceed"
+msgstr "Ultrapassado"
+
+msgid ""
+"Execute command after saving picture. Mjpg-streamer parse the filename as "
+"first parameter to your script."
+msgstr ""
+"Execute o comando depois de salvar a imagem. Mjpg-streamer passa o nome do "
+"arquivo como primeiro parâmetro para o comando."
+
+msgid "File input"
+msgstr "Entrada do arquivo"
+
+msgid "File output"
+msgstr "SaÃda do arquivo"
+
+msgid "Folder"
+msgstr "Pasta"
+
+msgid "Folder that contains webpages"
+msgstr "Pasta que contém páginas web"
+
+msgid "Frames per second"
+msgstr "Quadros por segundos"
+
+msgid "General"
+msgstr "Geral"
+
+msgid "HTTP output"
+msgstr "SaÃda HTTP"
+
+msgid "Input plugin"
+msgstr "Plugins de entrada"
+
+msgid "Interval between saving pictures"
+msgstr "Intervalo entre o salvamento das imagens"
+
+msgid "JPEG compression quality"
+msgstr "Qualidade da compressão JPEG"
+
+msgid "Led control"
+msgstr "Controle de LED"
+
+msgid "MJPG-streamer"
+msgstr "MJPG-streamer"
+
+msgid "Max. number of pictures to hold"
+msgstr "Número máximo de imagens a serem mantidas"
+
+msgid "Mjpeg output"
+msgstr "SaÃda Mjpeg"
+
+msgid "Off"
+msgstr "Desligado"
+
+msgid "On"
+msgstr "Ligado"
+
+msgid "Output plugin"
+msgstr "Plugin de saÃda"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Plugin settings"
+msgstr "Configurações do Plugin"
+
+msgid "Port"
+msgstr "Porta"
+
+msgid "Resolution"
+msgstr "Resolução"
+
+msgid "Ring buffer size"
+msgstr "Tamanho do buffer em anel"
+
+msgid "Set folder to save pictures"
+msgstr "Definir pasta para salvas as imagens"
+
+msgid "Set the inteval in millisecond"
+msgstr "Defina o intervalo em milisegundos"
+
+msgid ""
+"Set the minimum size if the webcam produces small-sized garbage frames. May "
+"happen under low light conditions"
+msgstr ""
+"Defina o tamanho mÃnimo se a webcam produz quadros lixo de tamanho pequeno. "
+"Pode acontecer sob condições de pouca luz"
+
+msgid ""
+"Set the quality in percent. This setting activates YUYV format, disables "
+"MJPEG"
+msgstr ""
+"Defina a qualidade em porcentagem. Esta definição ativa o formato YUYV, "
+"desativa MJPEG"
+
+msgid "TCP port for this HTTP server"
+msgstr "Porta TCP para este servidor HTTP"
+
+msgid "UVC input"
+msgstr "Dispositivo UVC de entrada"
+
+msgid "Username"
+msgstr "Usuário"
+
+msgid "WWW folder"
+msgstr "Pasta WWW"
+
+msgid ""
+"mjpg streamer is a streaming application for Linux-UVC compatible webcams"
+msgstr ""
+"Mjpg streamer é uma aplicação de streaming para webcams compatÃveis com o "
+"Linux-UVC"
diff --git a/applications/luci-app-mwan3/Makefile b/applications/luci-app-mwan3/Makefile
new file mode 100644
index 0000000000..d65cd3af16
--- /dev/null
+++ b/applications/luci-app-mwan3/Makefile
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2017 Dan Luedtke
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for the MWAN3 multiwan hotplug script
+LUCI_DEPENDS:=+mwan3 +luci-mod-admin-full +luci-app-firewall +luci-lib-nixio
+LUCI_PKGARCH:=all
+PKG_LICENSE:=GPLv2
+
+PKG_MAINTAINER:=Aedan Renner \
+ Florian Eckert
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua
new file mode 100644
index 0000000000..c24beda281
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua
@@ -0,0 +1,333 @@
+module("luci.controller.mwan3", package.seeall)
+
+sys = require "luci.sys"
+ut = require "luci.util"
+
+ip = "ip -4 "
+
+function index()
+ if not nixio.fs.access("/etc/config/mwan3") then
+ return
+ end
+
+ entry({"admin", "network", "mwan"},
+ alias("admin", "network", "mwan", "overview"),
+ _("Load Balancing"), 600)
+
+ entry({"admin", "network", "mwan", "overview"},
+ alias("admin", "network", "mwan", "overview", "overview_interface"),
+ _("Overview"), 10)
+ entry({"admin", "network", "mwan", "overview", "overview_interface"},
+ template("mwan/overview_interface"))
+ entry({"admin", "network", "mwan", "overview", "interface_status"},
+ call("interfaceStatus"))
+ entry({"admin", "network", "mwan", "overview", "overview_detailed"},
+ template("mwan/overview_detailed"))
+ entry({"admin", "network", "mwan", "overview", "detailed_status"},
+ call("detailedStatus"))
+
+ entry({"admin", "network", "mwan", "configuration"},
+ alias("admin", "network", "mwan", "configuration", "interface"),
+ _("Configuration"), 20)
+ entry({"admin", "network", "mwan", "configuration", "globals"},
+ cbi("mwan/globalsconfig"),_("Globals"), 5).leaf = true
+ entry({"admin", "network", "mwan", "configuration", "interface"},
+ arcombine(cbi("mwan/interface"), cbi("mwan/interfaceconfig")),
+ _("Interfaces"), 10).leaf = true
+ entry({"admin", "network", "mwan", "configuration", "member"},
+ arcombine(cbi("mwan/member"), cbi("mwan/memberconfig")),
+ _("Members"), 20).leaf = true
+ entry({"admin", "network", "mwan", "configuration", "policy"},
+ arcombine(cbi("mwan/policy"), cbi("mwan/policyconfig")),
+ _("Policies"), 30).leaf = true
+ entry({"admin", "network", "mwan", "configuration", "rule"},
+ arcombine(cbi("mwan/rule"), cbi("mwan/ruleconfig")),
+ _("Rules"), 40).leaf = true
+
+ entry({"admin", "network", "mwan", "advanced"},
+ alias("admin", "network", "mwan", "advanced", "hotplugscript"),
+ _("Advanced"), 100)
+ entry({"admin", "network", "mwan", "advanced", "hotplugscript"},
+ form("mwan/advanced_hotplugscript"))
+ entry({"admin", "network", "mwan", "advanced", "mwanconfig"},
+ form("mwan/advanced_mwanconfig"))
+ entry({"admin", "network", "mwan", "advanced", "networkconfig"},
+ form("mwan/advanced_networkconfig"))
+ entry({"admin", "network", "mwan", "advanced", "wirelessconfig"},
+ form("mwan/advanced_wirelessconfig"))
+ entry({"admin", "network", "mwan", "advanced", "diagnostics"},
+ template("mwan/advanced_diagnostics"))
+ entry({"admin", "network", "mwan", "advanced", "diagnostics_display"},
+ call("diagnosticsData"), nil).leaf = true
+ entry({"admin", "network", "mwan", "advanced", "troubleshooting"},
+ template("mwan/advanced_troubleshooting"))
+ entry({"admin", "network", "mwan", "advanced", "troubleshooting_display"},
+ call("troubleshootingData"))
+end
+
+function getInterfaceStatus(ruleNumber, interfaceName)
+ if ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then
+ if ut.trim(sys.exec(ip .. "route list table " .. ruleNumber)) ~= "" then
+ if ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then
+ return "online"
+ else
+ return "notMonitored"
+ end
+ else
+ return "offline"
+ end
+ else
+ return "notEnabled"
+ end
+end
+
+function getInterfaceName()
+ local ruleNumber, status = 0, ""
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ ruleNumber = ruleNumber+1
+ status = status .. section[".name"] .. "[" .. getInterfaceStatus(ruleNumber, section[".name"]) .. "]"
+ end
+ )
+ return status
+end
+
+function interfaceStatus()
+ local ntm = require "luci.model.network".init()
+
+ local mArray = {}
+
+ -- overview status
+ local statusString = getInterfaceName()
+ if statusString ~= "" then
+ mArray.wans = {}
+ wansid = {}
+
+ for wanName, interfaceState in string.gfind(statusString, "([^%[]+)%[([^%]]+)%]") do
+ local wanInterfaceName = ut.trim(sys.exec("uci -q -p /var/state get network." .. wanName .. ".ifname"))
+ if wanInterfaceName == "" then
+ wanInterfaceName = "X"
+ end
+ local wanDeviceLink = ntm:get_interface(wanInterfaceName)
+ wanDeviceLink = wanDeviceLink and wanDeviceLink:get_network()
+ wanDeviceLink = wanDeviceLink and wanDeviceLink:adminlink() or "#"
+ wansid[wanName] = #mArray.wans + 1
+ mArray.wans[wansid[wanName]] = { name = wanName, link = wanDeviceLink, ifname = wanInterfaceName, status = interfaceState }
+ end
+ end
+
+ -- overview status log
+ local mwanLog = ut.trim(sys.exec("logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x' 2>/dev/null"))
+ if mwanLog ~= "" then
+ mArray.mwanlog = { mwanLog }
+ end
+
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(mArray)
+end
+
+function detailedStatus()
+ local mArray = {}
+
+ -- detailed mwan status
+ local detailStatusInfo = ut.trim(sys.exec("/usr/sbin/mwan3 status"))
+ if detailStatusInfo ~= "" then
+ mArray.mwandetail = { detailStatusInfo }
+ end
+
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(mArray)
+end
+
+function diagnosticsData(interface, tool, task)
+ function getInterfaceNumber()
+ local number = 0
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ number = number+1
+ if section[".name"] == interface then
+ interfaceNumber = number
+ end
+ end
+ )
+ end
+
+ local mArray = {}
+
+ local results = ""
+ if tool == "service" then
+ os.execute("/usr/sbin/mwan3 " .. task)
+ if task == "restart" then
+ results = "MWAN3 restarted"
+ elseif task == "stop" then
+ results = "MWAN3 stopped"
+ else
+ results = "MWAN3 started"
+ end
+ else
+ local interfaceDevice = ut.trim(sys.exec("uci -q -p /var/state get network." .. interface .. ".ifname"))
+ if interfaceDevice ~= "" then
+ if tool == "ping" then
+ local gateway = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $2}'"))
+ if gateway ~= "" then
+ if task == "gateway" then
+ local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. gateway
+ results = pingCommand .. "\n\n" .. sys.exec(pingCommand)
+ else
+ local tracked = ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interface .. ".track_ip"))
+ if tracked ~= "" then
+ for z in tracked:gmatch("[^ ]+") do
+ local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. z
+ results = results .. pingCommand .. "\n\n" .. sys.exec(pingCommand) .. "\n\n"
+ end
+ else
+ results = "No tracking IP addresses configured on " .. interface
+ end
+ end
+ else
+ results = "No default gateway for " .. interface .. " found. Default route does not exist or is configured incorrectly"
+ end
+ elseif tool == "rulechk" then
+ getInterfaceNumber()
+ local rule1 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
+ local rule2 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
+ if rule1 ~= "" and rule2 ~= "" then
+ results = "All required interface IP rules found:\n\n" .. rule1 .. rule2
+ elseif rule1 ~= "" or rule2 ~= "" then
+ results = "Missing 1 of the 2 required interface IP rules\n\n\nRules found:\n\n" .. rule1 .. rule2
+ else
+ results = "Missing both of the required interface IP rules"
+ end
+ elseif tool == "routechk" then
+ getInterfaceNumber()
+ local routeTable = sys.exec(ip .. "route list table " .. interfaceNumber)
+ if routeTable ~= "" then
+ results = "Interface routing table " .. interfaceNumber .. " was found:\n\n" .. routeTable
+ else
+ results = "Missing required interface routing table " .. interfaceNumber
+ end
+ elseif tool == "hotplug" then
+ if task == "ifup" then
+ os.execute("/usr/sbin/mwan3 ifup " .. interface)
+ results = "Hotplug ifup sent to interface " .. interface .. "..."
+ else
+ os.execute("/usr/sbin/mwan3 ifdown " .. interface)
+ results = "Hotplug ifdown sent to interface " .. interface .. "..."
+ end
+ end
+ else
+ results = "Unable to perform diagnostic tests on " .. interface .. ". There is no physical or virtual device associated with this interface"
+ end
+ end
+ if results ~= "" then
+ results = ut.trim(results)
+ mArray.diagnostics = { results }
+ end
+
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(mArray)
+end
+
+function troubleshootingData()
+ local ver = require "luci.version"
+
+ local mArray = {}
+
+ -- software versions
+ local wrtRelease = ut.trim(ver.distversion)
+ if wrtRelease ~= "" then
+ wrtRelease = "OpenWrt - " .. wrtRelease
+ else
+ wrtRelease = "OpenWrt - unknown"
+ end
+ local luciRelease = ut.trim(ver.luciversion)
+ if luciRelease ~= "" then
+ luciRelease = "\nLuCI - " .. luciRelease
+ else
+ luciRelease = "\nLuCI - unknown"
+ end
+ local mwanVersion = ut.trim(sys.exec("opkg info mwan3 | grep Version | awk '{print $2}'"))
+ if mwanVersion ~= "" then
+ mwanVersion = "\n\nmwan3 - " .. mwanVersion
+ else
+ mwanVersion = "\n\nmwan3 - unknown"
+ end
+ local mwanLuciVersion = ut.trim(sys.exec("opkg info luci-app-mwan3 | grep Version | awk '{print $2}'"))
+ if mwanLuciVersion ~= "" then
+ mwanLuciVersion = "\nmwan3-luci - " .. mwanLuciVersion
+ else
+ mwanLuciVersion = "\nmwan3-luci - unknown"
+ end
+ mArray.versions = { wrtRelease .. luciRelease .. mwanVersion .. mwanLuciVersion }
+
+ -- mwan config
+ local mwanConfig = ut.trim(sys.exec("cat /etc/config/mwan3"))
+ if mwanConfig == "" then
+ mwanConfig = "No data found"
+ end
+ mArray.mwanconfig = { mwanConfig }
+
+ -- network config
+ local networkConfig = ut.trim(sys.exec("cat /etc/config/network | sed -e 's/.*username.*/ USERNAME HIDDEN/' -e 's/.*password.*/ PASSWORD HIDDEN/'"))
+ if networkConfig == "" then
+ networkConfig = "No data found"
+ end
+ mArray.netconfig = { networkConfig }
+
+ -- wireless config
+ local wirelessConfig = ut.trim(sys.exec("cat /etc/config/wireless | sed -e 's/.*username.*/ USERNAME HIDDEN/' -e 's/.*password.*/ PASSWORD HIDDEN/' -e 's/.*key.*/ KEY HIDDEN/'"))
+ if wirelessConfig == "" then
+ wirelessConfig = "No data found"
+ end
+ mArray.wificonfig = { wirelessConfig }
+
+ -- ifconfig
+ local ifconfig = ut.trim(sys.exec("ifconfig"))
+ if ifconfig == "" then
+ ifconfig = "No data found"
+ end
+ mArray.ifconfig = { ifconfig }
+
+ -- route -n
+ local routeShow = ut.trim(sys.exec("route -n"))
+ if routeShow == "" then
+ routeShow = "No data found"
+ end
+ mArray.routeshow = { routeShow }
+
+ -- ip rule show
+ local ipRuleShow = ut.trim(sys.exec(ip .. "rule show"))
+ if ipRuleShow == "" then
+ ipRuleShow = "No data found"
+ end
+ mArray.iprule = { ipRuleShow }
+
+ -- ip route list table 1-250
+ local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' 2>/dev/null | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
+ if routeList ~= "" then
+ for line in routeList:gmatch("[^\r\n]+") do
+ routeString = routeString .. line .. "\n" .. sys.exec(ip .. "route list table " .. line)
+ end
+ routeString = ut.trim(routeString)
+ else
+ routeString = "No data found"
+ end
+ mArray.routelist = { routeString }
+
+ -- default firewall output policy
+ local firewallOut = ut.trim(sys.exec("uci -q -p /var/state get firewall.@defaults[0].output"))
+ if firewallOut == "" then
+ firewallOut = "No data found"
+ end
+ mArray.firewallout = { firewallOut }
+
+ -- iptables
+ local iptables = ut.trim(sys.exec("iptables -L -t mangle -v -n"))
+ if iptables == "" then
+ iptables = "No data found"
+ end
+ mArray.iptables = { iptables }
+
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(mArray)
+end
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua
new file mode 100644
index 0000000000..1b97080216
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua
@@ -0,0 +1,40 @@
+-- ------ hotplug script configuration ------ --
+
+fs = require "nixio.fs"
+ut = require "luci.util"
+
+script = "/etc/mwan3.user"
+
+m5 = SimpleForm("luci", nil)
+ m5:append(Template("mwan/advanced_hotplugscript")) -- highlight current tab
+
+f = m5:section(SimpleSection, nil,
+ translate("This section allows you to modify the content of \"/etc/mwan3.user\". " ..
+ "The file is also preserved during sysupgrade. " ..
+ " " ..
+ "Notes: " ..
+ "This file is interpreted as a shell script. " ..
+ "The first line of the script must be "#!/bin/sh" without quotes. " ..
+ "Lines beginning with # are comments and are not executed. " ..
+ "Put your custom mwan3 action here, they will " ..
+ "be executed with each netifd hotplug interface event " ..
+ "on interfaces for which mwan3 is enabled. " ..
+ " " ..
+ "There are three main environment variables that are passed to this script. " ..
+ " " ..
+ "$ACTION Either \"ifup\" or \"ifdown\" " ..
+ "$INTERFACE Name of the interface which went up or down (e.g. \"wan\" or \"wwan\") " ..
+ "$DEVICE Physical device name which interface went up or down (e.g. \"eth0\" or \"wwan0\") " ..
+ " "))
+
+t = f:option(TextValue, "lines")
+ t.rmempty = true
+ t.rows = 20
+ function t.cfgvalue()
+ return fs.readfile(script)
+ end
+ function t.write(self, section, data) -- format and write new data to script
+ return fs.writefile(script, ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+ end
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua
new file mode 100644
index 0000000000..e0a99e8366
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua
@@ -0,0 +1,32 @@
+-- ------ mwan configuration ------ --
+
+ut = require "luci.util"
+
+mwanConfig = "/etc/config/mwan3"
+
+
+m5 = SimpleForm("luci", nil)
+ m5:append(Template("mwan/advanced_mwanconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+ translate("This section allows you to modify the contents of /etc/config/mwan3"))
+
+t = f:option(TextValue, "lines")
+ t.rmempty = true
+ t.rows = 20
+
+ function t.cfgvalue()
+ return nixio.fs.readfile(mwanConfig) or ""
+ end
+
+ function t.write(self, section, data) -- format and write new data to script
+ return nixio.fs.writefile(mwanConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+ end
+
+ function f.handle(self, state, data)
+ return true
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua
new file mode 100644
index 0000000000..b93d89751b
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua
@@ -0,0 +1,32 @@
+-- ------ network configuration ------ --
+
+ut = require "luci.util"
+
+networkConfig = "/etc/config/network"
+
+
+m5 = SimpleForm("networkconf", nil)
+ m5:append(Template("mwan/advanced_networkconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+ translate("This section allows you to modify the contents of /etc/config/network"))
+
+t = f:option(TextValue, "lines")
+ t.rmempty = true
+ t.rows = 20
+
+ function t.cfgvalue()
+ return nixio.fs.readfile(networkConfig) or ""
+ end
+
+ function t.write(self, section, data) -- format and write new data to script
+ return nixio.fs.writefile(networkConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+ end
+
+ function f.handle(self, state, data)
+ return true
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua
new file mode 100644
index 0000000000..95e9f7c7e5
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua
@@ -0,0 +1,32 @@
+-- ------ wireless configuration ------ --
+
+ut = require "luci.util"
+
+wirelessConfig = "/etc/config/wireless"
+
+
+m5 = SimpleForm("wirelessconf", nil)
+ m5:append(Template("mwan/advanced_wirelessconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+ translate("This section allows you to modify the contents of /etc/config/wireless"))
+
+t = f:option(TextValue, "lines")
+ t.rmempty = true
+ t.rows = 20
+
+ function t.cfgvalue()
+ return nixio.fs.readfile(wirelessConfig) or ""
+ end
+
+ function t.write(self, section, data) -- format and write new data to script
+ return nixio.fs.writefile(wirelessConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+ end
+
+ function f.handle(self, state, data)
+ return true
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua
new file mode 100644
index 0000000000..919ed46cd4
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua
@@ -0,0 +1,40 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2017 Florian Eckert
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+local net = require "luci.model.network".init()
+
+m = Map("mwan3")
+
+s = m:section(NamedSection, "globals", "globals", translate("Globals mwan3 options"))
+n = s:option(ListValue, "local_source",
+ translate("Local source interface"),
+ translate("Use the IP address of this interface as source IP address for traffic initiated by the router itself"))
+n:value("none")
+n.default = "none"
+for _, net in ipairs(net:get_networks()) do
+ if net:name() ~= "loopback" then
+ n:value(net:name())
+ end
+end
+n.rmempty = false
+
+mask = s:option(
+ Value,
+ "mmx_mask",
+ translate("Firewall mask"),
+ translate("Enter value in hex, starting with 0x
"))
+mask.datatype = "hex(4)"
+mask.default = "0xff00"
+
+return m
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua
new file mode 100644
index 0000000000..5ee5fb39f3
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua
@@ -0,0 +1,276 @@
+-- ------ extra functions ------ --
+
+function interfaceCheck() -- find issues with too many interfaces, reliability and metric
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ local interfaceName = section[".name"]
+ interfaceNumber = interfaceNumber+1 -- count number of mwan interfaces configured
+ -- create list of metrics for none and duplicate checking
+ local metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName .. ".metric"))
+ if metricValue == "" then
+ errorFound = 1
+ errorNoMetricList = errorNoMetricList .. interfaceName .. " "
+ else
+ metricList = metricList .. interfaceName .. " " .. metricValue .. "\n"
+ end
+ -- check if any interfaces have a higher reliability requirement than tracking IPs configured
+ local trackingNumber = tonumber(ut.trim(sys.exec("echo $(uci -p /var/state get mwan3." .. interfaceName .. ".track_ip) | wc -w")))
+ if trackingNumber > 0 then
+ local reliabilityNumber = tonumber(ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".reliability")))
+ if reliabilityNumber and reliabilityNumber > trackingNumber then
+ errorFound = 1
+ errorReliabilityList = errorReliabilityList .. interfaceName .. " "
+ end
+ end
+ -- check if any interfaces are not properly configured in /etc/config/network or have no default route in main routing table
+ if ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName)) == "interface" then
+ local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName .. ".ifname"))
+ if interfaceDevice == "uci: Entry not found" or interfaceDevice == "" then
+ errorFound = 1
+ errorNetConfigList = errorNetConfigList .. interfaceName .. " "
+ errorRouteList = errorRouteList .. interfaceName .. " "
+ else
+ local routeCheck = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $1}'"))
+ if routeCheck == "" then
+ errorFound = 1
+ errorRouteList = errorRouteList .. interfaceName .. " "
+ end
+ end
+ else
+ errorFound = 1
+ errorNetConfigList = errorNetConfigList .. interfaceName .. " "
+ errorRouteList = errorRouteList .. interfaceName .. " "
+ end
+ end
+ )
+ -- check if any interfaces have duplicate metrics
+ local metricDuplicateNumbers = sys.exec("echo '" .. metricList .. "' | awk '{print $2}' | uniq -d")
+ if metricDuplicateNumbers ~= "" then
+ errorFound = 1
+ local metricDuplicates = ""
+ for line in metricDuplicateNumbers:gmatch("[^\r\n]+") do
+ metricDuplicates = sys.exec("echo '" .. metricList .. "' | grep '" .. line .. "' | awk '{print $1}'")
+ errorDuplicateMetricList = errorDuplicateMetricList .. metricDuplicates
+ end
+ errorDuplicateMetricList = sys.exec("echo '" .. errorDuplicateMetricList .. "' | tr '\n' ' '")
+ end
+end
+
+function interfaceWarnings() -- display status and warning messages at the top of the page
+ local warnings = ""
+ if interfaceNumber <= 250 then
+ warnings = "" .. translatef("There are currently %d of 250 supported interfaces configured", interfaceNumber) .. " "
+ else
+ warnings = "" .. translatef("WARNING: %d interfaces are configured exceeding the maximum of 250!", interfaceNumber) .. " "
+ end
+ if errorReliabilityList ~= " " then
+ warnings = warnings .. "" .. translate("WARNING: Some interfaces have a higher reliability requirement than there are tracking IP addresses!") .. " "
+ end
+ if errorRouteList ~= " " then
+ warnings = warnings .. "" .. translate("WARNING: Some interfaces have no default route in the main routing table!") .. " "
+ end
+ if errorNetConfigList ~= " " then
+ warnings = warnings .. "" .. translate("WARNING: Some interfaces are configured incorrectly or not at all in /etc/config/network!") .. " "
+ end
+ if errorNoMetricList ~= " " then
+ warnings = warnings .. "" .. translate("WARNING: Some interfaces have no metric configured in /etc/config/network!") .. " "
+ end
+ if errorDuplicateMetricList ~= " " then
+ warnings = warnings .. "" .. translate("WARNING: Some interfaces have duplicate metrics configured in /etc/config/network!") .. " "
+ end
+ return warnings
+end
+
+-- ------ interface configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+
+interfaceNumber = 0
+metricList = ""
+errorFound = 0
+errorDuplicateMetricList = " "
+errorNetConfigList = " "
+errorNoMetricList = " "
+errorReliabilityList = " "
+errorRouteList = " "
+interfaceCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Interface Configuration"),
+ interfaceWarnings())
+ m5:append(Template("mwan/config_css"))
+
+
+mwan_interface = m5:section(TypedSection, "interface", translate("Interfaces"),
+ translate("MWAN supports up to 250 physical and/or logical interfaces " ..
+ "MWAN requires that all interfaces have a unique metric configured in /etc/config/network " ..
+ "Names must match the interface name found in /etc/config/network (see advanced tab) " ..
+ "Names may contain characters A-Z, a-z, 0-9, _ and no spaces " ..
+ "Interfaces may not share the same name as configured members, policies or rules"))
+ mwan_interface.addremove = true
+ mwan_interface.dynamic = false
+ mwan_interface.sectionhead = translate("Interface")
+ mwan_interface.sortable = false
+ mwan_interface.template = "cbi/tblsection"
+ mwan_interface.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "interface", "%s")
+ function mwan_interface.create(self, section)
+ TypedSection.create(self, section)
+ m5.uci:save("mwan3")
+ luci.http.redirect(dsp.build_url("admin", "network", "mwan", "configuration", "interface", section))
+ end
+
+
+enabled = mwan_interface:option(DummyValue, "enabled", translate("Enabled"))
+ enabled.rawhtml = true
+ function enabled.cfgvalue(self, s)
+ if self.map:get(s, "enabled") == "1" then
+ return "Yes"
+ else
+ return "No"
+ end
+ end
+
+track_ip = mwan_interface:option(DummyValue, "track_ip", translate("Tracking IP"))
+ track_ip.rawhtml = true
+ function track_ip.cfgvalue(self, s)
+ tracked = self.map:get(s, "track_ip")
+ if tracked then
+ local ipList = ""
+ for k,v in pairs(tracked) do
+ ipList = ipList .. v .. " "
+ end
+ return ipList
+ else
+ return "—"
+ end
+ end
+
+track_method = mwan_interface:option(DummyValue, "track_method", translate("Tracking method"))
+ track_method.rawhtml = true
+ function track_method.cfgvalue(self, s)
+ if tracked then
+ return self.map:get(s, "track_method") or "—"
+ else
+ return "—"
+ end
+ end
+
+reliability = mwan_interface:option(DummyValue, "reliability", translate("Tracking reliability"))
+ reliability.rawhtml = true
+ function reliability.cfgvalue(self, s)
+ if tracked then
+ return self.map:get(s, "reliability") or "—"
+ else
+ return "—"
+ end
+ end
+
+count = mwan_interface:option(DummyValue, "count", translate("Ping count"))
+ count.rawhtml = true
+ function count.cfgvalue(self, s)
+ if tracked then
+ return self.map:get(s, "count") or "—"
+ else
+ return "—"
+ end
+ end
+
+timeout = mwan_interface:option(DummyValue, "timeout", translate("Ping timeout"))
+ timeout.rawhtml = true
+ function timeout.cfgvalue(self, s)
+ if tracked then
+ local timeoutValue = self.map:get(s, "timeout")
+ if timeoutValue then
+ return timeoutValue .. "s"
+ else
+ return "—"
+ end
+ else
+ return "—"
+ end
+ end
+
+interval = mwan_interface:option(DummyValue, "interval", translate("Ping interval"))
+ interval.rawhtml = true
+ function interval.cfgvalue(self, s)
+ if tracked then
+ local intervalValue = self.map:get(s, "interval")
+ if intervalValue then
+ return intervalValue .. "s"
+ else
+ return "—"
+ end
+ else
+ return "—"
+ end
+ end
+
+down = mwan_interface:option(DummyValue, "down", translate("Interface down"))
+ down.rawhtml = true
+ function down.cfgvalue(self, s)
+ if tracked then
+ return self.map:get(s, "down") or "—"
+ else
+ return "—"
+ end
+ end
+
+up = mwan_interface:option(DummyValue, "up", translate("Interface up"))
+ up.rawhtml = true
+ function up.cfgvalue(self, s)
+ if tracked then
+ return self.map:get(s, "up") or "—"
+ else
+ return "—"
+ end
+ end
+
+metric = mwan_interface:option(DummyValue, "metric", translate("Metric"))
+ metric.rawhtml = true
+ function metric.cfgvalue(self, s)
+ local metricValue = sys.exec("uci -p /var/state get network." .. s .. ".metric")
+ if metricValue ~= "" then
+ return metricValue
+ else
+ return "—"
+ end
+ end
+
+errors = mwan_interface:option(DummyValue, "errors", translate("Errors"))
+ errors.rawhtml = true
+ function errors.cfgvalue(self, s)
+ if errorFound == 1 then
+ local mouseOver, lineBreak = "", ""
+ if string.find(errorReliabilityList, " " .. s .. " ") then
+ mouseOver = "Higher reliability requirement than there are tracking IP addresses"
+ lineBreak = "
"
+ end
+ if string.find(errorRouteList, " " .. s .. " ") then
+ mouseOver = mouseOver .. lineBreak .. "No default route in the main routing table"
+ lineBreak = "
"
+ end
+ if string.find(errorNetConfigList, " " .. s .. " ") then
+ mouseOver = mouseOver .. lineBreak .. "Configured incorrectly or not at all in /etc/config/network"
+ lineBreak = "
"
+ end
+ if string.find(errorNoMetricList, " " .. s .. " ") then
+ mouseOver = mouseOver .. lineBreak .. "No metric configured in /etc/config/network"
+ lineBreak = "
"
+ end
+ if string.find(errorDuplicateMetricList, " " .. s .. " ") then
+ mouseOver = mouseOver .. lineBreak .. "Duplicate metric configured in /etc/config/network"
+ end
+ if mouseOver == "" then
+ return ""
+ else
+ return " "
+ end
+ else
+ return ""
+ end
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua
new file mode 100644
index 0000000000..a7d7c5af7e
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua
@@ -0,0 +1,266 @@
+-- ------ extra functions ------ --
+
+function interfaceCheck()
+ metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. arg[1] .. ".metric"))
+ if metricValue == "" then -- no metric
+ errorNoMetric = 1
+ else -- if metric exists create list of interface metrics to compare against for duplicates
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ local metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. section[".name"] .. ".metric"))
+ metricList = metricList .. section[".name"] .. " " .. metricValue .. "\n"
+ end
+ )
+ -- compare metric against list
+ local metricDuplicateNumbers, metricDuplicates = sys.exec("echo '" .. metricList .. "' | awk '{print $2}' | uniq -d"), ""
+ for line in metricDuplicateNumbers:gmatch("[^\r\n]+") do
+ metricDuplicates = sys.exec("echo '" .. metricList .. "' | grep '" .. line .. "' | awk '{print $1}'")
+ errorDuplicateMetricList = errorDuplicateMetricList .. metricDuplicates
+ end
+ if sys.exec("echo '" .. errorDuplicateMetricList .. "' | grep -w " .. arg[1]) ~= "" then
+ errorDuplicateMetric = 1
+ end
+ end
+ -- check if this interface has a higher reliability requirement than track IPs configured
+ local trackingNumber = tonumber(ut.trim(sys.exec("echo $(uci -p /var/state get mwan3." .. arg[1] .. ".track_ip) | wc -w")))
+ if trackingNumber > 0 then
+ local reliabilityNumber = tonumber(ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".reliability")))
+ if reliabilityNumber and reliabilityNumber > trackingNumber then
+ errorReliability = 1
+ end
+ end
+ -- check if any interfaces are not properly configured in /etc/config/network or have no default route in main routing table
+ if ut.trim(sys.exec("uci -p /var/state get network." .. arg[1])) == "interface" then
+ local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. arg[1] .. ".ifname"))
+ if interfaceDevice == "uci: Entry not found" or interfaceDevice == "" then
+ errorNetConfig = 1
+ errorRoute = 1
+ else
+ local routeCheck = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $1}'"))
+ if routeCheck == "" then
+ errorRoute = 1
+ end
+ end
+ else
+ errorNetConfig = 1
+ errorRoute = 1
+ end
+end
+
+function interfaceWarnings() -- display warning messages at the top of the page
+ local warns, lineBreak = "", ""
+ if errorReliability == 1 then
+ warns = "" .. translate("WARNING: This interface has a higher reliability requirement than there are tracking IP addresses!") .. " "
+ lineBreak = " "
+ end
+ if errorRoute == 1 then
+ warns = warns .. lineBreak .. "" .. translate("WARNING: This interface has no default route in the main routing table!") .. " "
+ lineBreak = " "
+ end
+ if errorNetConfig == 1 then
+ warns = warns .. lineBreak .. "" .. translate("WARNING: This interface is configured incorrectly or not at all in /etc/config/network!") .. " "
+ lineBreak = " "
+ end
+ if errorNoMetric == 1 then
+ warns = warns .. lineBreak .. "" .. translate("WARNING: This interface has no metric configured in /etc/config/network!") .. " "
+ elseif errorDuplicateMetric == 1 then
+ warns = warns .. lineBreak .. "" .. translate("WARNING: This and other interfaces have duplicate metrics configured in /etc/config/network!") .. " "
+ end
+ return warns
+end
+
+-- ------ interface configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+arg[1] = arg[1] or ""
+
+metricValue = ""
+metricList = ""
+errorDuplicateMetricList = ""
+errorNoMetric = 0
+errorDuplicateMetric = 0
+errorRoute = 0
+errorNetConfig = 0
+errorReliability = 0
+interfaceCheck()
+
+
+m5 = Map("mwan3", translatef("MWAN Interface Configuration - %s", arg[1]),
+ interfaceWarnings())
+ m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "interface")
+
+
+mwan_interface = m5:section(NamedSection, arg[1], "interface", "")
+ mwan_interface.addremove = false
+ mwan_interface.dynamic = false
+
+
+enabled = mwan_interface:option(ListValue, "enabled", translate("Enabled"))
+ enabled.default = "1"
+ enabled:value("1", translate("Yes"))
+ enabled:value("0", translate("No"))
+
+initial_state = mwan_interface:option(ListValue, "initial_state", translate("Initial state"),
+ translate("Expect interface state on up event"))
+ initial_state.default = "online"
+ initial_state:value("online", translate("Online"))
+ initial_state:value("offline", translate("Offline"))
+
+family = mwan_interface:option(ListValue, "family", translate("Internet Protocol"))
+ family.default = "ipv4"
+ family:value("ipv4", translate("IPv4"))
+ family:value("ipv6", translate("IPv6"))
+
+track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking hostname or IP address"),
+ translate("This hostname or IP address will be pinged to determine if the link is up or down. Leave blank to assume interface is always online"))
+ track_ip.datatype = "host"
+
+track_method = mwan_interface:option(ListValue, "track_method", translate("Tracking method"))
+ track_method.default = "ping"
+ track_method:value("ping")
+ track_method:value("arping")
+ track_method:value("httping")
+
+reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"),
+ translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up"))
+ reliability.datatype = "range(1, 100)"
+ reliability.default = "1"
+
+count = mwan_interface:option(ListValue, "count", translate("Ping count"))
+ count.default = "1"
+ count:value("1")
+ count:value("2")
+ count:value("3")
+ count:value("4")
+ count:value("5")
+
+size = mwan_interface:option(Value, "size", translate("Ping size"))
+ size.default = "56"
+ size:value("8")
+ size:value("24")
+ size:value("56")
+ size:value("120")
+ size:value("248")
+ size:value("504")
+ size:value("1016")
+ size:value("1472")
+ size:value("2040")
+ size.datatype = "range(1, 65507)"
+ size.rmempty = false
+ size.optional = false
+
+timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
+ timeout.default = "2"
+ timeout:value("1", translatef("%d second", 1))
+ timeout:value("2", translatef("%d seconds", 2))
+ timeout:value("3", translatef("%d seconds", 3))
+ timeout:value("4", translatef("%d seconds", 4))
+ timeout:value("5", translatef("%d seconds", 5))
+ timeout:value("6", translatef("%d seconds", 6))
+ timeout:value("7", translatef("%d seconds", 7))
+ timeout:value("8", translatef("%d seconds", 8))
+ timeout:value("9", translatef("%d seconds", 9))
+ timeout:value("10", translatef("%d seconds", 10))
+
+interval = mwan_interface:option(ListValue, "interval", translate("Ping interval"))
+ interval.default = "5"
+ interval:value("1", translatef("%d second", 1))
+ interval:value("3", translatef("%d seconds", 3))
+ interval:value("5", translatef("%d seconds", 5))
+ interval:value("10", translatef("%d seconds", 10))
+ interval:value("20", translatef("%d seconds", 20))
+ interval:value("30", translatef("%d seconds", 30))
+ interval:value("60", translatef("%d minute", 1))
+ interval:value("300", translatef("%d minutes", 5))
+ interval:value("600", translatef("%d minutes", 10))
+ interval:value("900", translatef("%d minutes", 15))
+ interval:value("1800", translatef("%d minutes", 30))
+ interval:value("3600", translatef("%d hour", 1))
+
+failure = mwan_interface:option(Value, "failure_interval", translate("Failure interval"),
+ translate("Ping interval during failure detection"))
+ failure.default = "5"
+ failure:value("1", translatef("%d second", 1))
+ failure:value("3", translatef("%d seconds", 3))
+ failure:value("5", translatef("%d seconds", 5))
+ failure:value("10", translatef("%d seconds", 10))
+ failure:value("20", translatef("%d seconds", 20))
+ failure:value("30", translatef("%d seconds", 30))
+ failure:value("60", translatef("%d minute", 1))
+ failure:value("300", translatef("%d minutes", 5))
+ failure:value("600", translatef("%d minutes", 10))
+ failure:value("900", translatef("%d minutes", 15))
+ failure:value("1800", translatef("%d minutes", 30))
+ failure:value("3600", translatef("%d hour", 1))
+
+keep_failure = mwan_interface:option(Flag, "keep_failure_interval", translate("Keep failure interval"),
+ translate("Keep ping failure interval during failure state"))
+ keep_failure.default = keep_failure.disabled
+
+recovery = mwan_interface:option(Value, "recovery_interval", translate("Recovery interval"),
+ translate("Ping interval during failure recovering"))
+ recovery.default = "5"
+ recovery:value("1", translatef("%d second", 1))
+ recovery:value("3", translatef("%d seconds", 3))
+ recovery:value("5", translatef("%d seconds", 5))
+ recovery:value("10", translatef("%d seconds", 10))
+ recovery:value("20", translatef("%d seconds", 20))
+ recovery:value("30", translatef("%d seconds", 30))
+ recovery:value("60", translatef("%d minute", 1))
+ recovery:value("300", translatef("%d minutes", 5))
+ recovery:value("600", translatef("%d minutes", 10))
+ recovery:value("900", translatef("%d minutes", 15))
+ recovery:value("1800", translatef("%d minutes", 30))
+ recovery:value("3600", translatef("%d hour", 1))
+
+down = mwan_interface:option(ListValue, "down", translate("Interface down"),
+ translate("Interface will be deemed down after this many failed ping tests"))
+ down.default = "3"
+ down:value("1")
+ down:value("2")
+ down:value("3")
+ down:value("4")
+ down:value("5")
+ down:value("6")
+ down:value("7")
+ down:value("8")
+ down:value("9")
+ down:value("10")
+
+up = mwan_interface:option(ListValue, "up", translate("Interface up"),
+ translate("Downed interface will be deemed up after this many successful ping tests"))
+ up.default = "3"
+ up:value("1")
+ up:value("2")
+ up:value("3")
+ up:value("4")
+ up:value("5")
+ up:value("6")
+ up:value("7")
+ up:value("8")
+ up:value("9")
+ up:value("10")
+
+flush = mwan_interface:option(ListValue, "flush_conntrack", translate("Flush conntrack table"),
+ translate("Flush global firewall conntrack table on interface events"))
+ flush.default = "never"
+ flush:value("ifup", translate("ifup"))
+ flush:value("ifdown", translate("ifdown"))
+ flush:value("never", translate("never"))
+ flush:value("always", translate("always"))
+
+metric = mwan_interface:option(DummyValue, "metric", translate("Metric"),
+ translate("This displays the metric assigned to this interface in /etc/config/network"))
+ metric.rawhtml = true
+ function metric.cfgvalue(self, s)
+ if errorNoMetric == 0 then
+ return metricValue
+ else
+ return "—"
+ end
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua
new file mode 100644
index 0000000000..efbe8f7902
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua
@@ -0,0 +1,46 @@
+-- ------ member configuration ------ --
+
+ds = require "luci.dispatcher"
+
+
+m5 = Map("mwan3", translate("MWAN Member Configuration"))
+ m5:append(Template("mwan/config_css"))
+
+
+mwan_member = m5:section(TypedSection, "member", translate("Members"),
+ translate("Members are profiles attaching a metric and weight to an MWAN interface " ..
+ "Names may contain characters A-Z, a-z, 0-9, _ and no spaces " ..
+ "Members may not share the same name as configured interfaces, policies or rules"))
+ mwan_member.addremove = true
+ mwan_member.dynamic = false
+ mwan_member.sectionhead = translate("Member")
+ mwan_member.sortable = true
+ mwan_member.template = "cbi/tblsection"
+ mwan_member.extedit = ds.build_url("admin", "network", "mwan", "configuration", "member", "%s")
+ function mwan_member.create(self, section)
+ TypedSection.create(self, section)
+ m5.uci:save("mwan3")
+ luci.http.redirect(ds.build_url("admin", "network", "mwan", "configuration", "member", section))
+ end
+
+
+interface = mwan_member:option(DummyValue, "interface", translate("Interface"))
+ interface.rawhtml = true
+ function interface.cfgvalue(self, s)
+ return self.map:get(s, "interface") or "—"
+ end
+
+metric = mwan_member:option(DummyValue, "metric", translate("Metric"))
+ metric.rawhtml = true
+ function metric.cfgvalue(self, s)
+ return self.map:get(s, "metric") or "1"
+ end
+
+weight = mwan_member:option(DummyValue, "weight", translate("Weight"))
+ weight.rawhtml = true
+ function weight.cfgvalue(self, s)
+ return self.map:get(s, "weight") or "1"
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua
new file mode 100644
index 0000000000..eb6f417afe
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua
@@ -0,0 +1,47 @@
+-- ------ extra functions ------ --
+
+function cbi_add_interface(field)
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ field:value(section[".name"])
+ end
+ )
+end
+
+-- ------ member configuration ------ --
+
+dsp = require "luci.dispatcher"
+arg[1] = arg[1] or ""
+
+
+m5 = Map("mwan3", translatef("MWAN Member Configuration - %s", arg[1]))
+ m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "member")
+
+
+mwan_member = m5:section(NamedSection, arg[1], "member", "")
+ mwan_member.addremove = false
+ mwan_member.dynamic = false
+
+
+interface = mwan_member:option(Value, "interface", translate("Interface"))
+ cbi_add_interface(interface)
+
+metric = mwan_member:option(Value, "metric", translate("Metric"),
+ translate("Acceptable values: 1-1000. Defaults to 1 if not set"))
+ metric.datatype = "range(1, 1000)"
+
+weight = mwan_member:option(Value, "weight", translate("Weight"),
+ translate("Acceptable values: 1-1000. Defaults to 1 if not set"))
+ weight.datatype = "range(1, 1000)"
+
+
+-- ------ currently configured interfaces ------ --
+
+mwan_interface = m5:section(TypedSection, "interface", translate("Currently Configured Interfaces"))
+ mwan_interface.addremove = false
+ mwan_interface.dynamic = false
+ mwan_interface.sortable = false
+ mwan_interface.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua
new file mode 100644
index 0000000000..6640564d50
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua
@@ -0,0 +1,94 @@
+-- ------ extra functions ------ --
+
+function policyCheck() -- check to see if any policy names exceed the maximum of 15 characters
+ uci.cursor():foreach("mwan3", "policy",
+ function (section)
+ if string.len(section[".name"]) > 15 then
+ nameTooLong = 1
+ err_name_list = err_name_list .. section[".name"] .. " "
+ end
+ end
+ )
+end
+
+function policyWarn() -- display status and warning messages at the top of the page
+ if nameTooLong == 1 then
+ return "" .. translate("WARNING: Some policies have names exceeding the maximum of 15 characters!") .. " "
+ else
+ return ""
+ end
+end
+
+-- ------ policy configuration ------ --
+
+ds = require "luci.dispatcher"
+sys = require "luci.sys"
+
+nameTooLong = 0
+err_name_list = " "
+policyCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Policy Configuration"),
+ policyWarn())
+ m5:append(Template("mwan/config_css"))
+
+
+mwan_policy = m5:section(TypedSection, "policy", translate("Policies"),
+ translate("Policies are profiles grouping one or more members controlling how MWAN distributes traffic " ..
+ "Member interfaces with lower metrics are used first. Interfaces with the same metric load-balance " ..
+ "Load-balanced member interfaces distribute more traffic out those with higher weights " ..
+ "Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be 15 characters or less " ..
+ "Policies may not share the same name as configured interfaces, members or rules"))
+ mwan_policy.addremove = true
+ mwan_policy.dynamic = false
+ mwan_policy.sectionhead = translate("Policy")
+ mwan_policy.sortable = true
+ mwan_policy.template = "cbi/tblsection"
+ mwan_policy.extedit = ds.build_url("admin", "network", "mwan", "configuration", "policy", "%s")
+ function mwan_policy.create(self, section)
+ TypedSection.create(self, section)
+ m5.uci:save("mwan3")
+ luci.http.redirect(ds.build_url("admin", "network", "mwan", "configuration", "policy", section))
+ end
+
+
+use_member = mwan_policy:option(DummyValue, "use_member", translate("Members assigned"))
+ use_member.rawhtml = true
+ function use_member.cfgvalue(self, s)
+ local memberConfig, memberList = self.map:get(s, "use_member"), ""
+ if memberConfig then
+ for k,v in pairs(memberConfig) do
+ memberList = memberList .. v .. " "
+ end
+ return memberList
+ else
+ return "—"
+ end
+ end
+
+last_resort = mwan_policy:option(DummyValue, "last_resort", translate("Last resort"))
+ last_resort.rawhtml = true
+ function last_resort.cfgvalue(self, s)
+ local action = self.map:get(s, "last_resort")
+ if action == "blackhole" then
+ return translate("blackhole (drop)")
+ elseif action == "default" then
+ return translate("default (use main routing table)")
+ else
+ return translate("unreachable (reject)")
+ end
+ end
+
+errors = mwan_policy:option(DummyValue, "errors", translate("Errors"))
+ errors.rawhtml = true
+ function errors.cfgvalue(self, s)
+ if not string.find(err_name_list, " " .. s .. " ") then
+ return ""
+ else
+ return " "
+ end
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua
new file mode 100644
index 0000000000..feb62dc8a3
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua
@@ -0,0 +1,65 @@
+-- ------ extra functions ------ --
+
+function policyCheck() -- check to see if this policy's name exceed the maximum of 15 characters
+ policyNameLength = string.len(arg[1])
+ if policyNameLength > 15 then
+ nameTooLong = 1
+ end
+end
+
+function policyWarn() -- display status and warning messages at the top of the page
+ if nameTooLong == 1 then
+ return "" .. translatef("WARNING: This policy's name is %d characters exceeding the maximum of 15!", policyNameLength) .. " "
+ else
+ return ""
+ end
+end
+
+function cbiAddMember(field)
+ uci.cursor():foreach("mwan3", "member",
+ function (section)
+ field:value(section[".name"])
+ end
+ )
+end
+
+-- ------ policy configuration ------ --
+
+dsp = require "luci.dispatcher"
+arg[1] = arg[1] or ""
+
+nameTooLong = 0
+policyCheck()
+
+
+m5 = Map("mwan3", translatef("MWAN Policy Configuration - %s", arg[1]),
+ policyWarn())
+ m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "policy")
+
+
+mwan_policy = m5:section(NamedSection, arg[1], "policy", "")
+ mwan_policy.addremove = false
+ mwan_policy.dynamic = false
+
+
+use_member = mwan_policy:option(DynamicList, "use_member", translate("Member used"))
+ cbiAddMember(use_member)
+
+last_resort = mwan_policy:option(ListValue, "last_resort", translate("Last resort"),
+ translate("When all policy members are offline use this behavior for matched traffic"))
+ last_resort.default = "unreachable"
+ last_resort:value("unreachable", translate("unreachable (reject)"))
+ last_resort:value("blackhole", translate("blackhole (drop)"))
+ last_resort:value("default", translate("default (use main routing table)"))
+
+
+-- ------ currently configured members ------ --
+
+mwan_member = m5:section(TypedSection, "member", translate("Currently Configured Members"))
+ mwan_member.addremove = false
+ mwan_member.dynamic = false
+ mwan_member.sortable = false
+ mwan_member.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua
new file mode 100644
index 0000000000..9cb4756fc8
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua
@@ -0,0 +1,141 @@
+-- ------ extra functions ------ --
+
+function ruleCheck() -- determine if rules needs a proper protocol configured
+ uci.cursor():foreach("mwan3", "rule",
+ function (section)
+ local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".src_port"))
+ local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".dest_port"))
+ if sourcePort ~= "" or destPort ~= "" then -- ports configured
+ local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".proto"))
+ if protocol == "" or protocol == "all" then -- no or improper protocol
+ error_protocol_list = error_protocol_list .. section[".name"] .. " "
+ end
+ end
+ end
+ )
+end
+
+function ruleWarn() -- display warning messages at the top of the page
+ if error_protocol_list ~= " " then
+ return "" .. translate("WARNING: Some rules have a port configured with no or improper protocol specified! Please configure a specific protocol!") .. " "
+ else
+ return ""
+ end
+end
+
+-- ------ rule configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+
+error_protocol_list = " "
+ruleCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Rule Configuration"),
+ ruleWarn())
+ m5:append(Template("mwan/config_css"))
+
+
+mwan_rule = m5:section(TypedSection, "rule", translate("Traffic Rules"),
+ translate("Rules specify which traffic will use a particular MWAN policy based on IP address, port or protocol " ..
+ "Rules are matched from top to bottom. Rules below a matching rule are ignored. Traffic not matching any rule is routed using the main routing table " ..
+ "Traffic destined for known (other than default) networks is handled by the main routing table. Traffic matching a rule, but all WAN interfaces for that policy are down will be blackholed " ..
+ "Names may contain characters A-Z, a-z, 0-9, _ and no spaces " ..
+ "Rules may not share the same name as configured interfaces, members or policies"))
+ mwan_rule.addremove = true
+ mwan_rule.anonymous = false
+ mwan_rule.dynamic = false
+ mwan_rule.sectionhead = translate("Rule")
+ mwan_rule.sortable = true
+ mwan_rule.template = "cbi/tblsection"
+ mwan_rule.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "rule", "%s")
+ function mwan_rule.create(self, section)
+ TypedSection.create(self, section)
+ m5.uci:save("mwan3")
+ luci.http.redirect(dsp.build_url("admin", "network", "mwan", "configuration", "rule", section))
+ end
+
+
+src_ip = mwan_rule:option(DummyValue, "src_ip", translate("Source address"))
+ src_ip.rawhtml = true
+ function src_ip.cfgvalue(self, s)
+ return self.map:get(s, "src_ip") or "—"
+ end
+
+src_port = mwan_rule:option(DummyValue, "src_port", translate("Source port"))
+ src_port.rawhtml = true
+ function src_port.cfgvalue(self, s)
+ return self.map:get(s, "src_port") or "—"
+ end
+
+dest_ip = mwan_rule:option(DummyValue, "dest_ip", translate("Destination address"))
+ dest_ip.rawhtml = true
+ function dest_ip.cfgvalue(self, s)
+ return self.map:get(s, "dest_ip") or "—"
+ end
+
+dest_port = mwan_rule:option(DummyValue, "dest_port", translate("Destination port"))
+ dest_port.rawhtml = true
+ function dest_port.cfgvalue(self, s)
+ return self.map:get(s, "dest_port") or "—"
+ end
+
+proto = mwan_rule:option(DummyValue, "proto", translate("Protocol"))
+ proto.rawhtml = true
+ function proto.cfgvalue(self, s)
+ return self.map:get(s, "proto") or "all"
+ end
+
+sticky = mwan_rule:option(DummyValue, "sticky", translate("Sticky"))
+ sticky.rawhtml = true
+ function sticky.cfgvalue(self, s)
+ if self.map:get(s, "sticky") == "1" then
+ stickied = 1
+ return translate("Yes")
+ else
+ stickied = nil
+ return translate("No")
+ end
+ end
+
+timeout = mwan_rule:option(DummyValue, "timeout", translate("Sticky timeout"))
+ timeout.rawhtml = true
+ function timeout.cfgvalue(self, s)
+ if stickied then
+ local timeoutValue = self.map:get(s, "timeout")
+ if timeoutValue then
+ return timeoutValue .. "s"
+ else
+ return "600s"
+ end
+ else
+ return "—"
+ end
+ end
+
+ipset = mwan_rule:option(DummyValue, "ipset", translate("IPset"))
+ ipset.rawhtml = true
+ function ipset.cfgvalue(self, s)
+ return self.map:get(s, "ipset") or "—"
+ end
+
+use_policy = mwan_rule:option(DummyValue, "use_policy", translate("Policy assigned"))
+ use_policy.rawhtml = true
+ function use_policy.cfgvalue(self, s)
+ return self.map:get(s, "use_policy") or "—"
+ end
+
+errors = mwan_rule:option(DummyValue, "errors", translate("Errors"))
+ errors.rawhtml = true
+ function errors.cfgvalue(self, s)
+ if not string.find(error_protocol_list, " " .. s .. " ") then
+ return ""
+ else
+ return " "
+ end
+ end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua
new file mode 100644
index 0000000000..cb1b45d261
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua
@@ -0,0 +1,113 @@
+-- ------ extra functions ------ --
+
+function ruleCheck() -- determine if rule needs a protocol specified
+ local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".src_port"))
+ local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".dest_port"))
+ if sourcePort ~= "" or destPort ~= "" then -- ports configured
+ local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".proto"))
+ if protocol == "" or protocol == "all" then -- no or improper protocol
+ error_protocol = 1
+ end
+ end
+end
+
+function ruleWarn() -- display warning message at the top of the page
+ if error_protocol == 1 then
+ return "" .. translate("WARNING: This rule is incorrectly configured with no or improper protocol specified! Please configure a specific protocol!") .. " "
+ else
+ return ""
+ end
+end
+
+function cbiAddPolicy(field)
+ uci.cursor():foreach("mwan3", "policy",
+ function (section)
+ field:value(section[".name"])
+ end
+ )
+end
+
+function cbiAddProtocol(field)
+ local protocols = ut.trim(sys.exec("cat /etc/protocols | grep ' # ' | awk '{print $1}' | grep -vw -e 'ip' -e 'tcp' -e 'udp' -e 'icmp' -e 'esp' | grep -v 'ipv6' | sort | tr '\n' ' '"))
+ for p in string.gmatch(protocols, "%S+") do
+ field:value(p)
+ end
+end
+
+-- ------ rule configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+arg[1] = arg[1] or ""
+
+error_protocol = 0
+ruleCheck()
+
+
+m5 = Map("mwan3", translatef("MWAN Rule Configuration - %s", arg[1]),
+ ruleWarn())
+ m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "rule")
+
+
+mwan_rule = m5:section(NamedSection, arg[1], "rule", "")
+ mwan_rule.addremove = false
+ mwan_rule.dynamic = false
+
+
+src_ip = mwan_rule:option(Value, "src_ip", translate("Source address"),
+ translate("Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"))
+ src_ip.datatype = ipaddr
+
+src_port = mwan_rule:option(Value, "src_port", translate("Source port"),
+ translate("May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or as a portrange (eg \"1024:2048\") without quotes"))
+
+dest_ip = mwan_rule:option(Value, "dest_ip", translate("Destination address"),
+ translate("Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"))
+ dest_ip.datatype = ipaddr
+
+dest_port = mwan_rule:option(Value, "dest_port", translate("Destination port"),
+ translate("May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or as a portrange (eg \"1024:2048\") without quotes"))
+
+proto = mwan_rule:option(Value, "proto", translate("Protocol"),
+ translate("View the contents of /etc/protocols for protocol descriptions"))
+ proto.default = "all"
+ proto.rmempty = false
+ proto:value("all")
+ proto:value("ip")
+ proto:value("tcp")
+ proto:value("udp")
+ proto:value("icmp")
+ proto:value("esp")
+ cbiAddProtocol(proto)
+
+sticky = mwan_rule:option(ListValue, "sticky", translate("Sticky"),
+ translate("Traffic from the same source IP address that previously matched this rule within the sticky timeout period will use the same WAN interface"))
+ sticky.default = "0"
+ sticky:value("1", translate("Yes"))
+ sticky:value("0", translate("No"))
+
+timeout = mwan_rule:option(Value, "timeout", translate("Sticky timeout"),
+ translate("Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"))
+ timeout.datatype = "range(1, 1000000)"
+
+ipset = mwan_rule:option(Value, "ipset", translate("IPset"),
+ translate("Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/youtube.com/youtube\")"))
+
+use_policy = mwan_rule:option(Value, "use_policy", translate("Policy assigned"))
+ cbiAddPolicy(use_policy)
+ use_policy:value("unreachable", translate("unreachable (reject)"))
+ use_policy:value("blackhole", translate("blackhole (drop)"))
+ use_policy:value("default", translate("default (use main routing table)"))
+
+
+-- ------ currently configured policies ------ --
+
+mwan_policy = m5:section(TypedSection, "policy", translate("Currently Configured Policies"))
+ mwan_policy.addremove = false
+ mwan_policy.dynamic = false
+ mwan_policy.sortable = false
+ mwan_policy.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm b/applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm
new file mode 100644
index 0000000000..53b997af90
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm
@@ -0,0 +1 @@
+<%+mwan/openwrt_overview_status%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm
new file mode 100644
index 0000000000..4483485946
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm
@@ -0,0 +1,115 @@
+<%+header%>
+
+
+
+<%
+ local uci = require "luci.model.uci"
+
+ interfaceNames = ""
+ uci.cursor():foreach("mwan3", "interface",
+ function (section)
+ interfaceNames = interfaceNames .. section[".name"] .. " "
+ end
+ )
+%>
+
+
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm
new file mode 100644
index 0000000000..10b4f10558
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm
@@ -0,0 +1,14 @@
+
+
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm
new file mode 100644
index 0000000000..20ae6036fc
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm
@@ -0,0 +1,14 @@
+
+
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm
new file mode 100644
index 0000000000..bed43107c0
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm
@@ -0,0 +1,14 @@
+
+
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm
new file mode 100644
index 0000000000..4174ef4b21
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm
@@ -0,0 +1,63 @@
+<%+header%>
+
+
+
+
+
+
+
+
+ <%:Troubleshooting Data%>
+ <%:Collecting data...%>
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm
new file mode 100644
index 0000000000..bb18d53493
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm
@@ -0,0 +1,14 @@
+
+
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm b/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm
new file mode 100644
index 0000000000..5d91c536eb
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm
@@ -0,0 +1,28 @@
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm b/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm
new file mode 100644
index 0000000000..7cef0630ee
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm
@@ -0,0 +1,80 @@
+
+
+
+ <%:MWAN Interface Live Status%>
+ <%:Collecting data...%>
+
+
+
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm
new file mode 100644
index 0000000000..6a800c3f98
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm
@@ -0,0 +1,40 @@
+<%+header%>
+
+
+
+
+
+
+
+
+ <%:MWAN Detailed Status%>
+ <%:Collecting data...%>
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm
new file mode 100644
index 0000000000..2929a6df60
--- /dev/null
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm
@@ -0,0 +1,108 @@
+<%+header%>
+
+
+
+
+
+
+
+
+ <%:MWAN Interface Live Status%>
+ <%:Collecting data...%>
+
+
+ <%:MWAN Interface Systemlog%>
+ <%:Collecting data...%>
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po
new file mode 100644
index 0000000000..34a9f1f3b3
--- /dev/null
+++ b/applications/luci-app-mwan3/po/ja/mwan3.po
@@ -0,0 +1,665 @@
+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.0.3\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "%d hour"
+msgstr "%d æé"
+
+msgid "%d minute"
+msgstr "%d å"
+
+msgid "%d minutes"
+msgstr "%d å"
+
+msgid "%d second"
+msgstr "%d ç§"
+
+msgid "%d seconds"
+msgstr "%d ç§"
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+"å©ç¨å¯è½ãªå¤: 1-100ãä¸è¨ã®è¿½è·¡ IP ã®åè¨åæ°ã®ãã¡ãUp ç¶æ
ã¨å¤å®ããããã«"
+"ã«å¿
è¦ãªãã¬ã¹ãã³ã¹ãè¿ããã追跡 IP ã¢ãã¬ã¹ã®åæ°ã§ãã"
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr "å©ç¨å¯è½ãªå¤: 1-1000ã空æ¬ã®å ´åã®ããã©ã«ãã¯1ã§ãã"
+
+msgid "Advanced"
+msgstr "詳細è¨å®"
+
+msgid "Check IP rules"
+msgstr "IP ã«ã¼ã«ã®ãã§ãã¯"
+
+msgid "Check routing table"
+msgstr "ã«ã¼ãã£ã³ã° ãã¼ãã«ã®ãã§ãã¯"
+
+msgid "Collecting data..."
+msgstr "ãã¼ã¿åéä¸ã§ã..."
+
+msgid "Configuration"
+msgstr "è¨å®"
+
+msgid "Currently Configured Interfaces"
+msgstr "è¨å®æ¸ã¿ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Currently Configured Members"
+msgstr "è¨å®æ¸ã¿ã¡ã³ãã¼"
+
+msgid "Currently Configured Policies"
+msgstr "è¨å®æ¸ã¿ããªã·ã¼"
+
+msgid "Destination address"
+msgstr "å®å
ã¢ãã¬ã¹"
+
+msgid "Destination port"
+msgstr "å®å
ãã¼ã"
+
+msgid "Detailed Status"
+msgstr "詳細ã¹ãã¼ã¿ã¹"
+
+msgid "Diagnostic Results"
+msgstr "診æçµæ"
+
+msgid "Diagnostics"
+msgstr "診ææ©è½"
+
+msgid "Disabled"
+msgstr "ç¡å¹"
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr ""
+"Down ç¶æ
ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã Up ç¶æ
ã¨å¤æãããã¾ã§ã«è¦ãã ping ãã¹ãã®æ"
+"ååæ°ã§ãã"
+
+msgid "Enabled"
+msgstr "æå¹"
+
+msgid "Enter value in hex, starting with 0x
"
+msgstr "0x
ã§å§ã¾ã16é²æ°ã®å¤ãå
¥åãã¦ãã ããã"
+
+msgid "Error collecting troubleshooting information"
+msgstr "ãã©ãã«ã·ã¥ã¼ãã£ã³ã°æ
å ±ã®åéã¨ã©ã¼"
+
+msgid "Errors"
+msgstr "ã¨ã©ã¼"
+
+msgid "Expect interface state on up event"
+msgstr "Up ã¤ãã³ãæã«äºæ³ãããã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ç¶æ
ã§ãã"
+
+msgid "Failure interval"
+msgstr "é害æ¤åº ã¤ã³ã¿ã¼ãã«"
+
+msgid "Firewall mask"
+msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã« ãã¹ã¯"
+
+msgid "Flush conntrack table"
+msgstr ""
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr ""
+
+msgid "Globals"
+msgstr "å
¨è¬"
+
+msgid "Globals mwan3 options"
+msgstr "MWAN3 å
¨è¬ãªãã·ã§ã³"
+
+msgid "Hotplug Script"
+msgstr "ããããã©ã° ã¹ã¯ãªãã"
+
+msgid "Hotplug ifdown"
+msgstr "ããããã©ã° ifdown"
+
+msgid "Hotplug ifup"
+msgstr "ããããã©ã° ifup"
+
+msgid "IPset"
+msgstr "IPset"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Initial state"
+msgstr "åæç¶æ
"
+
+msgid "Interface"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Interface Status"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ ã¹ãã¼ã¿ã¹"
+
+msgid "Interface down"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ Down"
+
+msgid "Interface up"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ Up"
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr ""
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ã Down ç¶æ
ã¨å¤æãããã¾ã§ã«è¦ãã ping ãã¹ãã®å¤±æåæ°ã§"
+"ãã"
+
+msgid "Interfaces"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Internet Protocol"
+msgstr "ã¤ã³ã¿ã¼ããã ãããã³ã«"
+
+msgid "Keep failure interval"
+msgstr ""
+
+msgid "Keep ping failure interval during failure state"
+msgstr ""
+
+msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :"
+msgstr "ç´è¿ã® MWAN ã·ã¹ãã ãã°ï¼50è¡ï¼ã§ããä¸çªä¸ãææ°ã®è¡ã§ã:"
+
+msgid "Last resort"
+msgstr "æçµæ段"
+
+msgid "Load Balancing"
+msgstr "è² è·åæ£"
+
+msgid "Loading"
+msgstr "èªè¾¼ä¸"
+
+msgid "Local source interface"
+msgstr ""
+
+msgid "MWAN Config"
+msgstr "MWAN è¨å®"
+
+msgid "MWAN Detailed Status"
+msgstr "MWAN 詳細ã¹ãã¼ã¿ã¹"
+
+msgid "MWAN Interface Configuration"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹è¨å®"
+
+msgid "MWAN Interface Configuration - %s"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹è¨å® - %s"
+
+msgid "MWAN Interface Diagnostics"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹è¨ºæ"
+
+msgid "MWAN Interface Live Status"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ Live ã¹ãã¼ã¿ã¹"
+
+msgid "MWAN Interface Systemlog"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ ã·ã¹ãã ãã°"
+
+msgid "MWAN Member Configuration"
+msgstr "MWAN ã¡ã³ãã¼è¨å®"
+
+msgid "MWAN Member Configuration - %s"
+msgstr "MWAN ã¡ã³ãã¼è¨å® - %s"
+
+msgid "MWAN Policy Configuration"
+msgstr "MWAN ããªã·ã¼è¨å®"
+
+msgid "MWAN Policy Configuration - %s"
+msgstr "MWAN ããªã·ã¼è¨å® - %s"
+
+msgid "MWAN Rule Configuration"
+msgstr "MWAN ã«ã¼ã«è¨å®"
+
+msgid "MWAN Rule Configuration - %s"
+msgstr "MWAN ã«ã¼ã«è¨å® - %s"
+
+msgid "MWAN Service Control"
+msgstr "MWAN ãµã¼ãã¹ ã³ã³ããã¼ã«"
+
+msgid ""
+"MWAN supports up to 250 physical and/or logical interfaces MWAN "
+"requires that all interfaces have a unique metric configured in /etc/config/"
+"network Names must match the interface name found in /etc/config/"
+"network (see advanced tab) Names may contain characters A-Z, a-z, 0-9, "
+"_ and no spaces Interfaces may not share the same name as configured "
+"members, policies or rules"
+msgstr ""
+"MWAN ã¯ã250åã¾ã§ã®ç©çã¾ãã¯è«çããããã¯ä¸¡æ¹ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ããµãã¼ã"
+"ãã¾ãã MWAN ã¯ãå
¨ã¦ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã /etc/config/network ã§è¨å®ã"
+"ããã¦ãã¼ã¯ãªã¡ããªãã¯ãæã¤ãã¨ãå¿
è¦ã¨ãã¾ãã ä¸è¨ \"ã¤ã³ã¿ã¼ãã§ã¼"
+"ã¹\" ã®ååã¯ã /etc/config/network ã«åå¨ããã¤ã³ã¿ã¼ãã§ã¼ã¹åã¨åãã§ãªã"
+"ãã°ãªãã¾ããï¼è©³ç´°è¨å®ã¿ãã確èªï¼ã åå㯠A-Z, a-z, 0-9, _ ãå«ãã"
+"ã¨ãã§ãã¾ãããã¹ãã¼ã¹ã¯ä½¿ç¨ã§ãã¾ããã ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ã¯ãè¨å®æ¸"
+"ã¿ã®ã¡ã³ãã¼ãããªã·ã¼ãã«ã¼ã«ã¨åãååã使ç¨ãããã¨ã¯ã§ãã¾ããã"
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+"åä¸ã¾ãã¯è¤æ°ã®ãã¼ãï¼ä¾: \"22\" ã¾ã㯠\"80,443\"ï¼ããããã¯ãã¼ãã®ç¯å²"
+"ï¼ä¾: \"1024:2048\"ï¼ããã¯ãªã¼ãã¼ã·ã§ã³ç¡ãã§æå®ãããã¨ãã§ãã¾ãã"
+
+msgid "Member"
+msgstr "ã¡ã³ãã¼"
+
+msgid "Member used"
+msgstr "使ç¨ãããã¡ã³ãã¼"
+
+msgid "Members"
+msgstr "ã¡ã³ãã¼"
+
+msgid ""
+"Members are profiles attaching a metric and weight to an MWAN interface Names may contain characters A-Z, a-z, 0-9, _ and no spaces Members "
+"may not share the same name as configured interfaces, policies or rules"
+msgstr ""
+"ã¡ã³ãã¼ã¯ãMWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ã¡ããªãã¯ããã³ã¦ã¨ã¤ããé¢é£ä»ãããã"
+"ãã¡ã¤ã«ã§ãã åå㯠A-Z, a-z, 0-9, _ ãå«ããã¨ãã§ãã¾ãããã¹ãã¼ã¹"
+"ã¯ä½¿ç¨ã§ãã¾ããã ã¡ã³ãã¼ã«ã¯ãè¨å®æ¸ã¿ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãããªã·ã¼ã"
+"ã«ã¼ã«ã¨åãååã使ç¨ãããã¨ã¯ã§ãã¾ããã"
+
+msgid "Members assigned"
+msgstr "ã¢ãµã¤ã³æ¸ã¿ã¡ã³ãã¼"
+
+msgid "Metric"
+msgstr "ã¡ããªãã¯"
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+"IPset ã«ã¼ã«ã®ååã§ãããã®ã«ã¼ã«ã¯ã /etc/dnsmasq.conf ã§å¿
è¦ã§ããï¼ä¾: "
+"\"ipset=/youtube.com/youtube\")"
+
+msgid "Network Config"
+msgstr "ãããã¯ã¼ã¯è¨å®"
+
+msgid "No"
+msgstr "ããã"
+
+msgid "No MWAN interfaces found"
+msgstr "MWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ãè¦ã¤ããã¾ãã"
+
+msgid "No MWAN systemlog history found"
+msgstr "MWAN ã·ã¹ãã ãã°ã®å±¥æ´ãè¦ã¤ããã¾ãã"
+
+msgid "No detailed status information available"
+msgstr "詳細ã¹ãã¼ã¿ã¹æ
å ±ã¯å©ç¨ã§ãã¾ãã"
+
+msgid "No diagnostic results returned"
+msgstr "診æçµæãããã¾ãã"
+
+msgid "No protocol specified"
+msgstr "ãããã³ã«ãè¨å®ããã¦ãã¾ãã"
+
+msgid "Offline"
+msgstr "ãªãã©ã¤ã³"
+
+msgid "Online"
+msgstr "ãªã³ã©ã¤ã³"
+
+msgid "Online (tracking active)"
+msgstr "ãªã³ã©ã¤ã³ï¼è¿½è·¡å®è¡ä¸ï¼"
+
+msgid "Online (tracking off)"
+msgstr "ãªã³ã©ã¤ã³ï¼è¿½è·¡ãªãï¼"
+
+msgid "Overview"
+msgstr "æ¦è¦"
+
+msgid "Ping count"
+msgstr "Ping åæ°"
+
+msgid "Ping default gateway"
+msgstr "Ping ããã©ã«ã ã²ã¼ãã¦ã§ã¤"
+
+msgid "Ping interval"
+msgstr "Ping ã¤ã³ã¿ã¼ãã«"
+
+msgid "Ping interval during failure detection"
+msgstr "é害æ¤åºä¸ã® Ping å®è¡ééã§ãã"
+
+msgid "Ping interval during failure recovering"
+msgstr "é害復æ§ä¸ã® Ping å®è¡ééã§ãã"
+
+msgid "Ping size"
+msgstr "Ping ãµã¤ãº"
+
+msgid "Ping timeout"
+msgstr "Ping ã¿ã¤ã ã¢ã¦ã"
+
+msgid "Ping tracking IP"
+msgstr "Ping ãã©ããã³ã° IP"
+
+msgid "Policies"
+msgstr "ããªã·ã¼"
+
+msgid ""
+"Policies are profiles grouping one or more members controlling how MWAN "
+"distributes traffic Member interfaces with lower metrics are used "
+"first. Interfaces with the same metric load-balance Load-balanced "
+"member interfaces distribute more traffic out those with higher weights Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be "
+"15 characters or less Policies may not share the same name as "
+"configured interfaces, members or rules"
+msgstr ""
+"ããªã·ã¼ã¯ãMWANãã©ã®ããã«ãã©ãã£ãã¯ã®åé
ãè¡ãããå¶å¾¡ããã1ã¤ä»¥ä¸ã®ã¡"
+"ã³ãã¼ãã°ã«ã¼ãåãããããã¡ã¤ã«ã§ãã æå°ã®ã¡ããªãã¯ãæã¤ã¡ã³ãã¼ "
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ãæåã«ä½¿ç¨ããã¾ããåãã¡ããªãã¯ãæã¤è¤æ°ã®ã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã§ã¯ãè² è·åæ£ãè¡ãã¾ãã è² è·åæ£ã«è¨å®ãããã¡ã³ãã¼ ã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã§ã¯ãã¦ã§ã¤ãã®å¤ã大ããæ¹ã«ããå¤ãã®ãã©ãã£ãã¯ãåé
ãã¾ãã"
+" åå㯠A-Z, a-z, 0-9, _ ãå«ããã¨ãã§ãã¾ãããã¹ãã¼ã¹ã¯ä½¿ç¨ã§ãã¾ã"
+"ããã¾ãã15æå以å
ã§ãªããã°ãªãã¾ããã ããªã·ã¼ã§ã¯ãè¨å®æ¸ã¿ã®ã¤ã³"
+"ã¿ã¼ãã§ã¼ã¹ãã¡ã³ãã¼ãã«ã¼ã«ã¨åãååã使ç¨ãããã¨ã¯ã§ãã¾ããã"
+
+msgid "Policy"
+msgstr "ããªã·ã¼"
+
+msgid "Policy assigned"
+msgstr "ã¢ãµã¤ã³æ¸ã¿ããªã·ã¼"
+
+msgid "Protocol"
+msgstr "ãããã³ã«"
+
+msgid "Recovery interval"
+msgstr "éå®³å¾©æ§ ã¤ã³ã¿ã¼ãã«"
+
+msgid "Restart MWAN"
+msgstr "MWAN ã®åèµ·å"
+
+msgid "Rule"
+msgstr "ã«ã¼ã«"
+
+msgid "Rules"
+msgstr "ã«ã¼ã«"
+
+msgid ""
+"Rules specify which traffic will use a particular MWAN policy based on IP "
+"address, port or protocol Rules are matched from top to bottom. Rules "
+"below a matching rule are ignored. Traffic not matching any rule is routed "
+"using the main routing table Traffic destined for known (other than "
+"default) networks is handled by the main routing table. Traffic matching a "
+"rule, but all WAN interfaces for that policy are down will be blackholed Names may contain characters A-Z, a-z, 0-9, _ and no spaces Rules may "
+"not share the same name as configured interfaces, members or policies"
+msgstr ""
+"ã«ã¼ã«ã¯ IP ã¢ãã¬ã¹ããã¼ãããããã³ã«ãåºã«ããã©ãã£ãã¯ãã©ã® MWAN ããª"
+"ã·ã¼ã使ç¨ããããè¨å®ãã¾ãã ã«ã¼ã«ã¯ä¸ããä¸ã¸ãããã³ã°ãè¡ãããå"
+"è´ããã«ã¼ã«ããä¸ã®ã«ã¼ã«ã¯ç¡è¦ããã¾ããå
¨ã¦ã®ã«ã¼ã«ã«åè´ããªããã©ãã£ã"
+"ã¯ã¯ãã¡ã¤ã³ã®ã«ã¼ãã£ã³ã° ãã¼ãã«ã使ç¨ãã¦ã«ã¼ãã決å®ããã¾ãã æ¢ç¥"
+"ï¼ããã©ã«ã以å¤ï¼ã®ãããã¯ã¼ã¯ã¸ã®ãã©ãã£ãã¯ã¯ãã¡ã¤ã³ã®ã«ã¼ãã£ã³ã° ãã¼"
+"ãã«ã«ãã£ã¦å¶å¾¡ããã¾ããã«ã¼ã«ã«åè´ãããã©ãã£ãã¯ã§ããå½è©²ããªã·ã¼ã®å
¨ "
+"WAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ã Down ç¶æ
ã®å ´å㯠blackhole ç¶æ
ã¨ãªãã¾ãã åå"
+"㯠A-Z, a-z, 0-9, _ ãå«ããã¨ãã§ãã¾ãããã¹ãã¼ã¹ã¯ä½¿ç¨ã§ãã¾ããã "
+"ã«ã¼ã«ã¯ãè¨å®æ¸ã¿ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã¡ã³ãã¼ãããªã·ã¼ã¨åãååã使ç¨ãã"
+"ãã¨ã¯ã§ãã¾ããã"
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr "ç§ãå©ç¨å¯è½ãªå¤: 1-1000000ã空æ¬ã®å ´åã®ããã©ã«ãå¤ã¯600ã§ãã"
+
+msgid "Source address"
+msgstr "éä¿¡å
ã¢ãã¬ã¹"
+
+msgid "Source port"
+msgstr "éä¿¡å
ãã¼ã"
+
+msgid "Start MWAN"
+msgstr "MWAN ã®èµ·å"
+
+msgid "Sticky"
+msgstr "Sticky"
+
+msgid "Sticky timeout"
+msgstr "Sticky ã¿ã¤ã ã¢ã¦ã"
+
+msgid "Stop MWAN"
+msgstr "MWAN ã®åæ¢"
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr "CIDR 表è¨ã®ãµãã¼ãï¼ä¾: \"192.168.100.0/24\"ï¼"
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr "ç¾å¨ã250åä¸ %d åã®ãµãã¼ããããã¤ã³ã¿ã¼ãã§ã¼ã¹ãè¨å®æ¸ã¿ã§ãã"
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr ""
+"/etc/config/network ã§ããã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å²ãå½ã¦ãããã¡ããªãã¯ã§ãã"
+
+msgid ""
+"This hostname or IP address will be pinged to determine if the link is up or "
+"down. Leave blank to assume interface is always online"
+msgstr ""
+"ãªã³ã¯ã® Up ã¾ã㯠Down ç¶æ
ãå¤å®ããããã«ããã®ãã¹ãåã¾ã㯠IP ã¢ãã¬ã¹"
+"ã«å¯¾ã㦠Ping ã®éä¿¡ãè¡ããã¾ãã常ã«ãªã³ã©ã¤ã³ã¨ããå ´åã空æ¬ã®ã¾ã¾ã«ãã¾"
+"ãã"
+
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\". The file is also preserved during sysupgrade. Notes: This "
+"file is interpreted as a shell script. The first line of the script "
+"must be "#!/bin/sh" without quotes. Lines beginning with # are "
+"comments and are not executed. Put your custom mwan3 action here, they "
+"will be executed with each netifd hotplug interface event on "
+"interfaces for which mwan3 is enabled. There are three main "
+"environment variables that are passed to this script. $ACTION "
+"Either \"ifup\" or \"ifdown\" $INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\") $DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\") "
+msgstr ""
+"ãã®ã»ã¯ã·ã§ã³ã§ã¯ã \"/etc/mwan3.user\" ã®å
容ãå¤æ´ãããã¨ãã§ãã¾ãã"
+" ãã®ãã¡ã¤ã«ã¯ã sysupgrade æã«ä¿æããã¾ãã 注æ: "
+"ãã®ãã¡ã¤ã«ã¯ãã·ã§ã«ã¹ã¯ãªããã¨ãã¦è§£éããã¾ãã ã¹ã¯ãªããã®1è¡ç®"
+"ã¯ã"#!bin/sh" ã§ããå¿
è¦ãããã¾ãï¼ã¯ã©ã¼ãã¼ã·ã§ã³ä¸è¦ï¼ã # "
+"ã§å§ã¾ãè¡ã¯ã³ã¡ã³ãã§ãããå®è¡ããã¾ããã mwan3 ã®ã«ã¹ã¿ã åä½ããã"
+"ã«å
¥åãã¦ãã ããããããã¯ã mwan3 ãæå¹ãªã¤ã³ã¿ã¼ãã§ã¼ã¹ã® netifd "
+"ããããã©ã° ã¤ã³ã¿ã¼ãã§ã¼ã¹ ã¤ãã³ãæ¯ã«å®è¡ããã¾ãã 主ã«3ã¤ã®"
+"ç°å¢å¤æ°ãå©ç¨å¯è½ã§ãã $ACTION - \"ifup\" ããã³ \"ifdown\" $INTERFACE - Up ã¾ã㯠Down ãè¡ãããã¤ã³ã¿ã¼ãã§ã¼ã¹åï¼ä¾: \"wan\" ã "
+"\"wwan\"ï¼ $DEVICE - Up ã¾ã㯠Down ãè¡ãããç©çããã¤ã¹åï¼ä¾: "
+"\"eth0\" ã \"wwan0\"ï¼ "
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr ""
+"ãã®ã»ã¯ã·ã§ã³ã§ã¯ã /etc/config/mwan3 ã®å
容ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr ""
+"ãã®ã»ã¯ã·ã§ã³ã§ã¯ã /etc/config/network ã®å
容ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr ""
+"ãã®ã»ã¯ã·ã§ã³ã§ã¯ã /etc/config/wireless ã®å
容ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid "Tracking IP"
+msgstr "追跡 IP"
+
+msgid "Tracking hostname or IP address"
+msgstr "追跡ãã¹ãåã¾ã㯠IP ã¢ãã¬ã¹"
+
+msgid "Tracking method"
+msgstr "追跡æ¹å¼"
+
+msgid "Tracking reliability"
+msgstr "追跡ã®ä¿¡é ¼æ§"
+
+msgid "Traffic Rules"
+msgstr "ãã©ãã£ã㯠ã«ã¼ã«"
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+"以åãã®ã«ã¼ã«ã«ãããããåãã¢ã¯ã»ã¹å
IP ã¢ãã¬ã¹ããã®ãã©ãã£ãã¯ããå"
+"度 Sticky å¶éæéå
ã«ãããããå ´åã«ã¯ãåã WAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ã使ç¨ãã"
+"ã¾ãã"
+
+msgid "Troubleshooting"
+msgstr "ãã©ãã«ã·ã¥ã¼ãã£ã³ã°"
+
+msgid "Troubleshooting Data"
+msgstr "ãã©ãã«ã·ã¥ã¼ãã£ã³ã° ãã¼ã¿"
+
+msgid ""
+"Use the IP address of this interface as source IP address for traffic "
+"initiated by the router itself"
+msgstr ""
+"ã«ã¼ã¿ã¼èªèº«ã«ãã£ã¦çºçãããã©ãã£ãã¯ã®ã¢ã¯ã»ã¹å
IP ã¢ãã¬ã¹ã¨ãã¦ããã®"
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ã® IP ã¢ãã¬ã¹ã使ç¨ããã¾ãã"
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr "ãããã³ã«ã®èª¬æã«ã¤ãã¦ã¯ã /etc/protocols ã®å
容ã確èªãã¦ãã ããã"
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr ""
+"è¦å: %d åã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ããæ大åæ°ã® 250å ãè¶
ãã¦è¨å®ããã¦ãã¾ãï¼"
+
+msgid ""
+"WARNING: Some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+"è¦å: è¨å®ã誤ã£ã¦ãããããããã¯å®å
¨ã«è¨å®ããã¦ããªãã¤ã³ã¿ã¼ãã§ã¼ã¹ãã"
+"ãã¾ãï¼"
+
+msgid ""
+"WARNING: Some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr ""
+"è¦å: 追跡 IP ã¢ãã¬ã¹ã®åæ°ãã大ããè¿½è·¡ä¿¡é ¼æ§ã®å¤ãè¨å®ãããã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ãããã¾ãï¼"
+
+msgid ""
+"WARNING: Some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr ""
+"è¦å: /etc/config/network ã§ãéè¤ããã¡ããªãã¯ãè¨å®ããã¦ããã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ãããã¾ãï¼"
+
+msgid ""
+"WARNING: Some interfaces have no default route in the main routing table!"
+msgstr ""
+"è¦å: ã¡ã¤ã³ã®ã«ã¼ãã£ã³ã° ãã¼ãã«ã§ãããã©ã«ã ã«ã¼ããè¨å®ããã¦ããªãã¤"
+"ã³ã¿ã¼ãã§ã¼ã¹ãããã¾ãï¼"
+
+msgid ""
+"WARNING: Some interfaces have no metric configured in /etc/config/network!"
+msgstr ""
+"è¦å: /etc/config/network ã§ãã¡ããªãã¯ãè¨å®ããã¦ããªãã¤ã³ã¿ã¼ãã§ã¼ã¹ã"
+"ããã¾ãï¼"
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr ""
+"è¦å: æ大æåæ°ã® 15 æåãè¶
ããååãè¨å®ããã¦ããããªã·ã¼ãããã¾ãï¼"
+
+msgid ""
+"WARNING: Some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+"è¦å: ä¸é©åãªãããã³ã«ãæå®ããã¦ãããã¾ãã¯ä½ãæå®ããã¦ããªããã¼ãã"
+"è¨å®ãããã«ã¼ã«ãããã¾ãï¼ãããã³ã«ãæå®ãç´ãã¦ãã ããï¼"
+
+msgid ""
+"WARNING: This and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr ""
+"è¦å: ããã¨ä»ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã§éè¤ããã¡ããªãã¯ã /etc/config/network ã«"
+"è¨å®ããã¦ãã¾ãï¼"
+
+msgid ""
+"WARNING: This interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr ""
+"è¦å: ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ã追跡 IP ã¢ãã¬ã¹ã®åæ°ãã大ããè¿½è·¡ä¿¡é ¼æ§ã®å¤"
+"ãè¨å®ããã¦ãã¾ãï¼"
+
+msgid "WARNING: This interface has no default route in the main routing table!"
+msgstr ""
+"è¦å: ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ãã¡ã¤ã³ã®ã«ã¼ãã£ã³ã° ãã¼ãã«ã«ããã©ã«ã ã«ã¼"
+"ããè¨å®ããã¦ãã¾ããï¼"
+
+msgid ""
+"WARNING: This interface has no metric configured in /etc/config/network!"
+msgstr ""
+"è¦å: ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ã /etc/config/network ã§ã¡ããªãã¯ãè¨å®ããã¦ã"
+"ã¾ããï¼"
+
+msgid ""
+"WARNING: This interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+"è¦å: ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ /etc/config/network ã§è¨å®ã誤ã£ã¦ããããããã"
+"ã¯å®å
¨ã«è¨å®ããã¦ãã¾ããï¼"
+
+msgid ""
+"WARNING: This policy's name is %d characters exceeding the maximum of 15!"
+msgstr ""
+"è¦å: ãã®ããªã·ã¼ã®ååã¯ãæ大æåæ° 15 æåãè¶
ãã %d æåãè¨å®ããã¦ã"
+"ã¾ãï¼"
+
+msgid ""
+"WARNING: This rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+"è¦å: ãã®ã«ã¼ã«ã¯ä¸é©åãªãããã³ã«ãæå®ããã¦ããããã¾ãã¯ä½ãæå®ããã¦"
+"ãã¾ããï¼ãããã³ã«ãæå®ãç´ãã¦ãã ããï¼"
+
+msgid "Waiting for MWAN to %s..."
+msgstr "MWAN ã® %s ãå¾
ã£ã¦ãã¾ã..."
+
+msgid "Waiting for diagnostic results..."
+msgstr "診æçµæãå¾
ã£ã¦ãã¾ã..."
+
+msgid "Weight"
+msgstr "ã¦ã¨ã¤ã"
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr ""
+"ããªã·ã¼ã®å
¨ã¡ã³ãã¼ããªãã©ã¤ã³ã®å ´åãåè´ãããã©ãã£ãã¯ã«å¯¾ãã¦ãã®ãµã"
+"ã¾ãã使ç¨ããã¾ãã"
+
+msgid "Wireless Config"
+msgstr "ç¡ç·è¨å®"
+
+msgid "Yes"
+msgstr "ã¯ã"
+
+msgid "always"
+msgstr "always"
+
+msgid "blackhole (drop)"
+msgstr "blackhole (drop)"
+
+msgid "default (use main routing table)"
+msgstr "ããã©ã«ãï¼ã¡ã¤ã³ã®ã«ã¼ãã£ã³ã° ãã¼ãã«ã使ç¨ï¼"
+
+msgid "ifdown"
+msgstr "ifdown"
+
+msgid "ifup"
+msgstr "ifup"
+
+msgid "never"
+msgstr "never"
+
+msgid "restart"
+msgstr "åèµ·å"
+
+msgid "start"
+msgstr "èµ·å"
+
+msgid "stop"
+msgstr "åæ¢"
+
+msgid "unreachable (reject)"
+msgstr "unreachable (reject)"
diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot
new file mode 100644
index 0000000000..ed9fdb131d
--- /dev/null
+++ b/applications/luci-app-mwan3/po/templates/mwan3.pot
@@ -0,0 +1,562 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "%d hour"
+msgstr ""
+
+msgid "%d minute"
+msgstr ""
+
+msgid "%d minutes"
+msgstr ""
+
+msgid "%d second"
+msgstr ""
+
+msgid "%d seconds"
+msgstr ""
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Check IP rules"
+msgstr ""
+
+msgid "Check routing table"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Currently Configured Interfaces"
+msgstr ""
+
+msgid "Currently Configured Members"
+msgstr ""
+
+msgid "Currently Configured Policies"
+msgstr ""
+
+msgid "Destination address"
+msgstr ""
+
+msgid "Destination port"
+msgstr ""
+
+msgid "Detailed Status"
+msgstr ""
+
+msgid "Diagnostic Results"
+msgstr ""
+
+msgid "Diagnostics"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Enter value in hex, starting with 0x
"
+msgstr ""
+
+msgid "Error collecting troubleshooting information"
+msgstr ""
+
+msgid "Errors"
+msgstr ""
+
+msgid "Expect interface state on up event"
+msgstr ""
+
+msgid "Failure interval"
+msgstr ""
+
+msgid "Firewall mask"
+msgstr ""
+
+msgid "Flush conntrack table"
+msgstr ""
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr ""
+
+msgid "Globals"
+msgstr ""
+
+msgid "Globals mwan3 options"
+msgstr ""
+
+msgid "Hotplug Script"
+msgstr ""
+
+msgid "Hotplug ifdown"
+msgstr ""
+
+msgid "Hotplug ifup"
+msgstr ""
+
+msgid "IPset"
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "Initial state"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+msgid "Interface Status"
+msgstr ""
+
+msgid "Interface down"
+msgstr ""
+
+msgid "Interface up"
+msgstr ""
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr ""
+
+msgid "Interfaces"
+msgstr ""
+
+msgid "Internet Protocol"
+msgstr ""
+
+msgid "Keep failure interval"
+msgstr ""
+
+msgid "Keep ping failure interval during failure state"
+msgstr ""
+
+msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :"
+msgstr ""
+
+msgid "Last resort"
+msgstr ""
+
+msgid "Load Balancing"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Local source interface"
+msgstr ""
+
+msgid "MWAN Config"
+msgstr ""
+
+msgid "MWAN Detailed Status"
+msgstr ""
+
+msgid "MWAN Interface Configuration"
+msgstr ""
+
+msgid "MWAN Interface Configuration - %s"
+msgstr ""
+
+msgid "MWAN Interface Diagnostics"
+msgstr ""
+
+msgid "MWAN Interface Live Status"
+msgstr ""
+
+msgid "MWAN Interface Systemlog"
+msgstr ""
+
+msgid "MWAN Member Configuration"
+msgstr ""
+
+msgid "MWAN Member Configuration - %s"
+msgstr ""
+
+msgid "MWAN Policy Configuration"
+msgstr ""
+
+msgid "MWAN Policy Configuration - %s"
+msgstr ""
+
+msgid "MWAN Rule Configuration"
+msgstr ""
+
+msgid "MWAN Rule Configuration - %s"
+msgstr ""
+
+msgid "MWAN Service Control"
+msgstr ""
+
+msgid ""
+"MWAN supports up to 250 physical and/or logical interfaces MWAN "
+"requires that all interfaces have a unique metric configured in /etc/config/"
+"network Names must match the interface name found in /etc/config/"
+"network (see advanced tab) Names may contain characters A-Z, a-z, 0-9, "
+"_ and no spaces Interfaces may not share the same name as configured "
+"members, policies or rules"
+msgstr ""
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+
+msgid "Member"
+msgstr ""
+
+msgid "Member used"
+msgstr ""
+
+msgid "Members"
+msgstr ""
+
+msgid ""
+"Members are profiles attaching a metric and weight to an MWAN interface Names may contain characters A-Z, a-z, 0-9, _ and no spaces Members "
+"may not share the same name as configured interfaces, policies or rules"
+msgstr ""
+
+msgid "Members assigned"
+msgstr ""
+
+msgid "Metric"
+msgstr ""
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+
+msgid "Network Config"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "No MWAN interfaces found"
+msgstr ""
+
+msgid "No MWAN systemlog history found"
+msgstr ""
+
+msgid "No detailed status information available"
+msgstr ""
+
+msgid "No diagnostic results returned"
+msgstr ""
+
+msgid "No protocol specified"
+msgstr ""
+
+msgid "Offline"
+msgstr ""
+
+msgid "Online"
+msgstr ""
+
+msgid "Online (tracking active)"
+msgstr ""
+
+msgid "Online (tracking off)"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Ping count"
+msgstr ""
+
+msgid "Ping default gateway"
+msgstr ""
+
+msgid "Ping interval"
+msgstr ""
+
+msgid "Ping interval during failure detection"
+msgstr ""
+
+msgid "Ping interval during failure recovering"
+msgstr ""
+
+msgid "Ping size"
+msgstr ""
+
+msgid "Ping timeout"
+msgstr ""
+
+msgid "Ping tracking IP"
+msgstr ""
+
+msgid "Policies"
+msgstr ""
+
+msgid ""
+"Policies are profiles grouping one or more members controlling how MWAN "
+"distributes traffic Member interfaces with lower metrics are used "
+"first. Interfaces with the same metric load-balance Load-balanced "
+"member interfaces distribute more traffic out those with higher weights Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be "
+"15 characters or less Policies may not share the same name as "
+"configured interfaces, members or rules"
+msgstr ""
+
+msgid "Policy"
+msgstr ""
+
+msgid "Policy assigned"
+msgstr ""
+
+msgid "Protocol"
+msgstr ""
+
+msgid "Recovery interval"
+msgstr ""
+
+msgid "Restart MWAN"
+msgstr ""
+
+msgid "Rule"
+msgstr ""
+
+msgid "Rules"
+msgstr ""
+
+msgid ""
+"Rules specify which traffic will use a particular MWAN policy based on IP "
+"address, port or protocol Rules are matched from top to bottom. Rules "
+"below a matching rule are ignored. Traffic not matching any rule is routed "
+"using the main routing table Traffic destined for known (other than "
+"default) networks is handled by the main routing table. Traffic matching a "
+"rule, but all WAN interfaces for that policy are down will be blackholed Names may contain characters A-Z, a-z, 0-9, _ and no spaces Rules may "
+"not share the same name as configured interfaces, members or policies"
+msgstr ""
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr ""
+
+msgid "Source address"
+msgstr ""
+
+msgid "Source port"
+msgstr ""
+
+msgid "Start MWAN"
+msgstr ""
+
+msgid "Sticky"
+msgstr ""
+
+msgid "Sticky timeout"
+msgstr ""
+
+msgid "Stop MWAN"
+msgstr ""
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr ""
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr ""
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr ""
+
+msgid ""
+"This hostname or IP address will be pinged to determine if the link is up or "
+"down. Leave blank to assume interface is always online"
+msgstr ""
+
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\". The file is also preserved during sysupgrade. Notes: This "
+"file is interpreted as a shell script. The first line of the script "
+"must be "#!/bin/sh" without quotes. Lines beginning with # are "
+"comments and are not executed. Put your custom mwan3 action here, they "
+"will be executed with each netifd hotplug interface event on "
+"interfaces for which mwan3 is enabled. There are three main "
+"environment variables that are passed to this script. $ACTION "
+"Either \"ifup\" or \"ifdown\" $INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\") $DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\") "
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr ""
+
+msgid "Tracking IP"
+msgstr ""
+
+msgid "Tracking hostname or IP address"
+msgstr ""
+
+msgid "Tracking method"
+msgstr ""
+
+msgid "Tracking reliability"
+msgstr ""
+
+msgid "Traffic Rules"
+msgstr ""
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+
+msgid "Troubleshooting"
+msgstr ""
+
+msgid "Troubleshooting Data"
+msgstr ""
+
+msgid ""
+"Use the IP address of this interface as source IP address for traffic "
+"initiated by the router itself"
+msgstr ""
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr ""
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr ""
+
+msgid ""
+"WARNING: Some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: Some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr ""
+
+msgid ""
+"WARNING: Some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr ""
+
+msgid ""
+"WARNING: Some interfaces have no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: Some interfaces have no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr ""
+
+msgid ""
+"WARNING: Some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid ""
+"WARNING: This and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: This interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr ""
+
+msgid "WARNING: This interface has no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: This interface has no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: This interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: This policy's name is %d characters exceeding the maximum of 15!"
+msgstr ""
+
+msgid ""
+"WARNING: This rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid "Waiting for MWAN to %s..."
+msgstr ""
+
+msgid "Waiting for diagnostic results..."
+msgstr ""
+
+msgid "Weight"
+msgstr ""
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr ""
+
+msgid "Wireless Config"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "always"
+msgstr ""
+
+msgid "blackhole (drop)"
+msgstr ""
+
+msgid "default (use main routing table)"
+msgstr ""
+
+msgid "ifdown"
+msgstr ""
+
+msgid "ifup"
+msgstr ""
+
+msgid "never"
+msgstr ""
+
+msgid "restart"
+msgstr ""
+
+msgid "start"
+msgstr ""
+
+msgid "stop"
+msgstr ""
+
+msgid "unreachable (reject)"
+msgstr ""
diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po
new file mode 100644
index 0000000000..d0b92a6df1
--- /dev/null
+++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po
@@ -0,0 +1,631 @@
+#
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-28 16:58+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+msgid "%d hour"
+msgstr "%d å°æ¶"
+
+msgid "%d minute"
+msgstr "%d åé"
+
+msgid "%d minutes"
+msgstr "%d åé"
+
+msgid "%d second"
+msgstr "%d ç§"
+
+msgid "%d seconds"
+msgstr "%d ç§"
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+"åå¼èå´ï¼1-100ãè¿ä¸ªè®¾ç½®é¡¹æå®äºå½å¤å°ä¸ª IP å°åè½å¤è¿éæ¶æ¥å£ä¼è¢«è®¤ä¸ºå¨çº¿"
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr "åå¼èå´ï¼1-100ãå¦æä¸å¡«åï¼é»è®¤å¼ä¸º 1"
+
+msgid "Advanced"
+msgstr "é«çº§"
+
+msgid "Check IP rules"
+msgstr "æ£æ¥ IP è§å"
+
+msgid "Check routing table"
+msgstr "æ£æ¥è·¯ç±è¡¨"
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éæ°æ®..."
+
+msgid "Configuration"
+msgstr "é
ç½®"
+
+msgid "Currently Configured Interfaces"
+msgstr "å½åé
ç½®çæ¥å£"
+
+msgid "Currently Configured Members"
+msgstr "å½åé
ç½®çæå"
+
+msgid "Currently Configured Policies"
+msgstr "å½åé
ç½®ççç¥"
+
+msgid "Destination address"
+msgstr "ç®æ å°å"
+
+msgid "Destination port"
+msgstr "ç®æ 端å£"
+
+msgid "Detailed Status"
+msgstr "详ç»ç¶æ"
+
+msgid "Diagnostic Results"
+msgstr "è¯æç»æ"
+
+msgid "Diagnostics"
+msgstr "è¯æ"
+
+msgid "Disabled"
+msgstr "å·²ç¦ç¨"
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr "å½ Ping æå次æ°è¾¾å°è¿ä¸ªæ°å¼åï¼å·²ç»è¢«è®¤ä¸ºç¦»çº¿çæ¥å£å°ä¼éæ°ä¸çº¿"
+
+msgid "Enabled"
+msgstr "å·²å¯ç¨"
+
+msgid "Enter value in hex, starting with 0x
"
+msgstr "è¾å
¥åå
è¿å¶å¼ï¼ä»¥ 0x
å¼å¤´"
+
+msgid "Error collecting troubleshooting information"
+msgstr "æ¶éæ
éæé¤ä¿¡æ¯æ¶åºé"
+
+msgid "Errors"
+msgstr "é误"
+
+msgid "Expect interface state on up event"
+msgstr "å¨ up äºä»¶åçæ¶çé¢ææ¥å£ç¶æ"
+
+msgid "Failure interval"
+msgstr "æ
éæ£æµé´é"
+
+msgid "Firewall mask"
+msgstr "é²ç«å¢æ©ç "
+
+msgid "Flush conntrack table"
+msgstr "å·æ°è¿æ¥è·è¸ªè¡¨"
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr "å¨æ¥å£äºä»¶è§¦åæ¶å·æ°å
¨å±é²ç«å¢è¿æ¥è·è¸ªè¡¨"
+
+msgid "Globals"
+msgstr "å
¨å±"
+
+msgid "Globals mwan3 options"
+msgstr "å
¨å± mwan3 é项"
+
+msgid "Hotplug Script"
+msgstr "Hotplug èæ¬"
+
+msgid "Hotplug ifdown"
+msgstr "Hotplug ifdown"
+
+msgid "Hotplug ifup"
+msgstr "Hotplug ifup"
+
+msgid "IPset"
+msgstr "IPset"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Initial state"
+msgstr "åå§ç¶æ"
+
+msgid "Interface"
+msgstr "æ¥å£"
+
+msgid "Interface Status"
+msgstr "æ¥å£ç¶æ"
+
+msgid "Interface down"
+msgstr "æ¥å£ç¦»çº¿"
+
+msgid "Interface up"
+msgstr "æ¥å£å¨çº¿"
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr "å½ Ping 失败次æ°è¾¾å°è¿ä¸ªæ°å¼åï¼æ¥å£ä¼è¢«è®¤ä¸ºç¦»çº¿"
+
+msgid "Interfaces"
+msgstr "æ¥å£"
+
+msgid "Internet Protocol"
+msgstr "äºèç½åè®®"
+
+msgid "Keep failure interval"
+msgstr "ä¿ææ
éæ£æµé´é"
+
+msgid "Keep ping failure interval during failure state"
+msgstr "å¨æ
éç¶ææé´ä¿æç Ping æ
éæ£æµé´é"
+
+msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :"
+msgstr "æè¿ 50 æ¡ MWAN ç³»ç»æ¥å¿ï¼ææ°æ¡ç®æå¨é¡¶é¨ï¼"
+
+msgid "Last resort"
+msgstr "å¤ç¨æå"
+
+msgid "Load Balancing"
+msgstr "è´è½½åè¡¡"
+
+msgid "Loading"
+msgstr "è½½å
¥ä¸"
+
+msgid "Local source interface"
+msgstr "æ¬å°æºæ¥å£"
+
+msgid "MWAN Config"
+msgstr "MWAN é
ç½®æ件"
+
+msgid "MWAN Detailed Status"
+msgstr "MWAN 详ç»ç¶æ"
+
+msgid "MWAN Interface Configuration"
+msgstr "MWAN æ¥å£é
ç½®"
+
+msgid "MWAN Interface Configuration - %s"
+msgstr "MWAN æ¥å£é
ç½® - %s"
+
+msgid "MWAN Interface Diagnostics"
+msgstr "MWAN æ¥å£è¯æ"
+
+msgid "MWAN Interface Live Status"
+msgstr "MWAN æ¥å£å®æ¶ç¶æ"
+
+msgid "MWAN Interface Systemlog"
+msgstr "MWAN æ¥å£ç³»ç»æ¥å¿"
+
+msgid "MWAN Member Configuration"
+msgstr "MWAN æåé
ç½®"
+
+msgid "MWAN Member Configuration - %s"
+msgstr "MWAN æåé
ç½® - %s"
+
+msgid "MWAN Policy Configuration"
+msgstr "MWAN çç¥é
ç½®"
+
+msgid "MWAN Policy Configuration - %s"
+msgstr "MWAN çç¥é
ç½® - %s"
+
+msgid "MWAN Rule Configuration"
+msgstr "MWAN è§åé
ç½®"
+
+msgid "MWAN Rule Configuration - %s"
+msgstr "MWAN è§åé
ç½® - %s"
+
+msgid "MWAN Service Control"
+msgstr "MWAN æå¡æ§å¶"
+
+msgid ""
+"MWAN supports up to 250 physical and/or logical interfaces MWAN "
+"requires that all interfaces have a unique metric configured in /etc/config/"
+"network Names must match the interface name found in /etc/config/"
+"network (see advanced tab) Names may contain characters A-Z, a-z, 0-9, "
+"_ and no spaces Interfaces may not share the same name as configured "
+"members, policies or rules"
+msgstr ""
+"MWAN æ¯ææå¤ 250 个ç©çæé»è¾æ¥å£ã MWAN è¦æ±æææ¥å£å¿
é¡»å¨ /etc/"
+"config/network ä¸è®¾å®å¯ä¸çç½å
³è·ç¹ã å称å¿
é¡»ä¸ /etc/config/network ä¸"
+"çæ¥å£å称å¹é
ãï¼å¯æ¥çâé«çº§âé项å¡ï¼ å称å
许å
æ¬ A-Zãa-zã0-9ã_ ä½"
+"æ¯ä¸è½æç©ºæ ¼ã æ¥å£ä¸åºè¯¥ä¸æåãçç¥ãè§åä¸çä»»æä¸ä¸ªè®¾ç½®é¡¹ä½¿ç¨ç¸åç"
+"å称"
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+"å¯ä»¥è¾å
¥ä¸ä¸ªæå¤ä¸ªç«¯å£ï¼ä¾å¦â22âæè
â80,443âï¼æè
æ¯ä¸ä¸ªç«¯å£èå´ï¼ä¾"
+"å¦â1024:2048âï¼ä¸å«å¼å·"
+
+msgid "Member"
+msgstr "æå"
+
+msgid "Member used"
+msgstr "使ç¨çæå"
+
+msgid "Members"
+msgstr "æå"
+
+msgid ""
+"Members are profiles attaching a metric and weight to an MWAN interface Names may contain characters A-Z, a-z, 0-9, _ and no spaces Members "
+"may not share the same name as configured interfaces, policies or rules"
+msgstr ""
+"âæåâç¨æ¥è®¾ç½®æ¯ä¸ä¸ª MWAN æ¥å£çè·ç¹æ°ï¼å³æ¥å£ä¼å
级ï¼åæå æ¯éã å称"
+"å
许å
æ¬ A-Zã a-ã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ã æåä¸åºè¯¥ä¸æ¥å£ãçç¥ãè§å"
+"ä¸çä»»æä¸ä¸ªè®¾ç½®é¡¹ä½¿ç¨ç¸åçå称"
+
+msgid "Members assigned"
+msgstr "åé
çæå"
+
+msgid "Metric"
+msgstr "è·ç¹æ°"
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+"å¹é
IPset è§åå表å称ãéè¦å
é
ç½® /etc/dnsmasq.conf ä¸ç IPset è§åï¼ä¾"
+"å¦ï¼âipset=/youtube.com/youtubeâï¼"
+
+msgid "Network Config"
+msgstr "ç½ç»é
ç½®æ件"
+
+msgid "No"
+msgstr "å¦"
+
+msgid "No MWAN interfaces found"
+msgstr "没ææ¾å° MWAN æ¥å£"
+
+msgid "No MWAN systemlog history found"
+msgstr "没æå¨ç³»ç»æ¥å¿ä¸æ¾å° MWAN åå²ä¿¡æ¯"
+
+msgid "No detailed status information available"
+msgstr "没æç¶æ详ç»ä¿¡æ¯å¯ç¨"
+
+msgid "No diagnostic results returned"
+msgstr "没æè¿åè¯æç»æ"
+
+msgid "No protocol specified"
+msgstr "æªæå®åè®®"
+
+msgid "Offline"
+msgstr "离线"
+
+msgid "Online"
+msgstr "å¨çº¿"
+
+msgid "Online (tracking active)"
+msgstr "å¨çº¿ï¼è·è¸ªå¯ç¨ä¸ï¼"
+
+msgid "Online (tracking off)"
+msgstr "å¨çº¿ï¼è·è¸ªå·²å
³éï¼"
+
+msgid "Overview"
+msgstr "æ¦åµ"
+
+msgid "Ping count"
+msgstr "Ping 计æ°"
+
+msgid "Ping default gateway"
+msgstr "Ping é»è®¤ç½å
³"
+
+msgid "Ping interval"
+msgstr "Ping é´é"
+
+msgid "Ping interval during failure detection"
+msgstr "æ
éæ£æµæé´ç Ping é´é"
+
+msgid "Ping interval during failure recovering"
+msgstr "æ
éæ¢å¤æé´ç Ping é´é"
+
+msgid "Ping size"
+msgstr "Ping 大å°"
+
+msgid "Ping timeout"
+msgstr "Ping è¶
æ¶"
+
+msgid "Ping tracking IP"
+msgstr "Ping è·è¸ª IP"
+
+msgid "Policies"
+msgstr "çç¥"
+
+msgid ""
+"Policies are profiles grouping one or more members controlling how MWAN "
+"distributes traffic Member interfaces with lower metrics are used "
+"first. Interfaces with the same metric load-balance Load-balanced "
+"member interfaces distribute more traffic out those with higher weights Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be "
+"15 characters or less Policies may not share the same name as "
+"configured interfaces, members or rules"
+msgstr ""
+"âçç¥âææåè¿è¡åç»ï¼åè¯ MWAN å¦ä½åé
âè§åâä¸ä½¿ç¨è¿ä¸çç¥çæµé æ¥æ"
+"è¾ä½è·ç¹æ°çæåå°ä¼è¢«ä¼å
使ç¨ãæ¥æç¸åè·ç¹æ°çæåææµéè¿è¡è´è½½åè¡¡ã è¿è¡è´è½½åè¡¡çæåä¹é´æ¥æè¾é«æ¯éçæåå°ä¼è¢«åé
å°æ´å¤æµéã å称å
许"
+"å
æ¬A-Zãa-zã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ãå称åºè¯¥å¨ 15 个å符以å
çç¥ä¸åºè¯¥"
+"ä¸æ¥å£ãæåãè§åä¸çä»»æä¸ä¸ªè®¾ç½®é¡¹ä½¿ç¨ç¸åçå称"
+
+msgid "Policy"
+msgstr "çç¥"
+
+msgid "Policy assigned"
+msgstr "åé
ççç¥"
+
+msgid "Protocol"
+msgstr "éä¿¡åè®®"
+
+msgid "Recovery interval"
+msgstr "æ
éæ¢å¤é´é"
+
+msgid "Restart MWAN"
+msgstr "éå¯ MWAN"
+
+msgid "Rule"
+msgstr "è§å"
+
+msgid "Rules"
+msgstr "è§å"
+
+msgid ""
+"Rules specify which traffic will use a particular MWAN policy based on IP "
+"address, port or protocol Rules are matched from top to bottom. Rules "
+"below a matching rule are ignored. Traffic not matching any rule is routed "
+"using the main routing table Traffic destined for known (other than "
+"default) networks is handled by the main routing table. Traffic matching a "
+"rule, but all WAN interfaces for that policy are down will be blackholed Names may contain characters A-Z, a-z, 0-9, _ and no spaces Rules may "
+"not share the same name as configured interfaces, members or policies"
+msgstr ""
+"âè§åâåºäº IP å°åãåè®®ã端å£ææµéååå°æå®çâçç¥âä¸ã è§åæç
§ä»ä¸"
+"å°ä¸ç顺åºè¿è¡å¹é
ãé¤äºç¬¬ä¸æ¡è½å¤å¹é
ä¸æ¬¡éä¿¡çè§å以å¤ï¼å
¶å®è§åå°è¢«å¿½ç¥ã"
+"ä¸å¹é
ä»»ä½è§åçéä¿¡å°ä¼ç±ç³»ç»é»è®¤è·¯ç±è¡¨è¿è¡ã æ¥èªå·²ç¥çç½ç»ç转åæµé"
+"ç±ç³»ç»é»è®¤è·¯ç±è¡¨æ¥æï¼ç¶å MWAN ä»ä¸å¹é
åºç¸åºçæµéå¹¶è½¬ç§»å° MWAN èªå·±çè·¯ç±"
+"表ãä½æ¯ææ被ååå°ä¸ä¸ªæ æ³ä½¿ç¨ççç¥çæµéå°ä¼æ æ³æ£å¸¸è¿è¡è·¯ç±ã å称"
+"å
许å
æ¬A-Zãa-zã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ã è§åä¸åºè¯¥ä¸æ¥å£ãæåãçç¥ä¸"
+"çä»»æä¸ä¸ªè®¾ç½®é¡¹ä½¿ç¨ç¸åçå称"
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr "åä½ä¸ºç§ãæ¥åçå¼ï¼1-1000000ãç空å使ç¨é»è®¤å¼ 600 ç§"
+
+msgid "Source address"
+msgstr "æºå°å"
+
+msgid "Source port"
+msgstr "æºç«¯å£"
+
+msgid "Start MWAN"
+msgstr "å¯å¨ MWAN"
+
+msgid "Sticky"
+msgstr "ç²æ»æ¨¡å¼"
+
+msgid "Sticky timeout"
+msgstr "ç²æ»è¶
æ¶"
+
+msgid "Stop MWAN"
+msgstr "åæ¢ MWAN"
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr "æ¯æ CIDR è®°æ³ï¼ä¾å¦ï¼\"192.168.100.0/24\"ï¼ä¸å«å¼å·"
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr "å½åå·²é
ç½® %d 个æ¥å£ï¼æ大æ¯æ 250 个"
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr "è¿éæ¾ç¤ºäºè¿ä¸ªæ¥å£å¨ /etc/config/network ä¸é
ç½®çè·ç¹æ°"
+
+msgid ""
+"This hostname or IP address will be pinged to determine if the link is up or "
+"down. Leave blank to assume interface is always online"
+msgstr "éè¿ ping æ¤ä¸»æºæ IP å°åæ¥ç¡®å®é¾è·¯æ¯å¦å¨çº¿ãç空å认为æ¥å£å§ç»å¨çº¿"
+
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\". The file is also preserved during sysupgrade. Notes: This "
+"file is interpreted as a shell script. The first line of the script "
+"must be "#!/bin/sh" without quotes. Lines beginning with # are "
+"comments and are not executed. Put your custom mwan3 action here, they "
+"will be executed with each netifd hotplug interface event on "
+"interfaces for which mwan3 is enabled. There are three main "
+"environment variables that are passed to this script. $ACTION "
+"Either \"ifup\" or \"ifdown\" $INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\") $DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\") "
+msgstr ""
+"è¿éå
许æ¨ä¿®æ¹â/etc/mwan3.userâçå
容ã 该æä»¶å¨ sysupgrade æé´ä¹ä¼ä¿"
+"çã 注æï¼ è¯¥æ件ä¼ä½ä¸º shell èæ¬è§£éã èæ¬ç第ä¸è¡å¿
"
+"é¡»æ¯"#!/bin/sh"ï¼ä¸å¸¦å¼å·ã 以#å¼å¤´çè¡æ¯æ³¨éï¼ä¸ä¼æ§è¡ã "
+"å°æ¨çèªå®ä¹ mwan3 å¨ä½æ¾å¨è¿éï¼ä»ä»¬å° å¨å¯ç¨ mwan3 çæ¥å£ä¸ å¨ "
+"netifd hotplug æ¥å£äºä»¶æ¶æ§è¡ã æä¸ä¸ªä¸»è¦çç¯å¢åéä¼ éç»è¿ä¸ªè"
+"æ¬ã $ACTION âifupâæâifdownâ $INTERFACE å¯å¨æåæ¢çæ¥å£å"
+"ï¼ä¾å¦âwanâæâwwanâï¼ $DEVICE å¯å¨æåæ¢æ¥å£çç©ç设å¤åï¼ä¾"
+"å¦âeth0âæâwwan0âï¼ "
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr "è¿éå
许æ¨ä¿®æ¹ /etc/config/mwan3 çå
容"
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr "è¿éå
许æ¨ä¿®æ¹ /etc/config/network çå
容"
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr "è¿éå
许æ¨ä¿®æ¹ /etc/config/wireless çå
容"
+
+msgid "Tracking IP"
+msgstr "è·è¸ªç IP"
+
+msgid "Tracking hostname or IP address"
+msgstr "è·è¸ªç主æºæ IP å°å"
+
+msgid "Tracking method"
+msgstr "è·è¸ªæ¹å¼"
+
+msgid "Tracking reliability"
+msgstr "è·è¸ªå¯é æ§"
+
+msgid "Traffic Rules"
+msgstr "æµéè§å"
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+"æ¥èªç¸åæº IP çæµéï¼å¦æå·²ç»å¹é
è¿æ¤è§å并ä¸å¨ç²æ»è¶
æ¶æ¶é´å
ï¼å°ä¼ä½¿ç¨ç¸å"
+"ç WAN æ¥å£"
+
+msgid "Troubleshooting"
+msgstr "æ
éæé¤"
+
+msgid "Troubleshooting Data"
+msgstr "æ
éæé¤æ°æ®"
+
+msgid ""
+"Use the IP address of this interface as source IP address for traffic "
+"initiated by the router itself"
+msgstr "使ç¨è¯¥æ¥å£ç IP å°åä½ä¸ºè·¯ç±å¨æ¬èº«åèµ·çæµéçæº IP å°å"
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr "请æ¥ç /etc/protocols è·åå¯éå议详æ
"
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr "è¦åï¼å·²é
ç½® %d 个æ¥å£ï¼è¶
è¿æå¤§å¼ 250ï¼"
+
+msgid ""
+"WARNING: Some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr "è¦åï¼æäºæ¥å£é
ç½®ä¸æ£ç¡®ææªé
ç½®å° /etc/config/networkï¼"
+
+msgid ""
+"WARNING: Some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr "è¦åï¼æäºæ¥å£çè·è¸ªå¯é æ§è¦æ±å¤§äºäºè·è¸ª IP å°åæ»æ°ï¼"
+
+msgid ""
+"WARNING: Some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr "è¦åï¼æäºæ¥å£å¨ /etc/config/network ä¸é
ç½®äºç¸åçè·ç¹æ°ï¼"
+
+msgid ""
+"WARNING: Some interfaces have no default route in the main routing table!"
+msgstr "è¦åï¼æäºæ¥å£å¨ä¸»è·¯ç±è¡¨ä¸æ²¡æé»è®¤è·¯ç±ï¼"
+
+msgid ""
+"WARNING: Some interfaces have no metric configured in /etc/config/network!"
+msgstr "è¦åï¼æäºæ¥å£æ²¡æå¨ /etc/config/network ä¸é
ç½®è·ç¹æ°ï¼"
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr "è¦åï¼æäºçç¥çå称è¶
è¿äº 15 个å符ï¼"
+
+msgid ""
+"WARNING: Some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+"è¦åï¼æäºè§åæå®äºç«¯å£å´æ²¡æé
ç½®æé
ç½®äºä¸æ£ç¡®çåè®®ï¼è¯·éæ°æå®åè®®ï¼"
+
+msgid ""
+"WARNING: This and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr "è¦åï¼æ¤æ¥å£åå
¶ä»æ¥å£å¨ /etc/config/network ä¸é
ç½®äºç¸åçè·ç¹æ°ï¼"
+
+msgid ""
+"WARNING: This interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr "è¦åï¼æ¤æ¥å£çè·è¸ªå¯é æ§è¦æ±å¤§äºäºè·è¸ª IP å°åæ»æ°ï¼"
+
+msgid "WARNING: This interface has no default route in the main routing table!"
+msgstr "è¦åï¼æ¤æ¥å£å¨ä¸»è·¯ç±è¡¨ä¸æ²¡æé»è®¤è·¯ç±ï¼"
+
+msgid ""
+"WARNING: This interface has no metric configured in /etc/config/network!"
+msgstr "è¦åï¼æ¤æ¥å£æ²¡æå¨ /etc/config/network ä¸é
ç½®è·ç¹æ°ï¼"
+
+msgid ""
+"WARNING: This interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr "è¦åï¼æ¤æ¥å£é
ç½®ä¸æ£ç¡®ææªé
ç½®å° /etc/config/networkï¼"
+
+msgid ""
+"WARNING: This policy's name is %d characters exceeding the maximum of 15!"
+msgstr "è¦åï¼æ¤çç¥çå称å
·æ %d 个å符ï¼è¶
è¿äº 15 个å符ï¼"
+
+msgid ""
+"WARNING: This rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr "è¦åï¼æ¤è§å没æé
ç½®æé
ç½®äºä¸æ£ç¡®çåè®®ï¼è¯·éæ°æå®åè®®ï¼"
+
+msgid "Waiting for MWAN to %s..."
+msgstr "çå¾
MWAN %s..."
+
+msgid "Waiting for diagnostic results..."
+msgstr "çå¾
è¯æç»æ..."
+
+msgid "Weight"
+msgstr "æ¯é"
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr "å½ææçç¥æåé½æ æ³ä½¿ç¨çæ¶åï¼å¯¹ä½¿ç¨è¯¥çç¥çæµé使ç¨è¿ä¸ªæä½"
+
+msgid "Wireless Config"
+msgstr "æ 线é
ç½®"
+
+msgid "Yes"
+msgstr "æ¯"
+
+msgid "always"
+msgstr "æ»æ¯"
+
+msgid "blackhole (drop)"
+msgstr "é»æ´ï¼ä¸¢å¼ï¼"
+
+msgid "default (use main routing table)"
+msgstr "é»è®¤ï¼ä½¿ç¨ä¸»è·¯ç±è¡¨ï¼"
+
+msgid "ifdown"
+msgstr "ifdown"
+
+msgid "ifup"
+msgstr "ifup"
+
+msgid "never"
+msgstr "ä»ä¸"
+
+msgid "restart"
+msgstr "éå¯"
+
+msgid "start"
+msgstr "å¯å¨"
+
+msgid "stop"
+msgstr "åæ¢"
+
+msgid "unreachable (reject)"
+msgstr "ä¸å¯è¾¾ï¼æç»ï¼"
+
+#~ msgid "Restore default hotplug script"
+#~ msgstr "æ¢å¤é»è®¤ç hotplug èæ¬"
+
+#~ msgid "Restore..."
+#~ msgstr "æ¢å¤..."
+
+#~ msgid ""
+#~ "This section allows you to modify the contents of /etc/hotplug.d/iface/16-"
+#~ "mwancustom This is useful for running system commands and/or scripts "
+#~ "based on interface ifup or ifdown hotplug events Notes: The first line of the script must be "#!/bin/sh" without "
+#~ "quotes Lines beginning with # are comments and are not executed Available variables: $ACTION is the hotplug event (ifup, "
+#~ "ifdown) $INTERFACE is the interface name (wan1, wan2, etc.) "
+#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"
+#~ msgstr ""
+#~ "è¿éå
许æ¨ä¿®æ¹ /etc/hotplug.d/iface/16-mwancustom çå
容 è¿å¯ä»¥å¨æ¥"
+#~ "å£ ifup æ ifdown Hotplug äºä»¶æ¶è¿è¡ç³»ç»å½ä»¤æèæ¬ æ³¨æ: "
+#~ "èæ¬ç第ä¸è¡å¿
é¡»æ¯ "#!/bin/sh" ä¸å«å¼å· 以ï¼å¼å¤´çè¡æ¯æ³¨éï¼"
+#~ "ä¸ä¼æ§è¡ å¯ç¨åé: $ACTION æ¯ Hotplug äºä»¶ï¼ifup, ifdownï¼"
+#~ " $INTERFACE æ¯æ¥å£å称ï¼wan1ãwan2 çï¼ $DEVICE æ¯è¿æ¥å°æ¥å£ç设"
+#~ "å¤å称 ï¼eth0.1ãeth1 çï¼"
diff --git a/applications/luci-app-mwan3/po/zh-tw/mwan3.po b/applications/luci-app-mwan3/po/zh-tw/mwan3.po
new file mode 100644
index 0000000000..04711ac3d7
--- /dev/null
+++ b/applications/luci-app-mwan3/po/zh-tw/mwan3.po
@@ -0,0 +1,630 @@
+#
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-28 16:58+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+msgid "%d hour"
+msgstr "%d å°æ"
+
+msgid "%d minute"
+msgstr "%d åé"
+
+msgid "%d minutes"
+msgstr "%d åé"
+
+msgid "%d second"
+msgstr "%d ç§"
+
+msgid "%d seconds"
+msgstr "%d ç§"
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+"åå¼ç¯åï¼1-100ãéåè¨å®é
æå®äºç¶å¤å°å IP ä½åè½å¤ é£éæä»é¢æ被èªçºç·ä¸"
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr "åå¼ç¯åï¼1-100ãå¦æä¸å¡«å¯«ï¼é è¨å¼çº 1"
+
+msgid "Advanced"
+msgstr "é«é"
+
+msgid "Check IP rules"
+msgstr "æª¢æ¥ IP è¦å"
+
+msgid "Check routing table"
+msgstr "檢æ¥è·¯ç±è¡¨"
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éè³æ..."
+
+msgid "Configuration"
+msgstr "é
ç½®"
+
+msgid "Currently Configured Interfaces"
+msgstr "ç¶åé
ç½®çä»é¢"
+
+msgid "Currently Configured Members"
+msgstr "ç¶åé
ç½®çæå¡"
+
+msgid "Currently Configured Policies"
+msgstr "ç¶åé
ç½®ççç¥"
+
+msgid "Destination address"
+msgstr "ç®æ¨ä½å"
+
+msgid "Destination port"
+msgstr "ç®æ¨å "
+
+msgid "Detailed Status"
+msgstr "詳細çæ
"
+
+msgid "Diagnostic Results"
+msgstr "診æ·çµæ"
+
+msgid "Diagnostics"
+msgstr "診æ·"
+
+msgid "Disabled"
+msgstr "å·²ç¦ç¨"
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr "ç¶ Ping æå次æ¸éå°éåæ¸å¼å¾ï¼å·²ç¶è¢«èªçºé¢ç·çä»é¢å°æéæ°ä¸ç·"
+
+msgid "Enabled"
+msgstr "å·²åç¨"
+
+msgid "Enter value in hex, starting with 0x
"
+msgstr "輸å
¥åå
é²ä½å¶å¼ï¼ä»¥ 0x
éé "
+
+msgid "Error collecting troubleshooting information"
+msgstr "æ¶éæ
éæé¤è³è¨æåºé¯"
+
+msgid "Errors"
+msgstr "é¯èª¤"
+
+msgid "Expect interface state on up event"
+msgstr "å¨ up äºä»¶ç¼çæçé æä»é¢çæ
"
+
+msgid "Failure interval"
+msgstr "æ
é檢測éé"
+
+msgid "Firewall mask"
+msgstr "é²ç«çæ©ç¢¼"
+
+msgid "Flush conntrack table"
+msgstr "éæ°æ´çé£ç·è·è¹¤è¡¨"
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr "å¨ä»é¢äºä»¶è§¸ç¼æéæ°æ´çå
¨åæ§é²ç«çé£ç·è·è¹¤è¡¨"
+
+msgid "Globals"
+msgstr "å
¨åæ§"
+
+msgid "Globals mwan3 options"
+msgstr "å
¨åæ§ mwan3 é¸é
"
+
+msgid "Hotplug Script"
+msgstr "Hotplug æ令碼"
+
+msgid "Hotplug ifdown"
+msgstr "Hotplug ifdown"
+
+msgid "Hotplug ifup"
+msgstr "Hotplug ifup"
+
+msgid "IPset"
+msgstr "IPset"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Initial state"
+msgstr "åå§çæ
"
+
+msgid "Interface"
+msgstr "ä»é¢"
+
+msgid "Interface Status"
+msgstr "ä»é¢çæ
"
+
+msgid "Interface down"
+msgstr "ä»é¢é¢ç·"
+
+msgid "Interface up"
+msgstr "ä»é¢ç·ä¸"
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr "ç¶ Ping 失æ次æ¸éå°éåæ¸å¼å¾ï¼ä»é¢æ被èªçºé¢ç·"
+
+msgid "Interfaces"
+msgstr "ä»é¢"
+
+msgid "Internet Protocol"
+msgstr "網é網路åè°"
+
+msgid "Keep failure interval"
+msgstr "ä¿ææ
é檢測éé"
+
+msgid "Keep ping failure interval during failure state"
+msgstr "å¨æ
éçæ
æéä¿æç Ping æ
é檢測éé"
+
+msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :"
+msgstr "æè¿ 50 æ¢ MWAN 系統æ¥èªï¼ææ°æ¢ç®æå¨é é¨ï¼"
+
+msgid "Last resort"
+msgstr "åç¨æå¡"
+
+msgid "Load Balancing"
+msgstr "è² è¼åè¡¡"
+
+msgid "Loading"
+msgstr "è¼å
¥ä¸"
+
+msgid "Local source interface"
+msgstr "æ¬å°æºä»é¢"
+
+msgid "MWAN Config"
+msgstr "MWAN é
ç½®æªæ¡"
+
+msgid "MWAN Detailed Status"
+msgstr "MWAN 詳細çæ
"
+
+msgid "MWAN Interface Configuration"
+msgstr "MWAN ä»é¢é
ç½®"
+
+msgid "MWAN Interface Configuration - %s"
+msgstr "MWAN ä»é¢é
ç½® - %s"
+
+msgid "MWAN Interface Diagnostics"
+msgstr "MWAN ä»é¢è¨ºæ·"
+
+msgid "MWAN Interface Live Status"
+msgstr "MWAN ä»é¢å¯¦æçæ
"
+
+msgid "MWAN Interface Systemlog"
+msgstr "MWAN ä»é¢ç³»çµ±æ¥èª"
+
+msgid "MWAN Member Configuration"
+msgstr "MWAN æå¡é
ç½®"
+
+msgid "MWAN Member Configuration - %s"
+msgstr "MWAN æå¡é
ç½® - %s"
+
+msgid "MWAN Policy Configuration"
+msgstr "MWAN çç¥é
ç½®"
+
+msgid "MWAN Policy Configuration - %s"
+msgstr "MWAN çç¥é
ç½® - %s"
+
+msgid "MWAN Rule Configuration"
+msgstr "MWAN è¦åé
ç½®"
+
+msgid "MWAN Rule Configuration - %s"
+msgstr "MWAN è¦åé
ç½® - %s"
+
+msgid "MWAN Service Control"
+msgstr "MWAN æåæ§å¶"
+
+msgid ""
+"MWAN supports up to 250 physical and/or logical interfaces MWAN "
+"requires that all interfaces have a unique metric configured in /etc/config/"
+"network Names must match the interface name found in /etc/config/"
+"network (see advanced tab) Names may contain characters A-Z, a-z, 0-9, "
+"_ and no spaces Interfaces may not share the same name as configured "
+"members, policies or rules"
+msgstr ""
+"MWAN æ¯æ´æå¤ 250 åç©çæé輯ä»é¢ã MWAN è¦æ±ææä»é¢å¿
é å¨ /etc/"
+"config/network ä¸è¨å®å¯ä¸çééå¨èºé»ã å稱å¿
é è /etc/config/network "
+"ä¸çä»é¢å稱å¹é
ãï¼å¯æª¢è¦âé«éâé¸é
å¡ï¼ å稱å
許å
æ¬ A-Zãa-zã0-9ã_ "
+"ä½æ¯ä¸è½æç©ºæ ¼ã ä»é¢ä¸æ該èæå¡ãçç¥ãè¦åä¸çä»»æä¸åè¨å®é
使ç¨ç¸å"
+"çå稱"
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+"å¯ä»¥è¼¸å
¥ä¸åæå¤åå ï¼ä¾å¦â22âæè
â80,443âï¼æè
æ¯ä¸åå ç¯åï¼ä¾"
+"å¦â1024:2048âï¼ä¸å«å¼è"
+
+msgid "Member"
+msgstr "æå¡"
+
+msgid "Member used"
+msgstr "使ç¨çæå¡"
+
+msgid "Members"
+msgstr "æå¡"
+
+msgid ""
+"Members are profiles attaching a metric and weight to an MWAN interface Names may contain characters A-Z, a-z, 0-9, _ and no spaces Members "
+"may not share the same name as configured interfaces, policies or rules"
+msgstr ""
+"âæå¡âç¨ä¾è¨å®æ¯ä¸å MWAN ä»é¢çèºé»æ¸ï¼å³ä»é¢åªå
é åºï¼åæä½æ¯éã å"
+"稱å
許å
æ¬ A-Zã a-ã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ã æå¡ä¸æ該èä»é¢ãçç¥ãè¦"
+"åä¸çä»»æä¸åè¨å®é
使ç¨ç¸åçå稱"
+
+msgid "Members assigned"
+msgstr "åé
çæå¡"
+
+msgid "Metric"
+msgstr "èºé»æ¸"
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+"å¹é
IPset è¦åå表å稱ãéè¦å
é
ç½® /etc/dnsmasq.conf ä¸ç IPset è¦åï¼ä¾"
+"å¦ï¼âipset=/youtube.com/youtubeâï¼"
+
+msgid "Network Config"
+msgstr "網路é
ç½®æªæ¡"
+
+msgid "No"
+msgstr "å¦"
+
+msgid "No MWAN interfaces found"
+msgstr "æ²ææ¾å° MWAN ä»é¢"
+
+msgid "No MWAN systemlog history found"
+msgstr "æ²æå¨ç³»çµ±æ¥èªä¸æ¾å° MWAN æ·å²è³è¨"
+
+msgid "No detailed status information available"
+msgstr "æ²æçæ
詳細è³è¨å¯ç¨"
+
+msgid "No diagnostic results returned"
+msgstr "æ²æè¿å診æ·çµæ"
+
+msgid "No protocol specified"
+msgstr "æªæå®åè°"
+
+msgid "Offline"
+msgstr "é¢ç·"
+
+msgid "Online"
+msgstr "ç·ä¸"
+
+msgid "Online (tracking active)"
+msgstr "ç·ä¸ï¼è·è¹¤åç¨ä¸ï¼"
+
+msgid "Online (tracking off)"
+msgstr "ç·ä¸ï¼è·è¹¤å·²ééï¼"
+
+msgid "Overview"
+msgstr "æ¦æ³"
+
+msgid "Ping count"
+msgstr "Ping è¨æ¸"
+
+msgid "Ping default gateway"
+msgstr "Ping é è¨ééå¨"
+
+msgid "Ping interval"
+msgstr "Ping éé"
+
+msgid "Ping interval during failure detection"
+msgstr "æ
é檢測æéç Ping éé"
+
+msgid "Ping interval during failure recovering"
+msgstr "æ
éæ¢å¾©æéç Ping éé"
+
+msgid "Ping size"
+msgstr "Ping 大å°"
+
+msgid "Ping timeout"
+msgstr "Ping è¶
æ"
+
+msgid "Ping tracking IP"
+msgstr "Ping è·è¹¤ IP"
+
+msgid "Policies"
+msgstr "çç¥"
+
+msgid ""
+"Policies are profiles grouping one or more members controlling how MWAN "
+"distributes traffic Member interfaces with lower metrics are used "
+"first. Interfaces with the same metric load-balance Load-balanced "
+"member interfaces distribute more traffic out those with higher weights Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be "
+"15 characters or less Policies may not share the same name as "
+"configured interfaces, members or rules"
+msgstr ""
+"âçç¥âææå¡é²è¡åçµï¼å訴 MWAN å¦ä½åé
âè¦åâä¸ä½¿ç¨éä¸çç¥çæµé ææ"
+"è¼ä½èºé»æ¸çæå¡å°æ被åªå
使ç¨ãææç¸åèºé»æ¸çæå¡ææµéé²è¡è² è¼åè¡¡ã é²è¡è² è¼åè¡¡çæå¡ä¹éææè¼é«æ¯éçæå¡å°æ被åé
å°æ´å¤æµéã å稱å
許"
+"å
æ¬A-Zãa-zã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ãå稱æè©²å¨ 15 ååå
以å
§ çç¥ä¸æ該"
+"èä»é¢ãæå¡ãè¦åä¸çä»»æä¸åè¨å®é
使ç¨ç¸åçå稱"
+
+msgid "Policy"
+msgstr "çç¥"
+
+msgid "Policy assigned"
+msgstr "åé
ççç¥"
+
+msgid "Protocol"
+msgstr "éè¨åè°"
+
+msgid "Recovery interval"
+msgstr "æ
éæ¢å¾©éé"
+
+msgid "Restart MWAN"
+msgstr "éå MWAN"
+
+msgid "Rule"
+msgstr "è¦å"
+
+msgid "Rules"
+msgstr "è¦å"
+
+msgid ""
+"Rules specify which traffic will use a particular MWAN policy based on IP "
+"address, port or protocol Rules are matched from top to bottom. Rules "
+"below a matching rule are ignored. Traffic not matching any rule is routed "
+"using the main routing table Traffic destined for known (other than "
+"default) networks is handled by the main routing table. Traffic matching a "
+"rule, but all WAN interfaces for that policy are down will be blackholed Names may contain characters A-Z, a-z, 0-9, _ and no spaces Rules may "
+"not share the same name as configured interfaces, members or policies"
+msgstr ""
+"âè¦åâåºæ¼ IP ä½åãåè°ãå ææµéååå°æå®çâçç¥âä¸ã è¦åæç
§å¾ä¸å°"
+"ä¸çé åºé²è¡å¹é
ãé¤äºç¬¬ä¸æ¢è½å¤ å¹é
ä¸æ¬¡éè¨çè¦å以å¤ï¼å
¶å®è¦åå°è¢«å¿½ç¥ãä¸"
+"å¹é
ä»»ä½è¦åçéè¨å°æç±ç³»çµ±é è¨è·¯ç±è¡¨é²è¡ã ä¾èªå·²ç¥ç網路çè½ç¼æµéç±"
+"系統é è¨è·¯ç±è¡¨æ¥æï¼ç¶å¾ MWAN å¾ä¸å¹é
åºç¸æçæµé並è½ç§»å° MWAN èªå·±çè·¯ç±"
+"表ãä½æ¯ææ被ååå°ä¸åç¡æ³ä½¿ç¨ççç¥çæµéå°æç¡æ³æ£å¸¸é²è¡è·¯ç±ã å稱"
+"å
許å
æ¬A-Zãa-zã0-9ã_ ä½æ¯ä¸è½æç©ºæ ¼ã è¦åä¸æ該èä»é¢ãæå¡ãçç¥ä¸"
+"çä»»æä¸åè¨å®é
使ç¨ç¸åçå稱"
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr "å®ä½çºç§ãæ¥åçå¼ï¼1-1000000ãç空å使ç¨é è¨å¼ 600 ç§"
+
+msgid "Source address"
+msgstr "æºä½å"
+
+msgid "Source port"
+msgstr "æºå "
+
+msgid "Start MWAN"
+msgstr "åå MWAN"
+
+msgid "Sticky"
+msgstr "ç²æ»¯æ¨¡å¼"
+
+msgid "Sticky timeout"
+msgstr "ç²æ»¯è¶
æ"
+
+msgid "Stop MWAN"
+msgstr "åæ¢ MWAN"
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr "æ¯æ´ CIDR è¨æ³ï¼ä¾å¦ï¼\"192.168.100.0/24\"ï¼ä¸å«å¼è"
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr "ç¶åå·²é
ç½® %d åä»é¢ï¼æ大æ¯æ´ 250 å"
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr "é裡顯示äºéåä»é¢å¨ /etc/config/network ä¸é
ç½®çèºé»æ¸"
+
+msgid ""
+"This hostname or IP address will be pinged to determine if the link is up or "
+"down. Leave blank to assume interface is always online"
+msgstr "éé ping æ¤ä¸»æ©æ IP ä½åä¾ç¢ºå®éè·¯æ¯å¦ç·ä¸ãç空åèªçºä»é¢å§çµç·ä¸"
+
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\". The file is also preserved during sysupgrade. Notes: This "
+"file is interpreted as a shell script. The first line of the script "
+"must be "#!/bin/sh" without quotes. Lines beginning with # are "
+"comments and are not executed. Put your custom mwan3 action here, they "
+"will be executed with each netifd hotplug interface event on "
+"interfaces for which mwan3 is enabled. There are three main "
+"environment variables that are passed to this script. $ACTION "
+"Either \"ifup\" or \"ifdown\" $INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\") $DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\") "
+msgstr ""
+"é裡å
許æ¨ä¿®æ¹â/etc/mwan3.userâçå
§å®¹ã 該æªæ¡å¨ sysupgrade æéä¹æä¿"
+"çã 注æï¼ è©²æªæ¡æä½çº shell æ令碼解éã æ令碼ç第ä¸"
+"è¡å¿
é æ¯"#!/bin/sh"ï¼ä¸å¸¶å¼èã 以#éé çè¡æ¯è¨»éï¼ä¸æå·è¡ã"
+" å°æ¨çèªå®ç¾© mwan3 åä½æ¾å¨é裡ï¼ä»åå° å¨åç¨ mwan3 çä»é¢ä¸ å¨ netifd hotplug ä»é¢äºä»¶æå·è¡ã æä¸å主è¦çç°å¢è®æ¸å³é給éå"
+"è
³æ¬ã $ACTION âifupâæâifdownâ $INTERFACE ååæåæ¢çä»é¢å"
+"ï¼ä¾å¦âwanâæâwwanâï¼ $DEVICE ååæåæ¢ä»é¢çç©çè£ç½®åï¼ä¾"
+"å¦âeth0âæâwwan0âï¼ "
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr "é裡å
許æ¨ä¿®æ¹ /etc/config/mwan3 çå
§å®¹"
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr "é裡å
許æ¨ä¿®æ¹ /etc/config/network çå
§å®¹"
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr "é裡å
許æ¨ä¿®æ¹ /etc/config/wireless çå
§å®¹"
+
+msgid "Tracking IP"
+msgstr "è·è¹¤ç IP"
+
+msgid "Tracking hostname or IP address"
+msgstr "è·è¹¤ç主æ©æ IP ä½å"
+
+msgid "Tracking method"
+msgstr "è·è¹¤æ¹å¼"
+
+msgid "Tracking reliability"
+msgstr "è·è¹¤å¯é æ§"
+
+msgid "Traffic Rules"
+msgstr "æµéè¦å"
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+"ä¾èªç¸åæº IP çæµéï¼å¦æå·²ç¶å¹é
éæ¤è¦å並ä¸å¨ç²æ»¯è¶
ææéå
§ï¼å°æ使ç¨ç¸å"
+"ç WAN ä»é¢"
+
+msgid "Troubleshooting"
+msgstr "æ
éæé¤"
+
+msgid "Troubleshooting Data"
+msgstr "æ
éæé¤è³æ"
+
+msgid ""
+"Use the IP address of this interface as source IP address for traffic "
+"initiated by the router itself"
+msgstr "使ç¨è©²ä»é¢ç IP ä½åä½çºè·¯ç±å¨æ¬èº«ç¼èµ·çæµéçæº IP ä½å"
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr "è«æª¢è¦ /etc/protocols ç²åå¯é¸åè°è©³æ
"
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr "è¦åï¼å·²é
ç½® %d åä»é¢ï¼è¶
éæå¤§å¼ 250ï¼"
+
+msgid ""
+"WARNING: Some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr "è¦åï¼æäºä»é¢é
ç½®ä¸æ£ç¢ºææªé
ç½®å° /etc/config/networkï¼"
+
+msgid ""
+"WARNING: Some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr "è¦åï¼æäºä»é¢çè·è¹¤å¯é æ§è¦æ±å¤§æ¼äºè·è¹¤ IP ä½å總æ¸ï¼"
+
+msgid ""
+"WARNING: Some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr "è¦åï¼æäºä»é¢å¨ /etc/config/network ä¸é
ç½®äºç¸åçèºé»æ¸ï¼"
+
+msgid ""
+"WARNING: Some interfaces have no default route in the main routing table!"
+msgstr "è¦åï¼æäºä»é¢å¨ä¸»è·¯ç±è¡¨ä¸æ²æé è¨è·¯ç±ï¼"
+
+msgid ""
+"WARNING: Some interfaces have no metric configured in /etc/config/network!"
+msgstr "è¦åï¼æäºä»é¢æ²æå¨ /etc/config/network ä¸é
ç½®èºé»æ¸ï¼"
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr "è¦åï¼æäºçç¥çå稱è¶
éäº 15 ååå
ï¼"
+
+msgid ""
+"WARNING: Some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr "è¦åï¼æäºè¦åæå®äºå å»æ²æé
ç½®æé
ç½®äºä¸æ£ç¢ºçåè°ï¼è«éæ°æå®åè°ï¼"
+
+msgid ""
+"WARNING: This and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr "è¦åï¼æ¤ä»é¢åå
¶ä»ä»é¢å¨ /etc/config/network ä¸é
ç½®äºç¸åçèºé»æ¸ï¼"
+
+msgid ""
+"WARNING: This interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr "è¦åï¼æ¤ä»é¢çè·è¹¤å¯é æ§è¦æ±å¤§æ¼äºè·è¹¤ IP ä½å總æ¸ï¼"
+
+msgid "WARNING: This interface has no default route in the main routing table!"
+msgstr "è¦åï¼æ¤ä»é¢å¨ä¸»è·¯ç±è¡¨ä¸æ²æé è¨è·¯ç±ï¼"
+
+msgid ""
+"WARNING: This interface has no metric configured in /etc/config/network!"
+msgstr "è¦åï¼æ¤ä»é¢æ²æå¨ /etc/config/network ä¸é
ç½®èºé»æ¸ï¼"
+
+msgid ""
+"WARNING: This interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr "è¦åï¼æ¤ä»é¢é
ç½®ä¸æ£ç¢ºææªé
ç½®å° /etc/config/networkï¼"
+
+msgid ""
+"WARNING: This policy's name is %d characters exceeding the maximum of 15!"
+msgstr "è¦åï¼æ¤çç¥çå稱å
·æ %d ååå
ï¼è¶
éäº 15 ååå
ï¼"
+
+msgid ""
+"WARNING: This rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr "è¦åï¼æ¤è¦åæ²æé
ç½®æé
ç½®äºä¸æ£ç¢ºçåè°ï¼è«éæ°æå®åè°ï¼"
+
+msgid "Waiting for MWAN to %s..."
+msgstr "çå¾
MWAN %s..."
+
+msgid "Waiting for diagnostic results..."
+msgstr "çå¾
診æ·çµæ..."
+
+msgid "Weight"
+msgstr "æ¯é"
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr "ç¶ææçç¥æå¡é½ç¡æ³ä½¿ç¨çæåï¼å°ä½¿ç¨è©²çç¥çæµé使ç¨éåæä½"
+
+msgid "Wireless Config"
+msgstr "ç¡ç·é
ç½®"
+
+msgid "Yes"
+msgstr "æ¯"
+
+msgid "always"
+msgstr "總æ¯"
+
+msgid "blackhole (drop)"
+msgstr "é»æ´ï¼ä¸æ£ï¼"
+
+msgid "default (use main routing table)"
+msgstr "é è¨ï¼ä½¿ç¨ä¸»è·¯ç±è¡¨ï¼"
+
+msgid "ifdown"
+msgstr "ifdown"
+
+msgid "ifup"
+msgstr "ifup"
+
+msgid "never"
+msgstr "å¾ä¸"
+
+msgid "restart"
+msgstr "éå"
+
+msgid "start"
+msgstr "åå"
+
+msgid "stop"
+msgstr "åæ¢"
+
+msgid "unreachable (reject)"
+msgstr "ä¸å¯éï¼æçµï¼"
+
+#~ msgid "Restore default hotplug script"
+#~ msgstr "æ¢å¾©é è¨ç hotplug æ令碼"
+
+#~ msgid "Restore..."
+#~ msgstr "æ¢å¾©..."
+
+#~ msgid ""
+#~ "This section allows you to modify the contents of /etc/hotplug.d/iface/16-"
+#~ "mwancustom This is useful for running system commands and/or scripts "
+#~ "based on interface ifup or ifdown hotplug events Notes: The first line of the script must be "#!/bin/sh" without "
+#~ "quotes Lines beginning with # are comments and are not executed Available variables: $ACTION is the hotplug event (ifup, "
+#~ "ifdown) $INTERFACE is the interface name (wan1, wan2, etc.) "
+#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"
+#~ msgstr ""
+#~ "é裡å
許æ¨ä¿®æ¹ /etc/hotplug.d/iface/16-mwancustom çå
§å®¹ éå¯ä»¥å¨æ¥"
+#~ "å£ ifup æ ifdown Hotplug äºä»¶æå·è¡ç³»çµ±å½ä»¤ææ令碼 注æ: æ令碼ç第ä¸è¡å¿
é æ¯ "#!/bin/sh" ä¸å«å¼è 以ï¼éé çè¡æ¯è¨»"
+#~ "éï¼ä¸æå·è¡ å¯ç¨è®æ¸: $ACTION æ¯ Hotplug äºä»¶ï¼ifup, "
+#~ "ifdownï¼ $INTERFACE æ¯ä»é¢å稱ï¼wan1ãwan2 çï¼ $DEVICE æ¯é£ç·å°"
+#~ "ä»é¢çè¨åå稱 ï¼eth0.1ãeth1 çï¼"
diff --git a/applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak b/applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak
new file mode 100755
index 0000000000..6e2875e3de
--- /dev/null
+++ b/applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# to enable this script uncomment the case loop at the bottom
+# to report mwan status on interface hotplug ifup/ifdown events modify the lines in the send_alert function
+
+send_alert()
+{
+ # variable "$1" stores the MWAN status information
+ # insert your code here to send the contents of "$1"
+ echo "$1"
+}
+
+gather_event_info()
+{
+ # create event information message
+ local EVENT_INFO="Interface [ "$INTERFACE" ($DEVICE) ] on router [ "$(uci -p /var/state get system.@system[0].hostname)" ] has triggered a hotplug [ "$ACTION" ] event on "$(date +"%a %b %d %Y %T %Z")""
+
+ # get current interface, policy and rule status
+ local CURRENT_STATUS="$(/usr/sbin/mwan3 status)"
+
+ # get last 50 MWAN systemlog messages
+ local MWAN_LOG="$(echo -e "Last 50 MWAN systemlog entries. Newest entries sorted at the top:\n$(logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x')")"
+
+ # pass event info to send_alert function
+ send_alert "$(echo -e "$EVENT_INFO\n\n$CURRENT_STATUS\n\n$MWAN_LOG")"
+}
+
+#case "$ACTION" in
+# ifup)
+# gather_event_info
+# ;;
+#
+# ifdown)
+# gather_event_info
+# ;;
+#esac
+
+exit 0
diff --git a/applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3 b/applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3
new file mode 100755
index 0000000000..50c65ad678
--- /dev/null
+++ b/applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# replace existing mwan ucitrack entry
+uci -q batch <<-EOF >/dev/null
+ del ucitrack.@mwan3[-1]
+ add ucitrack mwan3
+ set ucitrack.@mwan3[-1].exec="/usr/sbin/mwan3 restart"
+ commit ucitrack
+EOF
+
+uci -q get mwan3.globals >/dev/null || {
+ uci -q add mwan3 globals >/dev/null
+ uci -q rename mwan3.@globals[-1]="globals" >/dev/null
+ uci -q set mwan3.globals.local_source="none" >/dev/null
+ uci commit mwan3
+}
+
+# remove LuCI cache
+rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
+
+exit 0
diff --git a/applications/luci-app-nlbwmon/Makefile b/applications/luci-app-nlbwmon/Makefile
new file mode 100644
index 0000000000..a00177f2ca
--- /dev/null
+++ b/applications/luci-app-nlbwmon/Makefile
@@ -0,0 +1,8 @@
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Netlink based bandwidth accounting
+LUCI_DEPENDS:=+nlbwmon
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-nlbwmon/htdocs/luci-static/resources/nlbw.chart.min.js b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/nlbw.chart.min.js
new file mode 100644
index 0000000000..34e3026825
--- /dev/null
+++ b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/nlbw.chart.min.js
@@ -0,0 +1,68 @@
+(function(){var p=this,l=p.Chart,e=function(a){this.canvas=a.canvas;this.ctx=a;var b=function(a,b){return a["offset"+b]?a["offset"+b]:document.defaultView.getComputedStyle(a).getPropertyValue(b)};this.width=b(a.canvas,"Width")||a.canvas.width;this.height=b(a.canvas,"Height")||a.canvas.height;this.width=a.canvas.width;this.height=a.canvas.height;this.aspectRatio=this.width/this.height;d.retinaScale(this);return this};e.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",
+showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",
+tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipTitleTemplate:"<%= label%>",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",
+multiTooltipKeyBackground:"#fff",segmentColorDefault:"#A6CEE3 #1F78B4 #B2DF8A #33A02C #FB9A99 #E31A1C #FDBF6F #FF7F00 #CAB2D6 #6A3D9A #B4B482 #B15928".split(" "),segmentHighlightColorDefaults:"#CEF6FF #47A0DC #DAFFB2 #5BC854 #FFC2C1 #FF4244 #FFE797 #FFA728 #F2DAFE #9265C2 #DCDCAA #D98150".split(" "),onAnimationProgress:function(){},onAnimationComplete:function(){}}};e.types={};var d=e.helpers={},k=d.each=function(a,b,c){var f=Array.prototype.slice.call(arguments,3);if(a)if(a.length===+a.length){var d;
+for(d=0;db)return b}else if(u(c)&&aa.indexOf("e-"))return a.split(".")[1].length;if(0>a.indexOf("."))return parseInt(a.split("e-")[1]);a=a.split(".")[1].split("e-");return a[0].length+parseInt(a[1])}return 0},B=d.radians=function(a){return Math.PI/180*a};d.getAngleFromPoint=function(a,b){var c=b.x-a.x,f=b.y-a.y,d=Math.sqrt(c*c+f*f),m=2*Math.PI+Math.atan2(f,c);0>c&&0>f&&(m+=
+2*Math.PI);return{angle:m,distance:d}};var F=d.aliasPixel=function(a){return 0===a%2?0:.5};d.splineCurve=function(a,b,c,f){var d=Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2)),m=Math.sqrt(Math.pow(c.x-b.x,2)+Math.pow(c.y-b.y,2)),g=f*d/(d+m);f=f*m/(d+m);return{inner:{x:b.x-g*(c.x-a.x),y:b.y-g*(c.y-a.y)},outer:{x:b.x+f*(c.x-a.x),y:b.y+f*(c.y-a.y)}}};var N=d.calculateOrderOfMagnitude=function(a){return Math.floor(Math.log(a)/Math.LN10)};d.calculateScaleRange=function(a,b,c,f,d){b=Math.floor(b/(1.5*
+c));c=2>=b;var m=[];k(a,function(a){null==a||m.push(a)});var g=w(m),e=y(m);e===g&&(e+=.5,.5<=g&&!f?g-=.5:e+=.5);a=N(Math.abs(e-g));f=f?0:Math.floor(g/(1*Math.pow(10,a)))*Math.pow(10,a);for(var e=Math.ceil(e/(1*Math.pow(10,a)))*Math.pow(10,a)-f,g=Math.pow(10,a),n=Math.round(e/g);(n>b||2*nb)g*=2,n=Math.round(e/g),0!==n%1&&(c=!0);else if(d&&0<=a)if(0===g/2%1)g/=2,n=Math.round(e/g);else break;else g/=2,n=Math.round(e/g);c&&(n=2,g=e/n);return{steps:n,stepValue:g,min:f,max:f+n*g}};var t=d.template=
+function(a,b){if(a instanceof Function)return a(b);var c={},c=/\W/.test(a)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):c[a]=c[a];return b?c(b):c};d.generateLabels=function(a,b,c,f){var d=Array(b);a&&k(d,function(b,e){d[e]=t(a,{value:c+
+f*(e+1)})});return d};var x=d.easingEffects={linear:function(a){return a},easeInQuad:function(a){return a*a},easeOutQuad:function(a){return-1*a*(a-2)},easeInOutQuad:function(a){return 1>(a/=.5)?.5*a*a:-.5*(--a*(a-2)-1)},easeInCubic:function(a){return a*a*a},easeOutCubic:function(a){return 1*((a=a/1-1)*a*a+1)},easeInOutCubic:function(a){return 1>(a/=.5)?.5*a*a*a:.5*((a-=2)*a*a+2)},easeInQuart:function(a){return a*a*a*a},easeOutQuart:function(a){return-1*((a=a/1-1)*a*a*a-1)},easeInOutQuart:function(a){return 1>
+(a/=.5)?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)},easeInQuint:function(a){return 1*(a/=1)*a*a*a*a},easeOutQuint:function(a){return 1*((a=a/1-1)*a*a*a*a+1)},easeInOutQuint:function(a){return 1>(a/=.5)?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)},easeInSine:function(a){return-1*Math.cos(a/1*(Math.PI/2))+1},easeOutSine:function(a){return 1*Math.sin(a/1*(Math.PI/2))},easeInOutSine:function(a){return-.5*(Math.cos(Math.PI*a/1)-1)},easeInExpo:function(a){return 0===a?1:1*Math.pow(2,10*(a/1-1))},easeOutExpo:function(a){return 1===
+a?1:1*(-Math.pow(2,-10*a/1)+1)},easeInOutExpo:function(a){return 0===a?0:1===a?1:1>(a/=.5)?.5*Math.pow(2,10*(a-1)):.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return 1<=a?a:-1*(Math.sqrt(1-(a/=1)*a)-1)},easeOutCirc:function(a){return 1*Math.sqrt(1-(a=a/1-1)*a)},easeInOutCirc:function(a){return 1>(a/=.5)?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeInElastic:function(a){var b=1.70158,c=0,f=1;if(0===a)return 0;if(1==(a/=1))return 1;c||(c=.3);fa?-.5*f*Math.pow(2,10*--a)*Math.sin(2*
+(1*a-b)*Math.PI/c):f*Math.pow(2,-10*--a)*Math.sin(2*(1*a-b)*Math.PI/c)*.5+1},easeInBack:function(a){return 1*(a/=1)*a*(2.70158*a-1.70158)},easeOutBack:function(a){return 1*((a=a/1-1)*a*(2.70158*a+1.70158)+1)},easeInOutBack:function(a){var b=1.70158;return 1>(a/=.5)?.5*a*a*(((b*=1.525)+1)*a-b):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},easeInBounce:function(a){return 1-x.easeOutBounce(1-a)},easeOutBounce:function(a){return(a/=1)<1/2.75?7.5625*a*a:a<2/2.75?1*(7.5625*(a-=1.5/2.75)*a+.75):a<2.5/2.75?1*(7.5625*
+(a-=2.25/2.75)*a+.9375):1*(7.5625*(a-=2.625/2.75)*a+.984375)},easeInOutBounce:function(a){return.5>a?.5*x.easeInBounce(2*a):.5*x.easeOutBounce(2*a-1)+.5}},G=d.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return window.setTimeout(a,1E3/60)}}();d.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||
+window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(a){return window.clearTimeout(a,1E3/60)}}();d.animationLoop=function(a,b,c,f,d,e){var g=0,k=x[c]||x.linear,n=function(){g++;var c=g/b,h=k(c);a.call(e,h,c,g);f.call(e,h,c);gf?b:f});return f},H=d.drawRoundedRectangle=function(a,b,c,f,d,e){a.beginPath();a.moveTo(b+e,c);a.lineTo(b+f-e,c);a.quadraticCurveTo(b+f,c,b+f,c+e);a.lineTo(b+f,c+d-e);a.quadraticCurveTo(b+f,c+d,b+f-e,c+d);a.lineTo(b+e,c+d);a.quadraticCurveTo(b,c+d,b,c+d-e);a.lineTo(b,c+e);a.quadraticCurveTo(b,c,b+e,c);a.closePath()};e.instances={};e.Type=function(a,b,c){this.options=b;this.chart=c;this.id=K();e.instances[this.id]=this;b.responsive&&this.resize();this.initialize.call(this,a)};r(e.Type.prototype,
+{initialize:function(){return this},clear:function(){U(this.chart);return this},stop:function(){e.animationService.cancelAnimation(this);return this},resize:function(a){this.stop();var b=this.chart.canvas,c=R(this.chart.canvas),f=this.options.maintainAspectRatio?c/this.chart.aspectRatio:S(this.chart.canvas);b.width=this.chart.width=c;b.height=this.chart.height=f;T(this.chart);"function"===typeof a&&a.apply(this,Array.prototype.slice.call(arguments,1));return this},reflow:A,render:function(a){a&&this.reflow();
+this.options.animation&&!a?(a=new e.Animation,a.numSteps=this.options.animationSteps,a.easing=this.options.animationEasing,a.render=function(a,c){var f=c.currentStep/c.numSteps,e=(0,d.easingEffects[c.easing])(f);a.draw(e,f,c.currentStep)},a.onAnimationProgress=this.options.onAnimationProgress,a.onAnimationComplete=this.options.onAnimationComplete,e.animationService.addAnimation(this,a)):(this.draw(),this.options.onAnimationComplete.call(this));return this},generateLegend:function(){return t(this.options.legendTemplate,
+this)},destroy:function(){this.clear();Q(this,this.events);var a=this.chart.canvas;a.width=this.chart.width;a.height=this.chart.height;a.style.removeProperty?(a.style.removeProperty("width"),a.style.removeProperty("height")):(a.style.removeAttribute("width"),a.style.removeAttribute("height"));delete e.instances[this.id]},showTooltip:function(a,b){"undefined"===typeof this.activeElements&&(this.activeElements=[]);if(function(a){var b=!1;if(a.length!==this.activeElements.length)return b=!0;k(a,function(a,
+c){a!==this.activeElements[c]&&(b=!0)},this);return b}.call(this,a)||b){this.activeElements=a;this.draw();this.options.customTooltips&&this.options.customTooltips(!1);if(0this.chart.width/2?h:a,y:(l+k)/2}}.call(this,f);(new e.MultiTooltip({x:c.x,y:c.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,
+fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:m,legendColors:g,legendColorBackground:this.options.multiTooltipKeyBackground,title:t(this.options.tooltipTitleTemplate,a[0]),chart:this.chart,
+ctx:this.chart.ctx,custom:this.options.customTooltips})).draw()}else k(a,function(a){var b=a.tooltipPosition();(new e.Tooltip({x:Math.round(b.x),y:Math.round(b.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,
+text:t(this.options.tooltipTemplate,a),chart:this.chart,custom:this.options.customTooltips})).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}});e.Type.extend=function(a){var b=this,c=function(){return b.apply(this,arguments)};c.prototype=h(b.prototype);r(c.prototype,a);c.extend=e.Type.extend;if(a.name||b.prototype.name){var f=a.name||b.prototype.name,d=e.defaults[b.prototype.name]?h(e.defaults[b.prototype.name]):{};e.defaults[f]=
+r(d,a.defaults);e.types[f]=c;e.prototype[f]=function(a,b){var d=I(e.defaults.global,e.defaults[f],b||{});return new c(a,d,this)}}else L("Name not provided for this chart, so it hasn't been registered");return b};e.Element=function(a){r(this,a);this.initialize.apply(this,arguments);this.save()};r(e.Element.prototype,{initialize:function(){},restore:function(a){a?k(a,function(a){this[a]=this._saved[a]},this):r(this,this._saved);return this},save:function(){this._saved=h(this);delete this._saved._saved;
+return this},update:function(a){k(a,function(a,c){this._saved[c]=this[c];this[c]=a},this);return this},transition:function(a,b){k(a,function(a,f){this[f]=(a-this._saved[f])*b+this._saved[f]},this);return this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return u(this.value)}});e.Element.extend=D;e.Point=e.Element.extend({display:!0,inRange:function(a,b){return Math.pow(a-this.x,2)+Math.pow(b-this.y,2)=this.innerRadius&&c.distance<=this.outerRadius;return(m=e:f>=e&&f<=m)&&c},tooltipPosition:function(){var a=
+this.startAngle+(this.endAngle-this.startAngle)/2,b=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(a)*b,y:this.y+Math.sin(a)*b}},draw:function(a){a=this.ctx;a.beginPath();a.arc(this.x,this.y,0>this.outerRadius?0:this.outerRadius,this.startAngle,this.endAngle);a.arc(this.x,this.y,0>this.innerRadius?0:this.innerRadius,this.endAngle,this.startAngle,!0);a.closePath();a.strokeStyle=this.strokeColor;a.lineWidth=this.strokeWidth;a.fillStyle=this.fillColor;a.fill();a.lineJoin=
+"bevel";this.showStroke&&a.stroke()}});e.Rectangle=e.Element.extend({draw:function(){var a=this.ctx,b=this.width/2,c=this.x-b,b=this.x+b,f=this.base-(this.base-this.y),d=this.strokeWidth/2;this.showStroke&&(c+=d,b-=d,f+=d);a.beginPath();a.fillStyle=this.fillColor;a.strokeStyle=this.strokeColor;a.lineWidth=this.strokeWidth;a.moveTo(c,this.base);a.lineTo(c,f);a.lineTo(b,f);a.lineTo(b,this.base);a.fill();this.showStroke&&a.stroke()},height:function(){return this.base-this.y},inRange:function(a,b){return a>=
+this.x-this.width/2&&a<=this.x+this.width/2&&b>=this.y&&b<=this.base}});e.Animation=e.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null});e.Tooltip=e.Element.extend({draw:function(){var a=this.chart.ctx;a.font=v(this.fontSize,this.fontStyle,this.fontFamily);this.xAlign="center";this.yAlign="above";var b=this.caretPadding=2,c=a.measureText(this.text).width+2*this.xPadding,f=this.fontSize+2*this.yPadding,d=f+this.caretHeight+b;this.x+
+c/2>this.chart.width?this.xAlign="left":0>this.x-c/2&&(this.xAlign="right");0>this.y-d&&(this.yAlign="below");var e=this.x-c/2,d=this.y-d;a.fillStyle=this.fillColor;if(this.custom)this.custom(this);else{switch(this.yAlign){case "above":a.beginPath();a.moveTo(this.x,this.y-b);a.lineTo(this.x+this.caretHeight,this.y-(b+this.caretHeight));a.lineTo(this.x-this.caretHeight,this.y-(b+this.caretHeight));a.closePath();a.fill();break;case "below":d=this.y+b+this.caretHeight,a.beginPath(),a.moveTo(this.x,this.y+
+b),a.lineTo(this.x+this.caretHeight,this.y+b+this.caretHeight),a.lineTo(this.x-this.caretHeight,this.y+b+this.caretHeight),a.closePath(),a.fill()}switch(this.xAlign){case "left":e=this.x-c+(this.cornerRadius+this.caretHeight);break;case "right":e=this.x-(this.cornerRadius+this.caretHeight)}H(a,e,d,c,f,this.cornerRadius);a.fill();a.fillStyle=this.textColor;a.textAlign="center";a.textBaseline="middle";a.fillText(this.text,e+c/2,d+f/2)}}});e.MultiTooltip=e.Element.extend({initialize:function(){this.font=
+v(this.fontSize,this.fontStyle,this.fontFamily);this.titleFont=v(this.titleFontSize,this.titleFontStyle,this.titleFontFamily);this.titleHeight=this.title?1.5*this.titleFontSize:0;this.height=this.labels.length*this.fontSize+this.fontSize/2*(this.labels.length-1)+2*this.yPadding+this.titleHeight;this.ctx.font=this.titleFont;var a=this.ctx.measureText(this.title).width,b=C(this.ctx,this.font,this.labels)+this.fontSize+3;this.width=y([b,a])+2*this.xPadding;a=this.height/2;0>this.y-a?this.y=a:this.y+
+a>this.chart.height&&(this.y=this.chart.height-a);this.x=this.x>this.chart.width/2?this.x-(this.xOffset+this.width):this.x+this.xOffset},getLineHeight:function(a){var b=this.y-this.height/2+this.yPadding;return 0===a?b+this.titleHeight/3:b+(1.5*this.fontSize*(a-1)+this.fontSize/2)+this.titleHeight},draw:function(){if(this.custom)this.custom(this);else{H(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var a=this.ctx;a.fillStyle=this.fillColor;a.fill();a.closePath();a.textAlign=
+"left";a.textBaseline="middle";a.fillStyle=this.titleTextColor;a.font=this.titleFont;a.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0));a.font=this.font;d.each(this.labels,function(b,c){a.fillStyle=this.textColor;a.fillText(b,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(c+1));a.fillStyle=this.legendColorBackground;a.fillRect(this.x+this.xPadding,this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize);a.fillStyle=this.legendColors[c].fill;a.fillRect(this.x+this.xPadding,
+this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}});e.Scale=e.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var a=E(this.stepValue),b=0;b<=this.steps;b++)this.yLabels.push(t(this.templateString,{value:(this.min+b*this.stepValue).toFixed(a)}));this.yLabelWidth=this.display&&this.showLabels?C(this.ctx,this.font,this.yLabels)+10:0},addXLabel:function(a){this.xLabels.push(a);this.valuesCount++;this.fit()},removeXLabel:function(){this.xLabels.shift();
+this.valuesCount--;this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0;this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height;this.startPoint+=this.padding;var a=this.endPoint-=this.padding,b=this.endPoint-this.startPoint,c;this.calculateYRange(b);this.buildYLabels();for(this.calculateXLabelRotation();b>this.endPoint-this.startPoint;)b=this.endPoint-this.startPoint,c=this.yLabelWidth,this.calculateYRange(b),this.buildYLabels(),cthis.yLabelWidth?a/2:this.yLabelWidth;this.xLabelRotation=0;if(this.display){var c=C(this.ctx,this.font,this.xLabels),f;this.xLabelWidth=c;for(var d=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>d&&0===this.xLabelRotation||
+this.xLabelWidth>d&&90>=this.xLabelRotation&&0this.yLabelWidth&&(this.xScalePaddingLeft=b+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=f*c;0e&&(e=b.x+d,k=c),b.x-de&&(e=b.x+d,k=c):c>this.valuesCount/2&&b.x-de-g;e=b===g||b===e-g;a.textAlign=0===b?"center":b===c?"center":bthis.animations[c].animationObject.numSteps&&(this.animations[c].animationObject.currentStep=this.animations[c].animationObject.numSteps),this.animations[c].animationObject.render(this.animations[c].chartInstance,this.animations[c].animationObject),this.animations[c].animationObject.currentStep==this.animations[c].animationObject.numSteps&&(this.animations[c].animationObject.onAnimationComplete.call(this.animations[c].chartInstance),
+this.animations.splice(c,1),c--);a=(Date.now()-a-this.frameDuration)/this.frameDuration;1<% for (var i=0; i<%if(segments[i].label){%><%=segments[i].label%><%}%> <%}%>'};p.Type.extend({name:"Doughnut",defaults:e,
+initialize:function(d){this.segments=[];this.outerRadius=(l.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2;this.SegmentArc=p.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2});this.options.showTooltips&&l.bindEvents(this,this.options.tooltipEvents,function(d){d="mouseout"!==d.type?this.getSegmentsAtEvent(d):[];l.each(this.segments,function(d){d.restore(["fillColor"])});l.each(d,function(d){d.fillColor=d.highlightColor});this.showTooltip(d)});
+this.calculateTotal(d);l.each(d,function(e,h){e.color||(e.color="hsl("+360*h/d.length+", 100%, 50%)");this.addData(e,h,!0)},this);this.render()},getSegmentsAtEvent:function(d){var e=[],h=l.getRelativePosition(d);l.each(this.segments,function(d){d.inRange(h.x,h.y)&&e.push(d)},this);return e},addData:function(d,e,h){e=void 0!==e?e:this.segments.length;"undefined"===typeof d.color&&(d.color=p.defaults.global.segmentColorDefault[e%p.defaults.global.segmentColorDefault.length],d.highlight=p.defaults.global.segmentHighlightColorDefaults[e%
+p.defaults.global.segmentHighlightColorDefaults.length]);this.segments.splice(e,0,new this.SegmentArc({value:d.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:d.color,highlightColor:d.highlight||d.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?
+0:this.calculateCircumference(d.value),label:d.label}));h||(this.reflow(),this.update())},calculateCircumference:function(d){return 0
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.nlbw", package.seeall)
+
+function index()
+ entry({"admin", "nlbw"}, firstchild(), _("Bandwidth Monitor"), 80)
+ entry({"admin", "nlbw", "display"}, template("nlbw/display"), _("Display"), 1)
+ entry({"admin", "nlbw", "config"}, cbi("nlbw/config"), _("Configuration"), 2)
+ entry({"admin", "nlbw", "backup"}, template("nlbw/backup"), _("Backup"), 3)
+ entry({"admin", "nlbw", "data"}, call("action_data"), nil, 4)
+ entry({"admin", "nlbw", "list"}, call("action_list"), nil, 5)
+ entry({"admin", "nlbw", "ptr"}, call("action_ptr"), nil, 6).leaf = true
+ entry({"admin", "nlbw", "download"}, call("action_download"), nil, 7)
+ entry({"admin", "nlbw", "restore"}, post("action_restore"), nil, 8)
+ entry({"admin", "nlbw", "commit"}, call("action_commit"), nil, 9)
+end
+
+local function exec(cmd, args, writer)
+ local os = require "os"
+ local nixio = require "nixio"
+
+ local fdi, fdo = nixio.pipe()
+ local pid = nixio.fork()
+
+ if pid > 0 then
+ fdo:close()
+
+ while true do
+ local buffer = fdi:read(2048)
+ local wpid, stat, code = nixio.waitpid(pid, "nohang")
+
+ if writer and buffer and #buffer > 0 then
+ writer(buffer)
+ end
+
+ if wpid and stat == "exited" then
+ break
+ end
+ end
+ elseif pid == 0 then
+ nixio.dup(fdo, nixio.stdout)
+ fdi:close()
+ fdo:close()
+ nixio.exece(cmd, args, nil)
+ nixio.stdout:close()
+ os.exit(1)
+ end
+end
+
+function action_data()
+ local http = require "luci.http"
+
+ local types = {
+ csv = "text/csv",
+ json = "application/json"
+ }
+
+ local args = { }
+ local mtype = http.formvalue("type") or "json"
+ local delim = http.formvalue("delim") or ";"
+ local period = http.formvalue("period")
+ local group_by = http.formvalue("group_by")
+ local order_by = http.formvalue("order_by")
+
+ if types[mtype] then
+ args[#args+1] = "-c"
+ args[#args+1] = mtype
+ else
+ http.status(400, "Unsupported type")
+ return
+ end
+
+ if delim and #delim > 0 then
+ args[#args+1] = "-s%s" % delim
+ end
+
+ if period and #period > 0 then
+ args[#args+1] = "-t"
+ args[#args+1] = period
+ end
+
+ if group_by and #group_by > 0 then
+ args[#args+1] = "-g"
+ args[#args+1] = group_by
+ end
+
+ if order_by and #order_by > 0 then
+ args[#args+1] = "-o"
+ args[#args+1] = order_by
+ end
+
+ http.prepare_content(types[mtype])
+ exec("/usr/sbin/nlbw", args, http.write)
+end
+
+function action_list()
+ local http = require "luci.http"
+
+ local fd = io.popen("/usr/sbin/nlbw -c list")
+ local periods = { }
+
+ if fd then
+ while true do
+ local period = fd:read("*l")
+
+ if not period then
+ break
+ end
+
+ periods[#periods+1] = period
+ end
+
+ fd:close()
+ end
+
+ http.prepare_content("application/json")
+ http.write_json(periods)
+end
+
+function action_ptr(...)
+ local http = require "luci.http"
+ local util = require "luci.util"
+
+ http.prepare_content("application/json")
+ http.write_json(util.ubus("network.rrdns", "lookup", {
+ addrs = {...}, timeout = 3000
+ }))
+end
+
+function action_download()
+ local nixio = require "nixio"
+ local http = require "luci.http"
+ local sys = require "luci.sys"
+ local uci = require "luci.model.uci".cursor()
+
+ local dir = uci:get_first("nlbwmon", "nlbwmon", "database_directory")
+ or "/var/lib/nlbwmon"
+
+ if dir and nixio.fs.stat(dir, "type") == "dir" then
+ local n = "nlbwmon-backup-%s-%s.tar.gz"
+ %{ sys.hostname(), os.date("%Y-%m-%d") }
+
+ http.prepare_content("application/octet-stream")
+ http.header("Content-Disposition", "attachment; filename=\"%s\"" % n)
+ exec("/bin/tar", { "-C", dir, "-c", "-z", ".", "-f", "-" }, http.write)
+ else
+ http.status(500, "Unable to find database directory")
+ end
+end
+
+function action_restore()
+ local nixio = require "nixio"
+ local http = require "luci.http"
+ local i18n = require "luci.i18n"
+ local tpl = require "luci.template"
+ local uci = require "luci.model.uci".cursor()
+
+ local tmp = "/tmp/nlbw-restore.tar.gz"
+ local dir = uci:get_first("nlbwmon", "nlbwmon", "database_directory")
+ or "/var/lib/nlbwmon"
+
+ local fp
+ http.setfilehandler(
+ function(meta, chunk, eof)
+ if not fp and meta and meta.name == "archive" then
+ fp = io.open(tmp, "w")
+ end
+ if fp and chunk then
+ fp:write(chunk)
+ end
+ if fp and eof then
+ fp:close()
+ end
+ end)
+
+ local files = { }
+ local tar = io.popen("/bin/tar -tzf %s" % tmp, "r")
+ if tar then
+ while true do
+ local file = tar:read("*l")
+ if not file then
+ break
+ elseif file:match("^%d%d%d%d%d%d%d%d%.db%.gz$") or
+ file:match("^%./%d%d%d%d%d%d%d%d%.db%.gz$") then
+ files[#files+1] = file
+ end
+ end
+ tar:close()
+ end
+
+ if #files == 0 then
+ http.status(500, "Internal Server Error")
+ tpl.render("nlbw/backup", {
+ message = i18n.translate("Invalid or empty backup archive")
+ })
+ return
+ end
+
+
+ local output = { }
+
+ exec("/etc/init.d/nlbwmon", { "stop" })
+ exec("/bin/mkdir", { "-p", dir })
+
+ exec("/bin/tar", { "-C", dir, "-vxzf", tmp, unpack(files) },
+ function(chunk) output[#output+1] = chunk:match("%S+") end)
+
+ exec("/bin/rm", { "-f", tmp })
+ exec("/etc/init.d/nlbwmon", { "start" })
+
+ tpl.render("nlbw/backup", {
+ message = i18n.translatef(
+ "The following database files have been restored: %s",
+ table.concat(output, ", "))
+ })
+end
+
+function action_commit()
+ local http = require "luci.http"
+ local disp = require "luci.dispatcher"
+
+ http.redirect(disp.build_url("admin/nlbw/display"))
+ exec("/usr/sbin/nlbw", { "-c", "commit" })
+end
diff --git a/applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua b/applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua
new file mode 100644
index 0000000000..71e096c617
--- /dev/null
+++ b/applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua
@@ -0,0 +1,215 @@
+-- Copyright 2017 Jo-Philipp Wich
+-- Licensed to the public under the Apache License 2.0.
+
+local utl = require "luci.util"
+local sys = require "luci.sys"
+local fs = require "nixio.fs"
+local ip = require "luci.ip"
+local nw = require "luci.model.network"
+
+local s, m, period, warning, date, days, interval, ifaces, subnets, limit, prealloc, compress, generations, commit, refresh, directory, protocols
+
+m = Map("nlbwmon", translate("Netlink Bandwidth Monitor - Configuration"),
+ translate("The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic accounting program keeping track of bandwidth usage per host and protocol."))
+
+nw.init(luci.model.uci.cursor_state())
+
+s = m:section(TypedSection, "nlbwmon")
+s.anonymous = true
+s.addremove = false
+s:tab("general", translate("General Settings"))
+s:tab("advanced", translate("Advanced Settings"))
+s:tab("protocol", translate("Protocol Mapping"),
+ translate("Protocol mappings to distinguish traffic types per host, one mapping per line. The first value specifies the IP protocol, the second value the port number and the third column is the name of the mapped protocol."))
+
+period = s:taboption("general", ListValue, "_period", translate("Accounting period"),
+ translate("Choose \"Day of month\" to restart the accounting period monthly on a specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the accounting period exactly every N days, beginning at a given date."))
+
+period:value("relative", translate("Day of month"))
+period:value("absolute", translate("Fixed interval"))
+
+period.write = function(self, cfg, val)
+ if period:formvalue(cfg) == "relative" then
+ m:set(cfg, "database_interval", interval:formvalue(cfg))
+ else
+ m:set(cfg, "database_interval", "%s/%s" %{
+ date:formvalue(cfg),
+ days:formvalue(cfg)
+ })
+ end
+end
+
+period.cfgvalue = function(self, cfg)
+ local val = m:get(cfg, "database_interval") or ""
+ if val:match("^%d%d%d%d%-%d%d%-%d%d/%d+$") then
+ return "absolute"
+ end
+ return "relative"
+end
+
+
+warning = s:taboption("general", DummyValue, "_warning", translate("Warning"))
+warning.default = translatef("Changing the accounting interval type will invalidate existing databases!Download backup .", luci.dispatcher.build_url("admin/nlbw/backup"))
+warning.rawhtml = true
+
+if (m.uci:get_first("nlbwmon", "nlbwmon", "database_interval") or ""):match("^%d%d%d%d-%d%d-%d%d/%d+$") then
+ warning:depends("_period", "relative")
+else
+ warning:depends("_period", "absolute")
+end
+
+
+interval = s:taboption("general", Value, "_interval", translate("Due date"),
+ translate("Day of month to restart the accounting period. Use negative values to count towards the end of month, e.g. \"-5\" to specify the 27th of July or the 24th of Februrary."))
+
+interval.datatype = "or(range(1,31),range(-31,-1))"
+interval.placeholder = "1"
+interval:value("1", translate("1 - Restart every 1st of month"))
+interval:value("-1", translate("-1 - Restart every last day of month"))
+interval:value("-7", translate("-7 - Restart a week before end of month"))
+interval.rmempty = false
+interval:depends("_period", "relative")
+interval.write = period.write
+
+interval.cfgvalue = function(self, cfg)
+ local val = m:get(cfg, "database_interval")
+ return val and tonumber(val)
+end
+
+
+date = s:taboption("general", Value, "_date", translate("Start date"),
+ translate("Start date of the first accounting period, e.g. begin of ISP contract."))
+
+date.datatype = "dateyyyymmdd"
+date.placeholder = "2016-03-15"
+date.rmempty = false
+date:depends("_period", "absolute")
+date.write = period.write
+
+date.cfgvalue = function(self, cfg)
+ local val = m:get(cfg, "database_interval") or ""
+ return (val:match("^(%d%d%d%d%-%d%d%-%d%d)/%d+$"))
+end
+
+
+days = s:taboption("general", Value, "_days", translate("Interval"),
+ translate("Length of accounting interval in days."))
+
+days.datatype = "min(1)"
+days.placeholder = "30"
+days.rmempty = false
+days:depends("_period", "absolute")
+days.write = period.write
+
+days.cfgvalue = function(self, cfg)
+ local val = m:get(cfg, "database_interval") or ""
+ return (val:match("^%d%d%d%d%-%d%d%-%d%d/(%d+)$"))
+end
+
+
+ifaces = s:taboption("general", Value, "_ifaces", translate("Local interfaces"),
+ translate("Only conntrack streams from or to any of these networks are counted."))
+
+ifaces.template = "cbi/network_netlist"
+ifaces.widget = "checkbox"
+ifaces.nocreate = true
+
+ifaces.cfgvalue = function(self, cfg)
+ return m:get(cfg, "local_network")
+end
+
+ifaces.write = function(self, cfg)
+ local item
+ local items = {}
+ for item in utl.imatch(subnets:formvalue(cfg)) do
+ items[#items+1] = item
+ end
+ for item in utl.imatch(ifaces:formvalue(cfg)) do
+ items[#items+1] = item
+ end
+ m:set(cfg, "local_network", items)
+end
+
+
+subnets = s:taboption("general", DynamicList, "_subnets", translate("Local subnets"),
+ translate("Only conntrack streams from or to any of these subnets are counted."))
+
+subnets.datatype = "ipaddr"
+
+subnets.cfgvalue = function(self, cfg)
+ local subnet
+ local subnets = {}
+ for subnet in utl.imatch(m:get(cfg, "local_network")) do
+ subnet = ip.new(subnet)
+ subnets[#subnets+1] = subnet and subnet:string()
+ end
+ return subnets
+end
+
+subnets.write = ifaces.write
+
+
+limit = s:taboption("advanced", Value, "database_limit", translate("Maximum entries"),
+ translate("The maximum amount of entries that should be put into the database, setting the limit to 0 will allow databases to grow indefinitely."))
+
+limit.datatype = "uinteger"
+limit.placeholder = "10000"
+
+prealloc = s:taboption("advanced", Flag, "database_prealloc", translate("Preallocate database"),
+ translate("Whether to preallocate the maximum possible database size in memory. This is mainly useful for memory constrained systems which might not be able to satisfy memory allocation after longer uptime periods."))
+
+prealloc:depends({["database_limit"] = "0", ["!reverse"] = true })
+
+
+compress = s:taboption("advanced", Flag, "database_compress", translate("Compress database"),
+ translate("Whether to gzip compress archive databases. Compressing the database files makes accessing old data slightly slower but helps to reduce storage requirements."))
+
+compress.default = compress.enabled
+
+
+generations = s:taboption("advanced", Value, "database_generations", translate("Stored periods"),
+ translate("Maximum number of accounting periods to keep, use zero to keep databases forever."))
+
+generations.datatype = "uinteger"
+generations.placeholder = "10"
+
+
+commit = s:taboption("advanced", Value, "commit_interval", translate("Commit interval"),
+ translate("Interval at which the temporary in-memory database is committed to the persistent database directory."))
+
+commit.placeholder = "24h"
+commit:value("24h", translate("24h - least flash wear at the expense of data loss risk"))
+commit:value("12h", translate("12h - compromise between risk of data loss and flash wear"))
+commit:value("10m", translate("10m - frequent commits at the expense of flash wear"))
+commit:value("60s", translate("60s - commit minutely, useful for non-flash storage"))
+
+
+refresh = s:taboption("advanced", Value, "refresh_interval", translate("Refresh interval"),
+ translate("Interval at which traffic counters of still established connections are refreshed from netlink information."))
+
+refresh.placeholder = "30s"
+refresh:value("30s", translate("30s - refresh twice per minute for reasonably current stats"))
+refresh:value("5m", translate("5m - rarely refresh to avoid frequently clearing conntrack counters"))
+
+
+directory = s:taboption("advanced", Value, "database_directory", translate("Database directory"),
+ translate("Database storage directory. One file per accounting period will be placed into this directory."))
+
+directory.placeholder = "/var/lib/nlbwmon"
+
+
+protocols = s:taboption("protocol", TextValue, "_protocols")
+protocols.rows = 50
+
+protocols.cfgvalue = function(self, cfg)
+ return fs.readfile("/usr/share/nlbwmon/protocols")
+end
+
+protocols.write = function(self, cfg, value)
+ fs.writefile("/usr/share/nlbwmon/protocols", (value or ""):gsub("\r\n", "\n"))
+end
+
+protocols.remove = protocols.write
+
+
+return m
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
new file mode 100644
index 0000000000..ea2e0f05cf
--- /dev/null
+++ b/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
@@ -0,0 +1,34 @@
+<%#
+ Copyright 2017 Jo-Philipp Wich
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%+header%>
+
+
+
+<%:Netlink Bandwidth Monitor - Backup / Restore %>
+
+
+ <%:Restore Database Backup%>
+
+
+
+ <% if message then %>
+ <%=message%>
+ <% end %>
+
+
+ <%:Download Database Backup%>
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
new file mode 100644
index 0000000000..932c8849a7
--- /dev/null
+++ b/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
@@ -0,0 +1,1052 @@
+<%#
+ Copyright 2017 Jo-Philipp Wich
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<% css = [[
+
+ #chartjs-tooltip {
+ opacity: 0;
+ position: absolute;
+ background: rgba(0, 0, 0, .7);
+ color: white;
+ padding: 3px;
+ border-radius: 3px;
+ -webkit-transition: all .1s ease;
+ transition: all .1s ease;
+ pointer-events: none;
+ -webkit-transform: translate(-50%, 0);
+ transform: translate(-50%, 0);
+ z-index: 200;
+ }
+
+ #chartjs-tooltip.above {
+ -webkit-transform: translate(-50%, -100%);
+ transform: translate(-50%, -100%);
+ }
+
+ #chartjs-tooltip.above:before {
+ border: solid;
+ border-color: #111 transparent;
+ border-color: rgba(0, 0, 0, .8) transparent;
+ border-width: 8px 8px 0 8px;
+ bottom: 1em;
+ content: "";
+ display: block;
+ left: 50%;
+ top: 100%;
+ position: absolute;
+ z-index: 99;
+ -webkit-transform: translate(-50%, 0);
+ transform: translate(-50%, 0);
+ }
+
+ table {
+ border: 1px solid #999;
+ border-collapse: collapse;
+ margin: 0 0 2px !important;
+ }
+
+ th, td, table table td {
+ border: 1px solid #999;
+ text-align: right;
+ padding: 1px 3px !important;
+ white-space: nowrap;
+ }
+
+ tbody td {
+ border-bottom-color: #ccc;
+ }
+
+ tbody td[rowspan] {
+ border-bottom-color: #999;
+ }
+
+ tbody tr:last-child td {
+ border-bottom-color: #999;
+ }
+
+
+ .pie {
+ width: 200px;
+ display: inline-block;
+ margin: 20px;
+ }
+
+ .pie label {
+ font-weight: bold;
+ font-size: 14px;
+ display: block;
+ margin-bottom: 10px;
+ text-align: center;
+ }
+
+ .kpi {
+ display: inline-block;
+ margin: 80px 20px 20px;
+ vertical-align: top;
+ }
+
+ .kpi ul {
+ list-style: none;
+ }
+
+ .kpi li {
+ margin: 10px;
+ display: none;
+ }
+
+ .kpi big {
+ font-weight: bold;
+ }
+
+ #detail-bubble {
+ position: absolute;
+ opacity: 0;
+ visibility: hidden;
+ }
+
+ #detail-bubble.in {
+ opacity: 1;
+ visibility: visible;
+ transition: opacity 0.5s;
+ }
+
+ #detail-bubble > div {
+ border: 1px solid #ccc;
+ border-radius: 2px;
+ padding: 5px;
+ background: #fcfcfc;
+ }
+
+ #detail-bubble .head {
+ text-align: center;
+ white-space: nowrap;
+ position: relative;
+ }
+
+ #detail-bubble .head .dismiss {
+ top: 0;
+ right: 0;
+ width: 20px;
+ line-height: 20px;
+ text-align: center;
+ text-decoration: none;
+ font-weight: bold;
+ color: #000;
+ position: absolute;
+ font-size: 20px;
+ }
+
+ #detail-bubble .pie {
+ width: 100px;
+ margin: 5px;
+ }
+
+ #detail-bubble .kpi {
+ margin: 40px 5px 5px;
+ font-size: smaller;
+ text-align: left;
+ }
+
+ #detail-bubble .kpi ul {
+ margin: 0;
+ }
+
+ #bubble-arrow {
+ border: 1px solid #ccc;
+ border-width: 1px 0 0 1px;
+ background: #fcfcfc;
+ width: 15px;
+ height: 15px;
+ position: absolute;
+ left: 0;
+ top: -8px;
+ transform: rotate(45deg);
+ margin: 0 0 0 -8px;
+ }
+
+ tr.active > td {
+ border-bottom: 2px solid red;
+ }
+
+ tr.active > td.active {
+ border: 2px solid red;
+ border-bottom: none;
+ }
+
+ td.detail {
+ border: 2px solid red;
+ border-top: none;
+ opacity: 0;
+ transition: opacity 0.5s;
+ }
+
+ td.detail.in {
+ opacity: 1;
+ }
+
+ th.hostname,
+ td.hostname {
+ text-align: left;
+ }
+
+]] -%>
+
+<%+header%>
+
+
+
+
+
+<%:Netlink Bandwidth Monitor%>
+
+
+
+
+
+
Ã
+
+ Download
+
+
+
+ Upload
+
+
+
+
+ <%_Hostname: example.org %>
+ <%_Vendor: Example Corp. %>
+
+
+
+
+
+
+
+
+
+
+ <%:Select accounting period:%>
+
+
+
+
+
+
+
+
+
+
+ <%:Traffic / Host%>
+
+
+
+
+ <%:Connections / Host%>
+
+
+
+
+
+ <%_0 hosts%>
+ <%_0 download%>
+ <%_0 upload%>
+ <%_0 connections%>
+
+
+
+
+
+ <%:Host%>
+ <%:MAC%>
+ <%:Connections%>
+ <%:Download (Bytes / Packets)%>
+ <%:Upload (Bytes / Packets)%>
+
+
+
+
+
+
+
+ <%:Download / Application%>
+
+
+
+
+ <%:Upload / Application%>
+
+
+
+
+
+ <%_0 different application protocols%>
+ <%_0 cause the most download%>
+ <%_0 cause the most upload%>
+ <%_0 cause the most connections%>
+
+
+
+
+
+ <%:Application%>
+ <%:Connections%>
+ <%:Download (Bytes / Packets)%>
+ <%:Upload (Bytes / Packets)%>
+
+
+
+
+
+
+
+ <%:IPv4 vs. IPv6%>
+
+
+
+
+ <%:Dualstack enabled hosts%>
+
+
+
+
+
+ <%_0% IPv6 support rate among hosts%>
+ <%_0% of the total traffic is IPv6%>
+ <%_0B total IPv6 download%>
+ <%_0B total IPv6 upload%>
+
+
+
+
+
+ <%:Host%>
+ <%:MAC%>
+ <%:Family%>
+ <%:Download (Bytes / Packets)%>
+ <%:Upload (Bytes / Packets)%>
+
+
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-nlbwmon/po/ja/nlbwmon.po b/applications/luci-app-nlbwmon/po/ja/nlbwmon.po
new file mode 100644
index 0000000000..b5931e0dfe
--- /dev/null
+++ b/applications/luci-app-nlbwmon/po/ja/nlbwmon.po
@@ -0,0 +1,387 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"X-Generator: Poedit 2.0.3\n"
+
+msgid "%d IPv4-only hosts"
+msgstr "%d IPv4 éå®ãã¹ã"
+
+msgid "%d IPv6-only hosts"
+msgstr "%d IPv6 éå®ãã¹ã"
+
+msgid "%d dual-stack hosts"
+msgstr "%d ãã¥ã¢ã«ã¹ã¿ã㯠ãã¹ã"
+
+msgid "%s and %s"
+msgstr "%s, %s"
+
+msgid "%s, %s and %s"
+msgstr "%s, %s, %s"
+
+msgid "-1 - Restart every last day of month"
+msgstr "-1 - æã®æçµæ¥"
+
+msgid "-7 - Restart a week before end of month"
+msgstr "-7 - æã®æçµæ¥ã®ä¸é±éå"
+
+msgid "1 - Restart every 1st of month"
+msgstr "1 - æ¯æ1æ¥"
+
+msgid "10m - frequent commits at the expense of flash wear"
+msgstr "10m - ãã©ãã·ã¥åªä½ã¸ã®è² è·ãé«ãé »ç¹ãªã³ãããï¼10åï¼"
+
+msgid "12h - compromise between risk of data loss and flash wear"
+msgstr "12h - ãã¼ã¿æ¶å¤±ãªã¹ã¯ã¨ãã©ãã·ã¥åªä½ã¸ã®è² è·ã®å¦¥åç¹ï¼12æéï¼"
+
+msgid "24h - least flash wear at the expense of data loss risk"
+msgstr "24h - ãã¼ã¿æ¶å¤±ãªã¹ã¯ã¯é«ãããã©ãã·ã¥åªä½ã¸ã®è² è·ã¯æå°ï¼24æéï¼"
+
+msgid "30s - refresh twice per minute for reasonably current stats"
+msgstr "30s - ç¾å¨ã®ç¶æ
ã®ææ¡ã«é©åãª1åéã«2åã®ãªãã¬ãã·ã¥ï¼30ç§ï¼"
+
+msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
+msgstr ""
+
+msgid "60s - commit minutely, useful for non-flash storage"
+msgstr "60ç§ - 1åæ¯ã®ã³ããããéãã©ãã·ã¥ ã¹ãã¬ã¼ã¸ã«æç¨"
+
+msgid "0 connections"
+msgstr "0 æ¥ç¶æ°"
+
+msgid "0 hosts"
+msgstr "0 ãã¹ãæ°"
+
+msgid "0% IPv6 support rate among hosts"
+msgstr "0% å
¨ãã¹ãä¸ã® IPv6 ãµãã¼ãæ¯ç"
+
+msgid "0B total IPv6 download"
+msgstr "0B IPv6 ç·ãã¦ã³ãã¼ã"
+
+msgid "0% of the total traffic is IPv6"
+msgstr "0% å
¨ãã©ãã£ãã¯ä¸ã® IPv6 ã®å²å"
+
+msgid "0B total IPv6 upload"
+msgstr "0B IPv6 ç·ã¢ãããã¼ã"
+
+msgid "0 cause the most connections"
+msgstr "0 æ¥ç¶æ°ä¸ä½"
+
+msgid "0 cause the most download"
+msgstr "0 ãã¦ã³ãã¼ãä¸ä½"
+
+msgid "0 cause the most upload"
+msgstr "0 ã¢ãããã¼ãä¸ä½"
+
+msgid "0 different application protocols"
+msgstr "0 ã¢ããªã±ã¼ã·ã§ã³ ãããã³ã«æ°"
+
+msgid "0 download"
+msgstr "0 ãã¦ã³ãã¼ã"
+
+msgid "0 upload"
+msgstr "0 ã¢ãããã¼ã"
+
+msgid "Accounting period"
+msgstr "åéæé"
+
+msgid "Advanced Settings"
+msgstr "æ¡å¼µè¨å®"
+
+msgid "Application"
+msgstr "ã¢ããªã±ã¼ã·ã§ã³"
+
+msgid "Application Protocols"
+msgstr "ã¢ããªã±ã¼ã·ã§ã³ ãããã³ã«"
+
+msgid "Backup"
+msgstr "ããã¯ã¢ãã"
+
+msgid "Bandwidth Monitor"
+msgstr "帯åå¹
ã¢ãã¿ã¼"
+
+msgid "CSV, grouped by IP"
+msgstr "CSVï¼IP ã«ããã°ã«ã¼ãåï¼"
+
+msgid "CSV, grouped by MAC"
+msgstr "CSVï¼MAC ã«ããã°ã«ã¼ãåï¼"
+
+msgid "CSV, grouped by protocol"
+msgstr "CSVï¼ãããã³ã«ã«ããã°ã«ã¼ãåï¼"
+
+msgid ""
+"Changing the accounting interval type will invalidate existing databases!"
+"Download backup ."
+msgstr ""
+"æ¢åã®ãã¼ã¿ãã¼ã¹ã¨äºææ§ã®ç¡ãåéæéã®å½¢å¼ãé¸æããã¾ãããããã¯ã¢ããã®ãã¦ã³ãã¼ã "
+
+msgid ""
+"Choose \"Day of month\" to restart the accounting period monthly on a "
+"specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
+"accounting period exactly every N days, beginning at a given date."
+msgstr ""
+"ææ¯ã§è¨å®ããæ¥ä»ããã®ãã¼ã¿ã®è¨æ¸¬ãè¡ãã«ã¯ã \"æé\" ãé¸æãã¾ãï¼ä¾: "
+"æ¯æ3æ¥ï¼ãè¨å®ããæ¥æ°æ¯ã«ãã¼ã¿ã®åéãè¡ãã«ã¯ã\"ç¹å®ã®éé\" ãé¸æãã¾"
+"ããå¾è
ã®å ´åãæå®ãããæ¥ä»ããéå§ããã¾ãã"
+
+msgid "Commit interval"
+msgstr "ã³ãããéé"
+
+msgid "Compress database"
+msgstr "ãã¼ã¿ãã¼ã¹ã®å§ç¸®"
+
+msgid "Configuration"
+msgstr "è¨å®"
+
+msgid "Conn."
+msgstr "æ¥ç¶æ°"
+
+msgid "Connections"
+msgstr "æ¥ç¶æ°"
+
+msgid "Connections / Host"
+msgstr "ãã¹ãæ¯ã®æ¥ç¶æ°"
+
+msgid "Database directory"
+msgstr "ãã¼ã¿ãã¼ã¹ ãã£ã¬ã¯ããª"
+
+msgid ""
+"Database storage directory. One file per accounting period will be placed "
+"into this directory."
+msgstr ""
+"ãã¼ã¿ãã¼ã¹ã®ä¿åå
ãã£ã¬ã¯ããªã§ããè¨æ¸¬æéããã 1 ã¤ã®ãã¡ã¤ã«ããã®ãã£"
+"ã¬ã¯ããªã«é
ç½®ããã¾ãã"
+
+msgid "Day of month"
+msgstr "æé"
+
+msgid ""
+"Day of month to restart the accounting period. Use negative values to count "
+"towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
+"24th of Februrary."
+msgstr ""
+"æã®ä¸ã§æ°ããªåéæéãéå§ããæ¥ã§ããæã®æçµæ¥ããã®æ¥æ°ããã¤ãã¹å¤ã§æ"
+"å®ãããã¨ãã§ãã¾ãï¼ä¾: 7æ27æ¥ã¾ãã¯2æ24æ¥ã¯ \"-5\"ï¼ã"
+
+msgid "Display"
+msgstr "表示"
+
+msgid "Down. (Bytes / Pkts.)"
+msgstr "ãã¦ã³ãã¼ãï¼Bytes / Pkts.ï¼"
+
+msgid "Download (Bytes / Packets)"
+msgstr "ãã¦ã³ãã¼ãï¼Bytes / Packetsï¼"
+
+msgid "Download / Application"
+msgstr "ãã¦ã³ãã¼ã / ã¢ããªã±ã¼ã·ã§ã³"
+
+msgid "Download Database Backup"
+msgstr "ãã¼ã¿ãã¼ã¹ ããã¯ã¢ããã®ãã¦ã³ãã¼ã"
+
+msgid "Dualstack enabled hosts"
+msgstr "ãã¥ã¢ã«ã¹ã¿ã㯠ãã¹ã"
+
+msgid "Due date"
+msgstr "ææ¥"
+
+msgid "Export"
+msgstr "ã¨ã¯ã¹ãã¼ã"
+
+msgid "Family"
+msgstr "IP 種å¥"
+
+msgid "Fixed interval"
+msgstr "ç¹å®ã®éé"
+
+msgid "Force reloadâ¦"
+msgstr "å¼·å¶ãªãã¼ã..."
+
+msgid "General Settings"
+msgstr "å
¨è¬è¨å®"
+
+msgid "Generate Backup"
+msgstr "ããã¯ã¢ããã®ä½æ"
+
+msgid "Host"
+msgstr "ãã¹ã"
+
+msgid "Hostname: example.org "
+msgstr "ãã¹ãå: example.org "
+
+msgid "IPv4 vs. IPv6"
+msgstr "IPv4 åã³ IPv6"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Interval"
+msgstr "éé"
+
+msgid ""
+"Interval at which the temporary in-memory database is committed to the "
+"persistent database directory."
+msgstr ""
+"ã¡ã¢ãªã¼ä¸ã®ä¸æçãªãã¼ã¿ãã¼ã¹ãããæ°¸ç¶çãªãã¼ã¿ãã¼ã¹ ãã£ã¬ã¯ããªã¸ã®ã³"
+"ããããå®è¡ããééã§ãã"
+
+msgid ""
+"Interval at which traffic counters of still established connections are "
+"refreshed from netlink information."
+msgstr ""
+
+msgid "Invalid or empty backup archive"
+msgstr "ç¡å¹ã¾ãã¯ç©ºã®ããã¯ã¢ãã ã¢ã¼ã«ã¤ãã§ãã"
+
+msgid "JSON dump"
+msgstr "JSON ãã³ã"
+
+msgid "Length of accounting interval in days."
+msgstr "åéæéã®æ¥æ°ã§ãã"
+
+msgid "Local interfaces"
+msgstr "ãã¼ã«ã« ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Local subnets"
+msgstr "ãã¼ã«ã« ãµãããã"
+
+msgid "MAC"
+msgstr "MAC"
+
+msgid "Maximum entries"
+msgstr "æ大件æ°"
+
+msgid ""
+"Maximum number of accounting periods to keep, use zero to keep databases "
+"forever."
+msgstr ""
+"è¨æ¸¬ãã¼ã¿ãä¿æãããåéæéã®æ大åæ°ã§ãã '0' ãè¨å®ããå ´åãå
¨ãã¼ã¿ã"
+"ä¿æãã¾ãã"
+
+msgid "Netlink Bandwidth Monitor"
+msgstr "Netlink Bandwidth Monitor"
+
+msgid "Netlink Bandwidth Monitor - Backup / Restore"
+msgstr "Netlink Bandwidth Monitor - ããã¯ã¢ãã / 復å
"
+
+msgid "Netlink Bandwidth Monitor - Configuration"
+msgstr "Netlink Bandwidth Monitor - è¨å®"
+
+msgid "No data recorded yet."
+msgstr "ã¾ã ãã¼ã¿ãããã¾ããã"
+
+msgid "Only conntrack streams from or to any of these networks are counted."
+msgstr ""
+"é¸æããããããã¯ã¼ã¯ã«ããã conntrack ã¹ããªã¼ã ã®ã¿ãè¨æ¸¬ããã¾ãã"
+
+msgid "Only conntrack streams from or to any of these subnets are counted."
+msgstr "è¨å®ããããµããããã«ããã conntrack ã¹ããªã¼ã ã®ã¿ãè¨æ¸¬ããã¾ãã"
+
+msgid "Preallocate database"
+msgstr "ãã¼ã¿ãã¼ã¹ã®äºåå²å½"
+
+msgid "Protocol"
+msgstr "ãããã³ã«"
+
+msgid "Protocol Mapping"
+msgstr "ãããã³ã« ãããã³ã°"
+
+msgid ""
+"Protocol mappings to distinguish traffic types per host, one mapping per "
+"line. The first value specifies the IP protocol, the second value the port "
+"number and the third column is the name of the mapped protocol."
+msgstr ""
+"ãã¹ãæ¯ã®ãã©ãã£ãã¯å½¢å¼ãåºå¥ããããã®ãããã³ã« ãããã³ã°ã§ãä¸è¡ããã"
+"ä¸ã¤ã®ãããã³ã°ã追å ãã¾ããåã¨ã³ããªã¼ã®ä¸ã¤ç®ã®å¤ã¯ IP ãããã³ã«ãã2ã¤"
+"ç®ã®å¤ã¯ãã¼ãçªå·ã3ã¤ç®ã¯ãããã³ã°ããããããã³ã«ã®ååããããã表ãã¾"
+"ãã"
+
+msgid "Refresh interval"
+msgstr "ãªãã¬ãã·ã¥éé"
+
+msgid "Restore"
+msgstr "復å
"
+
+msgid "Restore Database Backup"
+msgstr "ãã¼ã¿ãã¼ã¹ã®å¾©å
"
+
+msgid "Select accounting period:"
+msgstr "åéæéãé¸æ:"
+
+msgid "Source IP"
+msgstr "ã¢ã¯ã»ã¹å
IP"
+
+msgid "Start date"
+msgstr "éå§æ¥"
+
+msgid "Start date of the first accounting period, e.g. begin of ISP contract."
+msgstr "ååã®ãã¼ã¿åéã®éå§æ¥ã§ãï¼ä¾: ISP å¥ç´ã®éå§æ¥ï¼ã"
+
+msgid "Stored periods"
+msgstr "ä¿åæé"
+
+msgid ""
+"The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
+"accounting program keeping track of bandwidth usage per host and protocol."
+msgstr ""
+"Netlink Bandwidth Monitor (nlbwmon) ã¯ã軽éãã¤ããã¹ãããããã³ã«æ¯ã«å¸¯å"
+"å¹
使ç¨éã®è¿½è·¡ãè¡ãå¹ççãªãã©ãã£ãã¯è¨æ¸¬ããã°ã©ã ã§ãã"
+
+msgid "The following database files have been restored: %s"
+msgstr "次ã®ãã¼ã¿ãã¼ã¹ ãã¡ã¤ã«ã復å
ããã¾ãã: %s"
+
+msgid ""
+"The maximum amount of entries that should be put into the database, setting "
+"the limit to 0 will allow databases to grow indefinitely."
+msgstr ""
+"ãã¼ã¿ãã¼ã¹ã«ä¿ç®¡ãããæ大件æ°ã§ãã '0' ãè¨å®ããå ´åãå¶éç¡ãã®ãã¼ã¿"
+"ãã¼ã¹ã®å¢å¤§ã許å¯ãã¾ãã"
+
+msgid "Traffic / Host"
+msgstr "ãã©ãã£ã㯠/ ãã¹ã"
+
+msgid "Traffic Distribution"
+msgstr "ãã©ãã£ãã¯å
訳"
+
+msgid "Up. (Bytes / Pkts.)"
+msgstr "ã¢ãããã¼ãï¼Bytes / Pkts.ï¼"
+
+msgid "Upload (Bytes / Packets)"
+msgstr "ã¢ãããã¼ãï¼Bytes / Packetsï¼"
+
+msgid "Upload / Application"
+msgstr "ã¢ãããã¼ã / ã¢ããªã±ã¼ã·ã§ã³"
+
+msgid "Vendor: Example Corp. "
+msgstr "ãã³ã: Example Corp. "
+
+msgid "Warning"
+msgstr "è¦å"
+
+msgid ""
+"Whether to gzip compress archive databases. Compressing the database files "
+"makes accessing old data slightly slower but helps to reduce storage "
+"requirements."
+msgstr ""
+"ãã¼ã¿ãã¼ã¹ã® gzip å§ç¸®ã¢ã¼ã«ã¤ãåã§ãããã¼ã¿ãã¼ã¹ ãã¡ã¤ã«ãå§ç¸®ããã¨å¤"
+"ããã¼ã¿ã¸ã®ã¢ã¯ã»ã¹ãå¤å°é
ããªãã¾ãããã¹ãã¬ã¼ã¸ä½¿ç¨éã®ä½æ¸ã«å½¹ç«ã¡ã¾"
+"ãã"
+
+msgid ""
+"Whether to preallocate the maximum possible database size in memory. This is "
+"mainly useful for memory constrained systems which might not be able to "
+"satisfy memory allocation after longer uptime periods."
+msgstr ""
+
+msgid "no traffic"
+msgstr "ãã©ãã£ãã¯ç¡ã"
+
+msgid "other"
+msgstr "ãã®ä»"
diff --git a/applications/luci-app-nlbwmon/po/templates/nlbwmon.pot b/applications/luci-app-nlbwmon/po/templates/nlbwmon.pot
new file mode 100644
index 0000000000..61d2230793
--- /dev/null
+++ b/applications/luci-app-nlbwmon/po/templates/nlbwmon.pot
@@ -0,0 +1,352 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "%d IPv4-only hosts"
+msgstr ""
+
+msgid "%d IPv6-only hosts"
+msgstr ""
+
+msgid "%d dual-stack hosts"
+msgstr ""
+
+msgid "%s and %s"
+msgstr ""
+
+msgid "%s, %s and %s"
+msgstr ""
+
+msgid "-1 - Restart every last day of month"
+msgstr ""
+
+msgid "-7 - Restart a week before end of month"
+msgstr ""
+
+msgid "1 - Restart every 1st of month"
+msgstr ""
+
+msgid "10m - frequent commits at the expense of flash wear"
+msgstr ""
+
+msgid "12h - compromise between risk of data loss and flash wear"
+msgstr ""
+
+msgid "24h - least flash wear at the expense of data loss risk"
+msgstr ""
+
+msgid "30s - refresh twice per minute for reasonably current stats"
+msgstr ""
+
+msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
+msgstr ""
+
+msgid "60s - commit minutely, useful for non-flash storage"
+msgstr ""
+
+msgid "0 connections"
+msgstr ""
+
+msgid "0 hosts"
+msgstr ""
+
+msgid "0% IPv6 support rate among hosts"
+msgstr ""
+
+msgid "0B total IPv6 download"
+msgstr ""
+
+msgid "0% of the total traffic is IPv6"
+msgstr ""
+
+msgid "0B total IPv6 upload"
+msgstr ""
+
+msgid "0 cause the most connections"
+msgstr ""
+
+msgid "0 cause the most download"
+msgstr ""
+
+msgid "0 cause the most upload"
+msgstr ""
+
+msgid "0 different application protocols"
+msgstr ""
+
+msgid "0 download"
+msgstr ""
+
+msgid "0 upload"
+msgstr ""
+
+msgid "Accounting period"
+msgstr ""
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Application"
+msgstr ""
+
+msgid "Application Protocols"
+msgstr ""
+
+msgid "Backup"
+msgstr ""
+
+msgid "Bandwidth Monitor"
+msgstr ""
+
+msgid "CSV, grouped by IP"
+msgstr ""
+
+msgid "CSV, grouped by MAC"
+msgstr ""
+
+msgid "CSV, grouped by protocol"
+msgstr ""
+
+msgid ""
+"Changing the accounting interval type will invalidate existing databases!"
+"Download backup ."
+msgstr ""
+
+msgid ""
+"Choose \"Day of month\" to restart the accounting period monthly on a "
+"specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
+"accounting period exactly every N days, beginning at a given date."
+msgstr ""
+
+msgid "Commit interval"
+msgstr ""
+
+msgid "Compress database"
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Conn."
+msgstr ""
+
+msgid "Connections"
+msgstr ""
+
+msgid "Connections / Host"
+msgstr ""
+
+msgid "Database directory"
+msgstr ""
+
+msgid ""
+"Database storage directory. One file per accounting period will be placed "
+"into this directory."
+msgstr ""
+
+msgid "Day of month"
+msgstr ""
+
+msgid ""
+"Day of month to restart the accounting period. Use negative values to count "
+"towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
+"24th of Februrary."
+msgstr ""
+
+msgid "Display"
+msgstr ""
+
+msgid "Down. (Bytes / Pkts.)"
+msgstr ""
+
+msgid "Download (Bytes / Packets)"
+msgstr ""
+
+msgid "Download / Application"
+msgstr ""
+
+msgid "Download Database Backup"
+msgstr ""
+
+msgid "Dualstack enabled hosts"
+msgstr ""
+
+msgid "Due date"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Family"
+msgstr ""
+
+msgid "Fixed interval"
+msgstr ""
+
+msgid "Force reloadâ¦"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "Generate Backup"
+msgstr ""
+
+msgid "Host"
+msgstr ""
+
+msgid "Hostname: example.org "
+msgstr ""
+
+msgid "IPv4 vs. IPv6"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "Interval"
+msgstr ""
+
+msgid ""
+"Interval at which the temporary in-memory database is committed to the "
+"persistent database directory."
+msgstr ""
+
+msgid ""
+"Interval at which traffic counters of still established connections are "
+"refreshed from netlink information."
+msgstr ""
+
+msgid "Invalid or empty backup archive"
+msgstr ""
+
+msgid "JSON dump"
+msgstr ""
+
+msgid "Length of accounting interval in days."
+msgstr ""
+
+msgid "Local interfaces"
+msgstr ""
+
+msgid "Local subnets"
+msgstr ""
+
+msgid "MAC"
+msgstr ""
+
+msgid "Maximum entries"
+msgstr ""
+
+msgid ""
+"Maximum number of accounting periods to keep, use zero to keep databases "
+"forever."
+msgstr ""
+
+msgid "Netlink Bandwidth Monitor"
+msgstr ""
+
+msgid "Netlink Bandwidth Monitor - Backup / Restore"
+msgstr ""
+
+msgid "Netlink Bandwidth Monitor - Configuration"
+msgstr ""
+
+msgid "No data recorded yet."
+msgstr ""
+
+msgid "Only conntrack streams from or to any of these networks are counted."
+msgstr ""
+
+msgid "Only conntrack streams from or to any of these subnets are counted."
+msgstr ""
+
+msgid "Preallocate database"
+msgstr ""
+
+msgid "Protocol"
+msgstr ""
+
+msgid "Protocol Mapping"
+msgstr ""
+
+msgid ""
+"Protocol mappings to distinguish traffic types per host, one mapping per "
+"line. The first value specifies the IP protocol, the second value the port "
+"number and the third column is the name of the mapped protocol."
+msgstr ""
+
+msgid "Refresh interval"
+msgstr ""
+
+msgid "Restore"
+msgstr ""
+
+msgid "Restore Database Backup"
+msgstr ""
+
+msgid "Select accounting period:"
+msgstr ""
+
+msgid "Source IP"
+msgstr ""
+
+msgid "Start date"
+msgstr ""
+
+msgid "Start date of the first accounting period, e.g. begin of ISP contract."
+msgstr ""
+
+msgid "Stored periods"
+msgstr ""
+
+msgid ""
+"The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
+"accounting program keeping track of bandwidth usage per host and protocol."
+msgstr ""
+
+msgid "The following database files have been restored: %s"
+msgstr ""
+
+msgid ""
+"The maximum amount of entries that should be put into the database, setting "
+"the limit to 0 will allow databases to grow indefinitely."
+msgstr ""
+
+msgid "Traffic / Host"
+msgstr ""
+
+msgid "Traffic Distribution"
+msgstr ""
+
+msgid "Up. (Bytes / Pkts.)"
+msgstr ""
+
+msgid "Upload (Bytes / Packets)"
+msgstr ""
+
+msgid "Upload / Application"
+msgstr ""
+
+msgid "Vendor: Example Corp. "
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+msgid ""
+"Whether to gzip compress archive databases. Compressing the database files "
+"makes accessing old data slightly slower but helps to reduce storage "
+"requirements."
+msgstr ""
+
+msgid ""
+"Whether to preallocate the maximum possible database size in memory. This is "
+"mainly useful for memory constrained systems which might not be able to "
+"satisfy memory allocation after longer uptime periods."
+msgstr ""
+
+msgid "no traffic"
+msgstr ""
+
+msgid "other"
+msgstr ""
diff --git a/applications/luci-app-nlbwmon/po/zh-cn/nlbwmon.po b/applications/luci-app-nlbwmon/po/zh-cn/nlbwmon.po
new file mode 100644
index 0000000000..54fb3f6498
--- /dev/null
+++ b/applications/luci-app-nlbwmon/po/zh-cn/nlbwmon.po
@@ -0,0 +1,366 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "%d IPv4-only hosts"
+msgstr "%d 个主æºä»
æ¯æ IPv4"
+
+msgid "%d IPv6-only hosts"
+msgstr "%d 个主æºä»
æ¯æ IPv6"
+
+msgid "%d dual-stack hosts"
+msgstr "%d 个ååè®®æ 主æº"
+
+msgid "%s and %s"
+msgstr "%s å %s"
+
+msgid "%s, %s and %s"
+msgstr "%s, %s å %s"
+
+msgid "-1 - Restart every last day of month"
+msgstr "-1 - æ¯æçæåä¸å¤©éæ°å¼å§"
+
+msgid "-7 - Restart a week before end of month"
+msgstr "-7 - æ¯æåºåä¸å¨éæ°å¼å§"
+
+msgid "1 - Restart every 1st of month"
+msgstr "1 - æ¯æç第ä¸å¤©éæ°å¼å§"
+
+msgid "10m - frequent commits at the expense of flash wear"
+msgstr "10m - é¢ç¹æ交ï¼éªåæèçå¼éä¹å¢å¤§"
+
+msgid "12h - compromise between risk of data loss and flash wear"
+msgstr "12h - 平衡ç»è®¡æ°æ®ä¸¢å¤±çé£é©ä»¥åéªå使ç¨å¯¿å½"
+
+msgid "24h - least flash wear at the expense of data loss risk"
+msgstr "24h - 以æ°æ®ä¸¢å¤±é£é©ç代价æ¢åæå°çéªåæè"
+
+msgid "30s - refresh twice per minute for reasonably current stats"
+msgstr "30s - æ¯åéå·æ°äºæ¬¡ä»¥è·å¾è¾åç¡®çå½åç»è®¡å¼"
+
+msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
+msgstr "5m - è¾å°å·æ°ä»¥é¿å
é¢ç¹æ¸
é¤è¿æ¥è·è¸ªè®¡æ°å¨"
+
+msgid "60s - commit minutely, useful for non-flash storage"
+msgstr "60s - æ¯åéæ交ï¼éç¨äºééªåç±»ååå¨"
+
+msgid "0 connections"
+msgstr "è¿æ¥ï¼0 "
+
+msgid "0 hosts"
+msgstr "主æºï¼0 "
+
+msgid "0% IPv6 support rate among hosts"
+msgstr "æ¯æ IPv6 ç主æºæ¯ä¾ï¼0% "
+
+msgid "0B total IPv6 download"
+msgstr "IPv6 æ»ä¸è½½éï¼0B "
+
+msgid "0% of the total traffic is IPv6"
+msgstr "IPv6 æµéæ¯ä¾ï¼0% "
+
+msgid "0B total IPv6 upload"
+msgstr "IPv6 æ»ä¸ä¼ éï¼0B "
+
+msgid "0 cause the most connections"
+msgstr "0 æ¯è¿æ¥æ°æå¤çåè®®"
+
+msgid "0 cause the most download"
+msgstr "0 æ¯ä¸è½½éæ大çåè®®"
+
+msgid "0 cause the most upload"
+msgstr "0 æ¯ä¸ä¼ éæ大çåè®®"
+
+msgid "0 different application protocols"
+msgstr "0 ç§ä¸åçåºç¨å±åè®®"
+
+msgid "0 download"
+msgstr "ä¸è½½ï¼0 "
+
+msgid "0 upload"
+msgstr "ä¸ä¼ ï¼0 "
+
+msgid "Accounting period"
+msgstr "ç»è®¡å¨æ"
+
+msgid "Advanced Settings"
+msgstr "é«çº§è®¾ç½®"
+
+msgid "Application"
+msgstr "åºç¨å±åè®®"
+
+msgid "Application Protocols"
+msgstr "åºç¨å±åè®®"
+
+msgid "Backup"
+msgstr "å¤ä»½"
+
+msgid "Bandwidth Monitor"
+msgstr "带宽çæ§"
+
+msgid "CSV, grouped by IP"
+msgstr "CSVï¼æ IP åç»"
+
+msgid "CSV, grouped by MAC"
+msgstr "CSVï¼æ MAC åç»"
+
+msgid "CSV, grouped by protocol"
+msgstr "CSVï¼æåè®®åç»"
+
+msgid ""
+"Changing the accounting interval type will invalidate existing databases!"
+"Download backup ."
+msgstr ""
+"æ´æ¹ç»è®¡å¨æç±»åä¼ä½¿ç°ææ°æ®åºæ æï¼ä¸è½½å¤ä»½"
+"a> ."
+
+msgid ""
+"Choose \"Day of month\" to restart the accounting period monthly on a "
+"specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
+"accounting period exactly every N days, beginning at a given date."
+msgstr ""
+"éæ©âæ¯æçæä¸å¤©âæ¥è®¾ç½®ç»è®¡å¨æçéå¯æ¶é´ï¼ä¾å¦ï¼æ¯ä¸ªæç第 3 天ãéæ©âåºå®å¨"
+"æâæ¥è®¾ç½®ä»ç»å®æ¥æå¼å§æ¯ N 天éå¯ç»è®¡å¨æã"
+
+msgid "Commit interval"
+msgstr "æ交é´é"
+
+msgid "Compress database"
+msgstr "å缩æ°æ®åº"
+
+msgid "Configuration"
+msgstr "é
ç½®"
+
+msgid "Conn."
+msgstr "è¿æ¥"
+
+msgid "Connections"
+msgstr "è¿æ¥"
+
+msgid "Connections / Host"
+msgstr "è¿æ¥ / 主æº"
+
+msgid "Database directory"
+msgstr "æ°æ®åºç®å½"
+
+msgid ""
+"Database storage directory. One file per accounting period will be placed "
+"into this directory."
+msgstr "æ°æ®åºåå¨ç®å½ãæ¯ä¸ªâç»è®¡å¨æâçæ件å°è¢«æ¾å°è¿ä¸ªç®å½ä¸ã"
+
+msgid "Day of month"
+msgstr "æ¯æçæä¸å¤©"
+
+msgid ""
+"Day of month to restart the accounting period. Use negative values to count "
+"towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
+"24th of Februrary."
+msgstr ""
+"æ¯ä¸ªæéå¯ç»è®¡å¨æçæ¥æã使ç¨è´æ°è¡¨ç¤ºä»æåºå¼å§è®¡ç®ï¼ä¾å¦ï¼\"-5\" å¯ä»¥è¡¨"
+"示 7 æ份ç 27 å·æè
2 æ份ç 24 å·ã"
+
+msgid "Display"
+msgstr "æ¾ç¤º"
+
+msgid "Down. (Bytes / Pkts.)"
+msgstr "ä¸è½½ï¼åè / æ°æ®å
ï¼"
+
+msgid "Download (Bytes / Packets)"
+msgstr "ä¸è½½ï¼åè / æ°æ®å
ï¼"
+
+msgid "Download / Application"
+msgstr "ä¸è½½ / åºç¨å±åè®®"
+
+msgid "Download Database Backup"
+msgstr "ä¸è½½æ°æ®åºå¤ä»½"
+
+msgid "Dualstack enabled hosts"
+msgstr "ååè®®æ 主æº"
+
+msgid "Due date"
+msgstr "éç½®æ¥æ"
+
+msgid "Export"
+msgstr "导åº"
+
+msgid "Family"
+msgstr "å议类å"
+
+msgid "Fixed interval"
+msgstr "åºå®å¨æ"
+
+msgid "Force reloadâ¦"
+msgstr "强å¶éæ°å è½½..."
+
+msgid "General Settings"
+msgstr "åºæ¬è®¾ç½®"
+
+msgid "Generate Backup"
+msgstr "çæå¤ä»½"
+
+msgid "Host"
+msgstr "主æº"
+
+msgid "Hostname: example.org "
+msgstr "主æºåï¼example.org "
+
+msgid "IPv4 vs. IPv6"
+msgstr "IPv4 ä¸ IPv6"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Interval"
+msgstr "å¨æ"
+
+msgid ""
+"Interval at which the temporary in-memory database is committed to the "
+"persistent database directory."
+msgstr "å°å
åä¸ç临æ¶æ°æ®åºæ交å°æä¹
æ§æ°æ®åºç®å½çé´éæ¶é´ã"
+
+msgid ""
+"Interval at which traffic counters of still established connections are "
+"refreshed from netlink information."
+msgstr "ä» netlink ä¿¡æ¯ä¸å·æ°â已建ç«è¿æ¥âçæµé计æ°å¨çé´éæ¶é´ã"
+
+msgid "Invalid or empty backup archive"
+msgstr "å¤ä»½åæ¡£æ ææ为空"
+
+msgid "JSON dump"
+msgstr "JSON è¾åº"
+
+msgid "Length of accounting interval in days."
+msgstr "ç»è®¡å¨æï¼å¤©ï¼ã"
+
+msgid "Local interfaces"
+msgstr "æ¬å°æ¥å£"
+
+msgid "Local subnets"
+msgstr "æ¬å°åç½"
+
+msgid "MAC"
+msgstr "MAC"
+
+msgid "Maximum entries"
+msgstr "æ大æ¡ç®"
+
+msgid ""
+"Maximum number of accounting periods to keep, use zero to keep databases "
+"forever."
+msgstr "ä¿ççç»è®¡å¨ææ°æ®åºçæ大æ°éï¼è®¾ç½® 0 表示ä¸éå¶ã"
+
+msgid "Netlink Bandwidth Monitor"
+msgstr "ç½ç»å¸¦å®½çè§å¨"
+
+msgid "Netlink Bandwidth Monitor - Backup / Restore"
+msgstr "ç½ç»å¸¦å®½çè§å¨ - å¤ä»½ / æ¢å¤"
+
+msgid "Netlink Bandwidth Monitor - Configuration"
+msgstr "ç½ç»å¸¦å®½çè§å¨ - é
ç½®"
+
+msgid "No data recorded yet."
+msgstr "ææ æ°æ®è®°å½ã"
+
+msgid "Only conntrack streams from or to any of these networks are counted."
+msgstr "ä»
ç»è®¡æ¥èªæç®æ 为è¿äºç½ç»æ¥å£çè¿æ¥æµéã"
+
+msgid "Only conntrack streams from or to any of these subnets are counted."
+msgstr "ä»
ç»è®¡æ¥èªæç®æ 为è¿äºåç½çè¿æ¥æµéã"
+
+msgid "Preallocate database"
+msgstr "é¢åé
æ°æ®åº"
+
+msgid "Protocol"
+msgstr "åè®®"
+
+msgid "Protocol Mapping"
+msgstr "åè®®æ å°"
+
+msgid ""
+"Protocol mappings to distinguish traffic types per host, one mapping per "
+"line. The first value specifies the IP protocol, the second value the port "
+"number and the third column is the name of the mapped protocol."
+msgstr ""
+"åè®®æ å°ç¨äºåºåæµéç±»åï¼æ¯è¡ä¸æ¡ã第ä¸ä¸ªå¼æå® IP å议类åï¼ç¬¬äºä¸ªå¼æ¯"
+"端å£å·ï¼ç¬¬ä¸ä¸ªå¼æ¯æ å°çåè®®å称ã"
+
+msgid "Refresh interval"
+msgstr "å·æ°é´é"
+
+msgid "Restore"
+msgstr "æ¢å¤"
+
+msgid "Restore Database Backup"
+msgstr "æ¢å¤æ°æ®åºå¤ä»½"
+
+msgid "Select accounting period:"
+msgstr "éæ©ç»è®¡å¨æï¼"
+
+msgid "Source IP"
+msgstr "æº IP"
+
+msgid "Start date"
+msgstr "èµ·å§æ¥æ"
+
+msgid "Start date of the first accounting period, e.g. begin of ISP contract."
+msgstr "第ä¸ä¸ªç»è®¡å¨æçèµ·å§æ¥æï¼ä¾å¦ï¼ISP å约çèµ·å§æ¥æã"
+
+msgid "Stored periods"
+msgstr "å¨åå¨æ"
+
+msgid ""
+"The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
+"accounting program keeping track of bandwidth usage per host and protocol."
+msgstr ""
+"ç½ç»å¸¦å®½çè§å¨ï¼nlbwmonï¼æ¯ä¸ä¸ªè½»éãé«æçæµéç»è®¡ç¨åºï¼å¯ä»¥ç»è®¡æ¯ä¸ªä¸»æºå"
+"åè®®ç带宽使ç¨æ
åµã"
+
+msgid "The following database files have been restored: %s"
+msgstr "以ä¸æ°æ®åºæ件已æ¢å¤ï¼%s"
+
+msgid ""
+"The maximum amount of entries that should be put into the database, setting "
+"the limit to 0 will allow databases to grow indefinitely."
+msgstr "æ°æ®åºä¸çæ大æ¡ç®æ°é, 设置为 0 å°å
许æ°æ®åºæ éå¢é¿ã"
+
+msgid "Traffic / Host"
+msgstr "æµé / 主æº"
+
+msgid "Traffic Distribution"
+msgstr "æµéåå¸"
+
+msgid "Up. (Bytes / Pkts.)"
+msgstr "ä¸ä¼ ï¼åè / æ°æ®å
ï¼"
+
+msgid "Upload (Bytes / Packets)"
+msgstr "ä¸ä¼ ï¼åè / æ°æ®å
ï¼"
+
+msgid "Upload / Application"
+msgstr "ä¸ä¼ / åºç¨å±åè®®"
+
+msgid "Vendor: Example Corp. "
+msgstr "ä¾åºå: Example Corp. "
+
+msgid "Warning"
+msgstr "è¦å"
+
+msgid ""
+"Whether to gzip compress archive databases. Compressing the database files "
+"makes accessing old data slightly slower but helps to reduce storage "
+"requirements."
+msgstr ""
+"æ¯å¦ä½¿ç¨ gzip å缩æ°æ®åºåæ¡£ãå缩æ°æ®åºæ件ä¼ä½¿è®¿é®æ§æ°æ®ç¨å¾®æ
¢ä¸äº, ä½æå©"
+"äºåå°åå¨å ç¨ç©ºé´ã"
+
+msgid ""
+"Whether to preallocate the maximum possible database size in memory. This is "
+"mainly useful for memory constrained systems which might not be able to "
+"satisfy memory allocation after longer uptime periods."
+msgstr ""
+"æ¯å¦é¢å
åé
æ°æ®åºæ大å¯è½å ç¨çå
å大å°ãè¿ä¸»è¦éç¨äºå
åè¾å°ç³»ç»ï¼è¿äºç³»ç»"
+"å¨é¿æ¶é´è¿è¡ä¹åå¯è½æ æ³æ»¡è¶³æ°æ®åºçå
åéæ±ã"
+
+msgid "no traffic"
+msgstr "æ æµéæ°æ®"
+
+msgid "other"
+msgstr "å
¶ä»"
diff --git a/applications/luci-app-nlbwmon/root/etc/uci-defaults/40_luci-nlbwmon b/applications/luci-app-nlbwmon/root/etc/uci-defaults/40_luci-nlbwmon
new file mode 100644
index 0000000000..c9771779ee
--- /dev/null
+++ b/applications/luci-app-nlbwmon/root/etc/uci-defaults/40_luci-nlbwmon
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@nlbwmon[-1]
+ add ucitrack nlbwmon
+ set ucitrack.@nlbwmon[-1].init=nlbwmon
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-noddos/Makefile b/applications/luci-app-noddos/Makefile
new file mode 100644
index 0000000000..4c2b9044a9
--- /dev/null
+++ b/applications/luci-app-noddos/Makefile
@@ -0,0 +1,18 @@
+# Copyright (C) 2017 Steven Hessing (steven.hessing@gmail.com)
+# Based on initial implementation by Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPLv3
+PKG_MAINTAINER:=Steven Hessing
+
+LUCI_TITLE:=Noddos Service Web UI
+LUCI_DESCRIPTION:=Provides Web UI for Noddos service.
+LUCI_DEPENDS:=+luci +noddos
+LUCI_PKGARCH:=all
+PKG_RELEASE:=1
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails b/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails
new file mode 100755
index 0000000000..6ff4ce59f2
--- /dev/null
+++ b/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails
@@ -0,0 +1,91 @@
+#!/usr/bin/lua
+
+-- clientdetails.lua : Provides details about client devices discovered by Noddos
+-- Copyright (C) 2017 Steven Hessing (steven.hessing@gmail.com)
+-- This is free software, licensed under the GNU General Public License v3.
+
+require "nixio.fs"
+
+print ("Content-type: Text/html\n")
+local info = os.getenv("QUERY_STRING")
+
+local params = {}
+local echo = {}
+
+function print_row(key)
+ print ("")
+ print (key)
+ print (" ")
+ print (device[key])
+ print (" ")
+end
+
+for name, value in string.gmatch(info .. '&', '(.-)%=(.-)%&') do
+ value = string.gsub(value , '%+', ' ')
+ value = string.gsub(value , '%%(%x%x)', function(dpc)
+ return string.char(tonumber(dpc,16))
+ end )
+ params[name] = value
+
+ value = string.gsub(value, "%&", "&")
+ value = string.gsub(value, "%<", "<")
+ value = string.gsub(value, '%"', """)
+ echo[name] = value
+end
+
+device = {}
+profile = {}
+
+if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then
+ io.input("/var/lib/noddos/DeviceDump.json")
+ local t = io.read("*all")
+ local json = require "luci.jsonc"
+ local devdump = json.parse(t)
+ for i, v in ipairs(devdump) do
+ if v.MacAddress == params["mac"] then
+ device = v
+ end
+ end
+ io.input("/var/lib/noddos/DeviceProfiles.json")
+ t = io.read("*all")
+ local temp = json.parse(t)
+ for i, v in ipairs(temp) do
+ if device.DeviceProfileUuid == v.DeviceProfileUuid then
+ profile = v
+ end
+ end
+end
+pagetop = [[
+
+
+ Client Details by Noddos
+
+
+
+
+
+
+
+
+
+ Client Details
+]]
+print (pagetop)
+
+if params["mac"] ~= nil then
+ print ("")
+ for i, key in ipairs{"MacAddress", "Ipv4Address", "Ipv6Address", "DeviceProfileUuid", "DhcpHostname", "DhcpVendor", "SsdpFriendlyName", "SsdpLocation", "SsdpManufacturer", "SsdpModelName", "SsdpModelUrl", "SsdpSerialNumber", "SsdpServer","SsdpUserAgent", "MdnsDeviceUrl", "MdnsHw", "MdnsManufacturer", "MdnsModelName", "MdnsOs", "WsDiscoveryTypes", "WsDiscoveryXaddrs", "DnsQueries"} do
+ print_row(key)
+ end
+ print ("
")
+else
+ print ("no mac address specified")
+end
+
+pagebase = [[
+Client Details by
+Noddos
+
+]]
+
+print (pagebase)
diff --git a/applications/luci-app-noddos/luasrc/controller/noddos.lua b/applications/luci-app-noddos/luasrc/controller/noddos.lua
new file mode 100644
index 0000000000..c45e24bc97
--- /dev/null
+++ b/applications/luci-app-noddos/luasrc/controller/noddos.lua
@@ -0,0 +1,10 @@
+-- Copyright 2017 Steven Hessing (steven.hessing@gmail.com)
+-- This is free software, licensed under the GNU General Public License v3.
+-- /usr/lib/lua/luci/controller/noddos.lua
+
+module("luci.controller.noddos", package.seeall)
+function index()
+ entry({"admin", "status", "noddos"}, template("noddos/clients"), _("Noddos Clients"), 3)
+ entry({"admin", "network", "noddos"}, cbi("noddos"), _("Noddos Client Tracking"), 55)
+end
+
diff --git a/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua b/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua
new file mode 100644
index 0000000000..3abb73bc66
--- /dev/null
+++ b/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua
@@ -0,0 +1,46 @@
+-- Copyright 2017 Steven Hessing (steven.hessing@gmail.com)
+-- This is free software, licensed under the GNU General Public License v3.
+-- /usr/lib/lua/luci/model/cbi/noddos.lua
+
+m = Map("noddos", translate("Client Firewall"),
+ translate("Noddos controls traffic from the clients on your network to the Internet. " ..
+ "This helps protect your network, the bandwidth on your Internet connection and " ..
+ "the Internet"))
+
+s = m:section(TypedSection, "noddos", translate("Server Settings"))
+s.anonymous = true
+s.addremove = false
+
+s:option(Flag, "rfc1918",
+ translate("Private networks"),
+ translate("Report traffic to private networks (10/8, 172.16/12, 192.168/16, fd75:6b5d:352c:ed05::/64)")).default=false
+
+s:option(Flag, "upload",
+ translate("Upload anonimized traffic stats"),
+ translate("Uploading your statistics helps improving device recognition " ..
+ "and discovering hacked devices & botnets"))
+
+o = s:option(DynamicList, "whitelistipv4",
+ translate("Excluded IPv4 addresses"),
+ translate("Don't monitor these IPv4 addresses"))
+o.optional = true
+o.placeholder = "127.0.0.1 192.168.1.1"
+o.delimiter = " "
+o.datatype="list(ip4addr)"
+
+o = s:option(DynamicList, "whitelistipv6",
+ translate("Excluded IPv6 addresses"),
+ translate("Don't monitor these IPv6 addresses"))
+o.optional = true
+o.delimiter = " "
+o.datatype="list(ip6addr)"
+
+o = s:option(DynamicList, "whitelistmac",
+ translate("Excluded MAC addresses"),
+ translate("Don't monitor these MAC addresses"))
+o.optional = true
+o.delimiter = " "
+o.datatype="list(macaddr)"
+
+return m
+
diff --git a/applications/luci-app-noddos/luasrc/view/noddos/clients.htm b/applications/luci-app-noddos/luasrc/view/noddos/clients.htm
new file mode 100644
index 0000000000..f2fb9312a7
--- /dev/null
+++ b/applications/luci-app-noddos/luasrc/view/noddos/clients.htm
@@ -0,0 +1,111 @@
+<%#
+ Copyright (C) 2017 Steven Hessing
+ This is free software, licensed under the GNU General Public License v3.
+ /usr/lib/lua/luci/view/clients.htm
+-%>
+
+<%-
+
+ require "nixio.fs"
+ require "os"
+
+ local last_modified = ""
+ local style = true
+ local v
+ local devdump
+
+ if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then
+ last_modified = os.date("%c", nixio.fs.stat("/var/lib/noddos/DeviceDump.json")['mtime'])
+ io.input("/var/lib/noddos/DeviceDump.json")
+ t = io.read("*all")
+ devdump = luci.jsonc.parse(t)
+ io.input("/var/lib/noddos/DeviceProfiles.json")
+ t = io.read("*all")
+ temp = luci.jsonc.parse(t)
+ devicevalues = {}
+ for i, v in ipairs(temp) do
+ devicevalues[v.DeviceProfileUuid] = v
+ end
+ end
+-%>
+
+<%+header%>
+
+
+
<%:Clients%>
+
<%:The following clients have been discovered on the network. The last discovery was completed at %><%=last_modified%>
+
+
+ <%:Recognized Clients%>
+
+
+
+ <%:Hostname%>
+ <%:IPv4%>
+ <%:MAC%>
+ <%:Manufacturer%>
+ <%:Model%>
+ <%:Class%>
+
+
+ <%
+ for i,v in ipairs(devdump) do
+ if v.DeviceProfileUuid ~= "" then
+ %>
+
+ <%=v.Hostname%>
+ <%=v.Ipv4Address%>
+ <%=v.MacAddress%>
+ <%=devicevalues[v.DeviceProfileUuid].Manufacturer%>
+ <%=devicevalues[v.DeviceProfileUuid].Model%>
+ <%=devicevalues[v.DeviceProfileUuid].ThingClass%>
+
+ <%
+ style=false
+ end
+ end
+ %>
+
+
+
+
+
+ <%:Unrecognized Clients%>
+
+
+
+ <%:Hostname%>
+ <%:IPv4%>
+ <%:MAC%>
+ <%:Manufacturer%>
+ <%:Model%>
+ <%:DhcpVendor%>
+ <%:DhcpHostname%>
+
+
+ <%
+ for i,v in ipairs(devdump) do
+ if v.DeviceProfileUuid == "" then
+ %>
+
+ <%=v.Hostname%>
+ <%=v.Ipv4Address%>
+ <%=v.MacAddress%>
+ <%=v.SsdpManufacturer%>
+ <%=v.SsdpModelName%>
+ <%=v.DhcpVendor1%>
+ <%=v.DhcpHostname%>
+
+ <%
+ style=false
+ end
+ end
+ %>
+
+
+
+
+
+
+<%+footer%>
+
diff --git a/applications/luci-app-noddos/po/ja/noddos.po b/applications/luci-app-noddos/po/ja/noddos.po
new file mode 100644
index 0000000000..c6b461747f
--- /dev/null
+++ b/applications/luci-app-noddos/po/ja/noddos.po
@@ -0,0 +1,111 @@
+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.0.4\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "Class"
+msgstr "ã¯ã©ã¹"
+
+msgid "Client Firewall"
+msgstr "ã¯ã©ã¤ã¢ã³ã ãã¡ã¤ã¢ã¦ã©ã¼ã«"
+
+msgid "Clients"
+msgstr "ã¯ã©ã¤ã¢ã³ã"
+
+msgid "DhcpHostname"
+msgstr "DHCP ãã¹ãå"
+
+msgid "DhcpVendor"
+msgstr "DHCP ãã³ãã¼"
+
+msgid "Don't monitor these IPv4 addresses"
+msgstr "ãããã® IPv4 ã¢ãã¬ã¹ãç£è¦ãã¾ããã"
+
+msgid "Don't monitor these IPv6 addresses"
+msgstr "ãããã® IPv6 ã¢ãã¬ã¹ãç£è¦ãã¾ããã"
+
+msgid "Don't monitor these MAC addresses"
+msgstr "ãããã® MAC ã¢ãã¬ã¹ãç£è¦ãã¾ããã"
+
+msgid "Excluded IPv4 addresses"
+msgstr "é¤å¤ãã IPv4 ã¢ãã¬ã¹"
+
+msgid "Excluded IPv6 addresses"
+msgstr "é¤å¤ãã IPv6 ã¢ãã¬ã¹"
+
+msgid "Excluded MAC addresses"
+msgstr "é¤å¤ãã MAC ã¢ãã¬ã¹"
+
+msgid "Hostname"
+msgstr "ãã¹ãå"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "MAC"
+msgstr "MAC"
+
+msgid "Manufacturer"
+msgstr "製é å
"
+
+msgid "Model"
+msgstr "ã¢ãã«"
+
+msgid "Noddos Client Tracking"
+msgstr "Noddos ã¯ã©ã¤ã¢ã³ã ãã©ããã³ã°"
+
+msgid "Noddos Clients"
+msgstr "Noddos ã¯ã©ã¤ã¢ã³ã"
+
+msgid ""
+"Noddos controls traffic from the clients on your network to the Internet. "
+"This helps protect your network, the bandwidth on your Internet connection "
+"and the Internet"
+msgstr ""
+"Noddos ã¯ããããã¯ã¼ã¯å
ã®ã¯ã©ã¤ã¢ã³ãããã¤ã³ã¿ã¼ãããã¸ã®ãã©ãã£ãã¯ãå¶"
+"御ãã¾ããããã¯ããããã¯ã¼ã¯ã¨ã¤ã³ã¿ã¼ãããæ¥ç¶ã®å¸¯åå¹
ãã¤ã³ã¿ã¼ãããã®"
+"ä¿è·ã«å½¹ç«ã¡ã¾ãã"
+
+msgid "Private networks"
+msgstr "ãã©ã¤ãã¼ã ãããã¯ã¼ã¯"
+
+msgid "Recognized Clients"
+msgstr "èå¥æ¸ã¯ã©ã¤ã¢ã³ã"
+
+msgid ""
+"Report traffic to private networks (10/8, 172.16/12, 192.168/16, "
+"fd75:6b5d:352c:ed05::/64)"
+msgstr ""
+"ãã©ã¤ãã¼ã ãããã¯ã¼ã¯ã¸ã®ãã©ãã£ãã¯ã«ã¤ãã¦ã®ã¬ãã¼ãï¼10/8, "
+"172.16/12, 192.168/16, fd75:6b5d:352c:ed05::/64ï¼"
+
+msgid "Server Settings"
+msgstr "ãµã¼ãã¼è¨å®"
+
+msgid ""
+"The following clients have been discovered on the network. The last "
+"discovery was completed at"
+msgstr ""
+"以ä¸ã®ã¯ã©ã¤ã¢ã³ãããããã¯ã¼ã¯å
ã§è¦ã¤ããã¾ãããæ¢ç´¢ã®æçµå®è¡æ¥æ:"
+
+msgid "Unrecognized Clients"
+msgstr "æªèå¥ã¯ã©ã¤ã¢ã³ã"
+
+msgid "Upload anonimized traffic stats"
+msgstr "å¿åãã©ãã£ãã¯ç¶æ³ã®ã¢ãããã¼ã"
+
+msgid ""
+"Uploading your statistics helps improving device recognition and discovering "
+"hacked devices & botnets"
+msgstr ""
+"ããã¤ã¹ã®èå¥ããããã¯ãããããã¤ã¹ã¨ããããããã®çºè¦ã®æ¹åã«å½¹ç«ã¦ãã"
+"ããçµ±è¨ãã¢ãããã¼ããã¾ãã"
diff --git a/applications/luci-app-noddos/po/templates/noddos.pot b/applications/luci-app-noddos/po/templates/noddos.pot
new file mode 100644
index 0000000000..69d135770b
--- /dev/null
+++ b/applications/luci-app-noddos/po/templates/noddos.pot
@@ -0,0 +1,92 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Class"
+msgstr ""
+
+msgid "Client Firewall"
+msgstr ""
+
+msgid "Clients"
+msgstr ""
+
+msgid "DhcpHostname"
+msgstr ""
+
+msgid "DhcpVendor"
+msgstr ""
+
+msgid "Don't monitor these IPv4 addresses"
+msgstr ""
+
+msgid "Don't monitor these IPv6 addresses"
+msgstr ""
+
+msgid "Don't monitor these MAC addresses"
+msgstr ""
+
+msgid "Excluded IPv4 addresses"
+msgstr ""
+
+msgid "Excluded IPv6 addresses"
+msgstr ""
+
+msgid "Excluded MAC addresses"
+msgstr ""
+
+msgid "Hostname"
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "MAC"
+msgstr ""
+
+msgid "Manufacturer"
+msgstr ""
+
+msgid "Model"
+msgstr ""
+
+msgid "Noddos Client Tracking"
+msgstr ""
+
+msgid "Noddos Clients"
+msgstr ""
+
+msgid ""
+"Noddos controls traffic from the clients on your network to the Internet. "
+"This helps protect your network, the bandwidth on your Internet connection "
+"and the Internet"
+msgstr ""
+
+msgid "Private networks"
+msgstr ""
+
+msgid "Recognized Clients"
+msgstr ""
+
+msgid ""
+"Report traffic to private networks (10/8, 172.16/12, 192.168/16, "
+"fd75:6b5d:352c:ed05::/64)"
+msgstr ""
+
+msgid "Server Settings"
+msgstr ""
+
+msgid ""
+"The following clients have been discovered on the network. The last "
+"discovery was completed at"
+msgstr ""
+
+msgid "Unrecognized Clients"
+msgstr ""
+
+msgid "Upload anonimized traffic stats"
+msgstr ""
+
+msgid ""
+"Uploading your statistics helps improving device recognition and discovering "
+"hacked devices & botnets"
+msgstr ""
diff --git a/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos b/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos
new file mode 100644
index 0000000000..17abbc41ca
--- /dev/null
+++ b/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Copyright (C) 2017 Steven Hessing (steven.hessing@live.com)
+# This is free software, licensed under the GNU General Public License v3
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@noddos[-1]
+ add ucitrack noddos
+ set ucitrack.@noddos[-1].init=noddos
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-olsr/po/pt-br/olsr.po b/applications/luci-app-olsr/po/pt-br/olsr.po
index 1461c1dd8b..499176c16b 100644
--- a/applications/luci-app-olsr/po/pt-br/olsr.po
+++ b/applications/luci-app-olsr/po/pt-br/olsr.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-06-21 19:36+0200\n"
-"Last-Translator: Ãder \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-20 18:01-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
msgid "Active MID announcements"
msgstr ""
@@ -59,7 +59,6 @@ msgstr ""
"Somente pode ser um endereço IPv4 ou IPv6 válidos ou um endereço 'padrão'"
# 20140621: edersg: tradução
-#, fuzzy
msgid "Can only be a valid IPv6 address or 'default'"
msgstr ""
"Somente pode ser um endereço IPv4 ou IPv6 válidos ou um endereço 'padrão'"
@@ -173,7 +172,6 @@ msgstr ""
"Validade do HNA "
-#, fuzzy
msgid "HNA6 Announcements"
msgstr ""
"Anúncios do reduzir LQ para todos os nós nesta interface em 20%: padrão 0.8"
# 20140621: edersg: tradução
-#, fuzzy
msgid ""
"Multiply routes with the factor given here. Allowed values are between 0.01 "
"and 1.0. It is only used when LQ-Level is greater than 0. Examples: HNA "
-#, fuzzy
msgid "OLSR - HNA6-Announcements"
msgstr ""
"OLSR - Anúncios HNA "
"local de 0.0.0.0/0, ::ffff:0:0/96 ou 2000::/3. O padrão é \"ambos\"."
-#, fuzzy
msgid ""
"Which kind of uplink is exported to the other mesh nodes. An uplink is "
"detected by looking for a local HNA6 ::ffff:0:0/96 or 2000::/3. Default "
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 1bbee83c35..dc7718217c 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
@@ -7,192 +7,725 @@ require("luci.model.uci")
local knownParams = {
--
- -- Widget Name Default(s) Description Option(s)
- --
+ --Widget
+ -- Name
+ -- Default(s)
+ -- Description
+ -- Option(s)
{ "Service", {
- -- initialisation and daemon options
- { ListValue, "verb", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, translate("Set output verbosity") },
- { Flag, "mlock", 0, translate("Disable Paging") },
- { Flag, "disable_occ", 0, translate("Disable options consistency check") },
- -- { Value, "user", "root", translate("Set UID to user") },
- -- { Value, "group", "root", translate("Set GID to group") },
- { Value, "cd", "/etc/openvpn", translate("Change to directory before initialization") },
- { Value, "chroot", "/var/run", translate("Chroot to directory after initialization") },
- -- { Value, "daemon", "Instance-Name", translate("Daemonize after initialization") },
- -- { Value, "syslog", "Instance-Name", translate("Output to syslog and do not daemonize") },
- { Flag, "passtos", 0, translate("TOS passthrough (applies to IPv4 only)") },
- -- { Value, "inetd", "nowait Instance-Name", translate("Run as an inetd or xinetd server") },
- { Value, "log", "/var/log/openvpn.log", translate("Write log to file") },
- { Value, "log_append", "/var/log/openvpn.log", translate("Append log to file") },
- { Flag, "suppress_timestamps", 0, translate("Don't log timestamps") },
- -- { Value, "writepid", "/var/run/openvpn.pid", translate("Write process ID to file") },
- { Value, "nice", 0, translate("Change process priority") },
- { Flag, "fast_io", 0, translate("Optimize TUN/TAP/UDP writes") },
- { Value, "echo", "some params echoed to log", translate("Echo parameters to log") },
- { ListValue, "remap_usr1", { "SIGHUP", "SIGTERM" }, translate("Remap SIGUSR1 signals") },
- { Value, "status", "/var/run/openvpn.status 5", translate("Write status to file every n seconds") },
- { Value, "status_version", { 1, 2 }, translate("Status file format version") }, -- status
- { Value, "mute", 5, translate("Limit repeated log messages") },
-
- { Value, "up", "/usr/bin/ovpn-up", translate("Shell cmd to execute after tun device open") },
- { Value, "up_delay", 5, translate("Delay tun/tap open and up script execution") },
- { Value, "down", "/usr/bin/ovpn-down", translate("Shell cmd to run after tun device close") },
- { Flag, "down_pre", 0, translate("Call down cmd/script before TUN/TAP close") },
- { Flag, "up_restart", 0, translate("Run up/down scripts for all restarts") },
- { Value, "route_up", "/usr/bin/ovpn-routeup", translate("Execute shell cmd after routes are added") },
- { Value, "ipchange", "/usr/bin/ovpn-ipchange", translate("Execute shell command on remote ip change"), { mode="p2p" } },
- { DynamicList, "setenv", { "VAR1 value1", "VAR2 value2" }, translate("Pass environment variables to script") },
- { Value, "tls_verify", "/usr/bin/ovpn-tlsverify", translate("Shell command to verify X509 name") },
- { Value, "client_connect", "/usr/bin/ovpn-clientconnect", translate("Run script cmd on client connection") },
- { Flag, "client_disconnect", 0, translate("Run script cmd on client disconnection") },
- { Value, "learn_address", "/usr/bin/ovpn-learnaddress", translate("Executed in server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table") },
- { Value, "auth_user_pass_verify", "/usr/bin/ovpn-userpass via-env", translate("Executed in server mode on new client connections, when the client is still untrusted") },
- { ListValue, "script_security", { 0, 1, 2, 3 }, translate("Policy level over usage of external programs and scripts") },
+ -- initialisation and daemon options
+ { ListValue,
+ "verb",
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
+ translate("Set output verbosity") },
+ { Flag,
+ "mlock",
+ 0,
+ translate("Disable Paging") },
+ { Flag,
+ "disable_occ",
+ 0,
+ translate("Disable options consistency check") },
+ -- { Value,
+ -- "user",
+ -- "root",
+ -- translate("Set UID to user") },
+ -- { Value,
+ -- "group",
+ -- "root",
+ -- translate("Set GID to group") },
+ { Value,
+ "cd",
+ "/etc/openvpn",
+ translate("Change to directory before initialization") },
+ { Value,
+ "chroot",
+ "/var/run",
+ translate("Chroot to directory after initialization") },
+ -- { Value,
+ -- "daemon",
+ -- "Instance-Name",
+ -- translate("Daemonize after initialization") },
+ -- { Value,
+ -- "syslog",
+ -- "Instance-Name",
+ -- translate("Output to syslog and do not daemonize") },
+ { Flag,
+ "passtos",
+ 0,
+ translate("TOS passthrough (applies to IPv4 only)") },
+ -- { Value,
+ -- "inetd",
+ -- "nowait Instance-Name",
+ -- translate("Run as an inetd or xinetd server") },
+ { Value,
+ "log",
+ "/var/log/openvpn.log",
+ translate("Write log to file") },
+ { Value,
+ "log_append",
+ "/var/log/openvpn.log",
+ translate("Append log to file") },
+ { Flag,
+ "suppress_timestamps",
+ 0,
+ translate("Don't log timestamps") },
+ -- { Value,
+ -- "writepid",
+ -- "/var/run/openvpn.pid",
+ -- translate("Write process ID to file") },
+ { Value,
+ "nice",
+ 0,
+ translate("Change process priority") },
+ { Flag,
+ "fast_io",
+ 0,
+ translate("Optimize TUN/TAP/UDP writes") },
+ { Value,
+ "echo",
+ "some params echoed to log",
+ translate("Echo parameters to log") },
+ { ListValue,
+ "remap_usr1",
+ { "SIGHUP", "SIGTERM" },
+ translate("Remap SIGUSR1 signals") },
+ { Value,
+ "status",
+ "/var/run/openvpn.status 5",
+ translate("Write status to file every n seconds") },
+ { Value,
+ "status_version",
+ { 1, 2 },
+ translate("Status file format version") }, -- status
+ { Value,
+ "mute",
+ 5,
+ translate("Limit repeated log messages") },
+ { Value,
+ "up",
+ "/usr/bin/ovpn-up",
+ translate("Shell cmd to execute after tun device open") },
+ { Value,
+ "up_delay",
+ 5,
+ translate("Delay tun/tap open and up script execution") },
+ { Value,
+ "down",
+ "/usr/bin/ovpn-down",
+ translate("Shell cmd to run after tun device close") },
+ { Flag,
+ "down_pre",
+ 0,
+ translate("Call down cmd/script before TUN/TAP close") },
+ { Flag,
+ "up_restart",
+ 0,
+ translate("Run up/down scripts for all restarts") },
+ { Value,
+ "route_up",
+ "/usr/bin/ovpn-routeup",
+ translate("Execute shell cmd after routes are added") },
+ { Value,
+ "ipchange",
+ "/usr/bin/ovpn-ipchange",
+ translate("Execute shell command on remote ip change"),
+ { mode="p2p" } },
+ { DynamicList,
+ "setenv",
+ { "VAR1 value1", "VAR2 value2" },
+ translate("Pass environment variables to script") },
+ { Value,
+ "tls_verify",
+ "/usr/bin/ovpn-tlsverify",
+ translate("Shell command to verify X509 name") },
+ { Value,
+ "client_connect",
+ "/usr/bin/ovpn-clientconnect",
+ translate("Run script cmd on client connection") },
+ { Flag,
+ "client_disconnect",
+ 0,
+ translate("Run script cmd on client disconnection") },
+ { Value,
+ "learn_address",
+ "/usr/bin/ovpn-learnaddress",
+ translate("Executed in server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table") },
+ { Value,
+ "auth_user_pass_verify",
+ "/usr/bin/ovpn-userpass via-env",
+ translate("Executed in server mode on new client connections, when the client is still untrusted") },
+ { ListValue,
+ "script_security",
+ { 0, 1, 2, 3 },
+ translate("Policy level over usage of external programs and scripts") },
} },
{ "Networking", {
- -- socket config
- { ListValue, "mode", { "p2p", "server" }, translate("Major mode") },
- { Value, "local", "0.0.0.0", translate("Local host name or ip address") },
- { Value, "port", 1194, translate("TCP/UDP port # for both local and remote") },
- { Value, "lport", 1194, translate("TCP/UDP port # for local (default=1194)") },
- { Value, "rport", 1194, translate("TCP/UDP port # for remote (default=1194)") },
- { Flag, "float", 0, translate("Allow remote to change its IP or port") },
- { Flag, "nobind", 0, translate("Do not bind to local address and port") },
-
- { Value, "dev", "tun0", translate("tun/tap device") },
- { ListValue, "dev_type", { "tun", "tap" }, translate("Type of used device") },
- { Value, "dev_node", "/dev/net/tun", translate("Use tun/tap device node") },
- { Flag, "tun_ipv6", 0, translate("Make tun device IPv6 capable") },
-
- { Value, "ifconfig", "10.200.200.3 10.200.200.1", translate("Set tun/tap adapter parameters") },
- { Flag, "ifconfig_noexec", 0, translate("Don't actually execute ifconfig") },
- { Flag, "ifconfig_nowarn", 0, translate("Don't warn on ifconfig inconsistencies") },
-
- { DynamicList, "route", "10.123.0.0 255.255.0.0", translate("Add route after establishing connection") },
- { Value, "route_gateway", "10.234.1.1", translate("Specify a default gateway for routes") },
- { Value, "route_delay", 0, translate("Delay n seconds after connection") },
- { Flag, "route_noexec", 0, translate("Don't add routes automatically") },
- { Flag, "route_nopull", 0, translate("Don't pull routes automatically") },
-
- { ListValue, "mtu_disc", { "yes", "maybe", "no" }, translate("Enable Path MTU discovery") },
- { Flag, "mtu_test", 0, translate("Empirically measure MTU") },
- { ListValue, "comp_lzo", { "yes", "no", "adaptive" }, translate("Use fast LZO compression") },
- { Flag, "comp_noadapt", 0, translate("Don't use adaptive lzo compression"), { comp_lzo=1 } },
- { Value, "link_mtu", 1500, translate("Set TCP/UDP MTU") },
- { Value, "tun_mtu", 1500, translate("Set tun/tap device MTU") },
- { Value, "tun_mtu_extra", 1500, translate("Set tun/tap device overhead") },
- { Value, "fragment", 1500, translate("Enable internal datagram fragmentation"), { proto="udp" } },
- { Value, "mssfix", 1500, translate("Set upper bound on TCP MSS"), { proto="udp" } },
- { Value, "sndbuf", 65536, translate("Set the TCP/UDP send buffer size") },
- { Value, "rcvbuf", 65536, translate("Set the TCP/UDP receive buffer size") },
- { Value, "txqueuelen", 100, translate("Set tun/tap TX queue length") },
- { Value, "shaper", 10240, translate("Shaping for peer bandwidth") },
-
- { Value, "inactive", 240, translate("tun/tap inactivity timeout") },
- { Value, "keepalive", "10 60", translate("Helper directive to simplify the expression of --ping and --ping-restart in server mode configurations") },
- { Value, "ping", 30, translate("Ping remote every n seconds over TCP/UDP port") },
- { Value, "ping_exit", 120, translate("Remote ping timeout") },
- { Value, "ping_restart", 60, translate("Restart after remote ping timeout") },
- { Flag, "ping_timer_rem", 0, translate("Only process ping timeouts if routes exist") },
-
- { Flag, "persist_tun", 0, translate("Keep tun/tap device open on restart") },
- { Flag, "persist_key", 0, translate("Don't re-read key on restart") },
- { Flag, "persist_local_ip", 0, translate("Keep local IP address on restart") },
- { Flag, "persist_remote_ip", 0, translate("Keep remote IP address on restart") },
-
- -- management channel
- { Value, "management", "127.0.0.1 31194 /etc/openvpn/mngmt-pwds", translate("Enable management interface on IP port ") },
- { Flag, "management_query_passwords", 0, translate("Query management channel for private key") }, -- management
- { Flag, "management_hold", 0, translate("Start OpenVPN in a hibernating state") }, -- management
- { Value, "management_log_cache", 100, translate("Number of lines for log file history") }, -- management
- { ListValue, "topology", { "net30", "p2p", "subnet" }, translate("'net30', 'p2p', or 'subnet'"), {dev_type="tun" } },
+ -- socket config
+ { ListValue,
+ "mode",
+ { "p2p", "server" },
+ translate("Major mode") },
+ { Value,
+ "local",
+ "0.0.0.0",
+ translate("Local host name or ip address") },
+ { Value,
+ "port",
+ 1194,
+ translate("TCP/UDP port # for both local and remote") },
+ { Value,
+ "lport",
+ 1194,
+ translate("TCP/UDP port # for local (default=1194)") },
+ { Value,
+ "rport",
+ 1194,
+ translate("TCP/UDP port # for remote (default=1194)") },
+ { Flag,
+ "float",
+ 0,
+ translate("Allow remote to change its IP or port") },
+ { Flag,
+ "nobind",
+ 0,
+ translate("Do not bind to local address and port") },
+ { Value,
+ "dev",
+ "tun0",
+ translate("tun/tap device") },
+ { ListValue,
+ "dev_type",
+ { "tun", "tap" },
+ translate("Type of used device") },
+ { Value,
+ "dev_node",
+ "/dev/net/tun",
+ translate("Use tun/tap device node") },
+ { Flag,
+ "tun_ipv6",
+ 0,
+ translate("Make tun device IPv6 capable") },
+ { Value,
+ "ifconfig",
+ "10.200.200.3 10.200.200.1",
+ translate("Set tun/tap adapter parameters") },
+ { Flag,
+ "ifconfig_noexec",
+ 0,
+ translate("Don't actually execute ifconfig") },
+ { Flag,
+ "ifconfig_nowarn",
+ 0,
+ translate("Don't warn on ifconfig inconsistencies") },
+ { DynamicList,
+ "route",
+ "10.123.0.0 255.255.0.0",
+ translate("Add route after establishing connection") },
+ { Value,
+ "route_gateway",
+ "10.234.1.1",
+ translate("Specify a default gateway for routes") },
+ { Value,
+ "route_delay",
+ 0,
+ translate("Delay n seconds after connection") },
+ { Flag,
+ "route_noexec",
+ 0,
+ translate("Don't add routes automatically") },
+ { Flag,
+ "route_nopull",
+ 0,
+ translate("Don't pull routes automatically") },
+ { ListValue,
+ "mtu_disc",
+ { "yes", "maybe", "no" },
+ translate("Enable Path MTU discovery") },
+ { Flag,
+ "mtu_test",
+ 0,
+ translate("Empirically measure MTU") },
+ { ListValue,
+ "comp_lzo",
+ { "yes", "no", "adaptive" },
+ translate("Use fast LZO compression") },
+ { Flag,
+ "comp_noadapt",
+ 0,
+ translate("Don't use adaptive lzo compression"),
+ { comp_lzo=1 } },
+ { Value,
+ "link_mtu",
+ 1500,
+ translate("Set TCP/UDP MTU") },
+ { Value,
+ "tun_mtu",
+ 1500,
+ translate("Set tun/tap device MTU") },
+ { Value,
+ "tun_mtu_extra",
+ 1500,
+ translate("Set tun/tap device overhead") },
+ { Value,
+ "fragment",
+ 1500,
+ translate("Enable internal datagram fragmentation"),
+ { proto="udp" } },
+ { Value,
+ "mssfix",
+ 1500,
+ translate("Set upper bound on TCP MSS"),
+ { proto="udp" } },
+ { Value,
+ "sndbuf",
+ 65536,
+ translate("Set the TCP/UDP send buffer size") },
+ { Value,
+ "rcvbuf",
+ 65536,
+ translate("Set the TCP/UDP receive buffer size") },
+ { Value,
+ "txqueuelen",
+ 100,
+ translate("Set tun/tap TX queue length") },
+ { Value,
+ "shaper",
+ 10240,
+ translate("Shaping for peer bandwidth") },
+ { Value,
+ "inactive",
+ 240,
+ translate("tun/tap inactivity timeout") },
+ { Value,
+ "keepalive",
+ "10 60",
+ translate("Helper directive to simplify the expression of --ping and --ping-restart in server mode configurations") },
+ { Value,
+ "ping",
+ 30,
+ translate("Ping remote every n seconds over TCP/UDP port") },
+ { Value,
+ "ping_exit",
+ 120,
+ translate("Remote ping timeout") },
+ { Value,
+ "ping_restart",
+ 60,
+ translate("Restart after remote ping timeout") },
+ { Flag,
+ "ping_timer_rem",
+ 0,
+ translate("Only process ping timeouts if routes exist") },
+ { Flag,
+ "persist_tun",
+ 0,
+ translate("Keep tun/tap device open on restart") },
+ { Flag,
+ "persist_key",
+ 0,
+ translate("Don't re-read key on restart") },
+ { Flag,
+ "persist_local_ip",
+ 0,
+ translate("Keep local IP address on restart") },
+ { Flag,
+ "persist_remote_ip",
+ 0,
+ translate("Keep remote IP address on restart") },
+ -- management channel
+ { Value,
+ "management",
+ "127.0.0.1 31194 /etc/openvpn/mngmt-pwds",
+ translate("Enable management interface on IP port ") },
+ -- management
+ { Flag,
+ "management_query_passwords",
+ 0,
+ translate("Query management channel for private key") },
+ -- management
+ { Flag,
+ "management_hold",
+ 0,
+ translate("Start OpenVPN in a hibernating state") },
+ -- management
+ { Value,
+ "management_log_cache",
+ 100,
+ translate("Number of lines for log file history") },
+ { ListValue,
+ "topology",
+ { "net30", "p2p", "subnet" },
+ translate("'net30', 'p2p', or 'subnet'"),
+ {dev_type="tun" } },
} },
{ "VPN", {
- { Value, "server", "10.200.200.0 255.255.255.0", translate("Configure server mode"), { server_mode="1" } },
- { Value, "server_bridge", "10.200.200.1 255.255.255.0 10.200.200.200 10.200.200.250", translate("Configure server bridge"), { server_mode="1" } },
- { DynamicList, "push", { "redirect-gateway", "comp-lzo" }, translate("Push options to peer"), { server_mode="1" } },
- { Flag, "push_reset", 0, translate("Don't inherit global push options"), { server_mode="1" } },
- { Flag, "disable", 0, translate("Client is disabled"), { server_mode="1" } },
- { Value, "ifconfig_pool", "10.200.200.100 10.200.200.150 255.255.255.0", translate("Set aside a pool of subnets"), { server_mode="1" } },
- { Value, "ifconfig_pool_persist", "/etc/openvpn/ipp.txt 600", translate("Persist/unpersist ifconfig-pool"), { server_mode="1" } },
--- { Flag, "ifconfig_pool_linear", 0, translate("Use individual addresses rather than /30 subnets"), { server_mode="1" } }, -- deprecated and replaced by --topology p2p
- { Value, "ifconfig_push", "10.200.200.1 255.255.255.255", translate("Push an ifconfig option to remote"), { server_mode="1" } },
- { Value, "iroute", "10.200.200.0 255.255.255.0", translate("Route subnet to client"), { server_mode="1" } },
- { Flag, "client_to_client", 0, translate("Allow client-to-client traffic"), { server_mode="1" } },
- { Flag, "duplicate_cn", 0, translate("Allow multiple clients with same certificate"), { server_mode="1" } },
- { Value, "client_config_dir", "/etc/openvpn/ccd", translate("Directory for custom client config files"), { server_mode="1" } },
- { Flag, "ccd_exclusive", 0, translate("Refuse connection if no custom client config"), { server_mode="1" } },
- { Value, "tmp_dir", "/var/run/openvpn", translate("Temporary directory for client-connect return file"), { server_mode="1" } },
- { Value, "hash_size", "256 256", translate("Set size of real and virtual address hash tables"), { server_mode="1" } },
- { Value, "bcast_buffers", 256, translate("Number of allocated broadcast buffers"), { server_mode="1" } },
- { Value, "tcp_queue_limit", 64, translate("Maximum number of queued TCP output packets"), { server_mode="1" } },
- { Value, "max_clients", 10, translate("Allowed maximum of connected clients"), { server_mode="1" } },
- { Value, "max_routes_per_client", 256, translate("Allowed maximum of internal"), { server_mode="1" } },
- { Value, "connect_freq", "3 10", translate("Allowed maximum of new connections"), { server_mode="1" } },
- { Flag, "client_cert_not_required", 0, translate("Don't require client certificate"), { server_mode="1" } },
- { Flag, "username_as_common_name", 0, translate("Use username as common name"), { server_mode="1" } },
- { Flag, "client", 0, translate("Configure client mode"), { server_mode="0" }, { server_mode="" } },
- { Flag, "pull", 0, translate("Accept options pushed from server"), { client="1" } },
- { Value, "auth_user_pass", "/etc/openvpn/userpass.txt", translate("Authenticate using username/password"), { client="1" } },
- { ListValue, "auth_retry", { "none", "nointeract", "interact" }, translate("Handling of authentication failures"), { client="1" } },
- { Value, "explicit_exit_notify", 1, translate("Send notification to peer on disconnect"), { client="1" } },
- { DynamicList, "remote", "1.2.3.4", translate("Remote host name or ip address"), { client="1" } },
- { Flag, "remote_random", 1, translate("Randomly choose remote server"), { client="1" } },
- { ListValue, "proto", { "udp", "tcp-client", "tcp-server" }, translate("Use protocol"), { client="1" } },
- { Value, "connect_retry", 5, translate("Connection retry interval"), { proto="tcp-client" }, { client="1" } },
- { Value, "http_proxy", "192.168.1.100 8080", translate("Connect to remote host through an HTTP proxy"), { client="1" } },
- { Flag, "http_proxy_retry", 0, translate("Retry indefinitely on HTTP proxy errors"), { client="1" } },
- { Value, "http_proxy_timeout", 5, translate("Proxy timeout in seconds"), { client="1" } },
- { DynamicList, "http_proxy_option", { "VERSION 1.0", "AGENT OpenVPN/2.0.9" }, translate("Set extended HTTP proxy options"), { client="1" } },
- { Value, "socks_proxy", "192.168.1.200 1080", translate("Connect through Socks5 proxy"), { client="1" } },
- { Value, "socks_proxy_retry", 5, translate("Retry indefinitely on Socks proxy errors"), { client="1" } }, -- client && socks_proxy
- { Value, "resolv_retry", "infinite", translate("If hostname resolve fails, retry"), { client="1" } },
- { ListValue, "redirect_gateway", { "", "local", "def1", "local def1" }, translate("Automatically redirect default route"), { client="1" } },
+ { Value,
+ "server",
+ "10.200.200.0 255.255.255.0",
+ translate("Configure server mode"),
+ { client="0" }, { client="" } },
+ { Value,
+ "server_bridge",
+ "10.200.200.1 255.255.255.0 10.200.200.200 10.200.200.250",
+ translate("Configure server bridge"),
+ { client="0" }, { client="" } },
+ { DynamicList,
+ "push",
+ { "redirect-gateway", "comp-lzo" },
+ translate("Push options to peer"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "push_reset",
+ 0,
+ translate("Don't inherit global push options"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "disable",
+ 0,
+ translate("Client is disabled"),
+ { client="0" }, { client="" } },
+ { Value,
+ "ifconfig_pool",
+ "10.200.200.100 10.200.200.150 255.255.255.0",
+ translate("Set aside a pool of subnets"),
+ { client="0" }, { client="" } },
+ { Value,
+ "ifconfig_pool_persist",
+ "/etc/openvpn/ipp.txt 600",
+ translate("Persist/unpersist ifconfig-pool"),
+ { client="0" }, { client="" } },
+ -- deprecated and replaced by --topology p2p
+ -- { Flag,
+ -- "ifconfig_pool_linear",
+ -- 0,
+ -- translate("Use individual addresses rather than /30 subnets"),
+ -- { client="0" }, { client="" } },
+ { Value,
+ "ifconfig_push",
+ "10.200.200.1 255.255.255.255",
+ translate("Push an ifconfig option to remote"),
+ { client="0" }, { client="" } },
+ { Value,
+ "iroute",
+ "10.200.200.0 255.255.255.0",
+ translate("Route subnet to client"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "client_to_client",
+ 0,
+ translate("Allow client-to-client traffic"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "duplicate_cn",
+ 0,
+ translate("Allow multiple clients with same certificate"),
+ { client="0" }, { client="" } },
+ { Value,
+ "client_config_dir",
+ "/etc/openvpn/ccd",
+ translate("Directory for custom client config files"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "ccd_exclusive",
+ 0,
+ translate("Refuse connection if no custom client config"),
+ { client="0" }, { client="" } },
+ { Value,
+ "tmp_dir",
+ "/var/run/openvpn",
+ translate("Temporary directory for client-connect return file"),
+ { client="0" }, { client="" } },
+ { Value,
+ "hash_size",
+ "256 256",
+ translate("Set size of real and virtual address hash tables"),
+ { client="0" }, { client="" } },
+ { Value,
+ "bcast_buffers",
+ 256,
+ translate("Number of allocated broadcast buffers"),
+ { client="0" }, { client="" } },
+ { Value,
+ "tcp_queue_limit",
+ 64,
+ translate("Maximum number of queued TCP output packets"),
+ { client="0" }, { client="" } },
+ { Value,
+ "max_clients",
+ 10,
+ translate("Allowed maximum of connected clients"),
+ { client="0" }, { client="" } },
+ { Value,
+ "max_routes_per_client",
+ 256,
+ translate("Allowed maximum of internal"),
+ { client="0" }, { client="" } },
+ { Value,
+ "connect_freq",
+ "3 10",
+ translate("Allowed maximum of new connections"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "client_cert_not_required",
+ 0,
+ translate("Don't require client certificate"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "username_as_common_name",
+ 0,
+ translate("Use username as common name"),
+ { client="0" }, { client="" } },
+ { Flag,
+ "client",
+ 0,
+ translate("Configure client mode") },
+ { Flag,
+ "pull",
+ 0,
+ translate("Accept options pushed from server"),
+ { client="1" } },
+ { Value,
+ "auth_user_pass",
+ "/etc/openvpn/userpass.txt",
+ translate("Authenticate using username/password"),
+ { client="1" } },
+ { ListValue,
+ "auth_retry",
+ { "none", "nointeract", "interact" },
+ translate("Handling of authentication failures"),
+ { client="1" } },
+ { Value,
+ "explicit_exit_notify",
+ 1,
+ translate("Send notification to peer on disconnect"),
+ { client="1" } },
+ { DynamicList,
+ "remote",
+ "1.2.3.4",
+ translate("Remote host name or ip address"),
+ { client="1" } },
+ { Flag,
+ "remote_random",
+ 0,
+ translate("Randomly choose remote server"),
+ { client="1" } },
+ { ListValue,
+ "proto",
+ { "udp", "tcp-client", "tcp-server" },
+ translate("Use protocol"),
+ { client="1" } },
+ { Value,
+ "connect_retry",
+ 5,
+ translate("Connection retry interval"),
+ { proto="tcp-client" }, { client="1" } },
+ { Value,
+ "http_proxy",
+ "192.168.1.100 8080",
+ translate("Connect to remote host through an HTTP proxy"),
+ { client="1" } },
+ { Flag,
+ "http_proxy_retry",
+ 0,
+ translate("Retry indefinitely on HTTP proxy errors"),
+ { client="1" } },
+ { Value,
+ "http_proxy_timeout",
+ 5,
+ translate("Proxy timeout in seconds"),
+ { client="1" } },
+ { DynamicList,
+ "http_proxy_option",
+ { "VERSION 1.0", "AGENT OpenVPN/2.0.9" },
+ translate("Set extended HTTP proxy options"),
+ { client="1" } },
+ { Value,
+ "socks_proxy",
+ "192.168.1.200 1080",
+ translate("Connect through Socks5 proxy"),
+ { client="1" } },
+ -- client && socks_proxy
+ { Value,
+ "socks_proxy_retry",
+ 5,
+ translate("Retry indefinitely on Socks proxy errors"),
+ { client="1" } },
+ { Value,
+ "resolv_retry",
+ "infinite",
+ translate("If hostname resolve fails, retry"),
+ { client="1" } },
+ { ListValue,
+ "redirect_gateway",
+ { "", "local", "def1", "local def1" },
+ translate("Automatically redirect default route"),
+ { client="1" } },
} },
{ "Cryptography", {
- { FileUpload, "secret", "/etc/openvpn/secret.key", translate("Enable Static Key encryption mode (non-TLS)") },
- { Value, "auth", "SHA1", translate("HMAC authentication for packets") }, -- parse
- { Value, "cipher", "BF-CBC", translate("Encryption cipher for packets") }, -- parse
- { Value, "keysize", 1024, translate("Size of cipher key") }, -- parse
- { Value, "engine", "dynamic", translate("Enable OpenSSL hardware crypto engines") }, -- parse
- { Flag, "no_replay", 0, translate("Disable replay protection") },
- { Value, "replay_window", "64 15", translate("Replay protection sliding window size") },
- { Flag, "mute_replay_warnings", 0, translate("Silence the output of replay warnings") },
- { Value, "replay_persist", "/var/run/openvpn-replay-state", translate("Persist replay-protection state") },
- { Flag, "no_iv", 0, translate("Disable cipher initialisation vector") },
- { Flag, "tls_server", 0, translate("Enable TLS and assume server role"), { tls_client="" }, { tls_client="0" } },
- { Flag, "tls_client", 0, translate("Enable TLS and assume client role"), { tls_server="" }, { tls_server="0" } },
- { FileUpload, "ca", "/etc/easy-rsa/keys/ca.crt", translate("Certificate authority") },
- { FileUpload, "dh", "/etc/easy-rsa/keys/dh1024.pem", translate("Diffie Hellman parameters") },
- { FileUpload, "cert", "/etc/easy-rsa/keys/some-client.crt", translate("Local certificate") },
- { FileUpload, "key", "/etc/easy-rsa/keys/some-client.key", translate("Local private key") },
- { FileUpload, "pkcs12", "/etc/easy-rsa/keys/some-client.pk12", translate("PKCS#12 file containing keys") },
- { ListValue, "key_method", { 1, 2 }, translate("Enable TLS and assume client role") },
- { Value, "tls_cipher", "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_timeout", 2, translate("Retransmit timeout on TLS control channel") },
- { Value, "reneg_bytes", 1024, translate("Renegotiate data chan. key after bytes") },
- { Value, "reneg_pkts", 100, translate("Renegotiate data chan. key after packets") },
- { Value, "reneg_sec", 3600, translate("Renegotiate data chan. key after seconds") },
- { Value, "hand_window", 60, translate("Timeframe for key exchange") },
- { Value, "tran_window", 3600, translate("Key transition window") },
- { Flag, "single_session", 0, translate("Allow only one session") },
- { Flag, "tls_exit", 0, translate("Exit on TLS negotiation failure") },
- { Value, "tls_auth", "/etc/openvpn/tlsauth.key", translate("Additional authentication over TLS") },
- --{ Value, "askpass", "[file]", translate("Get PEM password from controlling tty before we daemonize") },
- { Flag, "auth_nocache", 0, translate("Don't cache --askpass or --auth-user-pass passwords") },
- { Value, "tls_remote", "remote_x509_name", translate("Only accept connections from given X509 name") },
- { ListValue, "ns_cert_type", { "client", "server" }, translate("Require explicit designation on certificate") },
- { ListValue, "remote_cert_tls", { "client", "server" }, translate("Require explicit key usage on certificate") },
- { Value, "crl_verify", "/etc/easy-rsa/keys/crl.pem", translate("Check peer certificate against a CRL") },
- { Value, "tls_version_min", "1.0", translate("The lowest supported TLS version") },
- { Value, "tls_version_max", "1.2", translate("The highest supported TLS version") },
- { Value, "key_direction", "1", translate("The key direction for 'tls-auth' and 'secret' options") },
- } }
+ { FileUpload,
+ "secret",
+ "/etc/openvpn/secret.key",
+ translate("Enable Static Key encryption mode (non-TLS)") },
+ -- parse
+ { Value,
+ "auth",
+ "SHA1",
+ translate("HMAC authentication for packets") },
+ -- parse
+ { Value,
+ "cipher",
+ "BF-CBC",
+ translate("Encryption cipher for packets") },
+ -- parse
+ { Value,
+ "keysize",
+ 1024,
+ translate("Size of cipher key") },
+ -- parse
+ { Value,
+ "engine",
+ "dynamic",
+ translate("Enable OpenSSL hardware crypto engines") },
+ { Flag,
+ "no_replay",
+ 0,
+ translate("Disable replay protection") },
+ { Value,
+ "replay_window",
+ "64 15",
+ translate("Replay protection sliding window size") },
+ { Flag,
+ "mute_replay_warnings",
+ 0,
+ translate("Silence the output of replay warnings") },
+ { Value,
+ "replay_persist",
+ "/var/run/openvpn-replay-state",
+ translate("Persist replay-protection state") },
+ { Flag,
+ "no_iv",
+ 0,
+ translate("Disable cipher initialisation vector") },
+ { Flag,
+ "tls_server",
+ 0,
+ translate("Enable TLS and assume server role"),
+ { tls_client="" }, { tls_client="0" } },
+ { Flag,
+ "tls_client",
+ 0,
+ translate("Enable TLS and assume client role"),
+ { tls_server="" }, { tls_server="0" } },
+ { FileUpload,
+ "ca",
+ "/etc/easy-rsa/keys/ca.crt",
+ translate("Certificate authority") },
+ { FileUpload,
+ "dh",
+ "/etc/easy-rsa/keys/dh1024.pem",
+ translate("Diffie Hellman parameters") },
+ { FileUpload,
+ "cert",
+ "/etc/easy-rsa/keys/some-client.crt",
+ translate("Local certificate") },
+ { FileUpload,
+ "key",
+ "/etc/easy-rsa/keys/some-client.key",
+ translate("Local private key") },
+ { FileUpload,
+ "pkcs12",
+ "/etc/easy-rsa/keys/some-client.pk12",
+ translate("PKCS#12 file containing keys") },
+ { ListValue,
+ "key_method",
+ { 1, 2 },
+ translate("Enable TLS and assume client role") },
+ { Value,
+ "tls_cipher",
+ "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_timeout",
+ 2,
+ translate("Retransmit timeout on TLS control channel") },
+ { Value,
+ "reneg_bytes",
+ 1024,
+ translate("Renegotiate data chan. key after bytes") },
+ { Value,
+ "reneg_pkts",
+ 100,
+ translate("Renegotiate data chan. key after packets") },
+ { Value,
+ "reneg_sec",
+ 3600,
+ translate("Renegotiate data chan. key after seconds") },
+ { Value,
+ "hand_window",
+ 60,
+ translate("Timeframe for key exchange") },
+ { Value,
+ "tran_window",
+ 3600,
+ translate("Key transition window") },
+ { Flag,
+ "single_session",
+ 0,
+ translate("Allow only one session") },
+ { Flag,
+ "tls_exit",
+ 0,
+ translate("Exit on TLS negotiation failure") },
+ { Value,
+ "tls_auth",
+ "/etc/openvpn/tlsauth.key",
+ translate("Additional authentication over TLS") },
+ { Value,
+ "tls_crypt",
+ "/etc/openvpn/tlscrypt.key",
+ translate("Encrypt and authenticate all control channel packets with the key") },
+ -- { Value,
+ -- "askpass",
+ -- "[file]",
+ -- translate("Get PEM password from controlling tty before we daemonize") },
+ { Flag,
+ "auth_nocache",
+ 0,
+ translate("Don't cache --askpass or --auth-user-pass passwords") },
+ { Value,
+ "tls_remote",
+ "remote_x509_name",
+ translate("Only accept connections from given X509 name") },
+ { ListValue,
+ "ns_cert_type",
+ { "client", "server" },
+ translate("Require explicit designation on certificate") },
+ { ListValue,
+ "remote_cert_tls",
+ { "client", "server" },
+ translate("Require explicit key usage on certificate") },
+ { Value,
+ "crl_verify",
+ "/etc/easy-rsa/keys/crl.pem",
+ translate("Check peer certificate against a CRL") },
+ { Value,
+ "tls_version_min",
+ "1.0",
+ translate("The lowest supported TLS version") },
+ { Value,
+ "tls_version_max",
+ "1.2",
+ translate("The highest supported TLS version") },
+ { Value,
+ "key_direction",
+ "1",
+ translate("The key direction for 'tls-auth' and 'secret' options") },
+ } }
}
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
index aaa1979c41..3f651c0ada 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
@@ -24,7 +24,7 @@ local basicParams = {
{ ListValue,"comp_lzo",{"yes","no","adaptive"}, translate("Use fast LZO compression") },
{ Value,"keepalive","10 60", translate("Helper directive to simplify the expression of --ping and --ping-restart in server mode configurations") },
- { ListValue,"proto",{ "udp", "udp6", "tcp", "tcp6" }, translate("Use protocol") },
+ { ListValue,"proto",{ "udp", "tcp-client", "tcp-server" }, translate("Use protocol") },
{ Flag,"client",0, translate("Configure client mode") },
{ Flag,"client_to_client",0, translate("Allow client-to-client traffic") },
diff --git a/applications/luci-app-openvpn/po/ca/openvpn.po b/applications/luci-app-openvpn/po/ca/openvpn.po
index 1b75fe6cd7..d756469078 100644
--- a/applications/luci-app-openvpn/po/ca/openvpn.po
+++ b/applications/luci-app-openvpn/po/ca/openvpn.po
@@ -199,6 +199,9 @@ msgstr "Activa la interfÃcie de gestió a IP port "
msgid "Enabled"
msgstr "Activat"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Xifra d'encriptació per paquets"
diff --git a/applications/luci-app-openvpn/po/cs/openvpn.po b/applications/luci-app-openvpn/po/cs/openvpn.po
index c68742217e..4fba010530 100644
--- a/applications/luci-app-openvpn/po/cs/openvpn.po
+++ b/applications/luci-app-openvpn/po/cs/openvpn.po
@@ -194,6 +194,9 @@ msgstr ""
msgid "Enabled"
msgstr "Povoleno"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/de/openvpn.po b/applications/luci-app-openvpn/po/de/openvpn.po
index dc382ee44d..a203c92e79 100644
--- a/applications/luci-app-openvpn/po/de/openvpn.po
+++ b/applications/luci-app-openvpn/po/de/openvpn.po
@@ -197,6 +197,9 @@ msgstr "Administratorschnittstelle aktivieren"
msgid "Enabled"
msgstr "Einschalten"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Verschlüsselungsalgorithmus für Pakete"
diff --git a/applications/luci-app-openvpn/po/el/openvpn.po b/applications/luci-app-openvpn/po/el/openvpn.po
index 2c787d816c..63dd8985a8 100644
--- a/applications/luci-app-openvpn/po/el/openvpn.po
+++ b/applications/luci-app-openvpn/po/el/openvpn.po
@@ -198,6 +198,9 @@ msgstr ""
msgid "Enabled"
msgstr "ÎνεÏγοÏοιημÎνο"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/en/openvpn.po b/applications/luci-app-openvpn/po/en/openvpn.po
index a5994dc292..51819f6b09 100644
--- a/applications/luci-app-openvpn/po/en/openvpn.po
+++ b/applications/luci-app-openvpn/po/en/openvpn.po
@@ -197,6 +197,9 @@ msgstr "Enable management interface on IP port "
msgid "Enabled"
msgstr "Enabled"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr "Encrypt and authenticate all control channel packets with the key"
+
msgid "Encryption cipher for packets"
msgstr "Encryption cipher for packets"
diff --git a/applications/luci-app-openvpn/po/es/openvpn.po b/applications/luci-app-openvpn/po/es/openvpn.po
index a5141831ce..819e7ee509 100644
--- a/applications/luci-app-openvpn/po/es/openvpn.po
+++ b/applications/luci-app-openvpn/po/es/openvpn.po
@@ -196,6 +196,9 @@ msgstr "Interfaz de gestión en IP puerto "
msgid "Enabled"
msgstr "Activado"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Cifra de encriptación de paquetes"
diff --git a/applications/luci-app-openvpn/po/fr/openvpn.po b/applications/luci-app-openvpn/po/fr/openvpn.po
index e2f33dc164..331d1931e8 100644
--- a/applications/luci-app-openvpn/po/fr/openvpn.po
+++ b/applications/luci-app-openvpn/po/fr/openvpn.po
@@ -206,6 +206,9 @@ msgstr "Activer l'interface de gestion sur IP port "
msgid "Enabled"
msgstr "Activé"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Méthode de chiffrement des paquets"
diff --git a/applications/luci-app-openvpn/po/he/openvpn.po b/applications/luci-app-openvpn/po/he/openvpn.po
index 3528444199..517da49080 100644
--- a/applications/luci-app-openvpn/po/he/openvpn.po
+++ b/applications/luci-app-openvpn/po/he/openvpn.po
@@ -192,6 +192,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/hu/openvpn.po b/applications/luci-app-openvpn/po/hu/openvpn.po
index 1f9d691d04..67a8217b1a 100644
--- a/applications/luci-app-openvpn/po/hu/openvpn.po
+++ b/applications/luci-app-openvpn/po/hu/openvpn.po
@@ -196,6 +196,9 @@ msgstr ""
msgid "Enabled"
msgstr "Engedélyezve"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/it/openvpn.po b/applications/luci-app-openvpn/po/it/openvpn.po
index 233c144c57..834015b8e8 100644
--- a/applications/luci-app-openvpn/po/it/openvpn.po
+++ b/applications/luci-app-openvpn/po/it/openvpn.po
@@ -198,6 +198,9 @@ msgstr ""
msgid "Enabled"
msgstr "Abilitato"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/ja/openvpn.po b/applications/luci-app-openvpn/po/ja/openvpn.po
index 5474008682..232ae27e1f 100644
--- a/applications/luci-app-openvpn/po/ja/openvpn.po
+++ b/applications/luci-app-openvpn/po/ja/openvpn.po
@@ -196,6 +196,9 @@ msgstr ""
msgid "Enabled"
msgstr "æå¹"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/ms/openvpn.po b/applications/luci-app-openvpn/po/ms/openvpn.po
index c439c3eb15..6c6e0d6046 100644
--- a/applications/luci-app-openvpn/po/ms/openvpn.po
+++ b/applications/luci-app-openvpn/po/ms/openvpn.po
@@ -191,6 +191,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/no/openvpn.po b/applications/luci-app-openvpn/po/no/openvpn.po
index 3528444199..517da49080 100644
--- a/applications/luci-app-openvpn/po/no/openvpn.po
+++ b/applications/luci-app-openvpn/po/no/openvpn.po
@@ -192,6 +192,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/pl/openvpn.po b/applications/luci-app-openvpn/po/pl/openvpn.po
index e289a80fc1..bef5a13a1a 100644
--- a/applications/luci-app-openvpn/po/pl/openvpn.po
+++ b/applications/luci-app-openvpn/po/pl/openvpn.po
@@ -197,6 +197,9 @@ msgstr "WÅÄ
cz interfejs zarzÄ
dzalny na IP port "
msgid "Enabled"
msgstr "WÅÄ
czone"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Szyfrowanie dla pakietów"
diff --git a/applications/luci-app-openvpn/po/pt-br/openvpn.po b/applications/luci-app-openvpn/po/pt-br/openvpn.po
index 916370e7f9..26642e2c46 100644
--- a/applications/luci-app-openvpn/po/pt-br/openvpn.po
+++ b/applications/luci-app-openvpn/po/pt-br/openvpn.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-29 23:19+0200\n"
-"Last-Translator: Luiz Angelo \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-20 18:04-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
msgid "%s"
msgstr "%s"
@@ -154,7 +154,7 @@ msgid "Don't log timestamps"
msgstr "Não registar a data/hora"
msgid "Don't pull routes automatically"
-msgstr ""
+msgstr "Não puxe as rotas automaticamente"
msgid "Don't re-read key on restart"
msgstr "Não reler a chave entre os reinÃcios"
@@ -198,6 +198,9 @@ msgstr "Ativar o interface de gestão em IP porta "
msgid "Enabled"
msgstr "Ativado"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Cifra de encriptação para pacotes"
@@ -505,13 +508,13 @@ msgid "Temporary directory for client-connect return file"
msgstr "Diretório temporário para arquivo de retorno de conexão-cliente"
msgid "The highest supported TLS version"
-msgstr ""
+msgstr "A mais alta versão suporta do TLS"
msgid "The key direction for 'tls-auth' and 'secret' options"
-msgstr ""
+msgstr "A direção da chave para as opções 'tls-auth' e 'secret'"
msgid "The lowest supported TLS version"
-msgstr ""
+msgstr "A mais baixa versão suporta do TLS"
msgid "Timeframe for key exchange"
msgstr "Janela temporal para troca de chaves"
diff --git a/applications/luci-app-openvpn/po/pt/openvpn.po b/applications/luci-app-openvpn/po/pt/openvpn.po
index 95c50a571a..d74b0a690d 100644
--- a/applications/luci-app-openvpn/po/pt/openvpn.po
+++ b/applications/luci-app-openvpn/po/pt/openvpn.po
@@ -198,6 +198,9 @@ msgstr "Activar o interface de gestão em IP porta "
msgid "Enabled"
msgstr "Activado"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Cifra de encriptação para pacotes"
diff --git a/applications/luci-app-openvpn/po/ro/openvpn.po b/applications/luci-app-openvpn/po/ro/openvpn.po
index 4a7a5b7515..ef5e7ce379 100644
--- a/applications/luci-app-openvpn/po/ro/openvpn.po
+++ b/applications/luci-app-openvpn/po/ro/openvpn.po
@@ -193,6 +193,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/ru/openvpn.po b/applications/luci-app-openvpn/po/ru/openvpn.po
index 00e585c374..89cf1161cc 100644
--- a/applications/luci-app-openvpn/po/ru/openvpn.po
+++ b/applications/luci-app-openvpn/po/ru/openvpn.po
@@ -200,6 +200,9 @@ msgstr "ÐклÑÑиÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° IP \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -10,25 +10,25 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "%s"
-msgstr ""
+msgstr "%s"
msgid "'net30', 'p2p', or 'subnet'"
-msgstr ""
+msgstr "'net30', 'p2p', eller 'subnät'"
msgid "Accept options pushed from server"
msgstr ""
msgid "Add"
-msgstr ""
+msgstr "Lägg till"
msgid "Add route after establishing connection"
msgstr ""
msgid "Additional authentication over TLS"
-msgstr ""
+msgstr "Ytterligare autentisering via TLS"
msgid "Allow client-to-client traffic"
-msgstr ""
+msgstr "Tillåt klient-till-klienttraffik"
msgid "Allow multiple clients with same certificate"
msgstr ""
@@ -192,6 +192,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/templates/openvpn.pot b/applications/luci-app-openvpn/po/templates/openvpn.pot
index f2e4011662..126cab076f 100644
--- a/applications/luci-app-openvpn/po/templates/openvpn.pot
+++ b/applications/luci-app-openvpn/po/templates/openvpn.pot
@@ -184,6 +184,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/tr/openvpn.po b/applications/luci-app-openvpn/po/tr/openvpn.po
index 7b8ffad34c..917c36d561 100644
--- a/applications/luci-app-openvpn/po/tr/openvpn.po
+++ b/applications/luci-app-openvpn/po/tr/openvpn.po
@@ -191,6 +191,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/uk/openvpn.po b/applications/luci-app-openvpn/po/uk/openvpn.po
index a6910c2309..e98b52a8ae 100644
--- a/applications/luci-app-openvpn/po/uk/openvpn.po
+++ b/applications/luci-app-openvpn/po/uk/openvpn.po
@@ -195,6 +195,9 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr ""
diff --git a/applications/luci-app-openvpn/po/vi/openvpn.po b/applications/luci-app-openvpn/po/vi/openvpn.po
index 8e8b96dc7f..f3873b068f 100644
--- a/applications/luci-app-openvpn/po/vi/openvpn.po
+++ b/applications/luci-app-openvpn/po/vi/openvpn.po
@@ -197,6 +197,9 @@ msgstr "KÃch hoạt giao diá»n Äiá»u hà nh trên IP cá»ng
msgid "Enabled"
msgstr "KÃch hoạt "
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr ""
+
msgid "Encryption cipher for packets"
msgstr "Encryption cipher cho các gói"
diff --git a/applications/luci-app-openvpn/po/zh-cn/openvpn.po b/applications/luci-app-openvpn/po/zh-cn/openvpn.po
index 899b4d2388..13182fcddd 100644
--- a/applications/luci-app-openvpn/po/zh-cn/openvpn.po
+++ b/applications/luci-app-openvpn/po/zh-cn/openvpn.po
@@ -1,23 +1,26 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-19 19:35+0200\n"
-"PO-Revision-Date: 2013-10-10 06:09+0200\n"
-"Last-Translator: Tanyingyu \n"
-"Language-Team: QQ Group 75543259 \n"
+"PO-Revision-Date: 2017-10-29 14:37+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "%s"
msgstr "%s"
msgid "'net30', 'p2p', or 'subnet'"
-msgstr "'net30', 'p2p', æ 'åç½'"
+msgstr "ânet30âï¼âp2pâï¼æâsubnetâ"
msgid "Accept options pushed from server"
msgstr "æ¥åä»æå¡å¨åéè¿æ¥çé项"
@@ -29,7 +32,7 @@ msgid "Add route after establishing connection"
msgstr "建ç«è¿æ¥åæ·»å è·¯ç±"
msgid "Additional authentication over TLS"
-msgstr "TLS以å¤çéªè¯"
+msgstr "TLS 以å¤çéªè¯"
msgid "Allow client-to-client traffic"
msgstr "å
许客æ·ç«¯å°å®¢æ·ç«¯çéä¿¡"
@@ -41,7 +44,7 @@ msgid "Allow only one session"
msgstr "åªå
许ä¸ä¸ªä¼è¯"
msgid "Allow remote to change its IP or port"
-msgstr "å
许è¿ç¨ä¿®æ¹ipå端å£"
+msgstr "å
许è¿ç«¯æ¹å IP æ端å£"
msgid "Allowed maximum of connected clients"
msgstr "å
许æ大已è¿æ¥å®¢æ·ç«¯æ°"
@@ -62,10 +65,10 @@ msgid "Automatically redirect default route"
msgstr "èªå¨éå®åè³é»è®¤è·¯ç±"
msgid "Below is a list of configured OpenVPN instances and their current state"
-msgstr "Openvpnå·²é
ç½®å®ä¾åå
¶å½åç¶æå表"
+msgstr "以ä¸æ¯ OpenVPN å·²é
ç½®å®ä¾åå
¶å½åç¶æçå表"
msgid "Call down cmd/script before TUN/TAP close"
-msgstr "TUN/TAPå
³éåå
³éå½ä»¤è¡åèæ¬"
+msgstr "TUN/TAP å
³éåçå½ä»¤è¡åèæ¬"
msgid "Certificate authority"
msgstr "认è¯ææ"
@@ -98,10 +101,10 @@ msgid "Configure server mode"
msgstr "é
ç½®æå¡å¨æ¨¡å¼"
msgid "Connect through Socks5 proxy"
-msgstr "éè¿Sock5代çè¿æ¥"
+msgstr "éè¿ Sock5 代çè¿æ¥"
msgid "Connect to remote host through an HTTP proxy"
-msgstr "éè¿HTTP代çè¿æ¥å°è¿ç¨ä¸»æº"
+msgstr "éè¿ HTTP 代çè¿æ¥å°è¿ç¨ä¸»æº"
msgid "Connection retry interval"
msgstr "è¿æ¥éè¯æ¶é´é´é"
@@ -110,13 +113,13 @@ msgid "Daemonize after initialization"
msgstr "åå§ååè¿å
¥åå°è¿è¡"
msgid "Delay n seconds after connection"
-msgstr "è¿æ¥å延è¿æ¶é´(ç§)"
+msgstr "è¿æ¥å延è¿æ¶é´(ç§ï¼"
msgid "Delay tun/tap open and up script execution"
-msgstr "延è¿tun/tapçæå¼å¹¶å éèæ¬æ§è¡"
+msgstr "å»¶è¿ tun/tap çæå¼å up èæ¬çæ§è¡"
msgid "Diffie Hellman parameters"
-msgstr "DiffieâHellman/DHå¯é¥äº¤æ¢ åæ°"
+msgstr "DiffieâHellman/DH å¯é¥äº¤æ¢åæ°"
msgid "Directory for custom client config files"
msgstr "èªå®ä¹å®¢æ·ç«¯é
ç½®æ件çç®å½"
@@ -137,13 +140,13 @@ msgid "Do not bind to local address and port"
msgstr "ä¸ç»å®æ¬å°å°åå端å£"
msgid "Don't actually execute ifconfig"
-msgstr "ä¸å®é
æ§è¡ifconfigå½ä»¤"
+msgstr "ä¸å®é
æ§è¡ ifconfig å½ä»¤"
msgid "Don't add routes automatically"
msgstr "ä¸èªå¨æ·»å è·¯ç±"
msgid "Don't cache --askpass or --auth-user-pass passwords"
-msgstr "ä¸ç¼å--askpass æ--auth-user-pass passwords"
+msgstr "ä¸ç¼å --askpass æ --auth-user-pass passwords"
msgid "Don't inherit global push options"
msgstr "ä¸ç»§æ¿å
¨å±ä¸»å¨åéé项"
@@ -152,7 +155,7 @@ msgid "Don't log timestamps"
msgstr "ä¸è®°å½æ¶é´æ³"
msgid "Don't pull routes automatically"
-msgstr ""
+msgstr "ä¸èªå¨æåè·¯ç±"
msgid "Don't re-read key on restart"
msgstr "æå¡éå¯æ¶ä¸é读å¯é¥å¼"
@@ -161,49 +164,52 @@ msgid "Don't require client certificate"
msgstr "ä¸éè¦å®¢æ·çè¯ä¹¦"
msgid "Don't use adaptive lzo compression"
-msgstr "ä¸ç¨èªéåºçlzoå缩"
+msgstr "ä¸ç¨èªéåº lzo å缩"
msgid "Don't warn on ifconfig inconsistencies"
-msgstr "ifconfigä¸ä¸è´æ¶ä¸è¦å"
+msgstr "ifconfig ä¸ä¸è´æ¶ä¸è¦å"
msgid "Echo parameters to log"
msgstr "æåæ°åå
¥æ¥å¿"
msgid "Empirically measure MTU"
-msgstr "以åå²å¼ä¼°ç®MTUå¼"
+msgstr "以åå²å¼ä¼°ç® MTU å¼"
msgid "Enable OpenSSL hardware crypto engines"
-msgstr "æå¼OpenSSL硬件å å¯å¼æ"
+msgstr "æå¼ OpenSSL 硬件å å¯å¼æ"
msgid "Enable Path MTU discovery"
-msgstr "å¯ç¨è·¯å¾MTUåç°"
+msgstr "å¯ç¨è·¯å¾ MTU åç°"
msgid "Enable Static Key encryption mode (non-TLS)"
msgstr "å
许éæå¯é¥å å¯æ¨¡å¼"
msgid "Enable TLS and assume client role"
-msgstr "å
许TLS并伪è£
为客æ·ç«¯"
+msgstr "å
许 TLS 并伪è£
为客æ·ç«¯"
msgid "Enable TLS and assume server role"
-msgstr "å
许TLS并伪è£
为æå¡å¨"
+msgstr "å
许 TLS 并伪è£
为æå¡å¨"
msgid "Enable internal datagram fragmentation"
msgstr "å
许å
é¨æ°æ®æ¥åç"
msgid "Enable management interface on IP port "
-msgstr "å¨IP port ä¸å¯ç¨å¯ç®¡çæ¥å£"
+msgstr "å¨ IP port ä¸å¯ç¨å¯ç®¡çæ¥å£"
msgid "Enabled"
msgstr "å¯ç¨"
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr "使ç¨å¯é¥å å¯å认è¯ææçæ§å¶ééæ°æ®å
"
+
msgid "Encryption cipher for packets"
msgstr "å å¯æ°æ®å
"
msgid "Execute shell cmd after routes are added"
-msgstr "æ·»å è·¯ç±åæ§è¡shellå½ä»¤"
+msgstr "æ·»å è·¯ç±åæ§è¡ shell å½ä»¤"
msgid "Execute shell command on remote ip change"
-msgstr "å½è¿ç¨ipæ¹åæ¶æ§è¡shellå½ä»¤"
+msgstr "å½è¿ç¨ ip æ¹åæ¶æ§è¡ shell å½ä»¤"
msgid ""
"Executed in server mode on new client connections, when the client is still "
@@ -214,16 +220,16 @@ msgid ""
"Executed in server mode whenever an IPv4 address/route or MAC address is "
"added to OpenVPN's internal routing table"
msgstr ""
-"æå¡å¨æ¨¡å¼ä¸ï¼å°æ¯ä¸ªIPv4å°å/è·¯ç±æMACå°åæ·»å å°OpenVPNçå
é¨è·¯ç±è¡¨ä¸ã"
+"æå¡å¨æ¨¡å¼ä¸ï¼å°æ¯ä¸ª IPv4 å°å/è·¯ç±æ MAC å°åæ·»å å° OpenVPN çå
é¨è·¯ç±è¡¨ä¸ã"
msgid "Exit on TLS negotiation failure"
-msgstr "TLSéªè¯å¤±è´¥åéåº"
+msgstr "TLS éªè¯å¤±è´¥åéåº"
msgid "Get PEM password from controlling tty before we daemonize"
-msgstr "åå°è¿è¡åä»æ§å¶çttyä¸è·åPEMå¯ç "
+msgstr "åå°è¿è¡åä»æ§å¶ç tty ä¸è·å PEM å¯ç "
msgid "HMAC authentication for packets"
-msgstr "å©ç¨HMACæ°´å°ç®æ³æ ¡éªæ°æ®å
"
+msgstr "å©ç¨ HMAC ç®æ³æ ¡éªæ°æ®å
"
msgid "Handling of authentication failures"
msgstr "å¤çéªè¯å¤±è´¥"
@@ -231,7 +237,7 @@ msgstr "å¤çéªè¯å¤±è´¥"
msgid ""
"Helper directive to simplify the expression of --ping and --ping-restart in "
"server mode configurations"
-msgstr "å¨æå¡é
置模å¼ä¸Helperç®æçæ§è¡--pingå--ping-restart"
+msgstr "å¨æå¡é
置模å¼ä¸ç®å Helper æ令 --ping å --ping-restart ç表达å¼"
msgid "If hostname resolve fails, retry"
msgstr "å¦æ主æºå解æé误ï¼éè¯"
@@ -243,10 +249,10 @@ msgid "Invalid"
msgstr "æ æ"
msgid "Keep local IP address on restart"
-msgstr "æå¡éå¯æ¶ä¿ææ¬å°IPå°å"
+msgstr "æå¡éå¯æ¶ä¿ææ¬å° IP å°å"
msgid "Keep remote IP address on restart"
-msgstr "æå¡éå¯æ¶ä¿æè¿ç¨IPå°å"
+msgstr "æå¡éå¯æ¶ä¿æè¿ç¨ IP å°å"
msgid "Keep tun/tap device open on restart"
msgstr "æå¡éå¯æ¶èªå¨æå¼ tun/tap 设å¤"
@@ -255,22 +261,22 @@ msgid "Key transition window"
msgstr "å¯é¥ä¼ è¾æ»å¨çªå£"
msgid "Limit repeated log messages"
-msgstr "éå¶éå¤æ§çæ¥å¿æ¶æ¯"
+msgstr "éå¶éå¤çæ¥å¿æ¶æ¯"
msgid "Local certificate"
msgstr "æ¬å°è¯ä¹¦"
msgid "Local host name or ip address"
-msgstr "æ¬å°ä¸»æºåæipå°å"
+msgstr "æ¬å°ä¸»æºåæ ip å°å"
msgid "Local private key"
-msgstr "æ¬å°ç§äººå¯é¥"
+msgstr "æ¬å°ç§é¥"
msgid "Major mode"
msgstr "主è¦æ¨¡å¼"
msgid "Make tun device IPv6 capable"
-msgstr "使 tun 设å¤å
¼å®¹IPv6"
+msgstr "使 tun 设å¤å
¼å®¹ IPv6"
msgid "Maximum number of queued TCP output packets"
msgstr "TCPéåä¸è¾åºå
çæ大æ°é"
@@ -282,10 +288,10 @@ msgid "Number of lines for log file history"
msgstr "åå²æ¥å¿æ件çè¡æ°"
msgid "Only accept connections from given X509 name"
-msgstr "åªæ¥æ¶å·²ç»å®çX509å称çè¿æ¥"
+msgstr "åªæ¥æ¶å·²ç»å®ç X509 å称çè¿æ¥"
msgid "Only process ping timeouts if routes exist"
-msgstr "å½ä¸ä»
å½è·¯ç±åå¨æ¶å¤çpingè¶
æ¶"
+msgstr "ä»
å½è·¯ç±åå¨æ¶å¤ç ping è¶
æ¶"
msgid "OpenVPN"
msgstr "OpenVPN"
@@ -297,13 +303,13 @@ msgid "Optimize TUN/TAP/UDP writes"
msgstr "ä¼å TUN/TAP/UDP åå
¥"
msgid "Output to syslog and do not daemonize"
-msgstr "æ¾å¼è¾åºå°syslog"
+msgstr "è¾åºå° syslogï¼ä¸è¿è¡å®æ¤è¿ç¨"
msgid "Overview"
msgstr "æ¦è§"
msgid "PKCS#12 file containing keys"
-msgstr "PKCS#12æ件å
å«çå¯é¥"
+msgstr "PKCS#12 æ件å
å«çå¯é¥"
msgid "Pass environment variables to script"
msgstr "ä¼ éç¯å¢åéè³èæ¬"
@@ -312,10 +318,10 @@ msgid "Persist replay-protection state"
msgstr "ä¿åéæä¿æ¤çç¶æ"
msgid "Persist/unpersist ifconfig-pool"
-msgstr "æä¹
/éæä¹
ifconfigæ± "
+msgstr "æä¹
/éæä¹
ifconfig æ± "
msgid "Ping remote every n seconds over TCP/UDP port"
-msgstr "æ¯nç§pingä¸æ¬¡è¿ç¨ TCP/UDP 端å£"
+msgstr "æ¯ n ç§ ping ä¸æ¬¡è¿ç¨ TCP/UDP 端å£"
msgid "Policy level over usage of external programs and scripts"
msgstr "å¤é¨ç¨åºåèæ¬è¶
åºäºçç¥å
许ç使ç¨èå´"
@@ -330,13 +336,13 @@ msgid "Proxy timeout in seconds"
msgstr "代çè¶
æ¶ï¼åä½ç§"
msgid "Push an ifconfig option to remote"
-msgstr "主å¨åè¿ç¨åéifconfigé项"
+msgstr "主å¨åè¿ç¨åé ifconfig é项"
msgid "Push options to peer"
msgstr "主å¨å端ç¹åéé项"
msgid "Query management channel for private key"
-msgstr "为ç§äººå¯é¥æ¥è¯¢ç®¡çéé"
+msgstr "为ç§é¥æ¥è¯¢ç®¡çéé"
msgid "Randomly choose remote server"
msgstr "éæºéæ©è¿ç¨æå¡å¨"
@@ -345,13 +351,13 @@ msgid "Refuse connection if no custom client config"
msgstr "ææ¥æ²¡æèªå®ä¹å®¢æ·ç«¯é
ç½®çè¿æ¥"
msgid "Remap SIGUSR1 signals"
-msgstr "éæ å°SIGUSR1ä¿¡å·"
+msgstr "éæ å° SIGUSR1 ä¿¡å·"
msgid "Remote host name or ip address"
-msgstr "è¿ç¨ä¸»æºåæipå°å"
+msgstr "è¿ç¨ä¸»æºåæ ip å°å"
msgid "Remote ping timeout"
-msgstr "è¿ç¨pingè¶
æ¶"
+msgstr "è¿ç¨ ping è¶
æ¶"
msgid "Renegotiate data chan. key after bytes"
msgstr "ä¼ è¾è¥å¹²åèåéæ°éªè¯æ°æ®ééå¯é¥"
@@ -372,22 +378,22 @@ msgid "Require explicit key usage on certificate"
msgstr "è¯ä¹¦éè¦æç¡®çå¯é¥"
msgid "Restart after remote ping timeout"
-msgstr "è¿ç¨pingè¶
æ¶åéå¯"
+msgstr "è¿ç¨ ping è¶
æ¶åéå¯"
msgid "Retransmit timeout on TLS control channel"
-msgstr "TLSæ§å¶ééè¶
æ¶åéæ°åé"
+msgstr "TLS æ§å¶ééè¶
æ¶åéæ°åé"
msgid "Retry indefinitely on HTTP proxy errors"
msgstr "æ ééè¯ç´è³ä»£çæ£ç¡®"
msgid "Retry indefinitely on Socks proxy errors"
-msgstr "æ ééè¯ç´è³Socks代çæ£ç¡®"
+msgstr "æ ééè¯ç´è³ Socks 代çæ£ç¡®"
msgid "Route subnet to client"
msgstr "è·¯ç±åç½è³å®¢æ·ç«¯"
msgid "Run as an inetd or xinetd server"
-msgstr "以inetdæxinetdæå¡å¨çæ¹å¼è¿è¡"
+msgstr "以 inetd æ xinetd æå¡å¨çæ¹å¼è¿è¡"
msgid "Run script cmd on client connection"
msgstr "å½å®¢æ·ç«¯è¿æ¥æ¶å¨å½ä»¤è¡ä¸å
许èæ¬"
@@ -402,19 +408,19 @@ msgid "Send notification to peer on disconnect"
msgstr "æå¼è¿æ¥æ¶å客æ·ç«¯åééç¥"
msgid "Set GID to group"
-msgstr "为群ç»è®¾ç½®GIDå¼"
+msgstr "为群ç»è®¾ç½® GID å¼"
msgid "Set TCP/UDP MTU"
-msgstr "设置TCP/UDPçMTUå¼"
+msgstr "设置 TCP/UDP ç MTU å¼"
msgid "Set UID to user"
-msgstr "为ç¨æ·è®¾ç½®UIDå¼"
+msgstr "为ç¨æ·è®¾ç½® UID å¼"
msgid "Set aside a pool of subnets"
-msgstr "设置为æç»åç½çº¿ç¨æ± 模å¼"
+msgstr "设置åç½æ± "
msgid "Set extended HTTP proxy options"
-msgstr "设置HTTPæ©å±ä»£çé项"
+msgstr "设置 HTTP æ©å±ä»£çé项"
msgid "Set output verbosity"
msgstr "设置è¾åºåä½çº§å«"
@@ -423,37 +429,37 @@ msgid "Set size of real and virtual address hash tables"
msgstr "设置å®é
åèæå°åçåå¸è¡¨å¤§å°"
msgid "Set the TCP/UDP receive buffer size"
-msgstr "设置TCP/UDPæ¥æ¶ç¼å²åºå¤§å°"
+msgstr "设置 TCP/UDP æ¥æ¶ç¼å²åºå¤§å°"
msgid "Set the TCP/UDP send buffer size"
-msgstr "设置TCP/UDPåéç¼å²åºå¤§å°"
+msgstr "设置 TCP/UDP åéç¼å²åºå¤§å°"
msgid "Set tun/tap TX queue length"
-msgstr "设置tun/tapåééåé¿åº¦"
+msgstr "设置 tun/tap åééåé¿åº¦"
msgid "Set tun/tap adapter parameters"
-msgstr "设置tun/ tapéé
å¨åæ°"
+msgstr "设置 tun/tap éé
å¨åæ°"
msgid "Set tun/tap device MTU"
-msgstr "设置tun/tap设å¤çMTUå¼"
+msgstr "设置 tun/tap 设å¤ç MTU å¼"
msgid "Set tun/tap device overhead"
-msgstr "设置tun/tap设å¤çå¼é"
+msgstr "设置 tun/tap 设å¤çå¼é"
msgid "Set upper bound on TCP MSS"
-msgstr "设置TCP MSSçä¸é"
+msgstr "设置 TCP MSS ä¸é"
msgid "Shaping for peer bandwidth"
msgstr "æ¹åç»ç¹å¸¦å®½"
msgid "Shell cmd to execute after tun device open"
-msgstr "tun设å¤æå¼åè¿è¡shellå½ä»¤è¡"
+msgstr "tun 设å¤æå¼åè¿è¡ç shell å½ä»¤"
msgid "Shell cmd to run after tun device close"
-msgstr "tun设å¤å
³éåè¿è¡shellå½ä»¤è¡e"
+msgstr "tun 设å¤å
³éåè¿è¡ç shell å½ä»¤"
msgid "Shell command to verify X509 name"
-msgstr "è¿è¡shellå½ä»¤ä»¥éªè¯X509å称"
+msgstr "è¿è¡ shell å½ä»¤ä»¥éªè¯ X509 å称"
msgid "Silence the output of replay warnings"
msgstr "以éé³çæ¹å¼ååºéæè¦å"
@@ -465,7 +471,7 @@ msgid "Specify a default gateway for routes"
msgstr "æå®è·¯ç±é»è®¤ç½å
³"
msgid "Start OpenVPN in a hibernating state"
-msgstr "以ä¼ç çç¶ææå¼OpenVPN"
+msgstr "以ä¼ç çç¶ææå¼ OpenVPN"
msgid "Start/Stop"
msgstr "å¯å¨/åæ¢"
@@ -483,28 +489,28 @@ msgid "TCP/UDP port # for both local and remote"
msgstr "TCP/UDP ç«¯å£ # åæ¶é对æ¬å°åè¿ç¨"
msgid "TCP/UDP port # for local (default=1194)"
-msgstr "TCP/UDP ç«¯å£ # æ¬å° (é»è®¤ 1194)"
+msgstr "TCP/UDP ç«¯å£ # æ¬å°ï¼é»è®¤ 1194ï¼"
msgid "TCP/UDP port # for remote (default=1194)"
-msgstr "TCP/UDP ç«¯å£ # è¿ç¨ (é»è®¤ 1194)"
+msgstr "TCP/UDP ç«¯å£ # è¿ç¨ï¼é»è®¤ 1194ï¼"
msgid "TLS cipher"
-msgstr "TLSå å¯"
+msgstr "TLS å å¯"
msgid "TOS passthrough (applies to IPv4 only)"
-msgstr "TOS ç©¿é (ä»
éIPv4)"
+msgstr "TOS ç©¿éï¼ä»
é IPv4ï¼"
msgid "Temporary directory for client-connect return file"
msgstr "客æ·ç«¯è¿æ¥è¿åæ件ç临æ¶ç®å½"
msgid "The highest supported TLS version"
-msgstr ""
+msgstr "æé«æ¯æç TLS çæ¬"
msgid "The key direction for 'tls-auth' and 'secret' options"
-msgstr ""
+msgstr "âtls-authâåâsecretâé项çå¯é¥ç±»å"
msgid "The lowest supported TLS version"
-msgstr ""
+msgstr "æä½æ¯æç TLS çæ¬"
msgid "Timeframe for key exchange"
msgstr "å¯é¥äº¤æ¢æ¶é´è¡¨"
@@ -513,10 +519,10 @@ msgid "Type of used device"
msgstr "使ç¨è®¾å¤ç±»å"
msgid "Use fast LZO compression"
-msgstr "使ç¨å¿«éLZOå缩"
+msgstr "使ç¨å¿«é LZO å缩"
msgid "Use individual addresses rather than /30 subnets"
-msgstr "å©ç¨ä¸ªäººå°å代æ¿/30 åç½"
+msgstr "使ç¨ç¬ç«çå°åä»£æ¿ /30 åç½"
msgid "Use protocol"
msgstr "éç¨åè®®"
@@ -531,10 +537,10 @@ msgid "Write log to file"
msgstr "ä¿åæ¥å¿è³æ件"
msgid "Write process ID to file"
-msgstr "è®°å½è¿ç¨IDè³æ件"
+msgstr "è®°å½è¿ç¨ ID è³æ件"
msgid "Write status to file every n seconds"
-msgstr "æ¯nç§ååç¶æå¼è³æ件"
+msgstr "æ¯ n ç§ååå
¥ç¶æè³æ件"
msgid "no"
msgstr "å¦"
@@ -546,7 +552,7 @@ msgid "tun/tap inactivity timeout"
msgstr "tun/tap ä¼ç è¶
æ¶"
msgid "yes (%i)"
-msgstr "æ¯ (%i)"
+msgstr "æ¯ï¼%iï¼"
msgid "« Switch to basic configuration"
msgstr "« åºæ¬é
ç½®"
diff --git a/applications/luci-app-openvpn/po/zh-tw/openvpn.po b/applications/luci-app-openvpn/po/zh-tw/openvpn.po
index f26aeb097a..38bb6fcd0e 100644
--- a/applications/luci-app-openvpn/po/zh-tw/openvpn.po
+++ b/applications/luci-app-openvpn/po/zh-tw/openvpn.po
@@ -1,545 +1,570 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-05-19 19:35+0200\n"
+"PO-Revision-Date: 2017-10-29 14:37+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "%s"
-msgstr ""
+msgstr "%s"
msgid "'net30', 'p2p', or 'subnet'"
-msgstr ""
+msgstr "ânet30âï¼âp2pâï¼æâsubnetâ"
msgid "Accept options pushed from server"
-msgstr ""
+msgstr "æ¥åå¾ä¼ºæå¨å³ééä¾çé¸é
"
msgid "Add"
-msgstr ""
+msgstr "æ°å¢"
msgid "Add route after establishing connection"
-msgstr ""
+msgstr "建ç«é£ç·å¾æ°å¢è·¯ç±"
msgid "Additional authentication over TLS"
-msgstr ""
+msgstr "TLS 以å¤çé©è"
msgid "Allow client-to-client traffic"
-msgstr ""
+msgstr "å
許客æ¶ç«¯å°å®¢æ¶ç«¯çéè¨"
msgid "Allow multiple clients with same certificate"
-msgstr ""
+msgstr "å
許å¤ä½¿ç¨è
å
±ç¨åä¸èæ¸"
msgid "Allow only one session"
-msgstr ""
+msgstr "åªå
許ä¸åæ話"
msgid "Allow remote to change its IP or port"
-msgstr ""
+msgstr "å
許é 端æ¹è® IP æå "
msgid "Allowed maximum of connected clients"
-msgstr ""
+msgstr "å
許æ大已é£ç·å®¢æ¶ç«¯æ¸"
msgid "Allowed maximum of internal"
-msgstr ""
+msgstr "å
許æ大å
§é¨é£ç·"
msgid "Allowed maximum of new connections"
-msgstr ""
+msgstr "å
許æ大æ°å»ºé£ç·æ¸"
msgid "Append log to file"
-msgstr ""
+msgstr "æ°å¢æ¥èªè³æªæ¡"
msgid "Authenticate using username/password"
-msgstr ""
+msgstr "以使ç¨è
å稱/å¯ç¢¼çæ¹å¼é²è¡é©è"
msgid "Automatically redirect default route"
-msgstr ""
+msgstr "èªåéå®åè³é è¨è·¯ç±"
msgid "Below is a list of configured OpenVPN instances and their current state"
-msgstr ""
+msgstr "以ä¸æ¯ OpenVPN å·²é
ç½®ä¾é
åå
¶ç¶åçæ
çå表"
msgid "Call down cmd/script before TUN/TAP close"
-msgstr ""
+msgstr "TUN/TAP ééåçå½ä»¤ååæ令碼"
msgid "Certificate authority"
-msgstr ""
+msgstr "èªèææ¬"
msgid "Change process priority"
-msgstr ""
+msgstr "æ¹è®ç¨åºåªå
é åº"
msgid "Change to directory before initialization"
-msgstr ""
+msgstr "åå§ååæ¹è®æ ¹ç®é"
msgid "Check peer certificate against a CRL"
-msgstr ""
+msgstr "é©è客æ¶ç«¯èæ¸ä»¥ç¢ºä¿å
¶æ¯å¦éæ"
msgid "Chroot to directory after initialization"
-msgstr ""
+msgstr "åå§åå¾æ¹è®æ ¹ç®é"
msgid "Client is disabled"
-msgstr ""
+msgstr "客æ¶ç«¯å·²è¢«ç¦æ¢"
msgid "Configuration category"
-msgstr ""
+msgstr "é
ç½®åé¡"
msgid "Configure client mode"
-msgstr ""
+msgstr "é
置客æ¶ç«¯æ¨¡å¼"
msgid "Configure server bridge"
-msgstr ""
+msgstr "é
置伺æå¨æ©æ¥"
msgid "Configure server mode"
-msgstr ""
+msgstr "é
置伺æå¨æ¨¡å¼"
msgid "Connect through Socks5 proxy"
-msgstr ""
+msgstr "éé Sock5 代çé£ç·"
msgid "Connect to remote host through an HTTP proxy"
-msgstr ""
+msgstr "éé HTTP 代çé£ç·å°é 端主æ©"
msgid "Connection retry interval"
-msgstr ""
+msgstr "é£ç·é試æééé"
msgid "Daemonize after initialization"
-msgstr ""
+msgstr "åå§åå¾é²å
¥å¾èºå·è¡"
msgid "Delay n seconds after connection"
-msgstr ""
+msgstr "é£ç·å¾å»¶é²æé(ç§ï¼"
msgid "Delay tun/tap open and up script execution"
-msgstr ""
+msgstr "å»¶é² tun/tap çéåå up æ令碼çå·è¡"
msgid "Diffie Hellman parameters"
-msgstr ""
+msgstr "DiffieâHellman/DH éé°äº¤æå¼æ¸"
msgid "Directory for custom client config files"
-msgstr ""
+msgstr "èªå®ç¾©å®¢æ¶ç«¯é
ç½®æªæ¡çç®é"
msgid "Disable Paging"
-msgstr ""
+msgstr "ç¦æ¢åé "
msgid "Disable cipher initialisation vector"
-msgstr ""
+msgstr "ééå å¯çåå§ååé"
msgid "Disable options consistency check"
-msgstr ""
+msgstr "ç¦æ¢é¸é
ä¸è´æ§æª¢æ¥"
msgid "Disable replay protection"
-msgstr ""
+msgstr "éééæä¿è·"
msgid "Do not bind to local address and port"
-msgstr ""
+msgstr "ä¸ç¹«çµæ¬å°ä½ååå "
msgid "Don't actually execute ifconfig"
-msgstr ""
+msgstr "ä¸å¯¦éå·è¡ ifconfig å½ä»¤"
msgid "Don't add routes automatically"
-msgstr ""
+msgstr "ä¸èªåæ°å¢è·¯ç±"
msgid "Don't cache --askpass or --auth-user-pass passwords"
-msgstr ""
+msgstr "ä¸å¿«å --askpass æ --auth-user-pass passwords"
msgid "Don't inherit global push options"
-msgstr ""
+msgstr "ä¸ç¹¼æ¿å
¨åæ§ä¸»åå³éé¸é
"
msgid "Don't log timestamps"
-msgstr ""
+msgstr "ä¸è¨éæéæ³"
msgid "Don't pull routes automatically"
-msgstr ""
+msgstr "ä¸èªåæåè·¯ç±"
msgid "Don't re-read key on restart"
-msgstr ""
+msgstr "æåéåæä¸éè®éé°å¼"
msgid "Don't require client certificate"
-msgstr ""
+msgstr "ä¸éè¦å®¢æ¶çèæ¸"
msgid "Don't use adaptive lzo compression"
-msgstr ""
+msgstr "ä¸ç¨èªé©æ lzo å£ç¸®"
msgid "Don't warn on ifconfig inconsistencies"
-msgstr ""
+msgstr "ifconfig ä¸ä¸è´æä¸è¦å"
msgid "Echo parameters to log"
-msgstr ""
+msgstr "æå¼æ¸å¯«å
¥æ¥èª"
msgid "Empirically measure MTU"
-msgstr ""
+msgstr "以æ·å²å¼ä¼°ç® MTU å¼"
msgid "Enable OpenSSL hardware crypto engines"
-msgstr ""
+msgstr "éå OpenSSL 硬é«å å¯å¼æ"
msgid "Enable Path MTU discovery"
-msgstr ""
+msgstr "åç¨è·¯å¾ MTU ç¼ç¾"
msgid "Enable Static Key encryption mode (non-TLS)"
-msgstr ""
+msgstr "å
許éæ
éé°å å¯æ¨¡å¼"
msgid "Enable TLS and assume client role"
-msgstr ""
+msgstr "å
許 TLS 並å½è£çºå®¢æ¶ç«¯"
msgid "Enable TLS and assume server role"
-msgstr ""
+msgstr "å
許 TLS 並å½è£çºä¼ºæå¨"
msgid "Enable internal datagram fragmentation"
-msgstr ""
+msgstr "å
許å
§é¨è³æå ±åç"
msgid "Enable management interface on IP port "
-msgstr ""
+msgstr "å¨ IP port ä¸åç¨å¯ç®¡çä»é¢"
msgid "Enabled"
-msgstr ""
+msgstr "åç¨"
+
+msgid "Encrypt and authenticate all control channel packets with the key"
+msgstr "使ç¨éé°å å¯åèªèææçæ§å¶ééè³æå
"
msgid "Encryption cipher for packets"
-msgstr ""
+msgstr "å å¯è³æå
"
msgid "Execute shell cmd after routes are added"
-msgstr ""
+msgstr "æ°å¢è·¯ç±å¾å·è¡ shell å½ä»¤"
msgid "Execute shell command on remote ip change"
-msgstr ""
+msgstr "ç¶é 端 ip æ¹è®æå·è¡ shell å½ä»¤"
msgid ""
"Executed in server mode on new client connections, when the client is still "
"untrusted"
-msgstr ""
+msgstr "å¨ä¼ºæå¨æ¨¡å¼ä¸å·è¡æ°ç客æ¶ç«¯é£ç·ï¼ç¶å®¢æ¶ç«¯ä»ç¶æ¯ä¸å¯ä¿¡"
msgid ""
"Executed in server mode whenever an IPv4 address/route or MAC address is "
"added to OpenVPN's internal routing table"
msgstr ""
+"伺æå¨æ¨¡å¼ä¸ï¼å°æ¯å IPv4 ä½å/è·¯ç±æ MAC ä½åæ°å¢å° OpenVPN çå
§é¨è·¯ç±è¡¨ä¸ã"
msgid "Exit on TLS negotiation failure"
-msgstr ""
+msgstr "TLS é©è失æå¾éåº"
msgid "Get PEM password from controlling tty before we daemonize"
-msgstr ""
+msgstr "å¾èºå·è¡åå¾æ§å¶ç tty ä¸ç²å PEM å¯ç¢¼"
msgid "HMAC authentication for packets"
-msgstr ""
+msgstr "å©ç¨ HMAC æ¼ç®æ³æ ¡é©è³æå
"
msgid "Handling of authentication failures"
-msgstr ""
+msgstr "èçé©è失æ"
msgid ""
"Helper directive to simplify the expression of --ping and --ping-restart in "
"server mode configurations"
-msgstr ""
+msgstr "å¨æåé
置模å¼ä¸ç°¡å Helper æ令 --ping å --ping-restart ç表示å¼"
msgid "If hostname resolve fails, retry"
-msgstr ""
+msgstr "å¦æ主æ©å解æé¯èª¤ï¼é試"
msgid "Instance \"%s\""
-msgstr ""
+msgstr "ä¾é
\"%s\""
msgid "Invalid"
-msgstr ""
+msgstr "ç¡æ"
msgid "Keep local IP address on restart"
-msgstr ""
+msgstr "æåéåæä¿ææ¬å° IP ä½å"
msgid "Keep remote IP address on restart"
-msgstr ""
+msgstr "æåéåæä¿æé 端 IP ä½å"
msgid "Keep tun/tap device open on restart"
-msgstr ""
+msgstr "æåéåæèªåéå tun/tap è£ç½®"
msgid "Key transition window"
-msgstr ""
+msgstr "éé°å³è¼¸æ»åè¦çª"
msgid "Limit repeated log messages"
-msgstr ""
+msgstr "éå¶éè¤çæ¥èªè¨æ¯"
msgid "Local certificate"
-msgstr ""
+msgstr "æ¬å°èæ¸"
msgid "Local host name or ip address"
-msgstr ""
+msgstr "æ¬å°ä¸»æ©åæ ip ä½å"
msgid "Local private key"
-msgstr ""
+msgstr "æ¬å°ç§é°"
msgid "Major mode"
-msgstr ""
+msgstr "主è¦æ¨¡å¼"
msgid "Make tun device IPv6 capable"
-msgstr ""
+msgstr "使 tun è£ç½®ç¸å®¹ IPv6"
msgid "Maximum number of queued TCP output packets"
-msgstr ""
+msgstr "TCPä½åä¸è¼¸åºå
çæ大æ¸é"
msgid "Number of allocated broadcast buffers"
-msgstr ""
+msgstr "å·²åé
ç廣æç·©è¡åæ¸é"
msgid "Number of lines for log file history"
-msgstr ""
+msgstr "æ·å²æ¥èªæªæ¡çè¡æ¸"
msgid "Only accept connections from given X509 name"
-msgstr ""
+msgstr "åªæ¥æ¶å·²çµ¦å®ç X509 å稱çé£ç·"
msgid "Only process ping timeouts if routes exist"
-msgstr ""
+msgstr "å
ç¶è·¯ç±åå¨æèç ping è¶
æ"
msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
msgid "OpenVPN instances"
-msgstr ""
+msgstr "OpenVPN ä¾é
"
msgid "Optimize TUN/TAP/UDP writes"
-msgstr ""
+msgstr "åªå TUN/TAP/UDP 寫å
¥"
msgid "Output to syslog and do not daemonize"
-msgstr ""
+msgstr "輸åºå° syslogï¼ä¸å·è¡å®è·ç¨åº"
msgid "Overview"
-msgstr ""
+msgstr "æ¦è¦½"
msgid "PKCS#12 file containing keys"
-msgstr ""
+msgstr "PKCS#12 æªæ¡å
å«çéé°"
msgid "Pass environment variables to script"
-msgstr ""
+msgstr "å³éç°å¢è®æ¸è³æ令碼"
msgid "Persist replay-protection state"
-msgstr ""
+msgstr "å²åéæä¿è·ççæ
"
msgid "Persist/unpersist ifconfig-pool"
-msgstr ""
+msgstr "æä¹
/éæä¹
ifconfig æ± "
msgid "Ping remote every n seconds over TCP/UDP port"
-msgstr ""
+msgstr "æ¯ n ç§ ping ä¸æ¬¡é 端 TCP/UDP å "
msgid "Policy level over usage of external programs and scripts"
-msgstr ""
+msgstr "å¤é¨ç¨å¼åæ令碼è¶
åºäºçç¥å
許ç使ç¨ç¯å"
msgid "Port"
-msgstr ""
+msgstr "å "
msgid "Protocol"
-msgstr ""
+msgstr "åè°"
msgid "Proxy timeout in seconds"
-msgstr ""
+msgstr "代çè¶
æï¼å®ä½ç§"
msgid "Push an ifconfig option to remote"
-msgstr ""
+msgstr "主ååé 端å³é ifconfig é¸é
"
msgid "Push options to peer"
-msgstr ""
+msgstr "主åå端é»ç¼éé¸é
"
msgid "Query management channel for private key"
-msgstr ""
+msgstr "çºç§é°æ¥è©¢ç®¡çéé"
msgid "Randomly choose remote server"
-msgstr ""
+msgstr "é¨æ©é¸æé 端伺æå¨"
msgid "Refuse connection if no custom client config"
-msgstr ""
+msgstr "ææ¥æ²æèªå®ç¾©å®¢æ¶ç«¯é
ç½®çé£ç·"
msgid "Remap SIGUSR1 signals"
-msgstr ""
+msgstr "éå°æ SIGUSR1 è¨è"
msgid "Remote host name or ip address"
-msgstr ""
+msgstr "é 端主æ©åæ ip ä½å"
msgid "Remote ping timeout"
-msgstr ""
+msgstr "é 端 ping è¶
æ"
msgid "Renegotiate data chan. key after bytes"
-msgstr ""
+msgstr "å³è¼¸è¥å¹²ä½å
çµå¾éæ°é©èè³æéééé°"
msgid "Renegotiate data chan. key after packets"
-msgstr ""
+msgstr "å³è¼¸è¥å¹²è³æå
å¾éæ°é©èè³æéééé°"
msgid "Renegotiate data chan. key after seconds"
-msgstr ""
+msgstr "å³è¼¸è¥å¹²ç§å¾éæ°é©èè³æéééé°"
msgid "Replay protection sliding window size"
-msgstr ""
+msgstr "éæä¿è·çæ»åè¦çªå¤§å°"
msgid "Require explicit designation on certificate"
-msgstr ""
+msgstr "èæ¸éè¦é¡¯å¼æå®"
msgid "Require explicit key usage on certificate"
-msgstr ""
+msgstr "èæ¸éè¦æ確çéé°"
msgid "Restart after remote ping timeout"
-msgstr ""
+msgstr "é 端 ping è¶
æå¾éå"
msgid "Retransmit timeout on TLS control channel"
-msgstr ""
+msgstr "TLS æ§å¶ééè¶
æå¾éæ°ç¼é"
msgid "Retry indefinitely on HTTP proxy errors"
-msgstr ""
+msgstr "ç¡éé試ç´è³ä»£çæ£ç¢º"
msgid "Retry indefinitely on Socks proxy errors"
-msgstr ""
+msgstr "ç¡éé試ç´è³ Socks 代çæ£ç¢º"
msgid "Route subnet to client"
-msgstr ""
+msgstr "è·¯ç±å網è³å®¢æ¶ç«¯"
msgid "Run as an inetd or xinetd server"
-msgstr ""
+msgstr "以 inetd æ xinetd 伺æå¨çæ¹å¼å·è¡"
msgid "Run script cmd on client connection"
-msgstr ""
+msgstr "ç¶å®¢æ¶ç«¯é£ç·æå¨å½ä»¤åä¸å
許æ令碼"
msgid "Run script cmd on client disconnection"
-msgstr ""
+msgstr "ç¶å®¢æ¶ç«¯æ·éæå¨å½ä»¤åä¸å
許æ令碼"
msgid "Run up/down scripts for all restarts"
-msgstr ""
+msgstr "æ¯æ¬¡éåé½å·è¡åå/ééæ令碼"
msgid "Send notification to peer on disconnect"
-msgstr ""
+msgstr "æ·éé£ç·æå客æ¶ç«¯å³ééç¥"
msgid "Set GID to group"
-msgstr ""
+msgstr "çºç¾¤çµè¨å® GID å¼"
msgid "Set TCP/UDP MTU"
-msgstr ""
+msgstr "è¨å® TCP/UDP ç MTU å¼"
msgid "Set UID to user"
-msgstr ""
+msgstr "çºä½¿ç¨è
è¨å® UID å¼"
msgid "Set aside a pool of subnets"
-msgstr ""
+msgstr "è¨å®åç¶²æ± "
msgid "Set extended HTTP proxy options"
-msgstr ""
+msgstr "è¨å® HTTP æ´å
å¥ä»¶ä»£çé¸é
"
msgid "Set output verbosity"
-msgstr ""
+msgstr "è¨å®è¼¸åºåé¤ç´å¥"
msgid "Set size of real and virtual address hash tables"
-msgstr ""
+msgstr "è¨å®å¯¦éåèæ¬ä½åçéæ¹è¡¨å¤§å°"
msgid "Set the TCP/UDP receive buffer size"
-msgstr ""
+msgstr "è¨å® TCP/UDP æ¥æ¶ç·©è¡å大å°"
msgid "Set the TCP/UDP send buffer size"
-msgstr ""
+msgstr "è¨å® TCP/UDP å³éç·©è¡å大å°"
msgid "Set tun/tap TX queue length"
-msgstr ""
+msgstr "è¨å® tun/tap å³éä½åé·åº¦"
msgid "Set tun/tap adapter parameters"
-msgstr ""
+msgstr "è¨å® tun/tap ä»é¢å¡å¼æ¸"
msgid "Set tun/tap device MTU"
-msgstr ""
+msgstr "è¨å® tun/tap è£ç½®ç MTU å¼"
msgid "Set tun/tap device overhead"
-msgstr ""
+msgstr "è¨å® tun/tap è£ç½®çéé·"
msgid "Set upper bound on TCP MSS"
-msgstr ""
+msgstr "è¨å® TCP MSS ä¸é"
msgid "Shaping for peer bandwidth"
-msgstr ""
+msgstr "æ¹è®çµé»é »å¯¬"
msgid "Shell cmd to execute after tun device open"
-msgstr ""
+msgstr "tun è£ç½®éåå¾å·è¡ç shell å½ä»¤"
msgid "Shell cmd to run after tun device close"
-msgstr ""
+msgstr "tun è£ç½®ééå¾å·è¡ç shell å½ä»¤"
msgid "Shell command to verify X509 name"
-msgstr ""
+msgstr "å·è¡ shell å½ä»¤ä»¥é©è X509 å稱"
msgid "Silence the output of replay warnings"
-msgstr ""
+msgstr "以éé³çæ¹å¼ç¼åºéæè¦å"
msgid "Size of cipher key"
-msgstr ""
+msgstr "éé°å¤§å°"
msgid "Specify a default gateway for routes"
-msgstr ""
+msgstr "æå®è·¯ç±é è¨ééå¨"
msgid "Start OpenVPN in a hibernating state"
-msgstr ""
+msgstr "以ä¼ç ççæ
éå OpenVPN"
msgid "Start/Stop"
-msgstr ""
+msgstr "åå/åæ¢"
msgid "Started"
-msgstr ""
+msgstr "å·²å·è¡ç"
msgid "Status file format version"
-msgstr ""
+msgstr "顯å¼æªæ¡æ ¼å¼çæ¬ççæ
"
msgid "Switch to advanced configuration »"
-msgstr ""
+msgstr "é«éé
置 »"
msgid "TCP/UDP port # for both local and remote"
-msgstr ""
+msgstr "TCP/UDP å # åæéå°æ¬å°åé 端"
msgid "TCP/UDP port # for local (default=1194)"
-msgstr ""
+msgstr "TCP/UDP å # æ¬å°ï¼é è¨ 1194ï¼"
msgid "TCP/UDP port # for remote (default=1194)"
-msgstr ""
+msgstr "TCP/UDP å # é 端ï¼é è¨ 1194ï¼"
msgid "TLS cipher"
-msgstr ""
+msgstr "TLS å å¯"
msgid "TOS passthrough (applies to IPv4 only)"
-msgstr ""
+msgstr "TOS ç©¿éï¼å
é IPv4ï¼"
msgid "Temporary directory for client-connect return file"
-msgstr ""
+msgstr "客æ¶ç«¯é£ç·è¿åæªæ¡çè¨æç®é"
msgid "The highest supported TLS version"
-msgstr ""
+msgstr "æé«æ¯æ´ç TLS çæ¬"
msgid "The key direction for 'tls-auth' and 'secret' options"
-msgstr ""
+msgstr "âtls-authâåâsecretâé¸é
çéé°åå¥"
msgid "The lowest supported TLS version"
-msgstr ""
+msgstr "æä½æ¯æ´ç TLS çæ¬"
msgid "Timeframe for key exchange"
-msgstr ""
+msgstr "éé°äº¤ææé表"
msgid "Type of used device"
-msgstr ""
+msgstr "使ç¨è£ç½®åå¥"
msgid "Use fast LZO compression"
-msgstr ""
+msgstr "使ç¨å¿«é LZO å£ç¸®"
msgid "Use individual addresses rather than /30 subnets"
-msgstr ""
+msgstr "使ç¨ç¨ç«çä½åä»£æ¿ /30 å網"
msgid "Use protocol"
-msgstr ""
+msgstr "æ¡ç¨åè°"
msgid "Use tun/tap device node"
-msgstr ""
+msgstr "ä½¿ç¨ tun/tap è£ç½®ç¯é»"
msgid "Use username as common name"
-msgstr ""
+msgstr "æ使ç¨è
å稱ä½çºéç¨å稱"
msgid "Write log to file"
-msgstr ""
+msgstr "å²åæ¥èªè³æªæ¡"
msgid "Write process ID to file"
-msgstr ""
+msgstr "è¨éç¨åº ID è³æªæ¡"
msgid "Write status to file every n seconds"
-msgstr ""
+msgstr "æ¯ n ç§å¾å¯«å
¥çæ
è³æªæ¡"
msgid "no"
-msgstr ""
+msgstr "å¦"
msgid "tun/tap device"
-msgstr ""
+msgstr "tun/tap è£ç½®"
msgid "tun/tap inactivity timeout"
-msgstr ""
+msgstr "tun/tap ä¼ç è¶
æ"
msgid "yes (%i)"
-msgstr ""
+msgstr "æ¯ï¼%iï¼"
msgid "« Switch to basic configuration"
-msgstr ""
+msgstr "« åºæ¬é
ç½®"
+
+#~ msgid "Cryptography"
+#~ msgstr "å å¯"
+
+#~ msgid "Networking"
+#~ msgstr "網路"
+
+#~ msgid "Service"
+#~ msgstr "æå"
+
+#~ msgid "VPN"
+#~ msgstr "VPN"
diff --git a/applications/luci-app-p2pblock/po/pt-br/p2pblock.po b/applications/luci-app-p2pblock/po/pt-br/p2pblock.po
index de3638164e..8ebac375f2 100644
--- a/applications/luci-app-p2pblock/po/pt-br/p2pblock.po
+++ b/applications/luci-app-p2pblock/po/pt-br/p2pblock.po
@@ -1,3 +1,7 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+
msgid "Block Time"
msgstr "Tempo de bloqueio"
diff --git a/applications/luci-app-p910nd/po/zh-tw/p910nd.po b/applications/luci-app-p910nd/po/zh-tw/p910nd.po
index 7d6c08041e..e6f6313374 100644
--- a/applications/luci-app-p910nd/po/zh-tw/p910nd.po
+++ b/applications/luci-app-p910nd/po/zh-tw/p910nd.po
@@ -21,7 +21,7 @@ msgid ""
"First you have to install the packages to get support for USB (kmod-usb-"
"printer) or parallel port (kmod-lp)."
msgstr ""
-"é¦å
ä½ å¿
é å®è£è»é«å
以便ç²å¾USB (kmod-usb-printer)æ串åå (kmod-lp)çæ¯æ´."
+"é¦å
æ¨å¿
é å®è£è»é«å
以便ç²å¾USB (kmod-usb-printer)æ串åå (kmod-lp)çæ¯æ´."
msgid "Interface"
msgstr ""
diff --git a/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po b/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po
index 0be8258a08..5545c05fc0 100644
--- a/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po
+++ b/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po
@@ -1,15 +1,18 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-10-08 18:42+0200\n"
-"Last-Translator: Tanyingyu \n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-10-28 16:41+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Email Addresses that Receive Voicemail"
msgstr "æ¥æ¶è¯é³é®ç®±ççµåé®ç®±å°å"
@@ -28,8 +31,10 @@ msgid ""
"SMTP server), and provide a list of addresses that receive recorded "
"voicemail."
msgstr ""
-"å¨è¿éï¼ä½ å¯ä»¥ä¸ºPBXé
ç½®ä¸ä¸ªå
¨çæ§çè¯é³é®ä»¶ãç±äºè¿ä¸ªç³»ç»è¿è¡å¨åµå
¥å¼ç³»ç»ä¸ï¼å¦è·¯ç±å¨ï¼æ²¡ææ¬å°åå¨è¯é³é®ä»¶ - å®å¿
é¡»éè¿çµåé®ä»¶åéåºå»ãå æ¤ï¼ä½ "
-"éè¦é
ç½®ä¸ä¸ªå¤åé®ä»¶ï¼SMTPï¼æå¡å¨ï¼ä¾å¦æ¨çISPï¼è°·ææé
èçSMTPæå¡å¨ï¼ï¼å¹¶æä¾æ¥æ¶è®°å½è¯é³ä¿¡ç®±çå°åçå表ã"
+"å¨è¿éï¼æ¨å¯ä»¥ä¸º PBX é
ç½®ä¸ä¸ªå
¨çæ§çè¯é³é®ä»¶ãç±äºè¿ä¸ªç³»ç»è¿è¡å¨åµå
¥å¼ç³»ç»"
+"ä¸ï¼å¦è·¯ç±å¨ï¼è¿é并æ æ¬å°è¯è¨é®ä»¶çå¨åç©ºé´ - å®å¿
é¡»éè¿çµåé®ä»¶åéåºå»ãå "
+"æ¤ï¼æ¨éè¦é
ç½®ä¸ä¸ªå¤åé®ä»¶ï¼SMTPï¼æå¡å¨ï¼ä¾å¦æ¨ç ISPãè°·ææé
èç SMTP æ"
+"å¡å¨ï¼ï¼å¹¶æä¾æ¥æ¶è®°å½è¯é³ä¿¡ç®±çå°åçå表ã"
msgid ""
"In order for this PBX to send emails containing voicemail recordings, you "
@@ -37,11 +42,12 @@ msgid ""
"for that purpose. You can also set up a third party SMTP server such as the "
"one provided by Google or Yahoo."
msgstr ""
-"为äºè¿ä¸ªPBXåéå
å«è¯é³ä¿¡ç®±å½é³ççµåé®ä»¶ï¼ä½ éè¦å¨è¿é设置ä¸ä¸ªSMTPæå¡å¨ãæ¨çISPé常ä¼æä¾ä¸ä¸ªSMTPæå¡å¨ãæ¨ä¹å¯ä»¥è®¾ç«ä¸ä¸ªç¬¬ä¸æ¹çSMT"
-"Pæå¡å¨ï¼åè°·ææé
èã"
+"为äºè¿ä¸ª PBX åéå
å«è¯é³ä¿¡ç®±å½é³ççµåé®ä»¶ï¼æ¨éè¦å¨è¿é设置ä¸ä¸ª SMTP æå¡"
+"å¨ãæ¨ç ISP é常ä¼æä¾ä¸ä¸ª SMTP æå¡å¨ãæ¨ä¹å¯ä»¥è®¾ç«ä¸ä¸ªç¬¬ä¸æ¹ç SMTP æå¡"
+"å¨ï¼å¦è°·ææé
èé£æ ·ã"
msgid "Last Sent Voicemail Log"
-msgstr "æååéçè¯é³ä¿¡ç®±æ¥å¿"
+msgstr "ä¸ä¸æ¬¡åéè¯é³ä¿¡ç®±çæ¥å¿"
msgid "Local Storage Directory"
msgstr "æ¬å°åå¨ç®å½"
@@ -53,22 +59,22 @@ msgid "Outgoing mail (SMTP) Server"
msgstr "çµåé®ä»¶åéæå¡å¨ï¼SMTPï¼"
msgid "SMTP Password"
-msgstr "SMTPç»å½å¯ç "
+msgstr "SMTP ç»å½å¯ç "
msgid "SMTP Port Number"
-msgstr "SMTP端å£"
+msgstr "SMTP 端å£"
msgid "SMTP Server Authentication"
-msgstr "SMTPæå¡å¨è®¤è¯"
+msgstr "SMTP æå¡å¨è®¤è¯"
msgid "SMTP Server Hostname or IP Address"
-msgstr "SMTPæå¡å¨ä¸»æºåæIPå°å"
+msgstr "SMTP æå¡å¨ä¸»æºåæ IP å°å"
msgid "SMTP User Name"
-msgstr "SMTPç¨æ·å"
+msgstr "SMTP ç¨æ·å"
msgid "Secure Connection Using TLS"
-msgstr "使ç¨TLSå®å
¨è¿æ¥"
+msgstr "ä½¿ç¨ TLS å®å
¨è¿æ¥"
msgid "Voicemail Setup"
msgstr "è¯é³é®ç®±è®¾ç½®"
@@ -77,7 +83,9 @@ msgid ""
"When you enable voicemail, you will have the opportunity to specify email "
"addresses that receive recorded voicemail. You must also set up an SMTP "
"server below."
-msgstr "å½ä½ å¯ç¨äºè¯é³ä¿¡ç®±ï¼ä½ å°è¦æå®æ¥æ¶è®°å½è¯é³ä¿¡ç®±ççµåé®ä»¶å°åãæ¨è¿å¿
须设置ä¸é¢çSMTPæå¡å¨"
+msgstr ""
+"å½æ¨å¯ç¨äºè¯é³ä¿¡ç®±ï¼æ¨å°å¯ä»¥æå®æ¥æ¶è®°å½è¯é³ä¿¡ç®±ççµåé®ä»¶å°åãæ¨ä¹å¿
é¡»å¨ä¸"
+"é¢è®¾ç½® SMTP æå¡å¨ã"
msgid "Yes"
msgstr "æ¯"
@@ -88,10 +96,12 @@ msgid ""
"limited space on embedded devices like routers, and enable this option only "
"if you know what you are doing."
msgstr ""
-"æ¨ä¹å¯ä»¥ä¿çæ¨çPBXè¯é³ä¿¡ç®±çè¨çå¯æ¬å¨ä½ è¿è¡ç设å¤ä¸ãæ¤å¤æå®çè·¯å¾å½ä¸åå¨æ¶ï¼å°è¢«å建ãè°¨é²åµå
¥å¼è®¾å¤ä¸æéçåå空é´ï¼å¦è·¯ç±å¨ï¼æ以æ¤é项åªæä½ "
-"å½ç¥éå¤çæ¶æå¯ä½¿ç¨ã"
+"æ¨ä¹å¯ä»¥å¨æ¨è¿è¡ PBX ç设å¤ä¸ä¿çè¯é³ä¿¡ç®±çè¨çå¯æ¬ãæ¤å¤æå®çè·¯å¾å½ä¸åå¨"
+"æ¶ï¼å°ä¼å建ãè°¨é²åµå
¥å¼è®¾å¤ä¸æéçåå空é´ï¼å¦è·¯ç±å¨ï¼æ以æ¤é项åªæå½æ¨ç¡®"
+"å®ç¨éæ¶æå¯ä½¿ç¨ã"
msgid ""
"Your real SMTP password is not shown for your protection. It will be changed "
"only when you change the value in this box."
-msgstr "为äºä¿æ¤æ¨çæ£çSMTPå¯ç ä¸æ¾ç¤ºã该é项éè¦æ´æ¹ã"
+msgstr ""
+"为äºä¿æ¤æ¨ï¼çæ£ç SMTP å¯ç å°ä¸ä¼æ¾ç¤ºãåªæå½æ¨æ¹åæ¡ä¸çæ°å¼æ¶å®æä¼åæ´ã"
diff --git a/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po b/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po
index 14de629830..8464289997 100644
--- a/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po
+++ b/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po
@@ -1,24 +1,27 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-14 18:41+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-10-28 16:41+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Email Addresses that Receive Voicemail"
-msgstr "æ¥æ¶èªé³éµä»¶çä¿¡ç®±ä½å"
+msgstr "æ¥æ¶èªé³éµç®±çé»åéµç®±ä½å"
msgid "Enable Voicemail"
-msgstr "åç¨èªé³éµä»¶åè½"
+msgstr "åç¨èªé³éµç®±"
msgid "Global Voicemail Setup"
-msgstr "èªé³éµä»¶éç¨è¨å®"
+msgstr "å
¨åæ§èªé³éµç®±è¨å®"
msgid ""
"Here you can configure a global voicemail for this PBX. Since this system is "
@@ -28,9 +31,10 @@ msgid ""
"SMTP server), and provide a list of addresses that receive recorded "
"voicemail."
msgstr ""
-"å¨é裡å¯ä»¥å¹«PBX總æ©è¨å®éç¨èªé³éµä»¶. å çºéå系統æ³è¦åè·¯ç±å¨ä¸è¬è·å¨åµå
¥å¼ç³»çµ±, é裡並ç¡æ¬å°èªè¨éµä»¶çå²å空é - å®å¿
é ç±éµä»¶ä¾å³é. "
-"å æ¤ä½ éè¦è¨å®ä¸å(SMTP)å¤å¯éµä»¶ä¼ºæå¨(ä¾å¦ä½ çISP, Google, æè
Yahooå¤å¯éµä»¶ä¼ºæå¨), "
-"並ä¸æä¾ä¸åä½åæ¸
å®å¯ä»¥æ¥æ¶éé³æªçèªé³éµä»¶."
+"å¨é裡ï¼æ¨å¯ä»¥çº PBX é
ç½®ä¸åå
¨çæ§çèªé³éµä»¶ãç±æ¼éå系統å·è¡å¨åµå
¥å¼ç³»çµ±"
+"ä¸ï¼å¦è·¯ç±å¨ï¼é裡並ç¡æ¬å°èªè¨éµä»¶çå²å空é - å®å¿
é ééé»åéµä»¶å³éåºå»ãå "
+"æ¤ï¼æ¨éè¦é
ç½®ä¸åå¤ç¼éµä»¶ï¼SMTPï¼ä¼ºæå¨ï¼ä¾å¦æ¨ç ISPãè°·ææé
èç SMTP æ"
+"åå¨ï¼ï¼ä¸¦æä¾æ¥æ¶è¨éèªé³ä¿¡ç®±çä½åçå表ã"
msgid ""
"In order for this PBX to send emails containing voicemail recordings, you "
@@ -38,50 +42,53 @@ msgid ""
"for that purpose. You can also set up a third party SMTP server such as the "
"one provided by Google or Yahoo."
msgstr ""
-"çºäºå¹«PBX總æ©å³éé帶èªé³éµä»¶éé³æª, ä½ å¿
é è¨å®ä¸å(SMTP)å¤å¯éµä»¶ä¼ºæå¨.éå¸¸ä½ çISPææä¾ä¸åSMTPå¤å¯éµä»¶ä¼ºæå¨è®å®¢æ¶å¯ä¿¡,.ä½ ä¹å¯ä»¥"
-"è¨å®ç¬¬ä¸æ¹SMTPå¤å¯éµä»¶ä¼ºæå¨é¡ä¼¼GoogleæYahooæä¾çä¹è¡."
+"çºäºéå PBX å³éå
å«èªé³ä¿¡ç®±éé³çé»åéµä»¶ï¼æ¨éè¦å¨é裡è¨å®ä¸å SMTP æå"
+"å¨ãæ¨ç ISP é常ææä¾ä¸å SMTP 伺æå¨ãæ¨ä¹å¯ä»¥è¨ç«ä¸å第ä¸æ¹ç SMTP æå"
+"å¨ï¼å¦è°·ææé
èé£æ¨£ã"
msgid "Last Sent Voicemail Log"
-msgstr "ä¸ä¸æ¬¡å³éèªé³éµä»¶çè¨é"
+msgstr "ä¸ä¸æ¬¡å³éèªé³ä¿¡ç®±çæ¥èª"
msgid "Local Storage Directory"
-msgstr "æ¬å°ç«¯å²åç®é"
+msgstr "æ¬å°å²åç®é"
msgid "No"
-msgstr "No"
+msgstr "ä¸"
msgid "Outgoing mail (SMTP) Server"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨"
+msgstr "é»åéµä»¶å³é伺æå¨ï¼SMTPï¼"
msgid "SMTP Password"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨å³éå¯ç¢¼"
+msgstr "SMTP ç»å
¥å¯ç¢¼"
msgid "SMTP Port Number"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨æåå è"
+msgstr "SMTP å "
msgid "SMTP Server Authentication"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨é©è"
+msgstr "SMTP 伺æå¨èªè"
msgid "SMTP Server Hostname or IP Address"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨ä¸»æ©å稱æè
IPä½å"
+msgstr "SMTP 伺æå¨ä¸»æ©åæ IP ä½å"
msgid "SMTP User Name"
-msgstr "å¤å¯éµä»¶(SMTP)伺æå¨ç»å
¥ä½¿ç¨è
å稱"
+msgstr "SMTP 使ç¨è
å稱"
msgid "Secure Connection Using TLS"
-msgstr "æ¡ç¨TLSå å¯åè°å®å
¨é£ç·"
+msgstr "ä½¿ç¨ TLS å®å
¨é£ç·"
msgid "Voicemail Setup"
-msgstr "è¨å®èªé³éµä»¶"
+msgstr "èªé³éµç®±è¨å®"
msgid ""
"When you enable voicemail, you will have the opportunity to specify email "
"addresses that receive recorded voicemail. You must also set up an SMTP "
"server below."
-msgstr "ç¶ä½ åç¨èªé³éµä»¶åè½, æ¬å°ææ©ææå®ç¹å®å¯æ¥æ¶éé³æªçèªé³éµä»¶çéµä»¶ä½å. ä½ ä¹å¿
é å¨ä¸é¢è¨å®å¤å¯éµä»¶(SMTP)伺æå¨."
+msgstr ""
+"ç¶æ¨åç¨äºèªé³ä¿¡ç®±ï¼æ¨å°å¯ä»¥æå®æ¥æ¶è¨éèªé³ä¿¡ç®±çé»åéµä»¶ä½åãæ¨ä¹å¿
é å¨ä¸"
+"é¢è¨å® SMTP 伺æå¨ã"
msgid "Yes"
-msgstr "Yes"
+msgstr "æ¯"
msgid ""
"You can also retain copies of voicemail messages on the device running your "
@@ -89,10 +96,12 @@ msgid ""
"limited space on embedded devices like routers, and enable this option only "
"if you know what you are doing."
msgstr ""
-"ä½ ä¹å¯ä»¥ä¿çèªé³éµä»¶è¨æ¯çè¤æ¬å¨PBX總æ©çè¨åä¸. é裡ææå®çè·¯å¾å¦æå®ä¸åå¨æå°æ被建ç«. çºé é²åè·¯ç±å¨çåµå
¥å¼è¨åæéç空ééå¶, "
-"å¦æä½ ç¢ºå®éåç¨éè«åç¨éåé¸é
."
+"æ¨ä¹å¯ä»¥å¨æ¨å·è¡ PBX çè£ç½®ä¸ä¿çèªé³ä¿¡ç®±çè¨çå¯æ¬ãæ¤èæå®çè·¯å¾ç¶ä¸åå¨"
+"æï¼å°æ建ç«ã謹é²åµå
¥å¼è£ç½®ä¸æéçåå空éï¼å¦è·¯ç±å¨ï¼æ以æ¤é¸é
åªæç¶æ¨ç¢º"
+"å®ç¨éææå¯ä½¿ç¨ã"
msgid ""
"Your real SMTP password is not shown for your protection. It will be changed "
"only when you change the value in this box."
-msgstr "çºäºä¿è·ä½ çSMTPå¯ç¢¼å°ä¸æ顯示. åªæç¶ä½ æ¹è®çåä¸çå¼æå®å°æ被è®æ´"
+msgstr ""
+"çºäºä¿è·æ¨ï¼çæ£ç SMTP å¯ç¢¼å°ä¸æ顯示ãåªæç¶æ¨æ¹è®æ¡ä¸çæ¸å¼æå®ææè®æ´ã"
diff --git a/applications/luci-app-pbx/po/zh-cn/pbx.po b/applications/luci-app-pbx/po/zh-cn/pbx.po
index 8ac03e1aa0..45325b99c1 100644
--- a/applications/luci-app-pbx/po/zh-cn/pbx.po
+++ b/applications/luci-app-pbx/po/zh-cn/pbx.po
@@ -93,7 +93,7 @@ msgid ""
"experiment to make sure you are blocking numbers from your desired area "
"successfully."
msgstr ""
-"è¾å
¥ä½ æ³èªå¨å±è½ççµè¯å·ç ãä½ åºè¯¥å¿½ç¥å½å®¶ä»£ç åä»»ä½å导é¶,ä½è¯·æµè¯æ¥ç¡®ä¿ä½ æ"
+"è¾å
¥æ¨æ³èªå¨å±è½ççµè¯å·ç ãæ¨åºè¯¥å¿½ç¥å½å®¶ä»£ç åä»»ä½å导é¶,ä½è¯·æµè¯æ¥ç¡®ä¿æ¨æ"
"åå±è½äºæ³è¦å±è½çå·ç ã"
msgid ""
diff --git a/applications/luci-app-pbx/po/zh-tw/pbx.po b/applications/luci-app-pbx/po/zh-tw/pbx.po
index aa05be778f..603b9df585 100644
--- a/applications/luci-app-pbx/po/zh-tw/pbx.po
+++ b/applications/luci-app-pbx/po/zh-tw/pbx.po
@@ -93,14 +93,14 @@ msgid ""
"experiment to make sure you are blocking numbers from your desired area "
"successfully."
msgstr ""
-"æå
¥ä½ å
許èªåé話çè碼. ä½ æ許å¯ä»¥å¿½ç¥å碼å0åéé , ä½å
ä¾å¯¦é©ä»¥ç¢ºä¿ææå"
+"æå
¥æ¨å
許èªåé話çè碼. æ¨æ許å¯ä»¥å¿½ç¥å碼å0åéé , ä½å
ä¾å¯¦é©ä»¥ç¢ºä¿ææå"
"çè碼被é»æ·æå."
msgid ""
"Enter this IP (or IP:port) in the Server/Registrar setting of SIP devices "
"you will use ONLY locally and never from a remote location."
msgstr ""
-"è¦è¨å®SIPè¨åå¨Server/Registrarå
§æå
¥IP(æIP:å è)ä½ å
è½æ¬å°ç«¯ä½¿ç¨çµä¸è¦æå
¥"
+"è¦è¨å®SIPè¨åå¨Server/Registrarå
§æå
¥IP(æIP:å è)æ¨å
è½æ¬å°ç«¯ä½¿ç¨çµä¸è¦æå
¥"
"é 端ä½ç½®"
msgid ""
@@ -466,7 +466,7 @@ msgid ""
msgstr ""
msgid "You can specify a real name to show up in the Caller ID here."
-msgstr "ä½ å¯ä»¥å¨æ¤æå®ä¸åç實å稱以便顯示å¨ä¾é»ID"
+msgstr "æ¨å¯ä»¥å¨æ¤æå®ä¸åç實å稱以便顯示å¨ä¾é»ID"
msgid ""
"You can use your SIP devices/softphones with this system from a remote "
@@ -481,10 +481,10 @@ msgid ""
"port and RTP range) to the IP address of the device running this PBX."
msgstr ""
"ä¸ç®¡å¤é ,åªè¦è½åå¾ISPæä¾çå
¬ç¾åæ³IP,ä¾ç¶å¯ä»¥ä½¿ç¨éå系統çSIPè¨å/PCé»è©±è¡¨"
-"ç¾ä¸æ¨£ç好.ä½ å°è½å¤ å
è²»å¼å«å
¶ä»æ¬å°ç«¯ç¨æ¶(e.g å
¶å®é¡æ¯é»è©±æ©(ATAs)å使ç¨ä½ ç"
-"VoIPä¾æåè¬é»è©±å°±åä½ å¨ä½¿ç¨æ¬å°çPBX總æ©é»è©±ä¸æ¨£.å¨è¨å®éåæ¨ç±¤å¾, éåå°ç¨"
+"ç¾ä¸æ¨£ç好.æ¨å°è½å¤ å
è²»å¼å«å
¶ä»æ¬å°ç«¯ç¨æ¶(e.g å
¶å®é¡æ¯é»è©±æ©(ATAs)å使ç¨æ¨ç"
+"VoIPä¾æåè¬é»è©±å°±åæ¨å¨ä½¿ç¨æ¬å°çPBX總æ©é»è©±ä¸æ¨£.å¨è¨å®éåæ¨ç±¤å¾, éåå°ç¨"
"æ¶è¨å®ä¸¦ä¸æ¥çæ°ç伺æå¨åå è¨å®ä»¥ä¾¿è½è¨å®é 端SIPè¨å.è«æ³¨æåå¦PBX總æ©è¥ä¸å¨"
-"ä½ çè·¯ç±å¨/GWä¸å·è¡,ä½ å°å¿
é å¨ä½ çè·¯ç±å¨/GWä¸è¨å®å è½ç¼(NAT).å¨PBX主æ©ä¸è«è½"
+"æ¨çè·¯ç±å¨/GWä¸å·è¡,æ¨å°å¿
é å¨æ¨çè·¯ç±å¨/GWä¸è¨å®å è½ç¼(NAT).å¨PBX主æ©ä¸è«è½"
"ç¼ä¸å(SIPå +RTPææ¡ç¨çç¯åå )å èåå®å°è·PBXæåè¨åä¸çIPä½å."
msgid ""
@@ -492,14 +492,14 @@ msgid ""
"when you enter a value different from the saved one. Leaving the PIN empty "
"is possible, but please beware of the security implications."
msgstr ""
-"ç¶åæªæçºä¿è·èµ·è¦ä½ çPIN碼å°ä¸æ顯示. é¤éä½ æå
¥ä¸åæ¼åå§åæªçå¼å®ææè®"
+"ç¶åæªæçºä¿è·èµ·è¦æ¨çPIN碼å°ä¸æ顯示. é¤éæ¨æå
¥ä¸åæ¼åå§åæªçå¼å®ææè®"
"æ´. ä¹å¯ä»¥æPIN碼ä¿ç空ç½, ä½è¦æé²ææå®å
¨çé±æ."
msgid ""
"Your password disappears when saved for your protection. It will be changed "
"only when you enter a value different from the saved one."
msgstr ""
-"ç¶åæªæçºä¿è·èµ·è¦ä½ çå¯ç¢¼å°ä¸æ顯示. é¤éä½ æå
¥ä¸åæ¼åå§åæªçå¼å®ææè®æ´."
+"ç¶åæªæçºä¿è·èµ·è¦æ¨çå¯ç¢¼å°ä¸æ顯示. é¤éæ¨æå
¥ä¸åæ¼åå§åæªçå¼å®ææè®æ´."
#~ msgid ""
#~ "Designate numbers that are allowed to call through this system and which "
diff --git a/applications/luci-app-polipo/po/zh-cn/polipo.po b/applications/luci-app-polipo/po/zh-cn/polipo.po
index 7dcbe2344a..0b3a1dc1a1 100644
--- a/applications/luci-app-polipo/po/zh-cn/polipo.po
+++ b/applications/luci-app-polipo/po/zh-cn/polipo.po
@@ -1,15 +1,18 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-10-09 03:47+0200\n"
-"Last-Translator: Tanyingyu \n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-10-29 14:56+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Advanced Settings"
msgstr "é«çº§è®¾ç½®"
@@ -18,21 +21,21 @@ msgid "Allowed clients"
msgstr "å
许ç客æ·ç«¯"
msgid "Always use system DNS resolver"
-msgstr "å§ç»ä½¿ç¨ç³»ç»DNS解æ"
+msgstr "å§ç»ä½¿ç¨ç³»ç» DNS 解æ"
msgid ""
"Basic HTTP authentication supported. Provide username and password in "
"username:password format."
-msgstr "æ¯æHTTPåºæ¬èº«ä»½éªè¯ãæä¾ç¨æ·ååå¯ç æ ¼å¼ä¸ºï¼ç¨æ·å:å¯ç ã"
+msgstr "æ¯æ HTTP åºæ¬èº«ä»½éªè¯ãæä¾ç¨æ·ååå¯ç æ ¼å¼ä¸ºï¼ç¨æ·å:å¯ç ã"
msgid "Configuration"
msgstr "é
ç½®"
msgid "DNS and Query Settings"
-msgstr "DNSæ¥è¯¢è®¾ç½®"
+msgstr "DNS åæ¥è¯¢è®¾ç½®"
msgid "DNS server address"
-msgstr "DNSå°å"
+msgstr "DNS æå¡å¨å°å"
msgid "Delete cache files time"
msgstr "æ¸
é¤ç¼åæ件å¨æ"
@@ -41,22 +44,22 @@ msgid "Disk cache location"
msgstr "ç£çç¼åä½ç½®"
msgid "Do not query IPv6"
-msgstr "ä¸è½æ¥è¯¢IPv6"
+msgstr "ä¸è½æ¥è¯¢ IPv6"
msgid "Enable if cache (proxy) is shared by multiple users."
msgstr "å
许å¤ç¨æ·å
±äº«ç¼åï¼ä»£çï¼ã"
msgid "First PMM segment size (in bytes)"
-msgstr "第ä¸çPMM段ç大å°ï¼åè为åä½ï¼"
+msgstr "ç¬¬ä¸ PMM 段大å°ï¼ä»¥åè表示ï¼"
msgid "General Settings"
msgstr "éç¨è®¾ç½®"
msgid "How much RAM should Polipo use for its cache."
-msgstr ""
+msgstr "å
许 Polipo åç¼åç RAM 使ç¨é"
msgid "In RAM cache size (in bytes)"
-msgstr ""
+msgstr "RAM ç¼å大å°ï¼ä»¥åè表示ï¼"
msgid "Listen address"
msgstr "çå¬å°å"
@@ -68,51 +71,53 @@ msgid ""
"Location where polipo will cache files permanently. Use of external storage "
"devices is recommended, because the cache can grow considerably. Leave it "
"empty to disable on-disk cache."
-msgstr "polipoå°æ°¸ä¹
ç¼åæ件ã建议使ç¨å¤é¨åå¨è®¾å¤ï¼å 为ç¼åä¼ä¸ç´å¢é¿ãç空表示ç¦ç¨ç£çç¼åã"
+msgstr ""
+"Polipo æä¹
ç¼åæ件ä½ç½®ã建议使ç¨å¤é¨åå¨è®¾å¤ï¼å 为ç¼åä¼ä¸ç´å¢é¿ãç空表示ç¦"
+"ç¨ç£çç¼åã"
msgid "Log file location"
msgstr "æ¥å¿åæ¾ä½ç½®"
msgid "Log to syslog"
-msgstr "åæ¥å¿å°syslog"
+msgstr "è®°å½æ¥å¿å° syslog"
msgid "Logging and RAM"
-msgstr ""
+msgstr "è®°å½å RAM"
msgid "Never use system DNS resolver"
-msgstr "ä»ä¸ä½¿ç¨ç³»ç»DNS解æ"
+msgstr "ä»ä¸ä½¿ç¨ç³»ç» DNS 解æ"
msgid "On-Disk Cache"
msgstr "ç£çç¼å"
msgid "PMM segments size (in bytes)"
-msgstr ""
+msgstr "PMM 段大å°ï¼ä»¥åè表示ï¼"
msgid "Parent Proxy"
-msgstr ""
+msgstr "ä¸å±ä»£ç"
msgid "Parent proxy address"
-msgstr ""
+msgstr "ä¸å±ä»£çå°å"
msgid ""
"Parent proxy address (in host:port format), to which Polipo will forward the "
"requests."
-msgstr ""
+msgstr "Polipo åºè¯¥è½¬å请æ±æå°çä¸å±ä»£çï¼ä»¥ 主æº:端å£å· æ ¼å¼è¡¨ç¤ºï¼ã"
msgid "Parent proxy authentication"
-msgstr ""
+msgstr "ä¸å±ä»£çå°åéªè¯"
msgid "Polipo"
-msgstr ""
+msgstr "Polipo"
msgid "Polipo Status"
-msgstr ""
+msgstr "Polipo ç¶æ"
msgid "Polipo is a small and fast caching web proxy."
-msgstr ""
+msgstr "Polipo æ¯ä¸ä¸ªå°åä¸å¿«éçç½é¡µç¼å代çã"
msgid "Poor Man's Multiplexing"
-msgstr ""
+msgstr "穷人çå¤å·¥å¤ç¨å¨"
msgid ""
"Poor Man's Multiplexing (PMM) is a technique that simulates multiplexing by "
@@ -120,86 +125,92 @@ msgid ""
"caused by the weakness of HTTP protocol. NOTE: some sites may not work with "
"PMM enabled."
msgstr ""
+"穷人çå¤å·¥å¤ç¨å¨ï¼PMMï¼æ¯éè¿å¨å¤ä¸ªåºæ®µä¸è¯·æ±å个å®ä¾æ¥æ¨¡æå¤ç¨çææ¯ãå®å°è¯"
+"éä½ç± HTTP åè®®çå¼±ç¹å¼èµ·ç延è¿ã注æï¼æäºç«ç¹å¯è½æ æ³å¯ç¨ PMMã"
msgid "Port on which Polipo will listen"
-msgstr ""
+msgstr "Polipo çå¬ç端å£å·"
msgid "Proxy"
-msgstr ""
+msgstr "代çæå¡å¨"
msgid "Query DNS by hostname"
-msgstr ""
+msgstr "以主æºå称æ¥è¯¢ DNS"
msgid "Query DNS directly, fallback to system resolver"
-msgstr ""
+msgstr "ç´æ¥æ¥è¯¢ DNSï¼å¤±è´¥æ¶éåç³»ç»è§£æ"
msgid "Query DNS directly, for unknown hosts fall back to system resolver"
-msgstr ""
+msgstr "ç´æ¥æ¥è¯¢ DNSï¼å¯¹æªç¥ç主æºéåç³»ç»è§£æ"
msgid "Query DNS for IPv6"
-msgstr ""
+msgstr "为 IPv6 æ¥è¯¢ DNS"
msgid "Query IPv4 and IPv6, prefer IPv4"
-msgstr ""
+msgstr "æ¥è¯¢ IPv4 å IPv6ï¼IPv4 ä¼å
"
msgid "Query IPv4 and IPv6, prefer IPv6"
-msgstr ""
+msgstr "æ¥è¯¢ IPv4 å IPv6ï¼IPv6 ä¼å
"
msgid "Query only IPv6"
-msgstr ""
+msgstr "åªæ¥è¯¢ IPv6"
msgid ""
"Set the DNS server address to use, if you want Polipo to use different DNS "
"server than the host system."
msgstr ""
+"设置 DNS æå¡å¨å°å以便使ç¨ï¼åå¦æ¨è¦è®© Polipo 使ç¨ä¸åç DNS æå¡å¨ï¼èé主"
+"æºç³»ç»çã"
msgid "Shared cache"
-msgstr ""
+msgstr "å
±äº«çç¼å"
msgid ""
"Size of the first PMM segment. If not defined, it defaults to twice the PMM "
"segment size."
-msgstr ""
+msgstr "第ä¸ä¸ª PMM 段ç大å°ï¼è¥æªå®ä¹ï¼é»è®¤ä¸ºä¸¤å PMM 段ç大å°ã"
msgid "Size to which cached files should be truncated"
-msgstr ""
+msgstr "ç¼åæ件åºæªæ为ç大å°"
msgid "Status"
-msgstr ""
+msgstr "ç¶æ"
msgid "Syslog facility"
-msgstr ""
+msgstr "æ¥å¿è®¾æ½"
msgid ""
"The interface on which Polipo will listen. To listen on all interfaces use "
"0.0.0.0 or :: (IPv6)."
-msgstr ""
+msgstr "Polipo å°ä¼çå¬çæ¥å£ãè¦çå¬æææ¥å£ï¼è¯·ä½¿ç¨ 0.0.0.0 æ ::ï¼IPv6ï¼ã"
msgid "Time after which cached files will be deleted"
-msgstr ""
+msgstr "ç¼åå é¤åççåæ¶é´"
msgid "Time after which cached files will be truncated"
-msgstr ""
+msgstr "ç¼åæªæåççåæ¶é´"
msgid "To enable PMM, PMM segment size must be set to some positive value."
-msgstr ""
+msgstr "è¦å¯ç¨ PMMï¼PMM 段大å°å¿
须为æ£ã"
msgid "Truncate cache files size (in bytes)"
-msgstr ""
+msgstr "ç¼åæ件æªæ大å°ï¼ä»¥åè为åä½ï¼"
msgid "Truncate cache files time"
-msgstr ""
+msgstr "ç¼åæ件æªææ¶é´"
msgid ""
"Use of external storage device is recommended, because the log file is "
"written frequently and can grow considerably."
-msgstr ""
+msgstr "æ¨è使ç¨å¤é¨åå¨è®¾å¤ï¼å 为æ¥å¿æ件ç»å¸¸åå
¥ï¼å°ä¼è¿
éå¢é¿ã"
msgid ""
"When listen address is set to 0.0.0.0 or :: (IPv6), you must list clients "
"that are allowed to connect. The format is IP address or network address "
"(192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))"
msgstr ""
+"å½çå¬å°å设置为 0.0.0.0 æ ::ï¼IPv6ï¼æ¶ï¼å¿
é¡»ååºå
许è¿æ¥ç客æ·ç«¯ãæ ¼å¼ä¸º "
+"IP å°åæç½ç»å°åï¼192.168.1.123ï¼192.168.1.0/24ï¼2001:660:116::/48ï¼IPv6ï¼ï¼"
msgid "enable"
-msgstr ""
+msgstr "å¯ç¨"
diff --git a/applications/luci-app-polipo/po/zh-tw/polipo.po b/applications/luci-app-polipo/po/zh-tw/polipo.po
index 5058897bc4..cf3c943704 100644
--- a/applications/luci-app-polipo/po/zh-tw/polipo.po
+++ b/applications/luci-app-polipo/po/zh-tw/polipo.po
@@ -1,118 +1,123 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-21 13:13+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-10-29 14:56+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Advanced Settings"
-msgstr "é²éè¨å®"
+msgstr "é«éè¨å®"
msgid "Allowed clients"
msgstr "å
許ç客æ¶ç«¯"
msgid "Always use system DNS resolver"
-msgstr "總æ¯æ¡ç¨ç³»çµ±ä½¿ç¨çDNS解æ"
+msgstr "å§çµä½¿ç¨ç³»çµ± DNS 解æ"
msgid ""
"Basic HTTP authentication supported. Provide username and password in "
"username:password format."
-msgstr "åºæ¬çHTTPé©èæ¯æ´. æä¾ä½¿ç¨è
å稱åå¯ç¢¼ä»¥username:passwordæ ¼å¼"
+msgstr "æ¯æ´ HTTP åºæ¬èº«ä»½é©èãæä¾ä½¿ç¨è
å稱åå¯ç¢¼æ ¼å¼çºï¼ä½¿ç¨è
å稱:å¯ç¢¼ã"
msgid "Configuration"
-msgstr "è¨å®"
+msgstr "é
ç½®"
msgid "DNS and Query Settings"
-msgstr "DNSåæ¥è©¢è¨å®å¼"
+msgstr "DNS åæ¥è©¢è¨å®"
msgid "DNS server address"
-msgstr "DNS伺æå¨ä½å"
+msgstr "DNS 伺æå¨ä½å"
msgid "Delete cache files time"
-msgstr "åªé¤å¿«åæªçæé"
+msgstr "æ¸
é¤å¿«åæªæ¡é±æ"
msgid "Disk cache location"
-msgstr "ç£ç¢å¿«åæ¾ç½®çä½ç½®"
+msgstr "ç£ç¢å¿«åä½ç½®"
msgid "Do not query IPv6"
-msgstr "ä¸ä½¿ç¨IPv6æ¥è©¢"
+msgstr "ä¸è½æ¥è©¢ IPv6"
msgid "Enable if cache (proxy) is shared by multiple users."
-msgstr "åè¥å¿«å(Proxy)被å¤å使ç¨è
å享使ç¨å°±åç¨"
+msgstr "å
許å¤ä½¿ç¨è
å
±äº«å¿«åï¼ä»£çï¼ã"
msgid "First PMM segment size (in bytes)"
-msgstr "第ä¸åPMM段ç大å°(以bytesæ¹å¼è¡¨ç¤º)"
+msgstr "ç¬¬ä¸ PMM 段大å°ï¼ä»¥ä½å
çµè¡¨ç¤ºï¼"
msgid "General Settings"
-msgstr "åºæ¬è¨å®"
+msgstr "éç¨è¨å®"
msgid "How much RAM should Polipo use for its cache."
-msgstr "Polipoæ¿ä¾ç¶å¿«åçè¨æ¶é«éæ¯å¤å¤§?"
+msgstr "å
許 Polipo åå¿«åç RAM 使ç¨é"
msgid "In RAM cache size (in bytes)"
-msgstr "è¨æ¶é«å¿«å大å°(以bytesæ¹å¼è¡¨ç¤º)"
+msgstr "RAM å¿«å大å°ï¼ä»¥ä½å
çµè¡¨ç¤ºï¼"
msgid "Listen address"
-msgstr "èè½ä½å"
+msgstr "ç£è½ä½å"
msgid "Listen port"
-msgstr "èè½å è"
+msgstr "ç£è½å "
msgid ""
"Location where polipo will cache files permanently. Use of external storage "
"devices is recommended, because the cache can grow considerably. Leave it "
"empty to disable on-disk cache."
-msgstr "Polipoä½ç½®å°æ°¸ä¹
å¿«åæ件ã建è°ä½¿ç¨å¤é¨çåå²è¨åï¼å çºå¿«åæ顯èå¢é·ãä¿ç空ç½ä»¥ä¾¿ééç£ç¢å¿«å."
+msgstr ""
+"Polipo æä¹
å¿«åæªæ¡ä½ç½®ã建è°ä½¿ç¨å¤é¨å²åè£ç½®ï¼å çºå¿«åæä¸ç´å¢é·ãç空表示ç¦"
+"ç¨ç£ç¢å¿«åã"
msgid "Log file location"
-msgstr "ç´éæªä½ç½®"
+msgstr "æ¥èªåæ¾ä½ç½®"
msgid "Log to syslog"
-msgstr "è¨éå°ç³»çµ±è¨ésyslogä¸"
+msgstr "è¨éæ¥èªå° syslog"
msgid "Logging and RAM"
-msgstr "è¨éåè¨æ¶é«"
+msgstr "è¨éå RAM"
msgid "Never use system DNS resolver"
-msgstr "å¾ä¸ä½¿ç¨ç³»çµ±DNS解æ"
+msgstr "å¾ä¸ä½¿ç¨ç³»çµ± DNS 解æ"
msgid "On-Disk Cache"
-msgstr "ç£ç¢ä¸çå¿«å"
+msgstr "ç£ç¢å¿«å"
msgid "PMM segments size (in bytes)"
-msgstr "PMM段大å°(以bytes表示)"
+msgstr "PMM 段大å°ï¼ä»¥ä½å
çµè¡¨ç¤ºï¼"
msgid "Parent Proxy"
-msgstr "ä¸å±¤Proxy"
+msgstr "ä¸å±¤ä»£ç"
msgid "Parent proxy address"
-msgstr "ä¸å±¤Proxyä½å"
+msgstr "ä¸å±¤ä»£çä½å"
msgid ""
"Parent proxy address (in host:port format), to which Polipo will forward the "
"requests."
-msgstr "Polipoæ該éå°éåè¦æ±æå°çä¸å±¤Proxy(以 主æ©:å è æ ¼å¼è¡¨ç¤º)."
+msgstr "Polipo æ該è½ç¼è«æ±æå°çä¸å±¤ä»£çï¼ä»¥ 主æ©:å è æ ¼å¼è¡¨ç¤ºï¼ã"
msgid "Parent proxy authentication"
-msgstr "ä¸å±¤Proxyä½åé©è"
+msgstr "ä¸å±¤ä»£çä½åé©è"
msgid "Polipo"
-msgstr "Polipoæ¬å°ä»£ç伺æå¨"
+msgstr "Polipo"
msgid "Polipo Status"
-msgstr "Polipoçæ³"
+msgstr "Polipo çæ
"
msgid "Polipo is a small and fast caching web proxy."
-msgstr "Polipoæ¯ä¸åå°åä¸å¿«éçå¿«å網é 代ç"
+msgstr "Polipo æ¯ä¸åå°åä¸å¿«éç網é å¿«å代çã"
msgid "Poor Man's Multiplexing"
-msgstr "窮人çå¤å·¥å¨Poor Man's Multiplexing"
+msgstr "窮人çå¤å·¥è¤ç¨å¨"
msgid ""
"Poor Man's Multiplexing (PMM) is a technique that simulates multiplexing by "
@@ -120,49 +125,53 @@ msgid ""
"caused by the weakness of HTTP protocol. NOTE: some sites may not work with "
"PMM enabled."
msgstr ""
+"窮人çå¤å·¥è¤ç¨å¨ï¼PMMï¼æ¯ééå¨å¤åå段ä¸è«æ±å®åä¾é
ä¾æ¨¡æ¬è¤ç¨çæè¡ãå®å試"
+"éä½ç± HTTP åè°çå¼±é»å¼èµ·ç延é²ã注æï¼æäºç«é»å¯è½ç¡æ³åç¨ PMMã"
msgid "Port on which Polipo will listen"
-msgstr " Polipoèè½çå è"
+msgstr "Polipo ç£è½çå è"
msgid "Proxy"
msgstr "代ç伺æå¨"
msgid "Query DNS by hostname"
-msgstr "以主æ©å稱æ¥è©¢DNS"
+msgstr "以主æ©å稱æ¥è©¢ DNS"
msgid "Query DNS directly, fallback to system resolver"
-msgstr "ç´æ¥æ¥è©¢DNS, åå³çµ¦ç³»çµ±è§£æ"
+msgstr "ç´æ¥æ¥è©¢ DNSï¼å¤±ææéå系統解æ"
msgid "Query DNS directly, for unknown hosts fall back to system resolver"
-msgstr "ç´æ¥æ¥è©¢DNS, å°è«åç主æ©åå³çµ¦ç³»çµ±è§£æ"
+msgstr "ç´æ¥æ¥è©¢ DNSï¼å°æªç¥ç主æ©éå系統解æ"
msgid "Query DNS for IPv6"
-msgstr "幫IPv6æ¥è©¢DNS"
+msgstr "çº IPv6 æ¥è©¢ DNS"
msgid "Query IPv4 and IPv6, prefer IPv4"
-msgstr "æ¥è©¢IPv4åIPv6,IPv4åªå
"
+msgstr "æ¥è©¢ IPv4 å IPv6ï¼IPv4 åªå
"
msgid "Query IPv4 and IPv6, prefer IPv6"
-msgstr "æ¥è©¢IPv4åIPv6 ,IPv6åªå
"
+msgstr "æ¥è©¢ IPv4 å IPv6ï¼IPv6 åªå
"
msgid "Query only IPv6"
-msgstr "åªæ¥è©¢IPv6"
+msgstr "åªæ¥è©¢ IPv6"
msgid ""
"Set the DNS server address to use, if you want Polipo to use different DNS "
"server than the host system."
-msgstr "è¨å®DNS伺æå¨ä½å以便使ç¨, åå¦ä½ è¦Polipo代ç人使ç¨ä¸åçDNS伺æå¨èé主æ©ç³»çµ±."
+msgstr ""
+"è¨å® DNS 伺æå¨ä½å以便使ç¨ï¼åå¦æ¨è¦è® Polipo 使ç¨ä¸åç DNS 伺æå¨ï¼èé主"
+"æ©ç³»çµ±çã"
msgid "Shared cache"
-msgstr "å享çå¿«å"
+msgstr "å
±äº«çå¿«å"
msgid ""
"Size of the first PMM segment. If not defined, it defaults to twice the PMM "
"segment size."
-msgstr "第ä¸åPMMå段ç大å°, åè¥æ²å®ç¾© ,é è¨å
©æ¬¡PMMå段ç大å°."
+msgstr "第ä¸å PMM 段ç大å°ï¼è¥æªå®ç¾©ï¼é è¨çºå
©å PMM 段ç大å°ã"
msgid "Size to which cached files should be truncated"
-msgstr "å¿«åæªè¢«æªæ·ç大å°"
+msgstr "å¿«åæªæ¡ææªæ·çºç大å°"
msgid "Status"
msgstr "çæ
"
@@ -173,33 +182,35 @@ msgstr "æ¥èªè¨æ½"
msgid ""
"The interface on which Polipo will listen. To listen on all interfaces use "
"0.0.0.0 or :: (IPv6)."
-msgstr "Polipoå°æèè½çä»é¢. è¦èè½ææä»é¢ä½¿ç¨0.0.0.0 æ :: (IPv6)."
+msgstr "Polipo å°æç£è½çä»é¢ãè¦ç£è½ææä»é¢ï¼è«ä½¿ç¨ 0.0.0.0 æ ::ï¼IPv6ï¼ã"
msgid "Time after which cached files will be deleted"
-msgstr "å¿«åå°æ被åªé¤ççåæé"
+msgstr "å¿«ååªé¤åççåæé"
msgid "Time after which cached files will be truncated"
-msgstr "å¿«åå°æ被æ·é ççåæé"
+msgstr "å¿«åæªæ·åççåæé"
msgid "To enable PMM, PMM segment size must be set to some positive value."
-msgstr "è¦åç¨PMM, PMMå段大å°å¿
é è¨å®äºç©æ¥µçæ¸å¼."
+msgstr "è¦åç¨ PMMï¼PMM 段大å°å¿
é çºæ£ã"
msgid "Truncate cache files size (in bytes)"
-msgstr ""
+msgstr "å¿«åæªæ¡æªæ·å¤§å°ï¼ä»¥ä½å
çµçºå®ä½ï¼"
msgid "Truncate cache files time"
-msgstr ""
+msgstr "å¿«åæªæ¡æªæ·æé"
msgid ""
"Use of external storage device is recommended, because the log file is "
"written frequently and can grow considerably."
-msgstr ""
+msgstr "æ¨è¦ä½¿ç¨å¤é¨å²åè£ç½®ï¼å çºæ¥èªæªæ¡ç¶å¸¸å¯«å
¥ï¼å°æè¿
éå¢é·ã"
msgid ""
"When listen address is set to 0.0.0.0 or :: (IPv6), you must list clients "
"that are allowed to connect. The format is IP address or network address "
"(192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))"
msgstr ""
+"ç¶ç£è½ä½åè¨å®çº 0.0.0.0 æ ::ï¼IPv6ï¼æï¼å¿
é ååºå
許é£ç·ç客æ¶ç«¯ãæ ¼å¼çº "
+"IP ä½åæ網路ä½åï¼192.168.1.123ï¼192.168.1.0/24ï¼2001:660:116::/48ï¼IPv6ï¼ï¼"
msgid "enable"
-msgstr ""
+msgstr "åç¨"
diff --git a/applications/luci-app-privoxy/Makefile b/applications/luci-app-privoxy/Makefile
index e174c807b8..486cf0ee74 100644
--- a/applications/luci-app-privoxy/Makefile
+++ b/applications/luci-app-privoxy/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2008-2015 The LuCI Team
+# Copyright (C) 2008-2017 The LuCI Team
#
# This is free software, licensed under the Apache License, Version 2.0 .
#
@@ -14,10 +14,10 @@ PKG_VERSION:=1.0.6
# Release == build
# increase on changes of translation files
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=Apache-2.0
-PKG_MAINTAINER:=Christian Schoenebeck
+PKG_MAINTAINER:=
# LuCI specific settings
LUCI_TITLE:=LuCI Support for Privoxy WEB proxy
@@ -30,7 +30,6 @@ help
$(LUCI_TITLE)
.
Version: $(PKG_VERSION)-$(PKG_RELEASE)
- $(PKG_MAINTAINER)
endef
include ../../luci.mk
diff --git a/applications/luci-app-privoxy/po/pt-br/privoxy.po b/applications/luci-app-privoxy/po/pt-br/privoxy.po
new file mode 100644
index 0000000000..8d3eee20d5
--- /dev/null
+++ b/applications/luci-app-privoxy/po/pt-br/privoxy.po
@@ -0,0 +1,516 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"A URL to be displayed in the error page that users will see if access to an "
+"untrusted page is denied."
+msgstr ""
+"A URL a ser exibida na página de erro que os usuários verão se o acesso a "
+"uma página não confiável é negado."
+
+msgid ""
+"A URL to documentation about the local Privoxy setup, configuration or "
+"policies."
+msgstr ""
+"A URL para a documentação sobre o Privoxy local, configuração ou polÃticas."
+
+msgid "A directory where Privoxy can create temporary files."
+msgstr "Um diretório onde Privoxy pode criar arquivos temporários."
+
+msgid "Access Control"
+msgstr "Controle de Acesso"
+
+msgid "Actions that are applied to all sites and maybe overruled later on."
+msgstr ""
+"Ações que são aplicadas a todos as páginas e talvez descartado mais tarde."
+
+msgid "An alternative directory where the templates are loaded from."
+msgstr "Um diretório alternativo de onde os modelos são carregados."
+
+msgid "An email address to reach the Privoxy administrator."
+msgstr "Um endereço de e-mail para alcançar o administrador do Privoxy."
+
+msgid ""
+"Assumed server-side keep-alive timeout (in seconds) if not specified by the "
+"server."
+msgstr ""
+"Tempo limite, em segundos, da manutenção da conexão (keep-alive) do servidor "
+"se não for especificado."
+
+msgid "Boot delay"
+msgstr "Atraso de iniciação"
+
+msgid "CGI user interface"
+msgstr "Interface de usuário CGI"
+
+msgid "Common Log Format"
+msgstr "Formato de registros (log) comum"
+
+msgid ""
+"Configure here the routing of HTTP requests through a chain of multiple "
+"proxies. Note that parent proxies can severely decrease your privacy level. "
+"Also specified here are SOCKS proxies."
+msgstr ""
+"Configure aqui o encaminhamento de pedidos HTTP através de uma cadeia de "
+"múltiplos proxies. Note-se que proxies pai pode diminuir muito o nÃvel de "
+"privacidade. Também serão aceitos proxies SOCKS."
+
+msgid "Debug GIF de-animation"
+msgstr "Depurar de-animação GIF"
+
+msgid "Debug force feature"
+msgstr "Recurso de depuração forçado"
+
+msgid "Debug redirects"
+msgstr "Redirecionamentos de depuração"
+
+msgid "Debug regular expression filters"
+msgstr "Depuração de filtros de expressão regular"
+
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+"Atraso (em segundos) durante a inicialização do sistema antes do Privoxy "
+"iniciar"
+
+msgid "Directory does not exist!"
+msgstr "O diretório não existe!"
+
+msgid "Disabled == Transparent Proxy Mode"
+msgstr "Desativado == Modo Proxy Transparente"
+
+msgid "Documentation"
+msgstr "Documentação"
+
+msgid "During delay ifup-events are not monitored !"
+msgstr "Durante a espera, eventos ifup não serão monitorados!"
+
+msgid "Enable proxy authentication forwarding"
+msgstr "Habilitar o encaminhamento de autenticação de proxy"
+
+msgid ""
+"Enable/Disable autostart of Privoxy on system startup and interface events"
+msgstr ""
+"Ativar/Desativar a iniciação automática do Privoxy junto com a iniciação do "
+"sistema ou eventos de interface"
+
+msgid "Enable/Disable filtering when Privoxy starts."
+msgstr "Ativar / Desativar filtragem quando Privoxy iniciar."
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid ""
+"Enabling this option is NOT recommended if there is no parent proxy that "
+"requires authentication!"
+msgstr ""
+"A ativação dessa opção não é recomendado se não houver nenhum proxy pai que "
+"requer autenticação!"
+
+msgid "File '%s' not found inside Configuration Directory"
+msgstr "O arquivo '%s' não foi encontrado dentro do Diretório de Configuração"
+
+msgid "File not found or empty"
+msgstr "Arquivo não encontrado ou vazio"
+
+msgid "Files and Directories"
+msgstr "Arquivos e diretórios"
+
+msgid "For help use link at the relevant option"
+msgstr "Para ajuda, use o link na respectiva opção"
+
+msgid "Forwarding"
+msgstr "Encaminhando"
+
+msgid ""
+"If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
+"should not be able to bypass any blocks."
+msgstr ""
+"Se ativado, Privoxy esconde o link \"ir lá de qualquer maneira\". O usuário, "
+"obviamente, não deve ser capaz de contornar qualquer bloqueio."
+
+msgid ""
+"If you intend to operate Privoxy for more users than just yourself, it might "
+"be a good idea to let them know how to reach you, what you block and why you "
+"do that, your policies, etc."
+msgstr ""
+"Se você pretende operar Privoxy para mais usuários do que apenas a si mesmo, "
+"pode ser uma boa ideia para que eles saibam como falar com você, o que você "
+"bloquear e por que você faz isso, as suas polÃticas, etc."
+
+msgid "Invalid email address"
+msgstr "Endereço de e-mail inválido"
+
+msgid "It is NOT recommended for the casual user."
+msgstr "Não é recomendado para o usuário casual."
+
+msgid "Location of the Privoxy User Manual."
+msgstr "Localização do Manual do Usuário do Privoxy."
+
+msgid "Log File Viewer"
+msgstr "Visualizador de arquivo de registros (log)"
+
+msgid "Log all data read from the network"
+msgstr "Registrar todos os dados lidos da rede"
+
+msgid "Log all data written to the network"
+msgstr "Registrar todos os dados gravados na rede"
+
+msgid "Log the applying actions"
+msgstr "Registrar as ações aplicadas"
+
+msgid ""
+"Log the destination for each request Privoxy let through. See also 'Debug "
+"1024'."
+msgstr ""
+"Registrar o destino para cada pedido que o Privoxy deixou passar. Consulte "
+"também 'Debug 1024'."
+
+msgid ""
+"Log the destination for requests Privoxy didn't let through, and the reason "
+"why."
+msgstr ""
+"Registrar o destino para os pedidos que o Privoxy não deixou passar, e a "
+"razão pela qual."
+
+msgid "Logging"
+msgstr "Registrando (logging)"
+
+msgid "Main actions file"
+msgstr "Arquivo principal de ações"
+
+msgid "Mandatory Input: No Data given!"
+msgstr "Entrada obrigatória: Dados não foram informados!"
+
+msgid "Mandatory Input: No Directory given!"
+msgstr "Entrada obrigatória: Nenhum Diretório foi informado!"
+
+msgid "Mandatory Input: No File given!"
+msgstr "Entrada obrigatória: Nenhum Arquivo foi informado!"
+
+msgid "Mandatory Input: No Port given!"
+msgstr "Entrada obrigatória: Nenhuma Porta foi informado!"
+
+msgid "Mandatory Input: No files given!"
+msgstr "Entrada obrigatória: Nenhum Arquivo foi informado!"
+
+msgid "Mandatory Input: No valid IPv4 address or host given!"
+msgstr ""
+"Entrada obrigatória: Nenhum endereço IPv4 ou nome de equipamento válido foi "
+"fornecido!"
+
+msgid "Mandatory Input: No valid IPv6 address given!"
+msgstr "Entrada obrigatória: Nenhum endereço IPv6 válido foi informado!"
+
+msgid "Mandatory Input: No valid Port given!"
+msgstr "Entrada obrigatória: Nenhuma porta válida foi informada!"
+
+msgid "Maximum number of client connections that will be served."
+msgstr "O número máximo de conexões de cliente que será aceito."
+
+msgid "Maximum size (in KB) of the buffer for content filtering."
+msgstr "Tamanho máximo (em KB) do buffer para filtragem de conteúdo."
+
+msgid "Miscellaneous"
+msgstr "Diversos"
+
+msgid "NOT installed"
+msgstr "NÃO instalado"
+
+msgid "No trailing '/', please."
+msgstr "Sem '/' final, por favor."
+
+msgid "Non-fatal errors - *we highly recommended enabling this*"
+msgstr "Erros não fatais - *é altamente recomendado ativar isto*"
+
+msgid ""
+"Number of seconds after which a socket times out if no data is received."
+msgstr ""
+"Número de segundos após o qual uma conexão expira se nenhum dado for "
+"recebido."
+
+msgid ""
+"Number of seconds after which an open connection will no longer be reused."
+msgstr ""
+"Número de segundos após o qual uma conexão aberta deixará de ser reutilizada."
+
+msgid ""
+"Only when using 'external filters', Privoxy has to create temporary files."
+msgstr ""
+"Somente quando for usado os \"filtros externos\". O Privoxy tem que criar "
+"arquivos temporários."
+
+msgid "Please install current version !"
+msgstr "Por favor, instale a versão atual!"
+
+msgid "Please press [Read] button"
+msgstr "Por favor, pressione o botão [Ler]"
+
+msgid "Please read Privoxy manual for details!"
+msgstr "Por favor, leia o manual do Privoxy para mais detalhes!"
+
+msgid "Please update to the current version!"
+msgstr "Por favor, atualize para a versão atual!"
+
+msgid "Privoxy WEB proxy"
+msgstr "Privoxy Web Proxy"
+
+msgid ""
+"Privoxy can (and normally does) use a number of other files for additional "
+"configuration, help and logging. This section of the configuration file "
+"tells Privoxy where to find those other files."
+msgstr ""
+"Privoxy pode (e normalmente o faz) utilizar uma série de outros arquivos de "
+"configuração, ajuda e de registros. Esta seção do arquivo de configuração "
+"informa o Privoxy onde encontrar os outros arquivos."
+
+msgid ""
+"Privoxy is a non-caching web proxy with advanced filtering capabilities for "
+"enhancing privacy, modifying web page data and HTTP headers, controlling "
+"access, and removing ads and other obnoxious Internet junk."
+msgstr ""
+"Privoxy é um proxy web sem cache com capacidades avançadas de filtragem para "
+"aumentar a privacidade, modificar dados de páginas web e cabeçalhos HTTP, "
+"controlar o acesso e remover anúncios e outras porcarias detestável da "
+"Internet."
+
+msgid "Read / Reread log file"
+msgstr "Ler / Ler novamente o arquivo de registros (log)"
+
+msgid "Show I/O status"
+msgstr "Mostrar status de Entrada/SaÃda"
+
+msgid "Show each connection status"
+msgstr "Mostrar cada estado de conexão"
+
+msgid "Show header parsing"
+msgstr "Mostrar análise do cabeçalho"
+
+msgid "Software package '%s' is not installed."
+msgstr "O pacote de software '%s' não está instalado."
+
+msgid "Software package '%s' is outdated."
+msgstr "O pacote '%' está desatualizado."
+
+msgid "Start"
+msgstr "Iniciar"
+
+msgid "Start / Stop"
+msgstr "Iniciar / Parar"
+
+msgid "Start/Stop Privoxy WEB Proxy"
+msgstr "Inicia / Para o Privoxy Web Proxy"
+
+msgid "Startup banner and warnings."
+msgstr "Mensagens e avisos iniciais."
+
+msgid "Syntax:"
+msgstr "Sintaxe:"
+
+msgid "Syntax: Client header names delimited by spaces."
+msgstr "Sintaxe: nomes de cabeçalho do cliente delimitados por espaços."
+
+msgid "Syntax: target_pattern http_parent[:port]"
+msgstr "Sintaxe: padrão_alvo http_superior[:porta]"
+
+msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
+msgstr "Sintaxe: padrão_alvo proxy_socks[:porta] http_superior[:porta]"
+
+msgid "System"
+msgstr "Sistema"
+
+msgid ""
+"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
+"are in fact recommended!"
+msgstr ""
+"O(s) arquivo(s) ações a ser usado. Várias linhas no arquivo são permitidas, "
+"e são, de fato, recomendadas!"
+
+msgid ""
+"The address and TCP port on which Privoxy will listen for client requests."
+msgstr ""
+"O endereço e porta TCP em que Privoxy vai esperar por pedidos dos clientes."
+
+msgid ""
+"The compression level that is passed to the zlib library when compressing "
+"buffered content."
+msgstr ""
+"O nÃvel de compressão que é passada para a biblioteca zlib ao comprimir o "
+"conteúdo em buffer."
+
+msgid ""
+"The directory where all logging takes place (i.e. where the logfile is "
+"located)."
+msgstr ""
+"O diretório onde todos os registros ocorrem (ex: onde o arquivo de log está "
+"localizado)."
+
+msgid "The directory where the other configuration files are located."
+msgstr "O diretório onde os outros arquivos de configuração estão localizados."
+
+msgid ""
+"The filter files contain content modification rules that use regular "
+"expressions."
+msgstr ""
+"Os arquivos de filtro contêm regras de modificação de conteúdo que usam "
+"expressões regulares."
+
+msgid "The hostname shown on the CGI pages."
+msgstr "O nome da máquina mostrado nas páginas de CGI."
+
+msgid "The log file to use. File name, relative to log directory."
+msgstr ""
+"O arquivo de registros a ser usado. O nome do arquivo, relativo ao diretório "
+"de log."
+
+msgid "The order in which client headers are sorted before forwarding them."
+msgstr ""
+"A ordem em que os cabeçalhos dos clientes são classificados antes de "
+"encaminhá-los."
+
+msgid ""
+"The status code Privoxy returns for pages blocked with +handle-as-empty-"
+"document."
+msgstr ""
+"O código de status Privoxy retorna para páginas bloqueadas com +handle-as-"
+"empty-document."
+
+msgid ""
+"The trust mechanism is an experimental feature for building white-lists and "
+"should be used with care."
+msgstr ""
+"O mecanismo de confiança é um recurso experimental para a construção de "
+"listas de destinos confiáveis e deve ser usado com cuidado."
+
+msgid ""
+"The value of this option only matters if the experimental trust mechanism "
+"has been activated."
+msgstr ""
+"O valor desta opção só importa se o mecanismo de confiança experimental foi "
+"ativado."
+
+msgid ""
+"This option is only there for debugging purposes. It will drastically reduce "
+"performance."
+msgstr ""
+"Esta opção só está lá para fins de depuração. Ele irá reduzir drasticamente "
+"o desempenho."
+
+msgid ""
+"This option will be removed in future releases as it has been obsoleted by "
+"the more general header taggers."
+msgstr ""
+"Esta opção será removida em versões futuras, uma vez que ficou obsoleta "
+"pelos marcadores de cabeçalho mais genéricos."
+
+msgid ""
+"This tab controls the security-relevant aspects of Privoxy's configuration."
+msgstr ""
+"Esta guia controla os aspectos da configuração do Privoxy relevantes para a "
+"segurança."
+
+msgid ""
+"Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
+"specific requests should be routed."
+msgstr ""
+"Através de qual Proxy SOCKS (e, opcionalmente, para o qual proxy HTTP "
+"superior) pedidos especÃficos devem ser encaminhados."
+
+msgid "To which parent HTTP proxy specific requests should be routed."
+msgstr ""
+"Para qual proxy HTTP superior os pedidos especÃficos devem ser encaminhados."
+
+msgid "User customizations"
+msgstr "Personalizações do usuário"
+
+msgid "Value is not a number"
+msgstr "O valor não é um número"
+
+msgid "Value not between 0 and 300"
+msgstr "Valor não está entre 0 e 300"
+
+msgid "Value not between 0 and 9"
+msgstr "Valor não está entre 0 e 9"
+
+msgid "Value not between 1 and 4096"
+msgstr "Valor não entre 1 e 4096"
+
+msgid "Value not greater 0 or empty"
+msgstr "Valor não é maior que 0 ou vazio"
+
+msgid "Value range 1 to 4096, no entry defaults to 4096"
+msgstr "Faixa do valor de 1 até 4096. Se vazio, será 4096"
+
+msgid "Version"
+msgstr "Versão"
+
+msgid "Version Information"
+msgstr "Informação da Versão"
+
+msgid "Whether intercepted requests should be treated as valid."
+msgstr "Se as solicitações interceptados deve ser tratadas como válidas."
+
+msgid ""
+"Whether or not Privoxy recognizes special HTTP headers to change toggle "
+"state."
+msgstr ""
+"Se o Privoxy deve reconhecer cabeçalhos HTTP especiais para mudar de "
+"alternância do estado."
+
+msgid "Whether or not buffered content is compressed before delivery."
+msgstr "Se o conteúdo em buffer é comprimido antes da entrega."
+
+msgid ""
+"Whether or not outgoing connections that have been kept alive should be "
+"shared between different incoming connections."
+msgstr ""
+"Se as conexões de saÃda que foram mantidas vivas devem ser compartilhadas "
+"entre diferentes conexões de entrada."
+
+msgid "Whether or not pipelined requests should be served."
+msgstr "Se os pedidos de pipeline deve ser aceitos."
+
+msgid "Whether or not proxy authentication through Privoxy should work."
+msgstr "Se a autenticação de proxy através do Privoxy deve funcionar."
+
+msgid "Whether or not the web-based actions file editor may be used."
+msgstr "Se o editor de arquivos de ações baseadas na web deve ser utilizado."
+
+msgid "Whether or not the web-based toggle feature may be used."
+msgstr "Se deve ser usado o recurso de alternância baseado na web."
+
+msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
+msgstr ""
+"Se as solicitações para páginas CGI do Privoxy podem ser bloqueadas ou "
+"redirecionadas."
+
+msgid ""
+"Whether the CGI interface should stay compatible with broken HTTP clients."
+msgstr ""
+"Se a interface CGI deve se manter compatÃvel com clientes HTTP mal "
+"implementados."
+
+msgid "Whether to run only one server thread."
+msgstr "Se deseja executar o servidor como apenas uma thread."
+
+msgid "Who can access what."
+msgstr "Quem pode acessar o quê."
+
+msgid "installed"
+msgstr "instalado"
+
+msgid "or higher"
+msgstr "ou maior"
+
+msgid "required"
+msgstr "necessário"
diff --git a/applications/luci-app-privoxy/po/zh-cn/privoxy.po b/applications/luci-app-privoxy/po/zh-cn/privoxy.po
index 778422b8bb..efbad08a56 100644
--- a/applications/luci-app-privoxy/po/zh-cn/privoxy.po
+++ b/applications/luci-app-privoxy/po/zh-cn/privoxy.po
@@ -57,7 +57,7 @@ msgid ""
"proxies. Note that parent proxies can severely decrease your privacy level. "
"Also specified here are SOCKS proxies."
msgstr ""
-"å¨è¿é设置 HTTP 请æ±æç»è¿çå¤é代çé¾ã注æï¼ç¶çº§ä»£çå¯è½ä¸¥ééä½ä½ çéç§å®"
+"å¨è¿é设置 HTTP 请æ±æç»è¿çå¤é代çé¾ã注æï¼ç¶çº§ä»£çå¯è½ä¸¥ééä½æ¨çéç§å®"
"å
¨åº¦ãå¨è¿éè¿å¯ä»¥è®¾ç½® SOCKS 代çã"
msgid "Debug GIF de-animation"
@@ -130,8 +130,8 @@ msgid ""
"be a good idea to let them know how to reach you, what you block and why you "
"do that, your policies, etc."
msgstr ""
-"å¦æé¤äºä½ è¿æå
¶ä»ç¨æ·ä½¿ç¨ Privoxy è¿æ¥ï¼æ好让ä»ä»¬ç¥éå¦ä½èç³»ä½ ï¼ä½ å±è½ä»"
-"ä¹ï¼ä½ 为ä»ä¹è¿æ ·åï¼ä½ çæ¿çççã"
+"å¦æé¤äºæ¨è¿æå
¶ä»ç¨æ·ä½¿ç¨ Privoxy è¿æ¥ï¼æ好让ä»ä»¬ç¥éå¦ä½èç³»æ¨ï¼æ¨å±è½ä»"
+"ä¹ï¼æ¨ä¸ºä»ä¹è¿æ ·åï¼æ¨çæ¿çççã"
msgid "Invalid email address"
msgstr "é®ç®±å°åæ æ"
diff --git a/applications/luci-app-qos/Makefile b/applications/luci-app-qos/Makefile
index dd322a347a..fd12557453 100644
--- a/applications/luci-app-qos/Makefile
+++ b/applications/luci-app-qos/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Quality of Service configuration module
LUCI_DEPENDS:=+qos-scripts
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-qos/po/zh-cn/qos.po b/applications/luci-app-qos/po/zh-cn/qos.po
index 0a5cd6220c..db13826dc7 100644
--- a/applications/luci-app-qos/po/zh-cn/qos.po
+++ b/applications/luci-app-qos/po/zh-cn/qos.po
@@ -1,17 +1,20 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: LuCi Chinese Translation\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-06-22 14:33+0200\n"
-"Last-Translator: phantasm131 \n"
-"Language-Team: QQ Group 75543259\n"
+"PO-Revision-Date: 2017-10-29 14:58+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Calculate overhead"
msgstr "计ç®å¼é"
@@ -29,7 +32,7 @@ msgid "Destination host"
msgstr "ç®ç主æº"
msgid "Download speed (kbit/s)"
-msgstr "ä¸è½½é度 (kbit/s)"
+msgstr "ä¸è½½é度ï¼kbit/sï¼"
msgid "Enable"
msgstr "å¼å¯"
@@ -53,7 +56,7 @@ msgid "QoS"
msgstr "QoS"
msgid "Quality of Service"
-msgstr "QOSæå¡"
+msgstr "æå¡è´¨éï¼QoSï¼"
msgid "Source host"
msgstr "æºä¸»æº"
@@ -62,12 +65,14 @@ msgid "Target"
msgstr "ç®æ "
msgid "Upload speed (kbit/s)"
-msgstr "ä¸ä¼ é度 (kbit/s)"
+msgstr "ä¸ä¼ é度ï¼kbit/sï¼"
msgid ""
"With QoS you can prioritize "
"network traffic selected by addresses, ports or services."
-msgstr "æ ¹æ®ç½ç»å°åã端å£ææå¡ï¼ç»æµéæ°æ®å
æåºã"
+msgstr ""
+"ä½¿ç¨ QoS ï¼æ ¹æ®ç½ç»å°åã端å£ææ"
+"å¡ï¼ä¸ºæµéæ°æ®å
æåºã"
msgid "all"
msgstr "å
¨é¨"
diff --git a/applications/luci-app-qos/po/zh-tw/qos.po b/applications/luci-app-qos/po/zh-tw/qos.po
index a011e9ca9a..1197e8a7d5 100644
--- a/applications/luci-app-qos/po/zh-tw/qos.po
+++ b/applications/luci-app-qos/po/zh-tw/qos.po
@@ -1,106 +1,111 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-21 10:36+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
+"Project-Id-Version: LuCi Chinese Translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-25 22:10+0100\n"
+"PO-Revision-Date: 2017-10-29 15:00+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Calculate overhead"
-msgstr "æµéè¨ç®"
+msgstr "è¨ç®éé·"
msgid "Classification Rules"
msgstr "åé¡è¦å"
msgid "Classification group"
-msgstr "åçµ"
+msgstr "åé¡çµ"
msgid "Comment"
-msgstr ""
+msgstr "註解"
msgid "Destination host"
msgstr "ç®ç主æ©"
msgid "Download speed (kbit/s)"
-msgstr "ä¸è¼é度(kbit/s)"
+msgstr "ä¸è¼é度ï¼kbit/sï¼"
msgid "Enable"
-msgstr "åç¨"
+msgstr "éå"
msgid "Half-duplex"
msgstr "åéå·¥"
msgid "Interfaces"
-msgstr "çé¢"
+msgstr "ä»é¢"
msgid "Number of bytes"
-msgstr "ä½å
æ¸"
+msgstr "ä½å
çµæ¸"
msgid "Ports"
-msgstr "å è"
+msgstr "å "
msgid "Protocol"
-msgstr "åå®"
+msgstr "åè°"
msgid "QoS"
-msgstr "å
é²å
åºé »å¯¬ç®¡ç"
+msgstr "QoS"
msgid "Quality of Service"
-msgstr "é£ç·å質æå"
+msgstr "æåå質ï¼QoSï¼"
msgid "Source host"
-msgstr "ä¾æºä¸»æ©"
+msgstr "æºä¸»æ©"
msgid "Target"
-msgstr "ç®çå°"
+msgstr "ç®æ¨"
msgid "Upload speed (kbit/s)"
-msgstr "ä¸å³é度(kbit/s)"
+msgstr "ä¸å³é度ï¼kbit/sï¼"
msgid ""
"With QoS you can prioritize "
"network traffic selected by addresses, ports or services."
msgstr ""
-"æäº QoS ä½ å¯ä»¥ç¨ä½åãå èæè
æå"
-"ä¾æåªå
æ¬."
+"ä½¿ç¨ QoS ï¼æ ¹æ網路ä½åãå ææåï¼"
+"çºæµéè³æå
æåºã"
msgid "all"
-msgstr "éç¨åªå
æ¬"
+msgstr "å
¨é¨"
msgid "default"
-msgstr "é è¨å¼"
+msgstr "é è¨"
msgid "express"
-msgstr "é«åªå
æ¬"
+msgstr "é«"
msgid "low"
-msgstr "ä½åªå
æ¬"
+msgstr "ä½"
msgid "normal"
-msgstr "ä¸è¬åªå
æ¬"
+msgstr "æ®é"
msgid "priority"
-msgstr "åªå
æ¬"
+msgstr "æé«"
#~ msgid "Service"
#~ msgstr "æå"
#~ msgid "Downlink"
-#~ msgstr "ä¸è¼"
+#~ msgstr "ä¸è¡"
#~ msgid "Internet Connection"
-#~ msgstr "網é網路é£ç·"
+#~ msgstr "Interneté£ç·"
#~ msgid "Uplink"
-#~ msgstr "ä¸å³"
+#~ msgstr "ä¸è¡"
#~ msgid "allf"
-#~ msgstr "ç¨ä¸ç¡äº"
+#~ msgstr "å
¨é¨"
#~ msgid "qos_connbytes"
-#~ msgstr "QoSé£ç·ä½å
æ¸"
+#~ msgstr "Qosé£ç·ä½å
çµæ¸"
diff --git a/applications/luci-app-radicale/po/pt-br/radicale.po b/applications/luci-app-radicale/po/pt-br/radicale.po
new file mode 100644
index 0000000000..17417fa499
--- /dev/null
+++ b/applications/luci-app-radicale/po/pt-br/radicale.po
@@ -0,0 +1,469 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"'AUTO' selects the highest protocol version that client and server support."
+msgstr ""
+"'AUTO' seleciona a versão mais alto protocolo que o cliente e o servidor "
+"suportar."
+
+msgid ""
+"'Hostname:Port' or 'IPv4:Port' or '[IPv6]:Port' Radicale should listen on"
+msgstr ""
+"'NomeDoEquipamento:porta' ou 'IPv4:Porta' ou '[IPv6]:Porta' em que o "
+"Radicale deve escutar"
+
+msgid "AUTO"
+msgstr "AUTO"
+
+msgid "Access-Control-Allow-Headers"
+msgstr "Access-Control-Allow-Headers"
+
+msgid "Access-Control-Allow-Methods"
+msgstr "Access-Control-Allow-Methods"
+
+msgid "Access-Control-Allow-Origin"
+msgstr "Access-Control-Allow-Origin"
+
+msgid "Access-Control-Expose-Headers"
+msgstr "Access-Control-Expose-Headers"
+
+msgid "Additional HTTP headers"
+msgstr "Additional HTTP headers"
+
+msgid "Address:Port"
+msgstr "Endereço: Porta"
+
+#, fuzzy
+msgid "Authentication"
+msgstr "Autenticação"
+
+msgid ""
+"Authentication login is matched against the 'user' key, and collection's "
+"path is matched against the 'collection' key."
+msgstr ""
+"O nome do usuário na autenticação é comparado com a chave do 'user', e o "
+"caminho da coleção é comparado com a chave 'coleção'."
+
+msgid "Authentication method"
+msgstr "Método de autenticação"
+
+msgid "Authentication method to allow access to Radicale server."
+msgstr "Método de autenticação para permitir o acesso ao servidor Radicale."
+
+msgid "Auto-start"
+msgstr "Iniciar automaticamente"
+
+msgid "Boot delay"
+msgstr "Atraso na iniciação"
+
+msgid "CalDAV/CardDAV"
+msgstr "CalDAV/CardDAV"
+
+msgid ""
+"Calendars and address books are available for both local and remote access, "
+"possibly limited through authentication policies."
+msgstr ""
+"Agendas e contados estão disponÃveis tanto para acesso local como remoto, "
+"possivelmente limitado através das polÃticas de autenticação."
+
+msgid "Certificate file"
+msgstr "Arquivo do certificado"
+
+msgid ""
+"Change here the encoding Radicale will use instead of 'UTF-8' for responses "
+"to the client and/or to store data inside collections."
+msgstr ""
+"Mude aqui a codificação que o Radicale usará em vez de 'UTF-8' para "
+"respostas a clientes ou para armazenar dados dentro das coleções."
+
+msgid "Ciphers"
+msgstr "Cifras"
+
+msgid "Console Log level"
+msgstr "NÃvel de detalhamento dos registros (log)"
+
+msgid "Control the access to data collections."
+msgstr "Controlar o acesso às coleções de dados."
+
+#, fuzzy
+msgid "Critical"
+msgstr "CrÃtico"
+
+msgid ""
+"Cross-origin resource sharing (CORS) is a mechanism that allows restricted "
+"resources (e.g. fonts, JavaScript, etc.) on a web page to be requested from "
+"another domain outside the domain from which the resource originated."
+msgstr ""
+"O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que "
+"permite que os recursos de acesso restrito (por exemplo, fontes, JavaScript, "
+"etc.) em uma página web ser solicitado de outro domÃnio fora do domÃnio a "
+"partir do qual o recurso foi originado."
+
+msgid "Custom"
+msgstr "Personalizadas"
+
+msgid "Database"
+msgstr "Banco de Dados"
+
+#, fuzzy
+msgid "Debug"
+msgstr "Depuração"
+
+msgid "Delay (in seconds) during system boot before Radicale start"
+msgstr ""
+"Atraso (em segundos) durante a inicialização do sistema antes do Radicale "
+"iniciar"
+
+#, fuzzy
+msgid "Directory"
+msgstr "Diretório"
+
+msgid "Directory not exists/found !"
+msgstr "O diretório não foi encontrado!"
+
+msgid "Directory required !"
+msgstr "O diretório é necessário!"
+
+msgid "Directory where the rotating log-files are stored"
+msgstr "O diretório onde os registros(log) rotativos são armazenados"
+
+msgid "During delay ifup-events are not monitored !"
+msgstr "Durante a espera, eventos ifup não serão monitorados!"
+
+msgid "Enable HTTPS"
+msgstr "Ativar HTTPS"
+
+msgid ""
+"Enable/Disable auto-start of Radicale on system start-up and interface events"
+msgstr ""
+"Ativar/Desativar iniciação automática do Radicale na iniciação do sistema e "
+"em eventos de interface"
+
+msgid "Encoding"
+msgstr "Codificação"
+
+msgid "Encoding for responding requests."
+msgstr "Codificação para responder pedidos."
+
+msgid "Encoding for storing local collections."
+msgstr "Codificação para armazenar coleções locais."
+
+msgid "Encryption method"
+msgstr "Método de criptografia"
+
+#, fuzzy
+msgid "Error"
+msgstr "Erro"
+
+msgid "File '%s' not found !"
+msgstr "Arquivo '%s' não encontrado!"
+
+msgid "File Log level"
+msgstr "NÃvel de detalhamento dos registos(log) em arquivos"
+
+msgid "File not found !"
+msgstr "Arquivo não encontrado!"
+
+msgid "File-system"
+msgstr "Sistema de arquivos"
+
+msgid ""
+"For example, for the 'user' key, '.+' means 'authenticated user' and '.*' "
+"means 'anybody' (including anonymous users)."
+msgstr ""
+"Por exemplo, para a chave 'user', '.+' Significa 'usuário autenticado' e '."
+"*' Significa 'qualquer um' (incluindo usuários anônimos)."
+
+msgid "Full access for Owner only"
+msgstr "Acesso completo somente para o proprietário"
+
+msgid "Full access for authenticated Users"
+msgstr "Acesso completo para usuários autenticados"
+
+msgid "Full access for everybody (including anonymous)"
+msgstr "Acesso completo para todos (incluindo anônimo)"
+
+msgid "Full path and file name of certificate"
+msgstr "Caminho completo e nome do arquivo do certificado"
+
+msgid "Full path and file name of private key"
+msgstr "Caminho e arquivo nome completo da chave privada"
+
+#, fuzzy
+msgid "Info"
+msgstr "Informações"
+
+msgid "Keep in mind to use the correct hashing algorithm !"
+msgstr "Fique atento para usar o algoritmo de resumo digital(hash) correto!"
+
+msgid "Leading or ending slashes are trimmed from collection's path."
+msgstr "Barras inicias e finais serão removidas do caminho da coleção."
+
+msgid "Log-backup Count"
+msgstr "Contagem Registro(log) de Backup"
+
+msgid "Log-file Viewer"
+msgstr "Visualizador de Arquivo de Registros(log)"
+
+msgid "Log-file directory"
+msgstr "Diretório do arquivo de registros(log)"
+
+msgid "Log-file size"
+msgstr "Tamanho do arquivo de registros(log)"
+
+#, fuzzy
+msgid "Logging"
+msgstr "Registrando os eventos"
+
+msgid "Logon message"
+msgstr "Mensagem de entrada"
+
+msgid "Maximum size of each rotation log-file."
+msgstr "Tamanho máximo para a rotação do arquivo de registros(log)"
+
+msgid "Message displayed in the client when a password is needed."
+msgstr "Mensagem exibida para o cliente quando uma senha é necessária."
+
+#, fuzzy
+msgid "NOT installed"
+msgstr "NÃO instalado"
+
+#, fuzzy
+msgid "None"
+msgstr "Nada"
+
+msgid "Number of backup files of log to create."
+msgstr "Número de backups dos arquivos de registros(log) a serem criados."
+
+msgid "OPTIONAL: See python's ssl module for available ciphers"
+msgstr ""
+"Opcional: veja o módulo SSL do python para conhecer as cifras disponÃveis"
+
+msgid "One or more missing/invalid fields on tab"
+msgstr "Um ou campos inválidos/ausentes na aba"
+
+msgid "Owner allow write, authenticated users allow read"
+msgstr "O proprietário pode escrever, os usuários autenticados podem ler"
+
+msgid "Path/File required !"
+msgstr "O caminho/arquivo é necessário!"
+
+msgid ""
+"Place here the 'user:password' pairs for your users which should have access "
+"to Radicale."
+msgstr ""
+"Coloque aqui os pares 'usuário:senha' para os seus usuários que devem ter "
+"acesso a Radicale."
+
+msgid "Please install current version !"
+msgstr "Por favor, instale a versão atual!"
+
+msgid "Please press [Reload] button below to reread the file."
+msgstr "Por favor, pressione o botão [Recarregar] abaixo para reler o arquivo."
+
+msgid "Please update to current version !"
+msgstr "Por favor, atualize para a versão atual!"
+
+msgid "Port numbers below 1024 (Privileged ports) are not supported"
+msgstr "Os porta abaixo de 1024 (portas privilegiadas) não são suportadas"
+
+msgid "Private key file"
+msgstr "Arquivo da chave privada"
+
+msgid "Radicale CalDAV/CardDAV Server"
+msgstr "Radicale Servidor CalDAV/CardDAV"
+
+msgid "Radicale uses '/etc/radicale/rights' as regexp-based file."
+msgstr ""
+"Radicale usa o '/etc/radicale/rights' como arquivo baseado em expressão "
+"regular."
+
+msgid "Radicale uses '/etc/radicale/users' as htpasswd file."
+msgstr "Radicale usa o '/etc/radicale/users' como o arquivo htpasswd."
+
+msgid "Read only!"
+msgstr "Somente leitura!"
+
+msgid "RegExp file"
+msgstr "Arquivo de expressões regulares"
+
+msgid "Reload"
+msgstr "Recarregar"
+
+msgid "Response Encoding"
+msgstr "Codificação da Resposta"
+
+msgid "Rights"
+msgstr "Direitos"
+
+msgid "Rights are based on a regexp-based file"
+msgstr "Os direitos são baseados em um arquivo baseado em expressões regulares"
+
+msgid "Rights backend"
+msgstr "Serviço de Direitos"
+
+msgid "SHA-1"
+msgstr "SHA-1"
+
+msgid "SSL Protocol"
+msgstr "Protocolo SSL"
+
+#, fuzzy
+msgid "Save"
+msgstr "Salvar"
+
+msgid "Section names are only used for naming the rule."
+msgstr "Os nomes das seção são usados ââapenas para nomear a regra."
+
+#, fuzzy
+msgid "Server"
+msgstr "Servidor"
+
+msgid "Setting this parameter to '0' will disable rotation of log-file."
+msgstr ""
+"Definindo este parâmetro para '0' irá desativar a rotação dos arquivos de "
+"registros(log)."
+
+msgid "Software package '%s' is not installed."
+msgstr "O pacote de software '%s' não está instalado."
+
+msgid "Software package '%s' is outdated."
+msgstr "O pacote '%' está desatualizado."
+
+#, fuzzy
+msgid "Software update required"
+msgstr "A atualização do software é necessária"
+
+#, fuzzy
+msgid "Start"
+msgstr "Iniciar"
+
+#, fuzzy
+msgid "Start / Stop"
+msgstr "Iniciar / Parar"
+
+msgid "Start/Stop Radicale server"
+msgstr "Iniciar/Parar o servidor Radicale"
+
+msgid "Storage"
+msgstr "Armazenamento"
+
+msgid "Storage Encoding"
+msgstr "Codificação do Armazenamento"
+
+msgid "Storage backend"
+msgstr "Serviço de armazenamento"
+
+msgid "Syslog Log level"
+msgstr "NÃvel de detalhamento do serviço de registro (syslog)"
+
+#, fuzzy
+msgid "System"
+msgstr "Sistema"
+
+msgid ""
+"The Radicale Project is a complete CalDAV (calendar) and CardDAV (contact) "
+"server solution."
+msgstr ""
+"O Projeto Radicale é uma solução completa de CalDAV (agenda) e CardDAV "
+"(contatos)."
+
+msgid ""
+"They can be viewed and edited by calendar and contact clients on mobile "
+"phones or computers."
+msgstr ""
+"Eles podem ser visualizados e editados pelos clientes de agenda e de "
+"contatos em telefones celulares ou computadores."
+
+msgid "To edit the file follow this link!"
+msgstr "Para editar o arquivo, siga este link!"
+
+msgid "To view latest log file follow this link!"
+msgstr ""
+"Para visualizar mais recente arquivo de registros(log), siga este link!"
+
+msgid "Value is not a number"
+msgstr "O valor não é um número"
+
+msgid "Value is not an Integer >= 0 !"
+msgstr "O valor não é um número natural (>=0)!"
+
+msgid "Value not between 0 and 300"
+msgstr "Valor não está entre 0 e 300"
+
+msgid "Value required ! Integer >= 0 !"
+msgstr "O valor é necessário! Número natural (>=0)!"
+
+#, fuzzy
+msgid "Version"
+msgstr "Versão"
+
+#, fuzzy
+msgid "Version Information"
+msgstr "Informação da Versão"
+
+msgid ""
+"WARNING: Only 'File-system' is documented and tested by Radicale development"
+msgstr ""
+"AVISO: Apenas 'Sistema de Arquivos está documentado e testado pelo "
+"desenvolvimento do Radicale"
+
+#, fuzzy
+msgid "Warning"
+msgstr "Alerta"
+
+msgid ""
+"You can also get groups from the user regex in the collection with {0}, {1}, "
+"etc."
+msgstr ""
+"Você também pode obter grupos a partir da expressão regular do usuário na "
+"coleção com {0}, {1} , etc."
+
+msgid ""
+"You can use Python's ConfigParser interpolation values %(login)s and "
+"%(path)s."
+msgstr ""
+"Você pode usar a interpolação de valores %(login)s e %(path)s do "
+"ConfigParser do Python."
+
+msgid "crypt"
+msgstr "cifrar"
+
+msgid "custom"
+msgstr "personalizado"
+
+msgid "htpasswd file"
+msgstr "arquivo htpasswd"
+
+#, fuzzy
+msgid "installed"
+msgstr "instalado"
+
+msgid "no valid path given!"
+msgstr "Nenhum caminho válido foi informado!"
+
+#, fuzzy
+msgid "or higher"
+msgstr "ou maior"
+
+msgid "plain"
+msgstr "plano"
+
+#, fuzzy
+msgid "required"
+msgstr "necessário"
+
+msgid "salted SHA-1"
+msgstr "SHA-1 com salto"
diff --git a/applications/luci-app-radvd/po/zh-cn/radvd.po b/applications/luci-app-radvd/po/zh-cn/radvd.po
index f3dae7fbc7..9cb3a31b94 100644
--- a/applications/luci-app-radvd/po/zh-cn/radvd.po
+++ b/applications/luci-app-radvd/po/zh-cn/radvd.po
@@ -1,19 +1,22 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2014-07-13 16:23+0200\n"
-"Last-Translator: qiuchengxuan \n"
-"Language-Team: QQ Group 75543259 \n"
+"PO-Revision-Date: 2017-10-29 15:24+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "6to4 interface"
-msgstr "IPv6å°IPv4çæ¥å£"
+msgstr "6to4 æ¥å£"
msgid "Address"
msgstr "å°å"
@@ -25,77 +28,79 @@ msgid "Advanced"
msgstr "è¿é¶é项"
msgid "Advertise Home Agent flag"
-msgstr "广ææ¬å°ä¸ç»§æ è¯"
+msgstr "宣åæ¬å°ä»£çæ è¯"
msgid "Advertise router address"
-msgstr "广æè·¯ç±å°å"
+msgstr "宣åè·¯ç±å°å"
msgid "Advertised Domain Suffixes"
-msgstr "åºå广æåç¼"
+msgstr "宣åçååç¼"
msgid ""
"Advertised IPv6 RDNSS. If empty, the current IPv6 address of the interface "
"is used"
-msgstr "IPv6 Recursive DNSæå¡å¨(RDNSS)å°åãè¥ä¸ºç©ºï¼å为å½åIPv6å°å"
+msgstr "宣åç IPv6 RDNSS å°åãè¥ä¸ºç©ºï¼å为å½å IPv6 å°å"
msgid "Advertised IPv6 prefixes"
-msgstr "IPV6广æåç¼ç¾¤"
+msgstr "宣åç IPv6 åç¼ç¾¤"
msgid ""
"Advertised IPv6 prefixes. If empty, the current interface prefix is used"
-msgstr "IPv6广æåç¼ç¾¤ãå¦æ为空ï¼å°ä½¿ç¨å½åæ¥å£çåç¼"
+msgstr "宣åç IPv6 åç¼ç¾¤ãè¥ä¸ºç©ºï¼å°ä½¿ç¨å½åæ¥å£çåç¼"
msgid "Advertises Mobile IPv6 Home Agent capability (RFC3775)"
-msgstr "广æ移å¨IPv6æ¬å°ä»£çåè½ï¼RFC3775"
+msgstr "宣åç§»å¨ IPv6 æ¬å°ä»£çåè½ï¼RFC3775ï¼"
msgid "Advertises Mobile Router registration capability (NEMO Basic)"
-msgstr "广æ移å¨è·¯ç±å¨æ³¨ååè½ï¼NEMOåºæ¬ï¼"
+msgstr "宣å移å¨è·¯ç±å¨æ³¨ååè½ï¼NEMO åºæ¬ï¼"
msgid ""
"Advertises assumed reachability time in milliseconds of neighbours in the RA "
"if specified. 0 disables reachability advertisements"
-msgstr "è·¯ç±å¨å
¬åæ¥æä¸å®£åä¼°ç®çé»å±
å¯è¾¾æ¶é´ï¼æ¯«ç§ï¼ã0代表ç¦ç¨å¯è¾¾æ§å®£åã"
+msgstr "å¨ RA ä¸å®£åä¼°ç®çé»å±
å¯è¾¾æ¶é´ï¼æ¯«ç§ï¼ã0 ç¦ç¨å¯è¾¾æ§å®£å"
msgid ""
"Advertises the default Hop Count value for outgoing unicast packets in the "
"RA. 0 disables hopcount advertisements"
-msgstr "è·¯ç±å¨å
¬åæ¥æä¸å¹¿æå¤ååææ°æ®å
ç缺çè·³æ°å¼ã 0ç¦ç¨å¹¿æè·³æ°"
+msgstr "å¨ RA ä¸å®£åå¤ååææ°æ®å
çé»è®¤è·³æ°å¼ã0 ç¦ç¨è·³æ°å®£å"
msgid "Advertises the default router preference"
-msgstr "åå¸ç¼ºçè·¯ç±è®¾ç½®"
+msgstr "宣åé»è®¤è·¯ç±è®¾ç½®"
msgid ""
"Advertises the given link MTU in the RA if specified. 0 disables MTU "
"advertisements"
-msgstr "è·¯ç±å¨å
¬åæ¥æä¸å®£åé¾è·¯MTUã0代表ç¦ç¨MTU宣å"
+msgstr "å¨ RA ä¸å®£åç»å®çé¾è·¯ MTUã0 ç¦ç¨ MTU 宣å"
msgid ""
"Advertises the length of time in seconds that addresses generated from the "
"prefix via stateless address autoconfiguration remain preferred."
msgstr ""
+"宣åæ¶é´é¿åº¦ï¼ç§ï¼ï¼å¯¹éè¿æ ç¶æå°åèªå¨é
ç½®ä»åç¼çæçå°åï¼ç»´æ为é¦éå°"
+"åã"
msgid ""
"Advertises the length of time in seconds that the prefix is valid for the "
"purpose of on-link determination."
-msgstr ""
+msgstr "宣ååç¼å¯¹ on-link å³å®ææçæ¶é´é¿åº¦ï¼ç§ï¼ã"
msgid ""
"Advertises the lifetime of the default router in seconds. 0 indicates that "
"the node is no default router"
-msgstr "声æé»è®¤è·¯ç±å¨ççåæ¶é´ï¼åä½ä¸ºç§ï¼ã0代表ç»ç¹æ²¡æé»è®¤è·¯ç±"
+msgstr "宣åé»è®¤è·¯ç±å¨ççåæ¶é´ï¼ç§ï¼ã0 代表ç»ç¹æ²¡æé»è®¤è·¯ç±"
msgid ""
"Advertises the time in seconds the router is offering Mobile IPv6 Home Agent "
"services"
-msgstr ""
+msgstr "宣åè·¯ç±å¨æä¾ç§»å¨ IPv6 æ¬å°ä»£çæå¡çæ¶é´ï¼ç§ï¼"
msgid ""
"Advertises wait time in milliseconds between Neighbor Solicitation messages "
"in the RA if specified. 0 disables retransmit advertisements"
-msgstr ""
+msgstr "宣å RA ä¸é»å±
请æ±æ¶æ¯é´ççå¾
æ¶é´ï¼æ¯«ç§ï¼ã0 ç¦ç¨å®£åéä¼ "
msgid "Advertising"
-msgstr ""
+msgstr "宣å"
msgid "Autonomous"
msgstr "èªæ²»ç"
@@ -110,10 +115,10 @@ msgid "Current hop limit"
msgstr "å½åè·³æ°éå¶"
msgid "DNSSL"
-msgstr "DNSæç´¢å表"
+msgstr "DNSSL"
msgid "DNSSL Configuration"
-msgstr "DNSæç´¢å表设置"
+msgstr "DNSSL 设置"
msgid "Default lifetime"
msgstr "é»è®¤çåæ¶é"
@@ -125,10 +130,10 @@ msgid "Enable"
msgstr "å¯ç¨"
msgid "Enable advertisements"
-msgstr "å¯ç¨å¹¿æ"
+msgstr "å¯ç¨å®£å"
msgid "Enables router advertisements and solicitations"
-msgstr "æ¿æ´»è·¯ç±å¹¿æå请æ±"
+msgstr "æ¿æ´»è·¯ç±å®£åå请æ±"
msgid ""
"Enables the additional stateful administered autoconfiguration protocol "
@@ -138,25 +143,25 @@ msgstr "使è½éå çåºäºç¶æ管ççèªå¨é
ç½®åè®®ï¼RFC2462ï¼"
msgid ""
"Enables the autoconfiguration of additional, non address information "
"(RFC2462)"
-msgstr "å¯ç¨èªå¨é
ç½®ï¼ä¸å
æ¬å°åä¿¡æ¯(RFC2462)"
+msgstr "å¯ç¨èªå¨é
ç½®ï¼ä¸å
æ¬å°åä¿¡æ¯ï¼RFC2462ï¼"
msgid "General"
msgstr "æ¦åµ"
msgid "Home Agent information"
-msgstr "æ¬å°ä¸ç»§ä¿¡æ¯"
+msgstr "æ¬å°ä»£çä¿¡æ¯"
msgid "Home Agent lifetime"
-msgstr "æ¬å°ä¸ç»§æææ"
+msgstr "æ¬å°ä»£çæææ"
msgid "Home Agent preference"
-msgstr "æ¬å°ä¸ç»§ä¼å
æ"
+msgstr "æ¬å°ä»£çä¼å
æ"
msgid "Include Home Agent Information in the RA"
-msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«æ¬å°ä¸ç»§ä¿¡æ¯"
+msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«æ¬å°ä»£çä¿¡æ¯"
msgid "Include Mobile IPv6 Advertisement Interval option to RA"
-msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«ç§»å¨IPV6广æé´é设置"
+msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«ç§»å¨ IPv6 宣åé´é设置"
msgid "Includes the link-layer address of the outgoing interface in the RA"
msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«åºæ¥å£çé¾è·¯å±å°å"
@@ -164,12 +169,12 @@ msgstr "è·¯ç±å¨å
¬åæ¥æä¸å
å«åºæ¥å£çé¾è·¯å±å°å"
msgid ""
"Indicates that the address of interface is sent instead of network prefix, "
"as is required by Mobile IPv6"
-msgstr "表æ使ç¨æ¥å£çå°ååéèéç½ç»åç¼ï¼ç§»å¨IPv6éè¦"
+msgstr "表æ使ç¨æ¥å£çå°ååéèéç½ç»åç¼ï¼ç§»å¨ IPv6 éè¦"
msgid ""
"Indicates that the underlying link is not broadcast capable, prevents "
"unsolicited advertisements from being sent"
-msgstr "表ææ½å¨çé¾è·¯å¹¶ä¸å
·æ广æè½åï¼é¿å
主å¨è§¦åç宣åæ¥æååº"
+msgstr "表ææ½å¨çé¾è·¯å¹¶ä¸å
·æ宣åè½åï¼é¿å
主å¨è§¦åç宣åæ¥æååº"
msgid ""
"Indicates that this prefix can be used for autonomous address configuration "
@@ -178,7 +183,7 @@ msgstr "表ææ¤åç¼è½å¤ç¨äºå¿åå°åé
ç½®ï¼RFC4862ï¼"
msgid ""
"Indicates that this prefix can be used for on-link determination (RFC4861)"
-msgstr "表ææ¤åç¼è½å¤ç¨äºon-linkå³å®ï¼RFC481ï¼"
+msgstr "表ææ¤åç¼è½å¤ç¨äº on-link å³å®ï¼RFC481ï¼"
msgid "Interface"
msgstr "æ¥å£"
@@ -196,31 +201,31 @@ msgid "Lifetime"
msgstr "æææ"
msgid "Link MTU"
-msgstr "è¿æ¥MTU"
+msgstr "è¿æ¥ MTU"
msgid "Managed flag"
-msgstr "Mæ è¯"
+msgstr "M æ è¯"
msgid "Max. interval"
msgstr "æ大é´é"
msgid "Maximum advertisement interval"
-msgstr "æ大广æé´é"
+msgstr "æ大宣åé´é"
msgid "Minimum advertisement delay"
-msgstr "æå°å¹¿æ延æ¶"
+msgstr "æå°å®£å延æ¶"
msgid "Minimum advertisement interval"
-msgstr "æå°å¹¿æé´é"
+msgstr "æå°å®£åé´é"
msgid "Mobile IPv6"
-msgstr "移å¨IPV6"
+msgstr "ç§»å¨ IPv6"
msgid "Mobile IPv6 interval option"
-msgstr "移å¨IPV6é´éé项"
+msgstr "ç§»å¨ IPv6 é´éé项"
msgid "Mobile IPv6 router registration"
-msgstr "移å¨IPV6è·¯ç±æ³¨å"
+msgstr "ç§»å¨ IPv6 è·¯ç±æ³¨å"
msgid "Multicast"
msgstr "ç»æä¼ è¾"
@@ -232,7 +237,7 @@ msgid "On-link determination"
msgstr "å·²è¿æ¥çç®æ "
msgid "Preference"
-msgstr "ä¼å
æ"
+msgstr "é¦é项"
msgid "Preferred lifetime"
msgstr "ææççåæ¶é´"
@@ -253,27 +258,28 @@ msgid "RDNSS Configuration"
msgstr "é»å±
åç°æå¡å¨è®¾ç½®"
msgid "Radvd"
-msgstr ""
+msgstr "Radvd"
msgid "Radvd - DNSSL"
-msgstr "RADVDï¼DNSæç´¢å表"
+msgstr "Radvd - DNSSL"
msgid "Radvd - Interface %q"
-msgstr ""
+msgstr "Radvd - æ¥å£ %q"
msgid "Radvd - Prefix"
-msgstr "RADVDï¼åç¼"
+msgstr "Radvd - åç¼"
msgid "Radvd - RDNSS"
-msgstr "RADVDï¼é»å±
åç°æå¡å¨"
+msgstr "Radvd - RDNSS"
msgid "Radvd - Route"
-msgstr "RADVDï¼è·¯ç±"
+msgstr "Radvd - è·¯ç±"
msgid ""
"Radvd is a router advertisement daemon for IPv6. It listens to router "
"solicitations and sends router advertisements as described in RFC 4861."
-msgstr "RADVDæ¯ä¸ä¸ªIPV6è·¯ç±å
¬å软件ï¼æç
§RFC4861çå¬è·¯ç±è¯·æ±ååéè·¯ç±å
¬åã"
+msgstr ""
+"Radvd æ¯ä¸ä¸ª IPv6 è·¯ç±å
¬å软件ï¼æç
§ RFC4861 çå¬è·¯ç±è¯·æ±ååéè·¯ç±å
¬åã"
msgid "Reachable time"
msgstr "å¯è¾¾å»¶æ¶"
@@ -289,7 +295,7 @@ msgid "Route Configuration"
msgstr "è·¯ç±è®¾ç½®"
msgid "Routes"
-msgstr ""
+msgstr "è·¯ç±"
msgid "Source link-layer address"
msgstr "æºé¾è·¯å±å°å"
@@ -299,9 +305,11 @@ msgid ""
"interfaces public IPv4 address is combined with 2002::/3 and the value of "
"the prefix option"
msgstr ""
+"æå®ä»å
¶å¯¼åº 6to4 åç¼çé»è¾æ¥å£å称ãæ¥å£çå
Œ
± IPv4 å°åå°ä¸ 2002::/3 åå"
+"ç¼é项çå¼ç¸ç»å"
msgid "Specifies the lifetime associated with the route in seconds."
-msgstr "设å®è·¯ç±å
³èççåæ¶é´ï¼åä½ä¸ºç§"
+msgstr "设å®è·¯ç±å
³èççåæ¶é´ï¼ç§ï¼"
msgid "Specifies the logical interface name this section belongs to"
msgstr "说æè¿ä¸ªç©çæ¥å£è¿æ¥å°åªä¸ªç½ç»"
@@ -309,12 +317,12 @@ msgstr "说æè¿ä¸ªç©çæ¥å£è¿æ¥å°åªä¸ªç½ç»"
msgid ""
"Specifies the maximum duration how long the DNSSL entries are used for name "
"resolution."
-msgstr "设å®DNSSL表项å称解æçæé¿æ¶é´é´é"
+msgstr "è®¾å® DNSSL 表项å称解æçæé¿æ¶é´é´é"
msgid ""
"Specifies the maximum duration how long the RDNSS entries are used for name "
"resolution."
-msgstr "设å®RDNSS表项å称解æçæé¿æ¶é´é´é"
+msgstr "è®¾å® RDNSS 表项å称解æçæé¿æ¶é´é´é"
msgid "Specifies the preference associated with the default router"
msgstr "设å®å
³èçé»è®¤è·¯ç±çé
ç½®"
@@ -325,23 +333,23 @@ msgstr "åç¼"
msgid ""
"The maximum time allowed between sending unsolicited multicast router "
"advertisements from the interface, in seconds"
-msgstr "å
许æ¥å£åéç»æè·¯ç±å®£åæ¥æçæ大æ¶é´é´éï¼åä½ä¸ºç§"
+msgstr "å
许æ¥å£åéç»æè·¯ç±å®£åæ¥æçæ大æ¶é´é´éï¼ç§ï¼"
msgid ""
"The minimum time allowed between sending multicast router advertisements "
"from the interface, in seconds"
-msgstr "å
许æ¥å£åéç»æè·¯ç±å®£åæ¥æçæå°æ¶é´é´éï¼åä½ä¸ºç§"
+msgstr "å
许æ¥å£åéç»æè·¯ç±å®£åæ¥æçæå°æ¶é´é´éï¼ç§ï¼"
msgid ""
"The minimum time allowed between sending unsolicited multicast router "
"advertisements from the interface, in seconds"
-msgstr "å
许æ¥å£åé主å¨è§¦åç»æè·¯ç±å®£åæ¥æçæå°æ¶é´é´éï¼åä½ä¸ºç§"
+msgstr "å
许æ¥å£åé主å¨è§¦åç»æè·¯ç±å®£åæ¥æçæå°æ¶é´é´éï¼ç§ï¼"
msgid "The preference for the Home Agent sending this RA"
-msgstr ""
+msgstr "åéæ¤ RA çæ¬å°ä»£ççé¦é项"
msgid "Timing"
-msgstr ""
+msgstr "计æ¶"
msgid "Unicast only"
msgstr "åæ"
@@ -362,7 +370,7 @@ msgid "low"
msgstr "ä½"
msgid "medium"
-msgstr "ä¸ç"
+msgstr "ä¸"
msgid "no"
msgstr "å¦"
diff --git a/applications/luci-app-radvd/po/zh-tw/radvd.po b/applications/luci-app-radvd/po/zh-tw/radvd.po
index aed76c5274..6de830979e 100644
--- a/applications/luci-app-radvd/po/zh-tw/radvd.po
+++ b/applications/luci-app-radvd/po/zh-tw/radvd.po
@@ -1,366 +1,399 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-10-29 15:24+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "6to4 interface"
-msgstr ""
+msgstr "6to4 ä»é¢"
msgid "Address"
-msgstr ""
+msgstr "ä½å"
msgid "Addresses"
-msgstr ""
+msgstr "ä½å"
msgid "Advanced"
-msgstr ""
+msgstr "é²éé¸é
"
msgid "Advertise Home Agent flag"
-msgstr ""
+msgstr "宣åæ¬å°ä»£çæ¨è"
msgid "Advertise router address"
-msgstr ""
+msgstr "宣åè·¯ç±ä½å"
msgid "Advertised Domain Suffixes"
-msgstr ""
+msgstr "宣åçååå°¾"
msgid ""
"Advertised IPv6 RDNSS. If empty, the current IPv6 address of the interface "
"is used"
-msgstr ""
+msgstr "宣åç IPv6 RDNSS ä½åãè¥çºç©ºï¼åçºç¶å IPv6 ä½å"
msgid "Advertised IPv6 prefixes"
-msgstr ""
+msgstr "宣åç IPv6 åé¦ç¾¤"
msgid ""
"Advertised IPv6 prefixes. If empty, the current interface prefix is used"
-msgstr ""
+msgstr "宣åç IPv6 åé¦ç¾¤ãè¥çºç©ºï¼å°ä½¿ç¨ç¶åä»é¢çåé¦"
msgid "Advertises Mobile IPv6 Home Agent capability (RFC3775)"
-msgstr ""
+msgstr "宣å移å IPv6 æ¬å°ä»£çåè½ï¼RFC3775ï¼"
msgid "Advertises Mobile Router registration capability (NEMO Basic)"
-msgstr ""
+msgstr "宣å移åè·¯ç±å¨è¨»ååè½ï¼NEMO åºæ¬ï¼"
msgid ""
"Advertises assumed reachability time in milliseconds of neighbours in the RA "
"if specified. 0 disables reachability advertisements"
-msgstr ""
+msgstr "å¨ RA ä¸å®£åä¼°ç®çé°å±
å¯éæéï¼æ¯«ç§ï¼ã0 ç¦ç¨å¯éæ§å®£å"
msgid ""
"Advertises the default Hop Count value for outgoing unicast packets in the "
"RA. 0 disables hopcount advertisements"
-msgstr ""
+msgstr "å¨ RA ä¸å®£åå¤ç¼å®æè³æå
çé è¨è·³æ¸å¼ã0 ç¦ç¨è·³æ¸å®£å"
msgid "Advertises the default router preference"
-msgstr ""
+msgstr "宣åé è¨è·¯ç±è¨å®"
msgid ""
"Advertises the given link MTU in the RA if specified. 0 disables MTU "
"advertisements"
-msgstr ""
+msgstr "å¨ RA ä¸å®£å給å®çéè·¯ MTUã0 ç¦ç¨ MTU 宣å"
msgid ""
"Advertises the length of time in seconds that addresses generated from the "
"prefix via stateless address autoconfiguration remain preferred."
msgstr ""
+"宣åæéé·åº¦ï¼ç§ï¼ï¼å°ééç¡çæ
ä½åèªåé
ç½®å¾åé¦çæçä½åï¼ç¶æçºé¦é¸å°"
+"åã"
msgid ""
"Advertises the length of time in seconds that the prefix is valid for the "
"purpose of on-link determination."
-msgstr ""
+msgstr "宣ååé¦å° on-link 決å®ææçæéé·åº¦ï¼ç§ï¼ã"
msgid ""
"Advertises the lifetime of the default router in seconds. 0 indicates that "
"the node is no default router"
-msgstr ""
+msgstr "宣åé è¨è·¯ç±å¨ççåæéï¼ç§ï¼ã0 代表çµé»æ²æé è¨è·¯ç±"
msgid ""
"Advertises the time in seconds the router is offering Mobile IPv6 Home Agent "
"services"
-msgstr ""
+msgstr "宣åè·¯ç±å¨æä¾ç§»å IPv6 æ¬å°ä»£çæåçæéï¼ç§ï¼"
msgid ""
"Advertises wait time in milliseconds between Neighbor Solicitation messages "
"in the RA if specified. 0 disables retransmit advertisements"
-msgstr ""
+msgstr "宣å RA ä¸é°å±
è«æ±è¨æ¯éççå¾
æéï¼æ¯«ç§ï¼ã0 ç¦ç¨å®£åéå³"
msgid "Advertising"
-msgstr ""
+msgstr "宣å"
msgid "Autonomous"
-msgstr ""
+msgstr "èªæ²»ç"
msgid "Clients"
-msgstr ""
+msgstr "客æ¶ç«¯"
msgid "Configuration flag"
-msgstr ""
+msgstr "è¨å®æ¨è"
msgid "Current hop limit"
-msgstr ""
+msgstr "ç¶åè·³æ¸éå¶"
msgid "DNSSL"
-msgstr ""
+msgstr "DNSSL"
msgid "DNSSL Configuration"
-msgstr ""
+msgstr "DNSSL è¨å®"
msgid "Default lifetime"
-msgstr ""
+msgstr "é è¨çåæé"
msgid "Default preference"
-msgstr ""
+msgstr "é è¨åªå
é åº"
msgid "Enable"
-msgstr ""
+msgstr "åç¨"
msgid "Enable advertisements"
-msgstr ""
+msgstr "åç¨å®£å"
msgid "Enables router advertisements and solicitations"
-msgstr ""
+msgstr "åç¨è·¯ç±å®£ååè«æ±"
msgid ""
"Enables the additional stateful administered autoconfiguration protocol "
"(RFC2462)"
-msgstr ""
+msgstr "使è½éå çåºæ¼çæ
管ççèªåé
ç½®åè°ï¼RFC2462ï¼"
msgid ""
"Enables the autoconfiguration of additional, non address information "
"(RFC2462)"
-msgstr ""
+msgstr "åç¨èªåé
ç½®ï¼ä¸å
æ¬ä½åè³è¨ï¼RFC2462ï¼"
msgid "General"
-msgstr ""
+msgstr "æ¦æ³"
msgid "Home Agent information"
-msgstr ""
+msgstr "æ¬å°ä»£çè³è¨"
msgid "Home Agent lifetime"
-msgstr ""
+msgstr "æ¬å°ä»£çæææ"
msgid "Home Agent preference"
-msgstr ""
+msgstr "æ¬å°ä»£çåªå
æ¬"
msgid "Include Home Agent Information in the RA"
-msgstr ""
+msgstr "è·¯ç±å¨å
¬åå ±æä¸å
å«æ¬å°ä»£çè³è¨"
msgid "Include Mobile IPv6 Advertisement Interval option to RA"
-msgstr ""
+msgstr "è·¯ç±å¨å
¬åå ±æä¸å
å«ç§»å IPv6 宣åééè¨å®"
msgid "Includes the link-layer address of the outgoing interface in the RA"
-msgstr ""
+msgstr "è·¯ç±å¨å
¬åå ±æä¸å
å«åºä»é¢çé路層ä½å"
msgid ""
"Indicates that the address of interface is sent instead of network prefix, "
"as is required by Mobile IPv6"
-msgstr ""
+msgstr "表æ使ç¨ä»é¢çä½åå³éèé網路åé¦ï¼ç§»å IPv6 éè¦"
msgid ""
"Indicates that the underlying link is not broadcast capable, prevents "
"unsolicited advertisements from being sent"
-msgstr ""
+msgstr "表ææ½å¨çé路並ä¸å
·æ宣åè½åï¼é¿å
主å觸ç¼ç宣åå ±æç¼åº"
msgid ""
"Indicates that this prefix can be used for autonomous address configuration "
"(RFC4862)"
-msgstr ""
+msgstr "表ææ¤åé¦è½å¤ ç¨æ¼å¿åä½åé
ç½®ï¼RFC4862ï¼"
msgid ""
"Indicates that this prefix can be used for on-link determination (RFC4861)"
-msgstr ""
+msgstr "表ææ¤åé¦è½å¤ ç¨æ¼ on-link 決å®ï¼RFC481ï¼"
msgid "Interface"
-msgstr ""
+msgstr "ä»é¢"
msgid "Interface Configuration"
-msgstr ""
+msgstr "ä»é¢è¨å®"
msgid "Interface required"
-msgstr ""
+msgstr "ä»é¢å¿
è¦é
"
msgid "Interfaces"
-msgstr ""
+msgstr "ä»é¢"
msgid "Lifetime"
-msgstr ""
+msgstr "æææ"
msgid "Link MTU"
-msgstr ""
+msgstr "é£ç· MTU"
msgid "Managed flag"
-msgstr ""
+msgstr "M æ¨è"
msgid "Max. interval"
-msgstr ""
+msgstr "æ大éé"
msgid "Maximum advertisement interval"
-msgstr ""
+msgstr "æ大宣åéé"
msgid "Minimum advertisement delay"
-msgstr ""
+msgstr "æå°å®£å延æ"
msgid "Minimum advertisement interval"
-msgstr ""
+msgstr "æå°å®£åéé"
msgid "Mobile IPv6"
-msgstr ""
+msgstr "移å IPv6"
msgid "Mobile IPv6 interval option"
-msgstr ""
+msgstr "移å IPv6 ééé¸é
"
msgid "Mobile IPv6 router registration"
-msgstr ""
+msgstr "移å IPv6 è·¯ç±è¨»å"
msgid "Multicast"
-msgstr ""
+msgstr "çµæå³è¼¸"
msgid "On-link"
-msgstr ""
+msgstr "å·²é£ç·ç"
msgid "On-link determination"
-msgstr ""
+msgstr "å·²é£ç·çç®æ¨"
msgid "Preference"
-msgstr ""
+msgstr "é¦é¸é
"
msgid "Preferred lifetime"
-msgstr ""
+msgstr "ææççåæé"
msgid "Prefix"
-msgstr ""
+msgstr "åé¦"
msgid "Prefix Configuration"
-msgstr ""
+msgstr "åé¦è¨å®"
msgid "Prefixes"
-msgstr ""
+msgstr "åé¦ç¾¤"
msgid "RDNSS"
-msgstr ""
+msgstr "é°å±
ç¼ç¾ä¼ºæå¨"
msgid "RDNSS Configuration"
-msgstr ""
+msgstr "é°å±
ç¼ç¾ä¼ºæå¨è¨å®"
msgid "Radvd"
-msgstr ""
+msgstr "Radvd"
msgid "Radvd - DNSSL"
-msgstr ""
+msgstr "Radvd - DNSSL"
msgid "Radvd - Interface %q"
-msgstr ""
+msgstr "Radvd - ä»é¢ %q"
msgid "Radvd - Prefix"
-msgstr ""
+msgstr "Radvd - åé¦"
msgid "Radvd - RDNSS"
-msgstr ""
+msgstr "Radvd - RDNSS"
msgid "Radvd - Route"
-msgstr ""
+msgstr "Radvd - è·¯ç±"
msgid ""
"Radvd is a router advertisement daemon for IPv6. It listens to router "
"solicitations and sends router advertisements as described in RFC 4861."
msgstr ""
+"Radvd æ¯ä¸å IPv6 è·¯ç±å
¬åè»é«ï¼æç
§ RFC4861 ç£è½è·¯ç±è«æ±åå³éè·¯ç±å
¬åã"
msgid "Reachable time"
-msgstr ""
+msgstr "å¯é延æ"
msgid ""
"Restrict communication to specified clients, leave empty to use multicast"
-msgstr ""
+msgstr "éå¶ç¹å®æ話ï¼ç空å使ç¨çµæ"
msgid "Retransmit timer"
-msgstr ""
+msgstr "ä¸ç¹¼è½ç¼è¨æå¨"
msgid "Route Configuration"
-msgstr ""
+msgstr "è·¯ç±è¨å®"
msgid "Routes"
-msgstr ""
+msgstr "è·¯ç±"
msgid "Source link-layer address"
-msgstr ""
+msgstr "æºé路層ä½å"
msgid ""
"Specifies a logical interface name to derive a 6to4 prefix from. The "
"interfaces public IPv4 address is combined with 2002::/3 and the value of "
"the prefix option"
msgstr ""
+"æå®å¾å
¶å¯åº 6to4 åé¦çé輯ä»é¢å稱ãä»é¢çå
Œ
± IPv4 ä½åå°è 2002::/3 åå"
+"綴é¸é
çå¼ç¸çµå"
msgid "Specifies the lifetime associated with the route in seconds."
-msgstr ""
+msgstr "è¨å®è·¯ç±éè¯ççåæéï¼ç§ï¼"
msgid "Specifies the logical interface name this section belongs to"
-msgstr ""
+msgstr "說æéåç©çä»é¢é£ç·å°åªå網路"
msgid ""
"Specifies the maximum duration how long the DNSSL entries are used for name "
"resolution."
-msgstr ""
+msgstr "è¨å® DNSSL 表é
å稱解æçæé·æééé"
msgid ""
"Specifies the maximum duration how long the RDNSS entries are used for name "
"resolution."
-msgstr ""
+msgstr "è¨å® RDNSS 表é
å稱解æçæé·æééé"
msgid "Specifies the preference associated with the default router"
-msgstr ""
+msgstr "è¨å®éè¯çé è¨è·¯ç±çé
ç½®"
msgid "Suffix"
-msgstr ""
+msgstr "åå°¾"
msgid ""
"The maximum time allowed between sending unsolicited multicast router "
"advertisements from the interface, in seconds"
-msgstr ""
+msgstr "å
許ä»é¢å³éçµæè·¯ç±å®£åå ±æçæ大æéééï¼ç§ï¼"
msgid ""
"The minimum time allowed between sending multicast router advertisements "
"from the interface, in seconds"
-msgstr ""
+msgstr "å
許ä»é¢å³éçµæè·¯ç±å®£åå ±æçæå°æéééï¼ç§ï¼"
msgid ""
"The minimum time allowed between sending unsolicited multicast router "
"advertisements from the interface, in seconds"
-msgstr ""
+msgstr "å
許ä»é¢å³é主å觸ç¼çµæè·¯ç±å®£åå ±æçæå°æéééï¼ç§ï¼"
msgid "The preference for the Home Agent sending this RA"
-msgstr ""
+msgstr "å³éæ¤ RA çæ¬å°ä»£ççé¦é¸é
"
msgid "Timing"
-msgstr ""
+msgstr "è¨æ"
msgid "Unicast only"
-msgstr ""
+msgstr "å®æ"
msgid "Valid lifetime"
-msgstr ""
+msgstr "ææççåæé"
msgid "Validity time"
-msgstr ""
+msgstr "æææ"
msgid "default"
-msgstr ""
+msgstr "é è¨"
msgid "high"
-msgstr ""
+msgstr "é«"
msgid "low"
-msgstr ""
+msgstr "ä½"
msgid "medium"
-msgstr ""
+msgstr "ä¸"
msgid "no"
-msgstr ""
+msgstr "å¦"
msgid "yes"
-msgstr ""
+msgstr "æ¯"
+
+#~ msgid "Advertised IPv6 prefix"
+#~ msgstr "IPV6廣æåé¦"
+
+#~ msgid ""
+#~ "Advertised IPv6 prefix. If empty, the current interface prefix is used"
+#~ msgstr "IPV6廣æåé¦ãè¥çºç©ºï¼åç¶åä»é¢åé¦å·²è¢«ä½¿ç¨ã"
+
+#~ msgid "Open"
+#~ msgstr "éå"
+
+#~ msgid ""
+#~ "Specifies the maximum duration how long the DNSSL entries are used for "
+#~ "name resolution. Use 0 to specify an infinite lifetime"
+#~ msgstr "æå®DNSSL解æååçæé·æéï¼0åçºç¡éé·"
+
+#~ msgid ""
+#~ "Specifies the maximum duration how long the RDNSS entries are used for "
+#~ "name resolution. Use 0 to specify an infinite lifetime"
+#~ msgstr "æå®RDNSS解æååçæé·æéï¼0åçºç¡éé·"
diff --git a/applications/luci-app-samba/luasrc/model/cbi/samba.lua b/applications/luci-app-samba/luasrc/model/cbi/samba.lua
index 721191a7ee..2e533c3f57 100644
--- a/applications/luci-app-samba/luasrc/model/cbi/samba.lua
+++ b/applications/luci-app-samba/luasrc/model/cbi/samba.lua
@@ -13,9 +13,10 @@ s:tab("template", translate("Edit Template"))
s:taboption("general", Value, "name", translate("Hostname"))
s:taboption("general", Value, "description", translate("Description"))
s:taboption("general", Value, "workgroup", translate("Workgroup"))
-s:taboption("general", Value, "homes", translate("Share home-directories"),
+h = s:taboption("general", Flag, "homes", translate("Share home-directories"),
translate("Allow system users to reach their home directories via " ..
"network shares"))
+h.rmempty = false
tmpl = s:taboption("template", Value, "_tmpl",
translate("Edit the template that is used for generating the samba configuration."),
@@ -35,7 +36,8 @@ function tmpl.write(self, section, value)
end
-s = m:section(TypedSection, "sambashare", translate("Shared Directories"))
+s = m:section(TypedSection, "sambashare", translate("Shared Directories")
+ , translate("Please add directories to share. Each directory refers to a folder on a mounted device."))
s.anonymous = true
s.addremove = true
s.template = "cbi/tblsection"
@@ -53,6 +55,12 @@ ro.rmempty = false
ro.enabled = "yes"
ro.disabled = "no"
+br = s:option(Flag, "browseable", translate("Browseable"))
+br.rmempty = false
+br.default = "yes"
+br.enabled = "yes"
+br.disabled = "no"
+
go = s:option(Flag, "guest_ok", translate("Allow guests"))
go.rmempty = false
go.enabled = "yes"
diff --git a/applications/luci-app-samba/po/ca/samba.po b/applications/luci-app-samba/po/ca/samba.po
index 0668b1b146..eb6be15cd0 100644
--- a/applications/luci-app-samba/po/ca/samba.po
+++ b/applications/luci-app-samba/po/ca/samba.po
@@ -26,6 +26,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Usuaris permesos"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Crea mà scara"
@@ -62,6 +65,11 @@ msgstr "Comparticions de xarxa"
msgid "Path"
msgstr "Ruta"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Només lectura"
diff --git a/applications/luci-app-samba/po/cs/samba.po b/applications/luci-app-samba/po/cs/samba.po
index fefb7ff873..d66d87674d 100644
--- a/applications/luci-app-samba/po/cs/samba.po
+++ b/applications/luci-app-samba/po/cs/samba.po
@@ -22,6 +22,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Povolenà uživatelé"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "VytvoÅit masku"
@@ -60,6 +63,11 @@ msgstr "SÃÅ¥ová sdÃlenÃ"
msgid "Path"
msgstr "Cesta"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Pouze pro ÄtenÃ"
diff --git a/applications/luci-app-samba/po/de/samba.po b/applications/luci-app-samba/po/de/samba.po
index a5ceb056cc..4e8da53b5a 100644
--- a/applications/luci-app-samba/po/de/samba.po
+++ b/applications/luci-app-samba/po/de/samba.po
@@ -24,6 +24,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Legitimierte Benutzer"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Berechtigungsmaske für neue Dateien"
@@ -62,6 +65,11 @@ msgstr "Netzwerkfreigaben"
msgid "Path"
msgstr "Pfad"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Nur Lesen"
diff --git a/applications/luci-app-samba/po/el/samba.po b/applications/luci-app-samba/po/el/samba.po
index 7cc722d592..878416a638 100644
--- a/applications/luci-app-samba/po/el/samba.po
+++ b/applications/luci-app-samba/po/el/samba.po
@@ -22,6 +22,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -58,6 +61,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/en/samba.po b/applications/luci-app-samba/po/en/samba.po
index f524c1448e..642580e9de 100644
--- a/applications/luci-app-samba/po/en/samba.po
+++ b/applications/luci-app-samba/po/en/samba.po
@@ -22,6 +22,9 @@ msgstr "Allow system users to reach their home directories via network shares"
msgid "Allowed users"
msgstr "Allowed users"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Create mask"
@@ -58,6 +61,11 @@ msgstr "Network Shares"
msgid "Path"
msgstr "Path"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Read-only"
diff --git a/applications/luci-app-samba/po/es/samba.po b/applications/luci-app-samba/po/es/samba.po
index 950a817971..57c4b862d6 100644
--- a/applications/luci-app-samba/po/es/samba.po
+++ b/applications/luci-app-samba/po/es/samba.po
@@ -24,6 +24,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Usuarios permitidos"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Crear máscara"
@@ -60,6 +63,11 @@ msgstr "Comparticiones de red"
msgid "Path"
msgstr "Dirección"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Solo lectura"
diff --git a/applications/luci-app-samba/po/fr/samba.po b/applications/luci-app-samba/po/fr/samba.po
index 88779009cb..63960fca17 100644
--- a/applications/luci-app-samba/po/fr/samba.po
+++ b/applications/luci-app-samba/po/fr/samba.po
@@ -24,6 +24,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Utilisateurs autorisés"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Maque de création"
@@ -60,6 +63,11 @@ msgstr "Partages réseau"
msgid "Path"
msgstr "Chemin"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Lecture seule"
diff --git a/applications/luci-app-samba/po/he/samba.po b/applications/luci-app-samba/po/he/samba.po
index dd21a4a545..010d2b2480 100644
--- a/applications/luci-app-samba/po/he/samba.po
+++ b/applications/luci-app-samba/po/he/samba.po
@@ -17,6 +17,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -53,6 +56,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/hu/samba.po b/applications/luci-app-samba/po/hu/samba.po
index 64d1e22a54..0263edb6c1 100644
--- a/applications/luci-app-samba/po/hu/samba.po
+++ b/applications/luci-app-samba/po/hu/samba.po
@@ -22,6 +22,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Engedélyezett felhasználók"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Létrehozási maszk"
@@ -60,6 +63,11 @@ msgstr "Hálózati megosztások"
msgid "Path"
msgstr "Elérési út"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Csak olvasható"
diff --git a/applications/luci-app-samba/po/it/samba.po b/applications/luci-app-samba/po/it/samba.po
index 4645782513..8725902031 100644
--- a/applications/luci-app-samba/po/it/samba.po
+++ b/applications/luci-app-samba/po/it/samba.po
@@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2012-04-19 22:28+0200\n"
-"Last-Translator: claudyus \n"
+"PO-Revision-Date: 2017-09-06 01:28+0200\n"
+"Last-Translator: bubu83 \n"
"Language-Team: LANGUAGE \n"
"Language: it\n"
"MIME-Version: 1.0\n"
@@ -24,8 +24,11 @@ msgstr ""
msgid "Allowed users"
msgstr "Utenti ammessi"
+msgid "Browseable"
+msgstr "Sfogliabile"
+
msgid "Create mask"
-msgstr "Mask di creazione dei file"
+msgstr "Crea maschera"
msgid "Description"
msgstr "Descrizione"
@@ -61,6 +64,13 @@ msgstr "Condivisioni di rete"
msgid "Path"
msgstr "Percorso"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+"Per favore aggiungi le directory da condividere. Ogni directory si riferisce a una "
+"cartella su un dispositivo montato."
+
msgid "Read-only"
msgstr "Solo lettura"
diff --git a/applications/luci-app-samba/po/ja/samba.po b/applications/luci-app-samba/po/ja/samba.po
index c5275075af..eca10efcc0 100644
--- a/applications/luci-app-samba/po/ja/samba.po
+++ b/applications/luci-app-samba/po/ja/samba.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2011-11-03 18:09+0200\n"
-"Last-Translator: Kentaro \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-08-16 00:41+0900\n"
+"Last-Translator: INAGAKI Hiroshi \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Poedit 2.0.3\n"
+"Language-Team: \n"
msgid "Allow guests"
msgstr "ã²ã¹ãã¢ã¯ã»ã¹ã許å¯"
@@ -22,6 +22,9 @@ msgstr "sambaãä»ãã¦ã¦ã¼ã¶ã¼ã®ãã¼ã ãã£ã¬ã¯ããªã¸ã®ã¢ã¯
msgid "Allowed users"
msgstr "許å¯ãããã¦ã¼ã¶ã¼"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "ãã¹ã¯ã®ä½æ"
@@ -58,6 +61,13 @@ msgstr "ãããã¯ã¼ã¯å
±æ"
msgid "Path"
msgstr "ãã¹"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+"å
±æãããã£ã¬ã¯ããªã追å ãã¦ãã ããããã¦ã³ããããããã¤ã¹çã®ãã£ã¬ã¯ã"
+"ãªãè¨å®ããå
¬éãããã¨ãã§ãã¾ãã"
+
msgid "Read-only"
msgstr "èªã¿è¾¼ã¿ã®ã¿"
diff --git a/applications/luci-app-samba/po/ms/samba.po b/applications/luci-app-samba/po/ms/samba.po
index e29133e1b9..d5f1ce15e7 100644
--- a/applications/luci-app-samba/po/ms/samba.po
+++ b/applications/luci-app-samba/po/ms/samba.po
@@ -16,6 +16,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -52,6 +55,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/no/samba.po b/applications/luci-app-samba/po/no/samba.po
index 1c5c8077f1..349f6b9def 100644
--- a/applications/luci-app-samba/po/no/samba.po
+++ b/applications/luci-app-samba/po/no/samba.po
@@ -13,6 +13,9 @@ msgstr "Tillat systembrukere å nå sine hjemmekataloger via nettverks mapper."
msgid "Allowed users"
msgstr "Tillatte brukere"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Opprett Maske"
@@ -49,6 +52,11 @@ msgstr "Nettverks Mapper"
msgid "Path"
msgstr "Fysisk bane"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Skrivebeskyttet"
diff --git a/applications/luci-app-samba/po/pl/samba.po b/applications/luci-app-samba/po/pl/samba.po
index 74826227b0..d997268cda 100644
--- a/applications/luci-app-samba/po/pl/samba.po
+++ b/applications/luci-app-samba/po/pl/samba.po
@@ -23,6 +23,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Użytkownicy z prawem dostÄpu"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Utwórz maskÄ"
@@ -59,6 +62,11 @@ msgstr "UdziaÅy sieciowe"
msgid "Path"
msgstr "Åcieżka"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Tylko do odczytu"
diff --git a/applications/luci-app-samba/po/pt-br/samba.po b/applications/luci-app-samba/po/pt-br/samba.po
index a7531522d0..a2e6e220c0 100644
--- a/applications/luci-app-samba/po/pt-br/samba.po
+++ b/applications/luci-app-samba/po/pt-br/samba.po
@@ -24,6 +24,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Usuários permitidos"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Máscara de criação"
@@ -60,6 +63,11 @@ msgstr "Compartilhamentos de Rede"
msgid "Path"
msgstr "Caminho"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Somente leitura"
diff --git a/applications/luci-app-samba/po/pt/samba.po b/applications/luci-app-samba/po/pt/samba.po
index 4c5a2cd24c..f58b58818e 100644
--- a/applications/luci-app-samba/po/pt/samba.po
+++ b/applications/luci-app-samba/po/pt/samba.po
@@ -24,6 +24,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Utilizadores Permitidos"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Criar Máscara"
@@ -60,6 +63,11 @@ msgstr "Partilhas da Rede"
msgid "Path"
msgstr "Caminho"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Apenas Leitura"
diff --git a/applications/luci-app-samba/po/ro/samba.po b/applications/luci-app-samba/po/ro/samba.po
index 4bc341557f..7cfcda7d11 100644
--- a/applications/luci-app-samba/po/ro/samba.po
+++ b/applications/luci-app-samba/po/ro/samba.po
@@ -23,6 +23,9 @@ msgstr ""
msgid "Allowed users"
msgstr "Utilizatori acceptati"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Creaza masca"
@@ -59,6 +62,11 @@ msgstr "Partajari pe retea"
msgid "Path"
msgstr "Cale"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Doar citire"
diff --git a/applications/luci-app-samba/po/ru/samba.po b/applications/luci-app-samba/po/ru/samba.po
index 82906e36ed..534770f5f1 100644
--- a/applications/luci-app-samba/po/ru/samba.po
+++ b/applications/luci-app-samba/po/ru/samba.po
@@ -25,6 +25,9 @@ msgstr ""
msgid "Allowed users"
msgstr "РазÑеÑÑннÑе полÑзоваÑели"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "СоздаÑÑ Ð¼Ð°ÑкÑ"
@@ -61,6 +64,11 @@ msgstr "СеÑевÑе ÑеÑÑÑÑÑ"
msgid "Path"
msgstr "ÐÑÑÑ"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "ТолÑко Ð´Ð»Ñ ÑÑениÑ"
diff --git a/applications/luci-app-samba/po/sk/samba.po b/applications/luci-app-samba/po/sk/samba.po
index 66ec9e0307..21f102d325 100644
--- a/applications/luci-app-samba/po/sk/samba.po
+++ b/applications/luci-app-samba/po/sk/samba.po
@@ -17,6 +17,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -53,6 +56,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/sv/samba.po b/applications/luci-app-samba/po/sv/samba.po
index b83dec506a..f58f8b87d7 100644
--- a/applications/luci-app-samba/po/sv/samba.po
+++ b/applications/luci-app-samba/po/sv/samba.po
@@ -18,6 +18,9 @@ msgstr "Tillåt systemanvändare att nå deras hem-mappar via nätverksdelningar
msgid "Allowed users"
msgstr "Tillåtna användare"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "Skapa mask"
@@ -55,6 +58,11 @@ msgstr "Nätverksdelningar"
msgid "Path"
msgstr "Genväg"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "Endast läsbar"
diff --git a/applications/luci-app-samba/po/templates/samba.pot b/applications/luci-app-samba/po/templates/samba.pot
index d91400b0c7..674ed331ca 100644
--- a/applications/luci-app-samba/po/templates/samba.pot
+++ b/applications/luci-app-samba/po/templates/samba.pot
@@ -10,6 +10,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -46,6 +49,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/tr/samba.po b/applications/luci-app-samba/po/tr/samba.po
index fda2f6e26e..98d47beecf 100644
--- a/applications/luci-app-samba/po/tr/samba.po
+++ b/applications/luci-app-samba/po/tr/samba.po
@@ -17,6 +17,9 @@ msgstr ""
msgid "Allowed users"
msgstr ""
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr ""
@@ -53,6 +56,11 @@ msgstr ""
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr ""
diff --git a/applications/luci-app-samba/po/uk/samba.po b/applications/luci-app-samba/po/uk/samba.po
index 6f2a920915..a4469f961e 100644
--- a/applications/luci-app-samba/po/uk/samba.po
+++ b/applications/luci-app-samba/po/uk/samba.po
@@ -23,6 +23,9 @@ msgstr ""
msgid "Allowed users"
msgstr "ÐÐ¾Ð·Ð²Ð¾Ð»ÐµÐ½Ñ ÐºÐ¾ÑиÑÑÑваÑÑ"
+msgid "Browseable"
+msgstr ""
+
msgid "Create mask"
msgstr "СÑвоÑиÑи маÑкÑ"
@@ -60,6 +63,11 @@ msgstr "ÐагалÑÐ½Ñ Ð¼ÐµÑÐµÐ¶ÐµÐ²Ñ ÑеÑÑÑÑи"
msgid "Path"
msgstr "ШлÑÑ
"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
msgid "Read-only"
msgstr "ТÑлÑки ÑиÑаннÑ"
diff --git a/applications/luci-app-samba/po/vi/samba.po b/applications/luci-app-samba/po/vi/samba.po
index 4e5638da24..7c088cebe3 100644
--- a/applications/luci-app-samba/po/vi/samba.po
+++ b/applications/luci-app-samba/po/vi/samba.po
@@ -28,6 +28,9 @@ msgstr ""
msgid "Allowed users"
msgstr "NgÆ°á»i sá» dụng Äược cho phép"
+msgid "Browseable"
+msgstr ""
+
#, fuzzy
msgid "Create mask"
msgstr "Tạo Mask"
@@ -66,6 +69,11 @@ msgstr "Mạng chia sẻ"
msgid "Path"
msgstr ""
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr ""
+
#, fuzzy
msgid "Read-only"
msgstr "Chá» Äá»c "
diff --git a/applications/luci-app-samba/po/zh-cn/samba.po b/applications/luci-app-samba/po/zh-cn/samba.po
index 4ff671b85a..ea9d0489fd 100644
--- a/applications/luci-app-samba/po/zh-cn/samba.po
+++ b/applications/luci-app-samba/po/zh-cn/samba.po
@@ -1,41 +1,47 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-06-21 18:31+0200\n"
-"Last-Translator: phantasm131 \n"
-"Language-Team: QQ Group 75543259 \n"
+"PO-Revision-Date: 2017-10-29 15:36+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Allow guests"
msgstr "å
许å¿åç¨æ·"
msgid "Allow system users to reach their home directories via network shares"
-msgstr "å
许系ç»ç¨æ·éè¿ç½ç»å
±äº«è®¿é®ä»ä»¬ç主ç®å½"
+msgstr "å
许系ç»ç¨æ·éè¿ç½ç»å
±äº«è®¿é®ä»ä»¬ç家ç®å½"
msgid "Allowed users"
msgstr "å
许ç¨æ·"
+msgid "Browseable"
+msgstr "å¯æµè§"
+
msgid "Create mask"
-msgstr "å建æé"
+msgstr "å建æéæ©ç "
msgid "Description"
msgstr "æè¿°"
msgid "Directory mask"
-msgstr "ç®å½æé"
+msgstr "ç®å½æéæ©ç "
msgid "Edit Template"
msgstr "ç¼è¾æ¨¡æ¿"
msgid "Edit the template that is used for generating the samba configuration."
-msgstr "ç¼è¾ç¨æ¥çæsamba设置ç模æ¿"
+msgstr "ç¼è¾ç¨æ¥çæ samba 设置ç模æ¿"
msgid "General Settings"
msgstr "åºæ¬è®¾ç½®"
@@ -44,10 +50,10 @@ msgid "Hostname"
msgstr "主æºå"
msgid "Mask for new directories"
-msgstr "æ°ç®å½æé"
+msgstr "æ°ç®å½æéæ©ç "
msgid "Mask for new files"
-msgstr "æ°æ件æé"
+msgstr "æ°æ件æéæ©ç "
msgid "Name"
msgstr "å
±äº«å"
@@ -58,11 +64,16 @@ msgstr "ç½ç»å
񄧮"
msgid "Path"
msgstr "ç®å½"
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr "请添å è¦å
±äº«çç®å½ãæ¯ä¸ªç®å½æå°å·²æ载设å¤ä¸çæ件夹ã"
+
msgid "Read-only"
msgstr "åªè¯»"
msgid "Share home-directories"
-msgstr "å
±äº«ä¸»ç®å½"
+msgstr "å
±äº«å®¶ç®å½"
msgid "Shared Directories"
msgstr "å
±äº«ç®å½"
@@ -73,8 +84,8 @@ msgid ""
"('|') should not be changed. They get their values from the 'General "
"Settings' tab."
msgstr ""
-"å建samba设置ç \"/etc/samba/smb.conf.template\" æ件çå
容ã被éé符|å
å´ç"
-"å¼å¯å¨åºæ¬è®¾ç½®ä¸è¿è¡é
ç½®"
+"è¿æ¯å°ä»å
¶ä¸çæ samba é
ç½®çæ件â/etc/samba/smb.conf.templateâçå
容ãç±ç®¡é"
+"符ï¼â|âï¼å
å´çå¼ä¸åºæ´æ¹ãå®ä»¬å°ä»â常è§è®¾ç½®âæ ç¾ä¸è·åå
¶å¼ã"
msgid "Workgroup"
msgstr "å·¥ä½ç»"
diff --git a/applications/luci-app-samba/po/zh-tw/samba.po b/applications/luci-app-samba/po/zh-tw/samba.po
index 6ec99ee20b..8461a60774 100644
--- a/applications/luci-app-samba/po/zh-tw/samba.po
+++ b/applications/luci-app-samba/po/zh-tw/samba.po
@@ -1,76 +1,94 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-08-07 15:43+0200\n"
-"Last-Translator: Ethan \n"
-"Language-Team: none\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-06-10 03:40+0200\n"
+"PO-Revision-Date: 2017-10-29 15:36+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Allow guests"
msgstr "å
許å¿å使ç¨è
"
msgid "Allow system users to reach their home directories via network shares"
-msgstr "å
許系統使ç¨è
éé網路å享家ç®é"
+msgstr "å
許系統使ç¨è
éé網路å
±äº«è¨ªåä»åç家ç®é"
msgid "Allowed users"
msgstr "å
許使ç¨è
"
+msgid "Browseable"
+msgstr "å¯ç覽"
+
msgid "Create mask"
-msgstr "建ç«æ¬é"
+msgstr "建ç«æ¬éæ©ç¢¼"
msgid "Description"
msgstr "æè¿°"
msgid "Directory mask"
-msgstr "ç®éæ¬é"
+msgstr "ç®éæ¬éæ©ç¢¼"
msgid "Edit Template"
-msgstr "編輯樣ç"
+msgstr "編輯模æ¿"
msgid "Edit the template that is used for generating the samba configuration."
-msgstr "編輯ç¨ä¾ç¢çSambaè¨å®ç樣æ¿"
+msgstr "編輯ç¨ä¾çæ samba è¨å®ç模æ¿"
msgid "General Settings"
msgstr "åºæ¬è¨å®"
msgid "Hostname"
-msgstr "主æ©å稱"
+msgstr "主æ©å"
msgid "Mask for new directories"
-msgstr "æ°ç®éæ¬é"
+msgstr "æ°ç®éæ¬éæ©ç¢¼"
msgid "Mask for new files"
-msgstr "æ°æªæ¡æ¬é"
+msgstr "æ°æªæ¡æ¬éæ©ç¢¼"
msgid "Name"
-msgstr "å
±ç¨å稱"
+msgstr "å
±äº«å"
msgid "Network Shares"
-msgstr "網路å享"
+msgstr "網路å
񄧮"
msgid "Path"
-msgstr "è·¯å¾"
+msgstr "ç®é"
+
+msgid ""
+"Please add directories to share. Each directory refers to a folder on a "
+"mounted device."
+msgstr "è«æ°å¢è¦å
±äº«çç®éãæ¯åç®éæå°å·²æè¼è£ç½®ä¸çè³æ夾ã"
msgid "Read-only"
-msgstr "å¯è®"
+msgstr "åªè®"
msgid "Share home-directories"
-msgstr "å享家ç®é"
+msgstr "å
±äº«å®¶ç®é"
msgid "Shared Directories"
-msgstr "å享ç®é"
+msgstr "å
±äº«ç®é"
msgid ""
"This is the content of the file '/etc/samba/smb.conf.template' from which "
"your samba configuration will be generated. Values enclosed by pipe symbols "
"('|') should not be changed. They get their values from the 'General "
"Settings' tab."
-msgstr "建ç«Sambaè¨å®ç \"/etc/samba/smb.conf.template\" æªæ¡å
§å®¹ã被('|')å
åçå¼å¯ä»¥å¨åºæ¬è¨å®ä¸é²è¡è¨å®"
+msgstr ""
+"éæ¯å°å¾å
¶ä¸çæ samba é
ç½®çæªæ¡â/etc/samba/smb.conf.templateâçå
§å®¹ãç±ç®¡é"
+"符ï¼â|âï¼å
åçå¼ä¸ææ´æ¹ãå®åå°å¾â常è¦è¨å®âæ¨ç±¤ä¸ç²åå
¶å¼ã"
msgid "Workgroup"
-msgstr "å·¥ä½ç¾¤çµ"
+msgstr "å·¥ä½çµ"
+
+#~ msgid "Physical Path"
+#~ msgstr "ç©çè·¯å¾"
diff --git a/applications/luci-app-shadowsocks-libev/Makefile b/applications/luci-app-shadowsocks-libev/Makefile
index 848a5c8317..d0923e07a4 100644
--- a/applications/luci-app-shadowsocks-libev/Makefile
+++ b/applications/luci-app-shadowsocks-libev/Makefile
@@ -1,14 +1,16 @@
#
-# Copyright (C) 2008-2014 The LuCI Team
+# Copyright (C) 2017 Yousong Zhou
#
# This is free software, licensed under the Apache License, Version 2.0 .
#
include $(TOPDIR)/rules.mk
-LUCI_TITLE:=LuCI Support for Shadowsocks-libev
+LUCI_TITLE:=LuCI Support for shadowsocks-libev
LUCI_DEPENDS:=
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
index ae968168f1..05d12e38b2 100644
--- a/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
+++ b/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
@@ -1,12 +1,33 @@
--- Copyright 2015 Jian Chang
+-- Copyright 2017 Yousong Zhou
-- Licensed to the public under the Apache License 2.0.
-
+--
module("luci.controller.shadowsocks-libev", package.seeall)
function index()
- if not nixio.fs.access("/etc/config/shadowsocks-libev") then
- return
- end
+ entry({"admin", "services", "shadowsocks-libev"},
+ alias("admin", "services", "shadowsocks-libev", "instances"),
+ _("Shadowsocks-libev"), 59)
+
+ entry({"admin", "services", "shadowsocks-libev", "instances"},
+ arcombine(cbi("shadowsocks-libev/instances"), cbi("shadowsocks-libev/instance-details")),
+ _("Local Instances"), 10).leaf = true
+
+ entry({"admin", "services", "shadowsocks-libev", "servers"},
+ cbi("shadowsocks-libev/servers"),
+ _("Remote Servers"), 20).leaf = true
+
+ entry({"admin", "services", "shadowsocks-libev", "rules"},
+ cbi("shadowsocks-libev/rules"),
+ _("Redir Rules"), 30).leaf = true
+
+ entry({"admin", "services", "shadowsocks-libev", "status"}, call("ss_status"), nil).leaf = true
+
+end
+
+function ss_status()
+ local ut = require "luci.util"
+ local rv = ut.ubus("service", "list", {name = "shadowsocks-libev"})["shadowsocks-libev"] or {_=0}
- entry({"admin", "services", "shadowsocks-libev"}, cbi("shadowsocks-libev"), _("ShadowSocks-libev"), 74).dependent = true
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(rv)
end
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua
deleted file mode 100644
index 76435e2f14..0000000000
--- a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua
+++ /dev/null
@@ -1,156 +0,0 @@
--- Copyright 2015 Jian Chang
--- Licensed to the public under the Apache License 2.0.
-
-local m, s, o, e, a
-
-if luci.sys.call("pidof ss-redir >/dev/null") == 0 then
- m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is running"))
-else
- m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is not running"))
-end
-
-e = {
- "table",
- "rc4",
- "rc4-md5",
- "aes-128-cfb",
- "aes-192-cfb",
- "aes-256-cfb",
- "bf-cfb",
- "camellia-128-cfb",
- "camellia-192-cfb",
- "camellia-256-cfb",
- "cast5-cfb",
- "des-cfb",
- "idea-cfb",
- "rc2-cfb",
- "seed-cfb",
- "salsa20",
- "chacha20",
-}
-
--- Global Setting
-s = m:section(TypedSection, "shadowsocks-libev", translate("Global Setting"))
-s.anonymous = true
-
-o = s:option(Flag, "enable", translate("Enable"))
-o.default = 1
-o.rmempty = false
-
-o = s:option(Value, "server", translate("Server Address"))
-o.datatype = "ipaddr"
-o.rmempty = false
-
-o = s:option(Value, "server_port", translate("Server Port"))
-o.datatype = "port"
-o.rmempty = false
-
-o = s:option(Value, "local_port", translate("Local Port"))
-o.datatype = "port"
-o.default = 1080
-o.rmempty = false
-
-o = s:option(Value, "timeout", translate("Connection Timeout"))
-o.datatype = "uinteger"
-o.default = 60
-o.rmempty = false
-
-o = s:option(Value, "password", translate("Password"))
-o.password = true
-o.rmempty = false
-
-o = s:option(ListValue, "encrypt_method", translate("Encrypt Method"))
-for i,v in ipairs(e) do
- o:value(v)
-end
-o.rmempty = false
-
-o = s:option(Value, "ignore_list", translate("Ignore List"))
-o:value("/dev/null", translate("Disabled"))
-o.default = "/dev/null"
-o.rmempty = false
-
--- UDP Relay
-s = m:section(TypedSection, "shadowsocks-libev", translate("UDP Relay"))
-s.anonymous = true
-
-o = s:option(ListValue, "udp_mode", translate("Relay Mode"))
-o:value("0", translate("Disabled"))
-o:value("1", translate("Enabled"))
-o:value("2", translate("Custom"))
-o.default = 0
-o.rmempty = false
-
-o = s:option(Value, "udp_server", translate("Server Address"))
-o.datatype = "ipaddr"
-o:depends("udp_mode", 2)
-
-o = s:option(Value, "udp_server_port", translate("Server Port"))
-o.datatype = "port"
-o:depends("udp_mode", 2)
-
-o = s:option(Value, "udp_local_port", translate("Local Port"))
-o.datatype = "port"
-o.default = 1081
-o:depends("udp_mode", 2)
-
-o = s:option(Value, "udp_timeout", translate("Connection Timeout"))
-o.datatype = "uinteger"
-o.default = 60
-o:depends("udp_mode", 2)
-
-o = s:option(Value, "udp_password", translate("Password"))
-o.password = true
-o:depends("udp_mode", 2)
-
-o = s:option(ListValue, "udp_encrypt_method", translate("Encrypt Method"))
-for i,v in ipairs(e) do
- o:value(v)
-end
-o:depends("udp_mode", 2)
-
--- UDP Forward
-s = m:section(TypedSection, "shadowsocks-libev", translate("UDP Forward"))
-s.anonymous = true
-
-o = s:option(Flag, "tunnel_enable", translate("Enable"))
-o.default = 1
-o.rmempty = false
-
-o = s:option(Value, "tunnel_port", translate("UDP Local Port"))
-o.datatype = "port"
-o.default = 5300
-
-o = s:option(Value, "tunnel_forward", translate("Forwarding Tunnel"))
-o.default = "8.8.4.4:53"
-
--- Access Control
-s = m:section(TypedSection, "shadowsocks-libev", translate("Access Control"))
-s.anonymous = true
-
-s:tab("lan_ac", translate("LAN"))
-
-o = s:taboption("lan_ac", ListValue, "lan_ac_mode", translate("Access Control"))
-o:value("0", translate("Disabled"))
-o:value("1", translate("Allow listed only"))
-o:value("2", translate("Allow all except listed"))
-o.default = 0
-o.rmempty = false
-
-a = luci.sys.net.arptable() or {}
-
-o = s:taboption("lan_ac", DynamicList, "lan_ac_ip", translate("LAN IP List"))
-o.datatype = "ipaddr"
-for i,v in ipairs(a) do
- o:value(v["IP address"])
-end
-
-s:tab("wan_ac", translate("WAN"))
-
-o = s:taboption("wan_ac", DynamicList, "wan_bp_ip", translate("Bypassed IP"))
-o.datatype = "ip4addr"
-
-o = s:taboption("wan_ac", DynamicList, "wan_fw_ip", translate("Forwarded IP"))
-o.datatype = "ip4addr"
-
-return m
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua
new file mode 100644
index 0000000000..22f3106d03
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua
@@ -0,0 +1,53 @@
+-- Copyright 2017 Yousong Zhou
+-- Licensed to the public under the Apache License 2.0.
+
+local ds = require "luci.dispatcher"
+local ss = require "luci.model.shadowsocks-libev"
+
+local sname = arg[1]
+local redirect_url = ds.build_url("admin/services/shadowsocks-libev/instances")
+local s, o
+
+local m = Map("shadowsocks-libev")
+local sdata = m:get(sname)
+if not sdata then
+ luci.http.redirect(redirect_url)
+ return
+end
+local stype = sdata[".type"]
+m.redirect = redirect_url
+m.title = "shadowsocks-libev - %s - %s" % {stype, sname}
+
+
+s = m:section(NamedSection, sname, stype)
+s:tab("general", translate("General Settings"))
+s:tab("advanced", translate("Advanced Settings"))
+s:taboption("general", Flag, "disabled", translate("Disable"))
+ss.option_install_package(s, "general")
+ss.options_common(s, "advanced")
+
+if stype == "ss_server" then
+ ss.options_server(s, "general")
+ o = s:taboption("general", Value, "bind_address",
+ translate("Bind address"),
+ translate("The address ss-server will initiate connection from"))
+ o.datatype = "ipaddr"
+ o.placeholder = "0.0.0.0"
+ ss.values_ipaddr(o)
+ o = s:taboption("general", Value, "manager_address", translate("Manager address"))
+ o.datatype = "hostport"
+else
+ ss.options_client(s, "general")
+ if stype == "ss_tunnel" then
+ o = s:taboption("general", Value, "tunnel_address",
+ translate("Tunnel address"),
+ translate("The address ss-tunnel will forward traffic to"))
+ o.datatype = "hostport"
+ elseif stype == "ss_redir" then
+ o = s:taboption("advanced", Flag, "disable_sni",
+ translate("Disable SNI"),
+ translate("Disable parsing HTTP/HTTPS payload to find then resolve hostname at remote server"))
+ end
+end
+
+return m
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua
new file mode 100644
index 0000000000..62a90fb416
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua
@@ -0,0 +1,104 @@
+-- Copyright 2017 Yousong Zhou
+-- Licensed to the public under the Apache License 2.0.
+
+local ds = require "luci.dispatcher"
+local ss = require "luci.model.shadowsocks-libev"
+local ut = require "luci.util"
+local m, s, o
+
+m = Map("shadowsocks-libev",
+ translate("Local Instances"),
+ translate("Instances of shadowsocks-libev components, e.g. ss-local, \
+ ss-redir, ss-tunnel, ss-server, etc. To enable an instance it \
+ is required to enable both the instance itself and the remote \
+ server it refers to."))
+
+local instances = {}
+local cfgtypes = { "ss_local", "ss_redir", "ss_server", "ss_tunnel" }
+
+for sname, sdata in pairs(m:get()) do
+ local key, value = ss.cfgvalue_overview(sdata)
+ if key ~= nil then
+ instances[key] = value
+ end
+end
+
+s = m:section(Table, instances)
+s.addremove = true
+s.template_addremove = "shadowsocks-libev/add_instance"
+s.extedit = function(self, section)
+ local value = instances[section]
+ if type(value) == "table" then
+ return ds.build_url(unpack(ds.context.requestpath),
+ "services/shadowsocks-libev/instances",
+ value[".name"])
+ end
+end
+s.parse = function(self, ...)
+ Table.parse(self, ...)
+
+ local crval = REMOVE_PREFIX .. self.config
+ local name = self.map:formvaluetable(crval)
+ for k,v in pairs(name) do
+ local value = instances[k]
+ local sname = value[".name"]
+ if type(value) == "table" then
+ m:del(sname)
+ instances[k] = nil
+ for _, oname in ipairs({"redir_tcp", "redir_udp"}) do
+ local ovalue = m:get("ss_rules", oname)
+ if ovalue == sname then
+ m:del("ss_rules", oname)
+ end
+ end
+ end
+ end
+
+ local stype = m:formvalue("_newinst.type")
+ local sname = m:formvalue("_newinst.name")
+ if ut.contains(cfgtypes, stype) then
+ local created
+ if sname and #sname > 0 then
+ created = m:set(sname, nil, stype)
+ else
+ created = m:add(stype)
+ sname = created
+ end
+ if created then
+ m.uci:save("shadowsocks-libev")
+ luci.http.redirect(ds.build_url(
+ "admin/services/shadowsocks-libev/instances", sname
+ ))
+ end
+ end
+end
+
+o = s:option(DummyValue, "name", translate("Name"))
+o.rawhtml = true
+o = s:option(DummyValue, "overview", translate("Overview"))
+o.rawhtml = true
+
+s:option(DummyValue, "running", translate("Running"))
+
+o = s:option(Button, "disabled", translate("Enable/Disable"))
+o.render = function(self, section, scope)
+ if instances[section].disabled then
+ self.title = translate("Disabled")
+ self.inputstyle = "reset"
+ else
+ self.title = translate("Enabled")
+ self.inputstyle = "save"
+ end
+ Button.render(self, section, scope)
+end
+o.write = function(self, section)
+ local sdata = instances[section]
+ if type(sdata) == "table" then
+ local sname = sdata[".name"]
+ local disabled = not sdata["disabled"]
+ sdata["disabled"] = disabled
+ m:set(sname, "disabled", tostring(disabled))
+ end
+end
+
+return m
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua
new file mode 100644
index 0000000000..4a01bed247
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua
@@ -0,0 +1,109 @@
+-- Copyright 2017 Yousong Zhou
+-- Licensed to the public under the Apache License 2.0.
+
+local ss = require("luci.model.shadowsocks-libev")
+
+local m, s, o
+
+m = Map("shadowsocks-libev",
+ translate("Redir Rules"),
+ translate("On this page you can configure how traffics are to be \
+ forwarded to ss-redir instances. \
+ If enabled, packets will first have their src ip addresses checked \
+ against Src ip/net bypass , Src ip/net forward , \
+ Src ip/net checkdst and if none matches Src default \
+ will give the default action to be taken. \
+ If the prior check results in action checkdst , packets will continue \
+ to have their dst addresses checked."))
+
+local sdata = m:get('ss_rules')
+if not sdata then
+ m:set('ss_rules', nil, 'ss_rules')
+ m:set('ss_rules', 'disabled', "1")
+end
+
+function src_dst_option(s, ...)
+ local o = s:taboption(...)
+ o.datatype = "or(ip4addr,cidr4)"
+end
+
+s = m:section(NamedSection, "ss_rules", "ss_rules")
+s:tab("general", translate("General Settings"))
+s:tab("src", translate("Source Settings"))
+s:tab("dst", translate("Destination Settings"))
+
+s:taboption('general', Flag, "disabled", translate("Disable"))
+ss.option_install_package(s, 'general')
+
+o = s:taboption('general', ListValue, "redir_tcp",
+ translate("ss-redir for TCP"))
+ss.values_redir(o, 'tcp')
+o = s:taboption('general', ListValue, "redir_udp",
+ translate("ss-redir for UDP"))
+ss.values_redir(o, 'udp')
+
+o = s:taboption('general', ListValue, "local_default",
+ translate("Local-out default"),
+ translate("Default action for locally generated TCP packets"))
+ss.values_actions(o)
+o = s:taboption('general', DynamicList, "ifnames",
+ translate("Ingress interfaces"),
+ translate("Only apply rules on packets from these network interfaces"))
+ss.values_ifnames(o)
+s:taboption('general', Value, "ipt_args",
+ translate("Extra arguments"),
+ translate("Passes additional arguments to iptables. Use with care!"))
+
+src_dst_option(s, 'src', DynamicList, "src_ips_bypass",
+ translate("Src ip/net bypass"),
+ translate("Bypass ss-redir for packets with src address in this list"))
+src_dst_option(s, 'src', DynamicList, "src_ips_forward",
+ translate("Src ip/net forward"),
+ translate("Forward through ss-redir for packets with src address in this list"))
+src_dst_option(s, 'src', DynamicList, "src_ips_checkdst",
+ translate("Src ip/net checkdst"),
+ translate("Continue to have dst address checked for packets with src address in this list"))
+o = s:taboption('src', ListValue, "src_default",
+ translate("Src default"),
+ translate("Default action for packets whose src address do not match any of the src ip/net list"))
+ss.values_actions(o)
+
+src_dst_option(s, 'dst', DynamicList, "dst_ips_bypass",
+ translate("Dst ip/net bypass"),
+ translate("Bypass ss-redir for packets with dst address in this list"))
+src_dst_option(s, 'dst', DynamicList, "dst_ips_forward",
+ translate("Dst ip/net forward"),
+ translate("Forward through ss-redir for packets with dst address in this list"))
+
+o = s:taboption('dst', FileBrowser, "dst_ips_bypass_file",
+ translate("Dst ip/net bypass file"),
+ translate("File containing ip/net for the purposes as with Dst ip/net bypass "))
+o.datatype = "file"
+s:taboption('dst', FileBrowser, "dst_ips_forward_file",
+ translate("Dst ip/net forward file"),
+ translate("File containing ip/net for the purposes as with Dst ip/net forward "))
+o.datatype = "file"
+o = s:taboption('dst', ListValue, "dst_default",
+ translate("Dst default"),
+ translate("Default action for packets whose dst address do not match any of the dst ip list"))
+ss.values_actions(o)
+
+local installed = os.execute("iptables -m recent -h &>/dev/null") == 0
+if installed then
+ o = s:taboption('dst', Flag, "dst_forward_recentrst")
+else
+ m:set('ss_rules', 'dst_forward_recentrst', "0")
+ o = s:taboption("dst", Button, "_install")
+ o.inputtitle = translate("Install package iptables-mod-conntrack-extra")
+ o.inputstyle = "apply"
+ o.write = function()
+ return luci.http.redirect(
+ luci.dispatcher.build_url("admin/system/packages") ..
+ "?submit=1&install=iptables-mod-conntrack-extra"
+ )
+ end
+end
+o.title = translate("Forward recentrst")
+o.description = translate("Forward those packets whose dst have recently sent to us multiple tcp-rst")
+
+return m
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua
new file mode 100644
index 0000000000..71c66562e1
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua
@@ -0,0 +1,31 @@
+-- Copyright 2017 Yousong Zhou
+-- Licensed to the public under the Apache License 2.0.
+
+local ds = require "luci.dispatcher"
+local ss = require("luci.model.shadowsocks-libev")
+
+local m, s
+
+m = Map("shadowsocks-libev",
+ translate("Remote Servers"),
+ translate("Definition of remote shadowsocks servers. \
+ Disable any of them will also disable instances refering to it."))
+
+local sname = arg[1]
+if sname then
+ if not m:get(sname) then
+ luci.http.redirect(ds.build_url("admin/services/shadowsocks-libev/servers"))
+ return
+ end
+ s = m:section(NamedSection, sname, "server")
+ m.title = m.title .. ' - ' .. sname
+else
+ s = m:section(TypedSection, "server")
+ s.template = 'cbi/tblsection'
+ s.addremove = true
+end
+
+s:option(Flag, "disabled", translate("Disable"))
+ss.options_server(s)
+
+return m
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua
new file mode 100644
index 0000000000..7ba6b40c53
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua
@@ -0,0 +1,264 @@
+-- Copyright 2017 Yousong Zhou
+-- Licensed to the public under the Apache License 2.0.
+
+local _up = getfenv(3)
+local ut = require("luci.util")
+local sys = require("luci.sys")
+local ds = require("luci.dispatcher")
+local nw = require("luci.model.network")
+nw.init()
+module("luci.model.shadowsocks-libev", function(m)
+ setmetatable(m, {__index=function (self, k)
+ local tb = _up
+ return rawget(self, k) or _up[k]
+ end})
+end)
+
+function values_actions(o)
+ o:value("bypass")
+ o:value("forward")
+ if o.option ~= "dst_default" then
+ o:value("checkdst")
+ end
+end
+
+function values_redir(o, xmode)
+ o.map.uci.foreach("shadowsocks-libev", "ss_redir", function(sdata)
+ local disabled = ucival_to_bool(sdata["disabled"])
+ local sname = sdata[".name"]
+ local mode = sdata["mode"] or "tcp_only"
+ if not disabled and mode:find(xmode) then
+ local desc = "%s - %s" % {sname, mode}
+ o:value(sname, desc)
+ end
+ end)
+ o:value("", "")
+ o.default = ""
+end
+
+function values_serverlist(o)
+ o.map.uci.foreach("shadowsocks-libev", "server", function(sdata)
+ local sname = sdata[".name"]
+ local server = sdata["server"]
+ local server_port = sdata["server_port"]
+ if server and server_port then
+ local desc = "%s - %s:%s" % {sname, sdata["server"], sdata["server_port"]}
+ o:value(sname, desc)
+ end
+ end)
+end
+
+function values_ipaddr(o)
+ for _, v in ipairs(nw:get_interfaces()) do
+ for _, a in ipairs(v:ipaddrs()) do
+ o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() })
+ end
+ end
+end
+
+function values_ifnames(o)
+ for _, v in ipairs(sys.net.devices()) do
+ o:value(v)
+ end
+end
+
+function options_client(s, tab)
+ local o
+
+ o = s:taboption(tab, ListValue, "server", translate("Remote server"))
+ values_serverlist(o)
+ o = s:taboption(tab, Value, "local_address", translate("Local address"))
+ o.datatype = "ipaddr"
+ o.placeholder = "0.0.0.0"
+ values_ipaddr(o)
+ o = s:taboption(tab, Value, "local_port", translate("Local port"))
+ o.datatype = "port"
+end
+
+function options_server(s, tab)
+ local o
+ local optfunc
+
+ if tab == nil then
+ optfunc = function(...) return s:option(...) end
+ else
+ optfunc = function(...) return s:taboption(tab, ...) end
+ end
+
+ o = optfunc(Value, "server", translate("Server"))
+ o.datatype = "host"
+ o.size = 16
+ o = optfunc(Value, "server_port", translate("Server port"))
+ o.datatype = "port"
+ o.size = 5
+ o = optfunc(ListValue, "method", translate("Method"))
+ for _, m in ipairs(methods) do
+ o:value(m)
+ end
+ o = optfunc(Value, "key", translate("Key (base64 encoding)"))
+ o.datatype = "base64"
+ o.password = true
+ o.size = 12
+ o = optfunc(Value, "password", translate("Password"))
+ o.password = true
+ o.size = 12
+end
+
+function options_common(s, tab)
+ local o
+
+ o = s:taboption(tab, ListValue, "mode", translate("Mode of operation"))
+ for _, m in ipairs(modes) do
+ o:value(m)
+ end
+ o.default = "tcp_and_udp"
+ o = s:taboption(tab, Value, "mtu", translate("MTU"))
+ o.datatype = "uinteger"
+ o = s:taboption(tab, Value, "timeout", translate("Timeout (sec)"))
+ o.datatype = "uinteger"
+ s:taboption(tab, Value, "user", translate("Run as"))
+
+ s:taboption(tab, Flag, "verbose", translate("Verbose"))
+ s:taboption(tab, Flag, "ipv6_first", translate("IPv6 First"), translate("Prefer IPv6 addresses when resolving names"))
+ s:taboption(tab, Flag, "fast_open", translate("Enable TCP Fast Open"))
+ s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT"))
+end
+
+function ucival_to_bool(val)
+ return val == "true" or val == "1" or val == "yes" or val == "on"
+end
+
+function cfgvalue_overview(sdata)
+ local stype = sdata[".type"]
+ local lines = {}
+
+ if stype == "ss_server" then
+ cfgvalue_overview_(sdata, lines, names_options_server)
+ cfgvalue_overview_(sdata, lines, names_options_common)
+ cfgvalue_overview_(sdata, lines, {
+ "bind_address",
+ "manager_address",
+ })
+ elseif stype == "ss_local" or stype == "ss_redir" or stype == "ss_tunnel" then
+ cfgvalue_overview_(sdata, lines, names_options_client)
+ if stype == "ss_tunnel" then
+ cfgvalue_overview_(sdata, lines, {"tunnel_address"})
+ elseif stype == "ss_redir" then
+ cfgvalue_overview_(sdata, lines, {"disable_sni"})
+ end
+ cfgvalue_overview_(sdata, lines, names_options_common)
+ else
+ return nil, nil
+ end
+ local sname = sdata[".name"]
+ local key = "%s.%s" % {stype, sname}
+ local value = {
+ [".name"] = sname,
+ name = '%s.%s ' % {stype, sname},
+ overview = table.concat(lines, ""),
+ disabled = ucival_to_bool(sdata["disabled"]),
+ }
+ return key, value
+end
+
+function cfgvalue_overview_(sdata, lines, names)
+ local line
+
+ for _, n in ipairs(names) do
+ local v = sdata[n]
+ if v ~= nil then
+ if n == "key" or n == "password" then
+ v = translate("")
+ end
+ local fv = "%s " % ut.pcdata(v)
+ if sdata[".type"] ~= "ss_server" and n == "server" then
+ fv = '%s ' % {
+ ds.build_url("admin/services/shadowsocks-libev/servers", v), fv}
+ end
+ line = n .. ": " .. fv
+ table.insert(lines, line)
+ end
+ end
+end
+
+function option_install_package(s, tab)
+ local bin = s.sectiontype:gsub("_", "-", 1)
+ local installed = nixio.fs.access("/usr/bin/" .. bin)
+ if installed then
+ return
+ end
+ local opkg_package = "shadowsocks-libev-" .. bin
+ local p_install
+ if tab then
+ p_install = s:taboption(tab, Button, "_install")
+ else
+ p_install = s:option(Button, "_install")
+ end
+ p_install.title = translate("Package is not installed")
+ p_install.inputtitle = translate("Install package %q" % opkg_package)
+ p_install.inputstyle = "apply"
+
+ function p_install.write()
+ return luci.http.redirect(
+ luci.dispatcher.build_url("admin/system/packages") ..
+ "?submit=1&install=%s" % opkg_package
+ )
+ end
+end
+
+names_options_server = {
+ "server",
+ "server_port",
+ "method",
+ "key",
+ "password",
+}
+
+names_options_client = {
+ "server",
+ "local_address",
+ "local_port",
+}
+
+names_options_common = {
+ "verbose",
+ "ipv6_first",
+ "fast_open",
+ "reuse_port",
+ "mode",
+ "mtu",
+ "timeout",
+ "user",
+}
+
+modes = {
+ "tcp_only",
+ "tcp_and_udp",
+ "udp_only",
+}
+
+methods = {
+ -- aead
+ "aes-128-gcm",
+ "aes-192-gcm",
+ "aes-256-gcm",
+ "chacha20-ietf-poly1305",
+ "xchacha20-ietf-poly1305",
+ -- stream
+ "table",
+ "rc4",
+ "rc4-md5",
+ "aes-128-cfb",
+ "aes-192-cfb",
+ "aes-256-cfb",
+ "aes-128-ctr",
+ "aes-192-ctr",
+ "aes-256-ctr",
+ "bf-cfb",
+ "camellia-128-cfb",
+ "camellia-192-cfb",
+ "camellia-256-cfb",
+ "salsa20",
+ "chacha20",
+ "chacha20-ietf",
+}
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm b/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm
new file mode 100644
index 0000000000..219d89b074
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm
@@ -0,0 +1,45 @@
+
+
diff --git a/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po
deleted file mode 100644
index b0cf6d3316..0000000000
--- a/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po
+++ /dev/null
@@ -1,136 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgid "Access Control"
-msgstr ""
-
-msgid "Allow all except listed"
-msgstr ""
-
-msgid "Allow listed only"
-msgstr ""
-
-msgid "Bypassed IP"
-msgstr ""
-
-msgid "Connection Timeout"
-msgstr ""
-
-msgid "Custom"
-msgstr ""
-
-msgid "Disabled"
-msgstr ""
-
-msgid "Enable"
-msgstr ""
-
-msgid "Enabled"
-msgstr ""
-
-msgid "Encrypt Method"
-msgstr ""
-
-msgid "Forwarded IP"
-msgstr ""
-
-msgid "Forwarding Tunnel"
-msgstr ""
-
-msgid "Global Setting"
-msgstr ""
-
-msgid "Ignore List"
-msgstr ""
-
-msgid "LAN"
-msgstr ""
-
-msgid "LAN IP List"
-msgstr ""
-
-msgid "Local Port"
-msgstr ""
-
-msgid "Password"
-msgstr ""
-
-msgid "Relay Mode"
-msgstr ""
-
-msgid "Server Address"
-msgstr ""
-
-msgid "Server Port"
-msgstr ""
-
-msgid "ShadowSocks-libev"
-msgstr ""
-
-msgid "ShadowSocks-libev is not running"
-msgstr ""
-
-msgid "ShadowSocks-libev is running"
-msgstr ""
-
-msgid "UDP Forward"
-msgstr ""
-
-msgid "UDP Local Port"
-msgstr ""
-
-msgid "UDP Relay"
-msgstr ""
-
-msgid "WAN"
-msgstr ""
-
-#~ msgid "Broadcast on all interfaces"
-#~ msgstr "Sänd i alla gränssnitt"
-
-#~ msgid "Choose the host to wake up or enter a custom MAC address to use"
-#~ msgstr ""
-#~ "Välj värden som ska väckas upp eller fyll i en anpassad MAC-adress att "
-#~ "använda"
-
-#~ msgid "Host to wake up"
-#~ msgstr "Värd som ska väckas upp"
-
-#~ msgid "Network interface to use"
-#~ msgstr "Nätverksgränssnitt som ska användas"
-
-#~ msgid ""
-#~ "Sometimes only one of the two tools works. If one fails, try the other one"
-#~ msgstr ""
-#~ "Ibland så fungerar bara en av de två verktygen. Prova med den andra om "
-#~ "den första misslyckades"
-
-#~ msgid "Specifies the interface the WoL packet is sent on"
-#~ msgstr "Anger gränssnittet som fjärrstartspaketet skickas med"
-
-#~ msgid "Starting WoL utility:"
-#~ msgstr "Startar hjälpprogrammet för fjärrstyrning av uppstart:"
-
-#~ msgid "Wake on LAN"
-#~ msgstr "Fjärrstyrning av uppstart"
-
-#~ msgid ""
-#~ "Wake on LAN is a mechanism to remotely boot computers in the local "
-#~ "network."
-#~ msgstr ""
-#~ "Fjärrstyrning av uppstart är en mekanism för att starta upp datorer via "
-#~ "fjärrstyrning i det lokala nätverket."
-
-#~ msgid "Wake up host"
-#~ msgstr "Väck upp värden"
-
-#~ msgid "WoL program"
-#~ msgstr "Program för fjärrstart"
diff --git a/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot b/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
deleted file mode 100644
index 81bbcb72f4..0000000000
--- a/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
+++ /dev/null
@@ -1,86 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-msgid "Access Control"
-msgstr ""
-
-msgid "Allow all except listed"
-msgstr ""
-
-msgid "Allow listed only"
-msgstr ""
-
-msgid "Bypassed IP"
-msgstr ""
-
-msgid "Connection Timeout"
-msgstr ""
-
-msgid "Custom"
-msgstr ""
-
-msgid "Disabled"
-msgstr ""
-
-msgid "Enable"
-msgstr ""
-
-msgid "Enabled"
-msgstr ""
-
-msgid "Encrypt Method"
-msgstr ""
-
-msgid "Forwarded IP"
-msgstr ""
-
-msgid "Forwarding Tunnel"
-msgstr ""
-
-msgid "Global Setting"
-msgstr ""
-
-msgid "Ignore List"
-msgstr ""
-
-msgid "LAN"
-msgstr ""
-
-msgid "LAN IP List"
-msgstr ""
-
-msgid "Local Port"
-msgstr ""
-
-msgid "Password"
-msgstr ""
-
-msgid "Relay Mode"
-msgstr ""
-
-msgid "Server Address"
-msgstr ""
-
-msgid "Server Port"
-msgstr ""
-
-msgid "ShadowSocks-libev"
-msgstr ""
-
-msgid "ShadowSocks-libev is not running"
-msgstr ""
-
-msgid "ShadowSocks-libev is running"
-msgstr ""
-
-msgid "UDP Forward"
-msgstr ""
-
-msgid "UDP Local Port"
-msgstr ""
-
-msgid "UDP Relay"
-msgstr ""
-
-msgid "WAN"
-msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
deleted file mode 100644
index f86eee7e9f..0000000000
--- a/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
+++ /dev/null
@@ -1,97 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-11-12 14:12+0800\n"
-"PO-Revision-Date: 2015-07-02 14:26+0800\n"
-"Last-Translator: Jian Chang \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Access Control"
-msgstr "访é®æ§å¶"
-
-msgid "Allow all except listed"
-msgstr "ä»
å
许å表å¤"
-
-msgid "Allow listed only"
-msgstr "ä»
å
许å表å
"
-
-msgid "Bypassed IP"
-msgstr "被忽ç¥çIP"
-
-msgid "Connection Timeout"
-msgstr "è¿æ¥è¶
æ¶"
-
-msgid "Custom"
-msgstr "èªå®ä¹"
-
-msgid "Disabled"
-msgstr "å·²ç¦ç¨"
-
-msgid "Enable"
-msgstr "å¯ç¨"
-
-msgid "Enabled"
-msgstr "å·²å¯ç¨"
-
-msgid "Encrypt Method"
-msgstr "å å¯æ¹å¼"
-
-msgid "Forwarded IP"
-msgstr "走代ççIP"
-
-msgid "Forwarding Tunnel"
-msgstr "UDP转åå°å"
-
-msgid "Global Setting"
-msgstr "å
¨å±è®¾ç½®"
-
-msgid "Ignore List"
-msgstr "忽ç¥å表"
-
-msgid "LAN"
-msgstr ""
-
-msgid "LAN IP List"
-msgstr "å
ç½IPå表"
-
-msgid "Local Port"
-msgstr "æ¬å°ç«¯å£"
-
-msgid "Password"
-msgstr "å¯ç "
-
-msgid "Relay Mode"
-msgstr "ä¸ç»§æ¨¡å¼"
-
-msgid "Server Address"
-msgstr "æå¡å¨å°å"
-
-msgid "Server Port"
-msgstr "æå¡å¨ç«¯å£"
-
-msgid "ShadowSocks-libev"
-msgstr "ShadowSocks-libev"
-
-msgid "ShadowSocks-libev is not running"
-msgstr "ShadowSocks-libev æªè¿è¡"
-
-msgid "ShadowSocks-libev is running"
-msgstr "ShadowSocks-libev è¿è¡ä¸"
-
-msgid "UDP Forward"
-msgstr "UDP转å"
-
-msgid "UDP Local Port"
-msgstr "UDPæ¬å°ç«¯å£"
-
-msgid "UDP Relay"
-msgstr "UDPä¸ç»§"
-
-msgid "WAN"
-msgstr ""
diff --git a/applications/luci-app-shairplay/po/pt-br/shairplay.po b/applications/luci-app-shairplay/po/pt-br/shairplay.po
new file mode 100644
index 0000000000..c7d0ab18a3
--- /dev/null
+++ b/applications/luci-app-shairplay/po/pt-br/shairplay.po
@@ -0,0 +1,54 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+"X-Poedit-Bookmarks: -1,5,-1,-1,-1,-1,-1,-1,-1,-1\n"
+
+msgid "AO Device ID"
+msgstr "Identificador do dispositivo AO"
+
+msgid "AO Device Name"
+msgstr "Nome do dispositivo AO"
+
+msgid "AO Driver"
+msgstr "Driver do AO"
+
+msgid "Airport Name"
+msgstr "Nome do Airport"
+
+msgid "Default"
+msgstr "Padrão"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "HW Address"
+msgstr "Endereço de Hardware"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Port"
+msgstr "Porta"
+
+msgid "Respawn"
+msgstr "Redisparar"
+
+msgid "Shairplay"
+msgstr "Shairplay"
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
+"Shairplay é uma implementação simples de um servidor AirPlay. Aqui você pode "
+"configurá-lo."
diff --git a/applications/luci-app-simple-adblock/Makefile b/applications/luci-app-simple-adblock/Makefile
new file mode 100644
index 0000000000..d7be6850ba
--- /dev/null
+++ b/applications/luci-app-simple-adblock/Makefile
@@ -0,0 +1,16 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin
+
+LUCI_TITLE:=Simple Adblock Web UI
+LUCI_DEPENDS:=+simple-adblock
+LUCI_PKGARCH:=all
+PKG_RELEASE:=2
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua b/applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua
new file mode 100644
index 0000000000..46125b3098
--- /dev/null
+++ b/applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua
@@ -0,0 +1,7 @@
+module("luci.controller.simpleadblock", package.seeall)
+function index()
+ if not nixio.fs.access("/etc/config/simple-adblock") then
+ return
+ end
+ entry({"admin", "services", "simpleadblock"}, cbi("simpleadblock"), _("Simple AdBlock"))
+end
diff --git a/applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua b/applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua
new file mode 100644
index 0000000000..214f298292
--- /dev/null
+++ b/applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua
@@ -0,0 +1,79 @@
+m = Map("simple-adblock", translate("Simple AdBlock Settings"))
+s = m:section(NamedSection, "config", "simple-adblock")
+
+-- General options
+e = s:option(Flag, "enabled", translate("Enable/start service"))
+e.rmempty = false
+
+function e.cfgvalue(self, section)
+ return self.map:get(section, "enabled") == "1" and luci.sys.init.enabled("simple-adblock") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+ if value == "1" then
+ luci.sys.call("/etc/init.d/simple-adblock enable >/dev/null")
+ luci.sys.call("/etc/init.d/simple-adblock start >/dev/null")
+ else
+ luci.sys.call("/etc/init.d/simple-adblock stop >/dev/null")
+ end
+ return Flag.write(self, section, value)
+end
+
+o2 = s:option(ListValue, "verbosity", translate("Output Verbosity Setting"),translate("Controls system log and console output verbosity"))
+o2:value("0", translate("Suppress output"))
+o2:value("1", translate("Some output"))
+o2:value("2", translate("Verbose output"))
+o2.rmempty = false
+o2.default = 2
+
+o3 = s:option(ListValue, "force_dns", translate("Force Router DNS"), translate("Forces Router DNS use on local devices, also known as DNS Hijacking"))
+o3:value("0", translate("Let local devices use their own DNS servers if set"))
+o3:value("1", translate("Force Router DNS server to all local devices"))
+o3.rmempty = false
+o3.default = 1
+
+
+local sysfs_path = "/sys/class/leds/"
+local leds = {}
+if nixio.fs.access(sysfs_path) then
+ leds = nixio.util.consume((nixio.fs.dir(sysfs_path)))
+end
+if #leds ~= 0 then
+ o3 = s:option(Value, "led", translate("LED to indicate status"), translate("Pick the LED not already used in ")
+ .. [[]]
+ .. translate("System LED Configuration") .. [[ ]])
+ o3.rmempty = true
+ o3:value("", translate("none"))
+ for k, v in ipairs(leds) do
+ o3:value(v)
+ end
+end
+
+
+s2 = m:section(NamedSection, "config", "simple-adblock")
+-- Whitelisted Domains
+d1 = s2:option(DynamicList, "whitelist_domain", translate("Whitelisted Domains"), translate("Individual domains to be whitelisted"))
+d1.addremove = false
+d1.optional = false
+
+-- Blacklisted Domains
+d3 = s2:option(DynamicList, "blacklist_domain", translate("Blacklisted Domains"), translate("Individual domains to be blacklisted"))
+d3.addremove = false
+d3.optional = false
+
+-- Whitelisted Domains URLs
+d2 = s2:option(DynamicList, "whitelist_domains_url", translate("Whitelisted Domain URLs"), translate("URLs to lists of domains to be whitelisted"))
+d2.addremove = false
+d2.optional = false
+
+-- Blacklisted Domains URLs
+d4 = s2:option(DynamicList, "blacklist_domains_url", translate("Blacklisted Domain URLs"), translate("URLs to lists of domains to be blacklisted"))
+d4.addremove = false
+d4.optional = false
+
+-- Blacklisted Hosts URLs
+d5 = s2:option(DynamicList, "blacklist_hosts_url", translate("Blacklisted Hosts URLs"), translate("URLs to lists of hosts to be blacklisted"))
+d5.addremove = false
+d5.optional = false
+
+return m
diff --git a/applications/luci-app-simple-adblock/po/ja/simple-adblock.po b/applications/luci-app-simple-adblock/po/ja/simple-adblock.po
new file mode 100644
index 0000000000..7926595b6e
--- /dev/null
+++ b/applications/luci-app-simple-adblock/po/ja/simple-adblock.po
@@ -0,0 +1,93 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.12\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "Blacklisted Domain URLs"
+msgstr "ãã¡ã¤ã³ ãã©ãã¯ãªã¹ãã®URL"
+
+msgid "Blacklisted Domains"
+msgstr "ãã©ãã¯ãªã¹ã ãã¡ã¤ã³"
+
+msgid "Blacklisted Hosts URLs"
+msgstr "hosts ãã©ãã¯ãªã¹ãã®URL"
+
+msgid "Controls system log and console output verbosity"
+msgstr "ã·ã¹ãã ãã°ã¨ã³ã³ã½ã¼ã«åºåã®åé·æ§ãè¨å®ãã¾ãã"
+
+msgid "Enable/start service"
+msgstr "ãµã¼ãã¹ã®æå¹å/éå§"
+
+msgid "Force Router DNS"
+msgstr "ã«ã¼ã¿ã¼DNSã®å¼·å¶"
+
+msgid "Force Router DNS server to all local devices"
+msgstr "å
¨ãã¼ã«ã« ããã¤ã¹ã«ã«ã¼ã¿ã¼ DNSãµã¼ãã¼ã®ä½¿ç¨ãå¼·å¶"
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+"ãã¼ã«ã« ããã¤ã¹ã«å¯¾ããã«ã¼ã¿ã¼ä¸ã®DNSãµã¼ãã¼ã®ä½¿ç¨ãå¼·å¶ãã¾ããããã¯ã"
+"DNS ãã¤ã¸ã£ãã¯ã¨ãã¦ãç¥ããã¦ãã¾ãã"
+
+msgid "Individual domains to be blacklisted"
+msgstr "ãã©ãã¯ãªã¹ãã«ç»é²ãããåã
ã®ãã¡ã¤ã³ã§ãã"
+
+msgid "Individual domains to be whitelisted"
+msgstr "ãã¯ã¤ããªã¹ãã«ç»é²ãããåã
ã®ãã¡ã¤ã³ã§ãã"
+
+msgid "LED to indicate status"
+msgstr "ã¹ãã¼ã¿ã¹ã表示ããLED"
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr "DNSãµã¼ãã¼ã®ä½¿ç¨ãå¼·å¶ããªã"
+
+msgid "Output Verbosity Setting"
+msgstr "åºå詳細度ã®è¨å®"
+
+msgid "Pick the LED not already used in"
+msgstr "å³ã®è¨å®ã§æ¢ã«ä½¿ç¨ããã¦ããªãLEDãé¸æãã¾ã:"
+
+msgid "Simple AdBlock"
+msgstr "Simple AdBlock"
+
+msgid "Simple AdBlock Settings"
+msgstr "Simple AdBlock è¨å®"
+
+msgid "Some output"
+msgstr "軽éåºå"
+
+msgid "Suppress output"
+msgstr "åºåã®æå¶"
+
+msgid "System LED Configuration"
+msgstr "LED è¨å®"
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr "ãã©ãã¯ãªã¹ãã«ç»é²ãããã¡ã¤ã³ã®ãªã¹ãã®URLã§ãã"
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr "ãã¯ã¤ããªã¹ãã«ç»é²ãããã¡ã¤ã³ã®ãªã¹ãã®URLã§ãã"
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr "ãã©ãã¯ãªã¹ãã«ç»é²ãããã¡ã¤ã³ãåæããããhostsãã¡ã¤ã«ã®URLã§ãã"
+
+msgid "Verbose output"
+msgstr "詳細åºå"
+
+msgid "Whitelisted Domain URLs"
+msgstr "ãã¡ã¤ã³ ãã¯ã¤ããªã¹ãã®URL"
+
+msgid "Whitelisted Domains"
+msgstr "ãã¯ã¤ããªã¹ã ãã¡ã¤ã³"
+
+msgid "none"
+msgstr "ãªã"
diff --git a/applications/luci-app-simple-adblock/po/pt-br/simple-adblock.po b/applications/luci-app-simple-adblock/po/pt-br/simple-adblock.po
new file mode 100644
index 0000000000..6dbbf8b844
--- /dev/null
+++ b/applications/luci-app-simple-adblock/po/pt-br/simple-adblock.po
@@ -0,0 +1,86 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Blacklisted Domain URLs"
+msgstr "Endereço com lista de DomÃnio para a Lista Negra"
+
+msgid "Blacklisted Domains"
+msgstr "DomÃnios para a Lista Negra"
+
+msgid "Blacklisted Hosts URLs"
+msgstr "Endereços de Hosts para a Lista Negra"
+
+msgid "Controls system log and console output verbosity"
+msgstr ""
+"Controla o sistema de registro e o detalhamento das mensagens de saÃda do "
+"console"
+
+msgid "Enable/start service"
+msgstr "Habilitar/Iniciar o serviço"
+
+msgid "Force Router DNS"
+msgstr "Forçar o DNS do Roteador"
+
+msgid "Force Router DNS server to all local devices"
+msgstr "Forçar o servidor de DNS do Roteador para todos os dispositivos locais"
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+"Forçar o uso do DNS do Roteador nos dispositivos locais, também conhecido "
+"como redirecionamento de DNS"
+
+msgid "Individual domains to be blacklisted"
+msgstr "DomÃnios individuais para serem incluÃdos na Lista Negra"
+
+msgid "Individual domains to be whitelisted"
+msgstr "DomÃnios individuais para serem incluÃdos na Lista Branca"
+
+msgid "LED to indicate status"
+msgstr "LED para indicar o estado"
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr ""
+"Deixe que os dispositivos locais usem seus próprios servidores de DNS, se "
+"definidos"
+
+msgid "Output Verbosity Setting"
+msgstr "Definição do detalhamento do registro"
+
+msgid "Pick the LED not already used in"
+msgstr "Escolha um LED não usando em"
+
+msgid "Simple AdBlock"
+msgstr "Simple AdBlock"
+
+msgid "Simple AdBlock Settings"
+msgstr "Configuração do Simple AdBlock"
+
+msgid "Some output"
+msgstr "Pouco detalhado"
+
+msgid "Suppress output"
+msgstr "Suprimir"
+
+msgid "System LED Configuration"
+msgstr "Configuração do LED"
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr "Endereço da lista dos domÃnios para a Lista Negra"
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr "Endereço da lista dos domÃnios para a Lista Branca"
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr "Endereço da lista dos hosts para a Lista Negra"
+
+msgid "Verbose output"
+msgstr "Detalhado"
+
+msgid "Whitelisted Domain URLs"
+msgstr "Endereço com lista de domÃnio para a Lista Branca"
+
+msgid "Whitelisted Domains"
+msgstr "DomÃnios para a Lista Branca"
+
+msgid "none"
+msgstr "Nenhum"
diff --git a/applications/luci-app-simple-adblock/po/pt/simple-adblock.po b/applications/luci-app-simple-adblock/po/pt/simple-adblock.po
new file mode 100644
index 0000000000..6dbbf8b844
--- /dev/null
+++ b/applications/luci-app-simple-adblock/po/pt/simple-adblock.po
@@ -0,0 +1,86 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Blacklisted Domain URLs"
+msgstr "Endereço com lista de DomÃnio para a Lista Negra"
+
+msgid "Blacklisted Domains"
+msgstr "DomÃnios para a Lista Negra"
+
+msgid "Blacklisted Hosts URLs"
+msgstr "Endereços de Hosts para a Lista Negra"
+
+msgid "Controls system log and console output verbosity"
+msgstr ""
+"Controla o sistema de registro e o detalhamento das mensagens de saÃda do "
+"console"
+
+msgid "Enable/start service"
+msgstr "Habilitar/Iniciar o serviço"
+
+msgid "Force Router DNS"
+msgstr "Forçar o DNS do Roteador"
+
+msgid "Force Router DNS server to all local devices"
+msgstr "Forçar o servidor de DNS do Roteador para todos os dispositivos locais"
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+"Forçar o uso do DNS do Roteador nos dispositivos locais, também conhecido "
+"como redirecionamento de DNS"
+
+msgid "Individual domains to be blacklisted"
+msgstr "DomÃnios individuais para serem incluÃdos na Lista Negra"
+
+msgid "Individual domains to be whitelisted"
+msgstr "DomÃnios individuais para serem incluÃdos na Lista Branca"
+
+msgid "LED to indicate status"
+msgstr "LED para indicar o estado"
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr ""
+"Deixe que os dispositivos locais usem seus próprios servidores de DNS, se "
+"definidos"
+
+msgid "Output Verbosity Setting"
+msgstr "Definição do detalhamento do registro"
+
+msgid "Pick the LED not already used in"
+msgstr "Escolha um LED não usando em"
+
+msgid "Simple AdBlock"
+msgstr "Simple AdBlock"
+
+msgid "Simple AdBlock Settings"
+msgstr "Configuração do Simple AdBlock"
+
+msgid "Some output"
+msgstr "Pouco detalhado"
+
+msgid "Suppress output"
+msgstr "Suprimir"
+
+msgid "System LED Configuration"
+msgstr "Configuração do LED"
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr "Endereço da lista dos domÃnios para a Lista Negra"
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr "Endereço da lista dos domÃnios para a Lista Branca"
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr "Endereço da lista dos hosts para a Lista Negra"
+
+msgid "Verbose output"
+msgstr "Detalhado"
+
+msgid "Whitelisted Domain URLs"
+msgstr "Endereço com lista de domÃnio para a Lista Branca"
+
+msgid "Whitelisted Domains"
+msgstr "DomÃnios para a Lista Branca"
+
+msgid "none"
+msgstr "Nenhum"
diff --git a/applications/luci-app-simple-adblock/po/sv/simple-adblock.po b/applications/luci-app-simple-adblock/po/sv/simple-adblock.po
new file mode 100644
index 0000000000..e95f95f02b
--- /dev/null
+++ b/applications/luci-app-simple-adblock/po/sv/simple-adblock.po
@@ -0,0 +1,80 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Blacklisted Domain URLs"
+msgstr "Svartlistade domänadresser"
+
+msgid "Blacklisted Domains"
+msgstr "Svartlistade domäner"
+
+msgid "Blacklisted Hosts URLs"
+msgstr "Svartlistade värdadresser"
+
+msgid "Controls system log and console output verbosity"
+msgstr "Kontrollerar systemloggar och detaljnivån för konsoll-utmatningen"
+
+msgid "Enable/start service"
+msgstr "Aktivera/starta tjänsten"
+
+msgid "Force Router DNS"
+msgstr ""
+
+msgid "Force Router DNS server to all local devices"
+msgstr ""
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+
+msgid "Individual domains to be blacklisted"
+msgstr "Individuella domäner som ska svartlistas"
+
+msgid "Individual domains to be whitelisted"
+msgstr "Individulla domäner som ska svartlistas"
+
+msgid "LED to indicate status"
+msgstr "LED för att indikera status"
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr ""
+
+msgid "Output Verbosity Setting"
+msgstr ""
+
+msgid "Pick the LED not already used in"
+msgstr ""
+
+msgid "Simple AdBlock"
+msgstr "Simple AdBlock"
+
+msgid "Simple AdBlock Settings"
+msgstr "Inställningar för Simple AdBlock"
+
+msgid "Some output"
+msgstr "Viss utmatning"
+
+msgid "Suppress output"
+msgstr "Förträng utmatning"
+
+msgid "System LED Configuration"
+msgstr ""
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr ""
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr ""
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr ""
+
+msgid "Verbose output"
+msgstr "Utförlig utmatning"
+
+msgid "Whitelisted Domain URLs"
+msgstr "Vitlistade domänadresser"
+
+msgid "Whitelisted Domains"
+msgstr "Vitlistade domäner"
+
+msgid "none"
+msgstr "ingen"
diff --git a/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot b/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot
new file mode 100644
index 0000000000..4cfff964a3
--- /dev/null
+++ b/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot
@@ -0,0 +1,80 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Blacklisted Domain URLs"
+msgstr ""
+
+msgid "Blacklisted Domains"
+msgstr ""
+
+msgid "Blacklisted Hosts URLs"
+msgstr ""
+
+msgid "Controls system log and console output verbosity"
+msgstr ""
+
+msgid "Enable/start service"
+msgstr ""
+
+msgid "Force Router DNS"
+msgstr ""
+
+msgid "Force Router DNS server to all local devices"
+msgstr ""
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+
+msgid "Individual domains to be blacklisted"
+msgstr ""
+
+msgid "Individual domains to be whitelisted"
+msgstr ""
+
+msgid "LED to indicate status"
+msgstr ""
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr ""
+
+msgid "Output Verbosity Setting"
+msgstr ""
+
+msgid "Pick the LED not already used in"
+msgstr ""
+
+msgid "Simple AdBlock"
+msgstr ""
+
+msgid "Simple AdBlock Settings"
+msgstr ""
+
+msgid "Some output"
+msgstr ""
+
+msgid "Suppress output"
+msgstr ""
+
+msgid "System LED Configuration"
+msgstr ""
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr ""
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr ""
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr ""
+
+msgid "Verbose output"
+msgstr ""
+
+msgid "Whitelisted Domain URLs"
+msgstr ""
+
+msgid "Whitelisted Domains"
+msgstr ""
+
+msgid "none"
+msgstr ""
diff --git a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock b/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock
new file mode 100644
index 0000000000..3b7137e026
--- /dev/null
+++ b/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock
@@ -0,0 +1,10 @@
+#!/bin/sh
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@simple-adblock[-1]
+ add ucitrack simple-adblock
+ set ucitrack.@simple-adblock[-1].init=simple-adblock
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-splash/po/sv/splash.po b/applications/luci-app-splash/po/sv/splash.po
index 055c67b866..a5ebcb7efe 100644
--- a/applications/luci-app-splash/po/sv/splash.po
+++ b/applications/luci-app-splash/po/sv/splash.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"Last-Translator: Kristoffer Grundström \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -45,6 +45,8 @@ msgstr ""
msgid ""
"Become an active member of this community and help by operating your own node"
msgstr ""
+"Bli en aktiv medlem av det här sällskapet och hjälp till genom att "
+"tillhandahålla en egen nod"
msgid "Blacklist"
msgstr "Svartlista"
diff --git a/applications/luci-app-splash/po/zh-cn/splash.po b/applications/luci-app-splash/po/zh-cn/splash.po
index 439b774e6c..4ad7404701 100644
--- a/applications/luci-app-splash/po/zh-cn/splash.po
+++ b/applications/luci-app-splash/po/zh-cn/splash.po
@@ -51,7 +51,7 @@ msgstr ""
# Something wwrong?
msgid ""
"Become an active member of this community and help by operating your own node"
-msgstr "æ为è¿ä¸ªç¤¾åºçä¸ä¸ªæ´»è·æå并ä¸è¿è¥ä½ èªå·±çèç¹ä»¥å¸®å©å«äººã"
+msgstr "æ为è¿ä¸ªç¤¾åºçä¸ä¸ªæ´»è·æå并ä¸è¿è¥æ¨èªå·±çèç¹ä»¥å¸®å©å«äººã"
msgid "Blacklist"
msgstr "é»åå"
@@ -131,10 +131,10 @@ msgstr "IPå°å"
msgid ""
"If you operate your own wifi equipment use channels different from ours."
-msgstr "å¦æä½ æä½ä½ èªæçwifi设å¤ï¼ä½¿ç¨ä¸æ们ä¸åçé¢é"
+msgstr "å¦ææ¨æä½æ¨èªæçwifi设å¤ï¼ä½¿ç¨ä¸æ们ä¸åçé¢é"
msgid "If you use this network on a regular basis we ask for your support:"
-msgstr "å¦æä½ ç»å¸¸ä½¿ç¨è¿ä¸ªç½ç»ï¼æ们éè¦ä½ çæ¯æ"
+msgstr "å¦ææ¨ç»å¸¸ä½¿ç¨è¿ä¸ªç½ç»ï¼æ们éè¦æ¨çæ¯æ"
msgid "Include your own text in the default splash"
msgstr ""
@@ -277,7 +277,7 @@ msgid ""
msgstr ""
msgid "Your bandwidth is limited to"
-msgstr "ä½ ç带宽éå¶ä¸º"
+msgstr "æ¨ç带宽éå¶ä¸º"
msgid "blacklisted"
msgstr "é»åå"
diff --git a/applications/luci-app-squid/Makefile b/applications/luci-app-squid/Makefile
new file mode 100644
index 0000000000..82802c0e5a
--- /dev/null
+++ b/applications/luci-app-squid/Makefile
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Squid LuCI Interface
+LUCI_DEPENDS:=+luci-mod-admin-full +squid
+
+PKG_MAINTAINER:=Marko Ratkaj
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-squid/luasrc/controller/squid.lua b/applications/luci-app-squid/luasrc/controller/squid.lua
new file mode 100644
index 0000000000..09946a1511
--- /dev/null
+++ b/applications/luci-app-squid/luasrc/controller/squid.lua
@@ -0,0 +1,21 @@
+--[[
+
+LuCI Squid module
+
+Copyright (C) 2015, OpenWrt.org
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+
+]]--
+
+module("luci.controller.squid", package.seeall)
+
+function index()
+ entry({"admin", "services", "squid"}, cbi("squid"), _("Squid"))
+end
diff --git a/applications/luci-app-squid/luasrc/model/cbi/squid.lua b/applications/luci-app-squid/luasrc/model/cbi/squid.lua
new file mode 100644
index 0000000000..0ac554a3ee
--- /dev/null
+++ b/applications/luci-app-squid/luasrc/model/cbi/squid.lua
@@ -0,0 +1,67 @@
+--[[
+
+LuCI Squid module
+
+Copyright (C) 2015, OpenWrt.org
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Author: Marko Ratkaj
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+require "ubus"
+
+m = Map("squid", translate("Squid"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/squid restart") end
+
+s = m:section(TypedSection, "squid")
+s.anonymous = true
+s.addremove = false
+
+s:tab("general", translate("General Settings"))
+
+http_port = s:taboption("general", Value, "http_port", translate("Port"))
+http_port.datatype = "portrange"
+http_port.placeholder = "0-65535"
+
+visible_hostname = s:taboption("general", Value, "visible_hostname", translate("Visible Hostname"))
+visible_hostname.datatype="string"
+visible_hostname.placeholder = "OpenWrt"
+
+coredump_dir = s:taboption("general", Value, "coredump_dir", translate("Coredump files directory"))
+coredump_dir.datatype="string"
+coredump_dir.placeholder = "/tmp/squid"
+
+s:tab("advanced", translate("Advanced Settings"))
+
+squid_config_file = s:taboption("advanced", TextValue, "_data", "")
+squid_config_file.wrap = "off"
+squid_config_file.rows = 25
+squid_config_file.rmempty = false
+
+function squid_config_file.cfgvalue()
+ local uci = require "luci.model.uci".cursor_state()
+ local file = uci:get("squid", "squid", "config_file")
+ if file then
+ return fs.readfile(file) or ""
+ else
+ return ""
+ end
+end
+
+function squid_config_file.write(self, section, value)
+ if value then
+ local uci = require "luci.model.uci".cursor_state()
+ local file = uci:get("squid", "squid", "config_file")
+ fs.writefile(file, value:gsub("\r\n", "\n"))
+ end
+end
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index 36c5554d35..ec26f02d0d 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -23,7 +23,9 @@ function index()
s_general = _("General plugins"),
s_network = _("Network plugins"),
+ apcups = _("APC UPS"),
conntrack = _("Conntrack"),
+ contextswitch = _("Context Switches"),
cpu = _("Processor"),
cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
@@ -58,8 +60,8 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
- general = { "cpu", "cpufreq", "df", "disk", "email",
- "entropy", "exec", "irq", "load", "memory",
+ general = { "apcups", "contextswitch", "cpu", "cpufreq", "df",
+ "disk", "email", "entropy", "exec", "irq", "load", "memory",
"nut", "processes", "sensors", "thermal", "uptime" },
network = { "conntrack", "dns", "interface", "iptables",
"netlink", "olsrd", "openvpn", "ping",
@@ -87,7 +89,7 @@ function index()
_entry(
{ "admin", "statistics", "collectd", section, plugin },
cbi("luci_statistics/" .. plugin ),
- labels[plugin], j * 10
+ labels[plugin] or plugin, j * 10
)
end
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua
new file mode 100644
index 0000000000..49e28c7cfd
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua
@@ -0,0 +1,28 @@
+-- Copyright 2015 Jo-Philipp Wich
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("APCUPS Plugin Configuration"),
+ translate(
+ "The APCUPS plugin collects statistics about the APC UPS."
+ ))
+
+-- collectd_apcups config section
+s = m:section( NamedSection, "collectd_apcups", "luci_statistics" )
+
+-- collectd_apcups.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+-- collectd_apcups.host (Host)
+host = s:option( Value, "Host", translate("Monitor host"), translate ("Add multiple hosts separated by space."))
+host.default = "localhost"
+host:depends( "enable", 1 )
+
+-- collectd_apcups.port (Port)
+port = s:option( Value, "Port", translate("Port for apcupsd communication") )
+port.isinteger = true
+port.default = 3551
+port:depends( "enable", 1 )
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua
new file mode 100644
index 0000000000..7ae6b24ba1
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("CPU Context Switches Plugin Configuration"),
+ translate("This plugin collects statistics about the processor context switches."))
+
+-- collectd_contextswitch config section
+s = m:section( NamedSection, "collectd_contextswitch", "luci_statistics" )
+
+-- collectd_contextswitch.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/statistics/datatree.lua b/applications/luci-app-statistics/luasrc/statistics/datatree.lua
index 806b054cb6..5176a19a22 100644
--- a/applications/luci-app-statistics/luasrc/statistics/datatree.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/datatree.lua
@@ -13,9 +13,17 @@ local sections = uci:get_all("luci_statistics")
Instance = util.class()
function Instance.__init__( self, host )
- self._host = host or sections.collectd.Hostname or sys.hostname()
- self._libdir = sections.collectd.PluginDir or "/usr/lib/collectd"
- self._rrddir = sections.collectd_rrdtool.DataDir or "/tmp/rrd"
+ self._host = host or sys.hostname()
+ self._libdir = "/usr/lib/collectd"
+ self._rrddir = "/tmp/rrd"
+
+ if sections and sections.collectd then
+ self._host = host or sections.collectd.Hostname or sys.hostname()
+ self._libdir = sections.collectd.PluginDir or "/usr/lib/collectd"
+ end
+ if sections and sections.collectd_rrdtool then
+ self._rrddir = sections.collectd_rrdtool.DataDir or "/tmp/rrd"
+ end
self._libdir = self._libdir:gsub("/$","")
self._rrddir = self._rrddir:gsub("/$","")
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
index 4e00e7f1fc..e29a2e17d9 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
@@ -278,7 +278,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
-- create line1 statement
_tif( _args, "LINE%d:%s_%s#%s:%s",
- source.noarea and 2 or 1,
+ source.width or (source.noarea and 2 or 1),
source.sname, var, line_color, legend )
end
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua
new file mode 100644
index 0000000000..2a8aceec08
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua
@@ -0,0 +1,117 @@
+-- Copyright 2015 Jo-Philipp Wich
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.apcups",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ local voltagesdc = {
+ title = "%H: Voltages on APC UPS - Battery",
+ vlabel = "Volts DC",
+ alt_autoscale = true,
+ number_format = "%5.1lfV",
+ data = {
+ instances = {
+ voltage = { "battery" }
+ },
+
+ options = {
+ voltage = { title = "Battery voltage", noarea=true }
+ }
+ }
+ }
+
+ local voltages = {
+ title = "%H: Voltages on APC UPS - AC",
+ vlabel = "Volts AC",
+ alt_autoscale = true,
+ number_format = "%5.1lfV",
+ data = {
+ instances = {
+ voltage = { "input", "output" }
+ },
+
+ options = {
+ voltage_output = { color = "00e000", title = "Output voltage", noarea=true, overlay=true },
+ voltage_input = { color = "ffb000", title = "Input voltage", noarea=true, overlay=true }
+ }
+ }
+ }
+
+ local percentload = {
+ title = "%H: Load on APC UPS ",
+ vlabel = "Percent",
+ y_min = "0",
+ y_max = "100",
+ number_format = "%5.1lf%%",
+ data = {
+ sources = {
+ percent_load = { "value" }
+ },
+ instances = {
+ percent = "load"
+ },
+ options = {
+ percent_load = { color = "00ff00", title = "Load level" }
+ }
+ }
+ }
+
+ local charge_percent = {
+ title = "%H: Battery charge on APC UPS ",
+ vlabel = "Percent",
+ y_min = "0",
+ y_max = "100",
+ number_format = "%5.1lf%%",
+ data = {
+ types = { "charge" },
+ options = {
+ charge = { color = "00ff0b", title = "Charge level" }
+ }
+ }
+ }
+
+ local temperature = {
+ title = "%H: Battery temperature on APC UPS ",
+ vlabel = "\176C",
+ number_format = "%5.1lf\176C",
+ data = {
+ types = { "temperature" },
+ options = {
+ temperature = { color = "ffb000", title = "Battery temperature" } }
+ }
+ }
+
+ local timeleft = {
+ title = "%H: Time left on APC UPS ",
+ vlabel = "Minutes",
+ number_format = "%.1lfm",
+ data = {
+ sources = {
+ timeleft = { "value" }
+ },
+ options = {
+ timeleft = { color = "0000ff", title = "Time left" }
+ }
+ }
+ }
+
+ local frequency = {
+ title = "%H: Incoming line frequency on APC UPS ",
+ vlabel = "Hz",
+ number_format = "%5.0lfhz",
+ data = {
+ sources = {
+ frequency_input = { "value" }
+ },
+ instances = {
+ frequency = "frequency"
+ },
+ options = {
+ frequency_frequency = { color = "000fff", title = "Line frequency" }
+ }
+ }
+ }
+
+ return { voltages, voltagesdc, percentload, charge_percent, temperature, timeleft, frequency }
+end
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua
new file mode 100644
index 0000000000..6826e12adb
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua
@@ -0,0 +1,23 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.contextswitch",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Context switches",
+ alt_autoscale = true,
+ vlabel = "Switches/s",
+ number_format = "%5.0lf",
+ data = {
+ types = { "contextswitch" },
+ sources = {
+ contextswitch = { "value" }
+ },
+ options = {
+ contextswitch = { color = "0000ff", title = "Context switches", noarea=true, overlay=true }
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/processes.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
index d48441abd2..62d0545973 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
@@ -5,28 +5,30 @@ module("luci.statistics.rrdtool.definitions.processes", package.seeall)
function rrdargs( graph, plugin, plugin_instance, dtype )
+ if plugin_instance == "" then
return {
- {
title = "%H: Processes",
vlabel = "Processes/s",
data = {
instances = {
ps_state = {
- "sleeping", "running", "paging", "blocked", "stopped", "zombies"
+ "sleeping", "running", "paging",
+ "blocked", "stopped", "zombies"
}
},
options = {
- ps_state_sleeping = { color = "0000ff" },
- ps_state_running = { color = "008000" },
- ps_state_paging = { color = "ffff00" },
- ps_state_blocked = { color = "ff5000" },
- ps_state_stopped = { color = "555555" },
- ps_state_zombies = { color = "ff0000" }
+ ps_state_sleeping = { color = "0000ff", title = "Sleeping" },
+ ps_state_running = { color = "008000", title = "Running" },
+ ps_state_paging = { color = "ffff00", title = "Paging" },
+ ps_state_blocked = { color = "ff5000", title = "Blocked" },
+ ps_state_stopped = { color = "555555", title = "Stopped" },
+ ps_state_zombies = { color = "ff0000", title = "Zombies" }
}
}
- },
-
+ }
+ else
+ return {
{
title = "%H: CPU time used by %pi",
vlabel = "Jiffies",
@@ -38,11 +40,13 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
options = {
ps_cputime__user = {
color = "0000ff",
+ title = "User",
overlay = true
},
ps_cputime__syst = {
color = "ff0000",
+ title = "System",
overlay = true
}
}
@@ -59,15 +63,15 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
},
options = {
- ps_count__threads = { color = "00ff00" },
- ps_count__processes = { color = "0000bb" }
+ ps_count__threads = { color = "00ff00", title = "Threads" },
+ ps_count__processes = { color = "0000bb", title = "Processes" }
}
}
},
{
title = "%H: Page faults in %pi",
- vlabel = "Pagefaults",
+ vlabel = "Page faults",
detail = true,
data = {
sources = {
@@ -75,14 +79,14 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
},
options = {
- ps_pagefaults__minflt = { color = "ff0000" },
- ps_pagefaults__majflt = { color = "ff5500" }
+ ps_pagefaults__minflt = { color = "0000ff", title = "Minor" },
+ ps_pagefaults__majflt = { color = "ff0000", title = "Major" }
}
}
},
{
- title = "%H: Virtual memory size of %pi",
+ title = "%H: Resident segment size (RSS) of %pi",
vlabel = "Bytes",
detail = true,
number_format = "%5.1lf%sB",
@@ -90,9 +94,24 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
types = { "ps_rss" },
options = {
- ps_rss = { color = "0000ff" }
+ ps_rss = { color = "0000ff", title = "Resident segment" }
+ }
+ }
+ },
+
+ {
+ title = "%H: Virtual memory size (VSZ) of %pi",
+ vlabel = "Bytes",
+ detail = true,
+ number_format = "%5.1lf%sB",
+ data = {
+ types = { "ps_vm" },
+
+ options = {
+ ps_vm = { color = "0000ff", title = "Virtual memory" }
}
}
}
}
+ end
end
diff --git a/applications/luci-app-statistics/luasrc/view/public_statistics/graph.htm b/applications/luci-app-statistics/luasrc/view/public_statistics/graph.htm
index ebc78badb0..85a20d993a 100644
--- a/applications/luci-app-statistics/luasrc/view/public_statistics/graph.htm
+++ b/applications/luci-app-statistics/luasrc/view/public_statistics/graph.htm
@@ -29,9 +29,7 @@
diff --git a/applications/luci-app-statistics/po/ca/statistics.po b/applications/luci-app-statistics/po/ca/statistics.po
index b6a98a0999..738af5510f 100644
--- a/applications/luci-app-statistics/po/ca/statistics.po
+++ b/applications/luci-app-statistics/po/ca/statistics.po
@@ -15,6 +15,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Acció (objectiu)"
@@ -39,6 +45,9 @@ msgstr "Directori base"
msgid "Basic monitoring"
msgstr "Monitoreig bà sic"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -90,6 +99,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Configuració del connector Conntrack"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Configuració del connector DF"
@@ -289,6 +301,9 @@ msgstr "Monitoritza els discs i les particions"
msgid "Monitor filesystem types"
msgstr "Monitoritza els tipus de sistema de fitxers"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitoritza mà quines"
@@ -375,6 +390,9 @@ msgstr "Configuració del connector ping"
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processos"
@@ -500,6 +518,9 @@ msgstr "TTL per paquets ping"
msgid "Table"
msgstr "Taula"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -696,6 +717,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/cs/statistics.po b/applications/luci-app-statistics/po/cs/statistics.po
index b4a936a7c2..fc3f513c5c 100644
--- a/applications/luci-app-statistics/po/cs/statistics.po
+++ b/applications/luci-app-statistics/po/cs/statistics.po
@@ -11,6 +11,12 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Akce (cÃl)"
@@ -35,6 +41,9 @@ msgstr "Základnà adresáÅ"
msgid "Basic monitoring"
msgstr "Základnà sledovánÃ"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -86,6 +95,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Nastavenà pluginu Conntrack"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Nastavenà pluginu DF"
@@ -284,6 +296,9 @@ msgstr "Sledovat disky a oddÃly"
msgid "Monitor filesystem types"
msgstr "Sledovat typy souborových systémů"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Sledovat hostitele"
@@ -370,6 +385,9 @@ msgstr "Nastavenà pluginu Ping"
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Procesy"
@@ -494,6 +512,9 @@ msgstr "TTL pro pakety pingu"
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -682,6 +703,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/de/statistics.po b/applications/luci-app-statistics/po/de/statistics.po
index ef29176f62..45ba020ada 100644
--- a/applications/luci-app-statistics/po/de/statistics.po
+++ b/applications/luci-app-statistics/po/de/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Aktion (Ziel)"
@@ -37,6 +43,9 @@ msgstr "Basisverzeichnis"
msgid "Basic monitoring"
msgstr "Schnittstellen einfach überwachen"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Conntrack Plugin Einstellungen"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "DF Plugin Konfiguration"
@@ -291,6 +303,9 @@ msgstr "Geräte und Partitionen überwachen"
msgid "Monitor filesystem types"
msgstr "Datesystemtypen überwachen"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Hosts überwachen"
@@ -377,6 +392,9 @@ msgstr "Ping Plugin Konfiguration"
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Prozesse"
@@ -500,6 +518,9 @@ msgstr "TTL für Ping Pakete"
msgid "Table"
msgstr "Tabelle"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
"Das NUT-Plugin liest Informationen über Unterbrechungsfreie Stromversorgungen"
@@ -701,6 +722,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/el/statistics.po b/applications/luci-app-statistics/po/el/statistics.po
index 9b530c0131..4062868446 100644
--- a/applications/luci-app-statistics/po/el/statistics.po
+++ b/applications/luci-app-statistics/po/el/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.4\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -38,6 +44,9 @@ msgstr "ÎαÏÎ¬Î»Î¿Î³Î¿Ï Î²Î¬ÏηÏ"
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -89,6 +98,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -282,6 +294,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -368,6 +383,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "ÎιεÏγαÏίεÏ"
@@ -491,6 +509,9 @@ msgstr ""
msgid "Table"
msgstr "ΠίνακαÏ"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -642,6 +663,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/en/statistics.po b/applications/luci-app-statistics/po/en/statistics.po
index 3e9c829150..f7ebfe0c2b 100644
--- a/applications/luci-app-statistics/po/en/statistics.po
+++ b/applications/luci-app-statistics/po/en/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 1.1.1\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Action (target)"
@@ -37,6 +43,9 @@ msgstr "Base Directory"
msgid "Basic monitoring"
msgstr "Basic monitoring"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "DF Plugin Configuration"
@@ -287,6 +299,9 @@ msgstr "Monitor disks and partitions"
msgid "Monitor filesystem types"
msgstr "Monitor filesystem types"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitor hosts"
@@ -373,6 +388,9 @@ msgstr "Ping Plugin Configuration"
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processes"
@@ -496,6 +514,9 @@ msgstr "TTL for ping packets"
msgid "Table"
msgstr "Table"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -684,6 +705,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/es/statistics.po b/applications/luci-app-statistics/po/es/statistics.po
index 2db483cfac..3c811ffeff 100644
--- a/applications/luci-app-statistics/po/es/statistics.po
+++ b/applications/luci-app-statistics/po/es/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Acción (objetivo)"
@@ -37,6 +43,9 @@ msgstr "Directorio Base"
msgid "Basic monitoring"
msgstr "Monitorización básica"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr "Seguimiento"
msgid "Conntrack Plugin Configuration"
msgstr "Configuración del seguimiento"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Configuración del plugin DF"
@@ -286,6 +298,9 @@ msgstr "Monitorizar discos y particiones"
msgid "Monitor filesystem types"
msgstr "Monitorizar tipos de sistema de archivos"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitorizar máquinas"
@@ -372,6 +387,9 @@ msgstr "Configuración del plugin \"Ping\""
msgid "Port"
msgstr "Puerto"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Procesos"
@@ -495,6 +513,9 @@ msgstr "TTL para paquetes de ping"
msgid "Table"
msgstr "Tabla"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
"El plugin NUT obtiene información sobre Sistemas de Alimentación "
@@ -697,6 +718,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/fr/statistics.po b/applications/luci-app-statistics/po/fr/statistics.po
index d4190d34aa..bc156dd42a 100644
--- a/applications/luci-app-statistics/po/fr/statistics.po
+++ b/applications/luci-app-statistics/po/fr/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Pootle 2.0.4\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Action (cible)"
@@ -37,6 +43,9 @@ msgstr "Répertoire de base"
msgid "Basic monitoring"
msgstr "Surveillance de base"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Configuration du greffon DF"
@@ -288,6 +300,9 @@ msgstr "Disques et partitions à surveiller"
msgid "Monitor filesystem types"
msgstr "types de systèmes de fichier à surveiller"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Hôtes à surveiller"
@@ -374,6 +389,9 @@ msgstr "Configuration du greffon Ping"
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processus"
@@ -497,6 +515,9 @@ msgstr "TTL des paquets ping"
msgid "Table"
msgstr "Table"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -690,6 +711,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/he/statistics.po b/applications/luci-app-statistics/po/he/statistics.po
index e27d219b0c..35f978ed20 100644
--- a/applications/luci-app-statistics/po/he/statistics.po
+++ b/applications/luci-app-statistics/po/he/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -37,6 +43,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -85,6 +94,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -277,6 +289,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -363,6 +378,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -486,6 +504,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -637,6 +658,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/hu/statistics.po b/applications/luci-app-statistics/po/hu/statistics.po
index 4767442111..e5c4e601cb 100644
--- a/applications/luci-app-statistics/po/hu/statistics.po
+++ b/applications/luci-app-statistics/po/hu/statistics.po
@@ -11,6 +11,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Tevékenység (cél)"
@@ -35,6 +41,9 @@ msgstr "Alapkönyvtár"
msgid "Basic monitoring"
msgstr "Ãltalános figyelés"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -86,6 +95,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Conntrack bÅvÃtmény beállÃtása"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "DF bÅvÃtmény beállÃtása"
@@ -289,6 +301,9 @@ msgstr "Lemezek és partÃciók figyelése"
msgid "Monitor filesystem types"
msgstr "Fájlrendszer tÃpusok figyelése"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Gépek figyelése"
@@ -375,6 +390,9 @@ msgstr "Ping bÅvÃtmény beállÃtása"
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Folyamatok"
@@ -502,6 +520,9 @@ msgstr "TTL a ping csomagokhoz"
msgid "Table"
msgstr "Táblázat"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr "A NUT bÅvÃtmény a szünetmentes tápokról ad információkat."
@@ -684,6 +705,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/it/statistics.po b/applications/luci-app-statistics/po/it/statistics.po
index 3c50ac3d3a..2451503f23 100644
--- a/applications/luci-app-statistics/po/it/statistics.po
+++ b/applications/luci-app-statistics/po/it/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Azione (destinazione)"
@@ -37,6 +43,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -287,6 +299,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -373,6 +388,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -496,6 +514,9 @@ msgstr ""
msgid "Table"
msgstr "Tabella"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -647,6 +668,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/ja/statistics.po b/applications/luci-app-statistics/po/ja/statistics.po
index 2a3ffe54cd..53941cf0f8 100644
--- a/applications/luci-app-statistics/po/ja/statistics.po
+++ b/applications/luci-app-statistics/po/ja/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"X-Generator: Poedit 1.8.11\n"
"Language-Team: \n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "ã¢ã¯ã·ã§ã³ï¼å¯¾è±¡ï¼"
@@ -37,6 +43,9 @@ msgstr "ãã¼ã¹ã»ãã£ã¬ã¯ããª"
msgid "Basic monitoring"
msgstr "åºæ¬ã¢ãã¿ãªã³ã°"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr "CPU å¨æ³¢æ°"
@@ -87,6 +96,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Conntrack ãã©ã°ã¤ã³è¨å®"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "DF ãã©ã°ã¤ã³è¨å®"
@@ -289,6 +301,9 @@ msgstr "ãã£ã¹ã¯ã¨ãã¼ãã£ã·ã§ã³ãã¢ãã¿ã¼ãã"
msgid "Monitor filesystem types"
msgstr "ãã¡ã¤ã«ã·ã¹ãã ã¿ã¤ããã¢ãã¿ã¼ãã"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "ãã¹ããã¢ãã¿ã¼ãã"
@@ -378,6 +393,9 @@ msgstr "Ping ãã©ã°ã¤ã³è¨å®"
msgid "Port"
msgstr "ãã¼ã"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "ããã»ã¹"
@@ -501,6 +519,9 @@ msgstr "pingãã±ããã®TTL"
msgid "Table"
msgstr "ãã¼ãã«"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr "NUT ãã©ã°ã¤ã³ã¯ãç¡åé»é»æºè£
ç½®ã«ã¤ãã¦ã®æ
å ±ãèªã¿åãã¾ãã"
@@ -699,6 +720,9 @@ msgstr "ãµã¼ãã«"
msgid "Thermal Plugin Configuration"
msgstr "ãµã¼ãã« ãã©ã°ã¤ã³è¨å®"
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
"ãã®ãã©ã°ã¤ã³ã¯ãããã»ããµã¼å¨æ³¢æ°ã¹ã±ã¼ãªã³ã°ã«ã¤ãã¦ã®çµ±è¨ãåéãã¾ãã"
diff --git a/applications/luci-app-statistics/po/ms/statistics.po b/applications/luci-app-statistics/po/ms/statistics.po
index 2a047767ec..c02556fc86 100644
--- a/applications/luci-app-statistics/po/ms/statistics.po
+++ b/applications/luci-app-statistics/po/ms/statistics.po
@@ -10,6 +10,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -34,6 +40,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -82,6 +91,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -274,6 +286,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -360,6 +375,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -483,6 +501,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -634,6 +655,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/no/statistics.po b/applications/luci-app-statistics/po/no/statistics.po
index 3e3a8e1259..4de2ee6b55 100644
--- a/applications/luci-app-statistics/po/no/statistics.po
+++ b/applications/luci-app-statistics/po/no/statistics.po
@@ -4,6 +4,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Handling (mål)"
@@ -28,6 +34,9 @@ msgstr "Hoved Katalog"
msgid "Basic monitoring"
msgstr "Enkel overvåking"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -79,6 +88,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "DF plugin konfigurasjon"
@@ -276,6 +288,9 @@ msgstr "Overvåk disker og partisjoner"
msgid "Monitor filesystem types"
msgstr "Overvåk filsystem typer"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Overvåk verter"
@@ -362,6 +377,9 @@ msgstr "Ping plugin konfigurasjon"
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Prosesser"
@@ -485,6 +503,9 @@ msgstr "TTL for ping pakker"
msgid "Table"
msgstr "Tabell"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -672,6 +693,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/pl/statistics.po b/applications/luci-app-statistics/po/pl/statistics.po
index 474b673ef1..6e34ce0725 100644
--- a/applications/luci-app-statistics/po/pl/statistics.po
+++ b/applications/luci-app-statistics/po/pl/statistics.po
@@ -14,6 +14,12 @@ msgstr ""
"|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Akcja (cel)"
@@ -38,6 +44,9 @@ msgstr "GÅówny katalog"
msgid "Basic monitoring"
msgstr "Podstawowy monitoring"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -89,6 +98,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Konfiguracja wtyczki Conntrack"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Konfiguracja wtyczki DF"
@@ -290,6 +302,9 @@ msgstr "Monitoruj dyski i partycje"
msgid "Monitor filesystem types"
msgstr "Monitoruj system plików"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitoruj hosty"
@@ -376,6 +391,9 @@ msgstr "Konfiguracja wtyczki Ping"
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Procesy"
@@ -500,6 +518,9 @@ msgstr "TTL dla pakietów ping"
msgid "Table"
msgstr "Tabela"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr "Wtyczka Nut Informuje o Nie przerywalnym Zasilaniu"
@@ -692,6 +713,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/pt-br/statistics.po b/applications/luci-app-statistics/po/pt-br/statistics.po
index 44f53f0465..c5d6899332 100644
--- a/applications/luci-app-statistics/po/pt-br/statistics.po
+++ b/applications/luci-app-statistics/po/pt-br/statistics.po
@@ -1,17 +1,23 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-15 22:12+0200\n"
-"Last-Translator: Luiz Angelo \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-22 18:27-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
+
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
msgid "Action (target)"
msgstr "Ação (destino)"
@@ -29,7 +35,7 @@ msgid "Add notification command"
msgstr "Adicionar o comando de notificação"
msgid "Aggregate number of connected users"
-msgstr ""
+msgstr "Numero agregado de usuários conectados"
msgid "Base Directory"
msgstr "Diretório Base"
@@ -37,11 +43,14 @@ msgstr "Diretório Base"
msgid "Basic monitoring"
msgstr "Monitoramento básico"
-msgid "CPU Frequency"
+msgid "CPU Context Switches Plugin Configuration"
msgstr ""
+msgid "CPU Frequency"
+msgstr "Frequência da CPU"
+
msgid "CPU Frequency Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin da Frequência da CPU"
msgid "CPU Plugin Configuration"
msgstr "Configuração do plugin CPU"
@@ -88,6 +97,9 @@ msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
msgstr "Configuração do Plugin do Conntrack"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Configuração do plugin DF"
@@ -134,16 +146,16 @@ msgid "Email"
msgstr "Email"
msgid "Empty value = monitor all"
-msgstr ""
+msgstr "Valor vazio = monitore todos"
msgid "Enable this plugin"
msgstr "Habilitar este plugin"
msgid "Entropy"
-msgstr ""
+msgstr "Entropia"
msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Entropia"
msgid "Exec"
msgstr "Exec"
@@ -165,13 +177,13 @@ msgstr ""
"Encaminhamento entre o endereço de escuta e os endereços dos servidores"
msgid "Gather compression statistics"
-msgstr ""
+msgstr "Obter estatÃsticas sobre a compressão"
msgid "General plugins"
-msgstr ""
+msgstr "Plugins Gerais"
msgid "Generate a separate graph for each logged user"
-msgstr ""
+msgstr "Gerar um gráfico separado para cada usuário conectado"
msgid "Graphs"
msgstr "Gráficos"
@@ -204,6 +216,7 @@ msgstr ""
msgid "Hold Ctrl to select multiple items or to deselect entries."
msgstr ""
+"Segure o Ctrl para selecionar múltiplos itens ou para retirar entradas. "
msgid "Host"
msgstr "Equipamento"
@@ -259,6 +272,8 @@ msgid ""
"Max values for a period can be used instead of averages when not using 'only "
"average RRAs'"
msgstr ""
+"Valores máximos para um perÃodo podem ser usados em vez de médias quando não "
+"estiver usando 'somente RRAs de médias'"
msgid "Maximum allowed connections"
msgstr "Máximo de conexões permitidas"
@@ -276,10 +291,10 @@ msgid "Monitor all local listen ports"
msgstr "Monitorar todas as portas locais"
msgid "Monitor all sensors"
-msgstr ""
+msgstr "Monitorar todas os sensores"
msgid "Monitor device(s) / thermal zone(s)"
-msgstr ""
+msgstr "Dispositivo(s) de monitoramento / zona(s) térmica(s)"
msgid "Monitor devices"
msgstr "Monitorar dispositivos"
@@ -290,6 +305,9 @@ msgstr "Monitoras discos e partições"
msgid "Monitor filesystem types"
msgstr "Monitorar tipos de sistemas de arquivos"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitorar os equipamentos"
@@ -336,6 +354,9 @@ msgid ""
"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
"directory and all its parent directories need to be world readable."
msgstr ""
+"Nota: como as páginas são renderizadas pelo usuário 'nobody', os arquivos * ."
+"rrd, o diretório de armazenamento e todos os seus diretórios superiores "
+"precisam ser legÃveis a todos."
msgid "Number of threads for data collection"
msgstr "Número de threads para o coletor de dados"
@@ -350,13 +371,13 @@ msgid "Only create average RRAs"
msgstr "Somente criar RRAs de média"
msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin do OpenVPN"
msgid "OpenVPN status files"
-msgstr ""
+msgstr "Arquivos de estado do OpenVPN"
msgid "Options"
msgstr "Opções"
@@ -376,6 +397,9 @@ msgstr "Configuração do plugin Ping"
msgid "Port"
msgstr "Porta"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processos"
@@ -416,13 +440,13 @@ msgid "Seconds"
msgstr "Segundos"
msgid "Sensor list"
-msgstr ""
+msgstr "Lista de sensores"
msgid "Sensors"
-msgstr ""
+msgstr "Sensores"
msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Sensores"
msgid "Server host"
msgstr "Endereço do servidor"
@@ -431,13 +455,13 @@ msgid "Server port"
msgstr "Porta do servidor"
msgid "Setup"
-msgstr ""
+msgstr "Configuração"
msgid "Shaping class monitoring"
msgstr "Monitoramento das Classes de Shaping"
msgid "Show max values instead of averages"
-msgstr ""
+msgstr "Mostrar valores máximos em vez de médias"
msgid "Socket file"
msgstr "Arquivo do socket"
@@ -461,10 +485,10 @@ msgid "Specifies what information to collect about the global topology."
msgstr "Especifica quais informações serão coletadas sobre a topologia global."
msgid "Splash Leases"
-msgstr ""
+msgstr "Concessões do Splash"
msgid "Splash Leases Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin das Concessões do Splash"
msgid "Statistics"
msgstr "EstatÃstica"
@@ -499,6 +523,9 @@ msgstr "TTL para os pacotes do ping"
msgid "Table"
msgstr "Tabela"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr "O plugin NUT lê informações sobre Fontes de alimentação ininterruptas."
@@ -513,6 +540,7 @@ msgid ""
"The OpenVPN plugin gathers information about the current vpn connection "
"status."
msgstr ""
+"O plugin OpenVPN reúne informações sobre o status atual da conexão VPN."
msgid ""
"The conntrack plugin collects statistics about the number of tracked "
@@ -565,7 +593,7 @@ msgstr ""
"Plugin::Collectd mas pode ser utilizado de outras maneiras também."
msgid "The entropy plugin collects statistics about the available entropy."
-msgstr ""
+msgstr "O plugin de entropia coleta estatÃsticas sobre a entropia disponÃvel."
msgid ""
"The exec plugin starts external commands to read values from or to notify "
@@ -656,17 +684,24 @@ msgid ""
"The sensors plugin uses the Linux Sensors framework to gather environmental "
"statistics."
msgstr ""
+"O plugin de sensores usa a estrutura de sensores do Linux para coletar "
+"estatÃsticas ambientais."
msgid ""
"The splash leases plugin uses libuci to collect statistics about splash "
"leases."
msgstr ""
+"O plug-in de concessões splash usa o libuci para coletar estatÃsticas sobre "
+"concessões de splash."
msgid ""
"The statistics package uses Collectd "
"to gather data and RRDtool to "
"render diagram images."
msgstr ""
+"O pacote de estatÃsticas usa Collectd "
+"a> para coletar dados e RRDtool"
+"a> para desenhar os gráficos."
msgid ""
"The tcpconns plugin collects informations about open tcp connections on "
@@ -680,6 +715,9 @@ msgid ""
"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
"read, e.g. thermal_zone1 )"
msgstr ""
+"O plugin térmico monitorará a temperatura do sistema. Os dados são "
+"tipicamente lidos de /sys/class/thermal/*/temp ('*' indica o dispositivo "
+"térmico a ser lido, ex:, thermal_zone1)"
msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
@@ -690,15 +728,22 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+"O plugin de tempo de atividade coleta estatÃsticas sobre o tempo de "
+"atividade do sistema."
msgid "Thermal"
-msgstr ""
+msgstr "Térmico"
msgid "Thermal Plugin Configuration"
+msgstr "Configuração do Plugin Térmico"
+
+msgid "This plugin collects statistics about the processor context switches."
msgstr ""
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
+"Este plugin coleta as estatÃsticas sobre o escalonamento da frequência do "
+"processador."
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
@@ -732,13 +777,13 @@ msgid "Unixsock Plugin Configuration"
msgstr "Configuração do plugin Unixsock"
msgid "Uptime"
-msgstr ""
+msgstr "Tempo de atividade"
msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Tempo de Atividade"
msgid "Use improved naming schema"
-msgstr ""
+msgstr "Use um esquema de nomeação melhorado"
msgid "Used PID file"
msgstr "Arquivo PID usado"
@@ -758,6 +803,8 @@ msgstr "Configuração do Plugin iwinfo da Rede Sem Fio (Wireless)"
msgid ""
"You can install additional collectd-mod-* plugins to enable more statistics."
msgstr ""
+"Você pode instalar plugins adicionais (collectd-mod-*) para habilitar mais "
+"estatÃsticas."
msgid "e.g. br-ff"
msgstr "ex: br-ff"
diff --git a/applications/luci-app-statistics/po/pt/statistics.po b/applications/luci-app-statistics/po/pt/statistics.po
index 1913d77496..245e6e9bf9 100644
--- a/applications/luci-app-statistics/po/pt/statistics.po
+++ b/applications/luci-app-statistics/po/pt/statistics.po
@@ -13,6 +13,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Ação (destino)"
@@ -37,6 +43,9 @@ msgstr "Diretório Base"
msgid "Basic monitoring"
msgstr "Monitoramento básico"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -88,6 +97,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Configuração do plugin DF"
@@ -289,6 +301,9 @@ msgstr "Monitoras discos e partições"
msgid "Monitor filesystem types"
msgstr "Monitorar tipos de sistemas de arquivos"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitorar os hosts"
@@ -375,6 +390,9 @@ msgstr "Configuração do plugin Ping"
msgid "Port"
msgstr "Porta"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processos"
@@ -498,6 +516,9 @@ msgstr "TTL para os pacotes do ping"
msgid "Table"
msgstr "Tabela"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -690,6 +711,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/ro/statistics.po b/applications/luci-app-statistics/po/ro/statistics.po
index 008cc8880e..a326fec799 100644
--- a/applications/luci-app-statistics/po/ro/statistics.po
+++ b/applications/luci-app-statistics/po/ro/statistics.po
@@ -14,6 +14,12 @@ msgstr ""
"20)) ? 1 : 2);;\n"
"X-Generator: Pootle 2.0.4\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -38,6 +44,9 @@ msgstr "Directorul de baza"
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -89,6 +98,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -281,6 +293,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -367,6 +382,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Procese"
@@ -490,6 +508,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -643,6 +664,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/ru/statistics.po b/applications/luci-app-statistics/po/ru/statistics.po
index cb14847a40..9d0ff9fdf2 100644
--- a/applications/luci-app-statistics/po/ru/statistics.po
+++ b/applications/luci-app-statistics/po/ru/statistics.po
@@ -15,6 +15,12 @@ msgstr ""
"X-Generator: Pootle 2.0.6\n"
"X-Poedit-SourceCharset: UTF-8\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "ÐейÑÑвие (ÑелÑ)"
@@ -39,6 +45,9 @@ msgstr "ÐÐ°Ð·Ð¾Ð²Ð°Ñ Ð´Ð¸ÑекÑоÑиÑ"
msgid "Basic monitoring"
msgstr "ÐÐ°Ð·Ð¾Ð²Ð°Ñ ÑÑаÑиÑÑика"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -89,6 +98,9 @@ msgstr "ÐÑÑлеживание подклÑÑÐµÐ½Ð¸Ñ (Conntrack)"
msgid "Conntrack Plugin Configuration"
msgstr "ÐаÑÑÑойка плагина Conntrack"
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "ÐонÑигÑÑаÑÐ¸Ñ Ð¼Ð¾Ð´ÑÐ»Ñ DF"
@@ -291,6 +303,9 @@ msgstr "СобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ñ Ð´Ð¸Ñков и Ñаздело
msgid "Monitor filesystem types"
msgstr "СобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ñ ÑайловÑÑ
ÑиÑÑем"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "СобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ñ Ñ
оÑÑов"
@@ -377,6 +392,9 @@ msgstr "ÐонÑигÑÑаÑÐ¸Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ping"
msgid "Port"
msgstr "ÐоÑÑ"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "ÐÑоÑеÑÑÑ"
@@ -502,6 +520,9 @@ msgstr "TTL Ð´Ð»Ñ ping-пакеÑов"
msgid "Table"
msgstr "ТаблиÑа"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -688,6 +709,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/sk/statistics.po b/applications/luci-app-statistics/po/sk/statistics.po
index 1d1f013caf..53858ca540 100644
--- a/applications/luci-app-statistics/po/sk/statistics.po
+++ b/applications/luci-app-statistics/po/sk/statistics.po
@@ -8,6 +8,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -32,6 +38,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -80,6 +89,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -272,6 +284,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -358,6 +373,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -481,6 +499,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -632,6 +653,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/sv/statistics.po b/applications/luci-app-statistics/po/sv/statistics.po
index b6d562be9c..9d738f2f33 100644
--- a/applications/luci-app-statistics/po/sv/statistics.po
+++ b/applications/luci-app-statistics/po/sv/statistics.po
@@ -9,6 +9,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -33,6 +39,9 @@ msgstr "Basmapp"
msgid "Basic monitoring"
msgstr "Standardövervakning"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -84,6 +93,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Konfiguration av insticksprogrammet DF"
@@ -277,6 +289,9 @@ msgstr "Ãvervaka hÃ¥rddiskar och partitioner"
msgid "Monitor filesystem types"
msgstr "Ãvervaka filsystemtyper"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Ãvervaka värdar"
@@ -363,6 +378,9 @@ msgstr ""
msgid "Port"
msgstr "Port"
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Processer"
@@ -486,6 +504,9 @@ msgstr "TTL för ping-paket"
msgid "Table"
msgstr "Tabell"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -637,6 +658,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/templates/statistics.pot b/applications/luci-app-statistics/po/templates/statistics.pot
index 1b83826ad4..ec630b6962 100644
--- a/applications/luci-app-statistics/po/templates/statistics.pot
+++ b/applications/luci-app-statistics/po/templates/statistics.pot
@@ -1,6 +1,12 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -25,6 +31,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -73,6 +82,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -265,6 +277,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -351,6 +366,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -474,6 +492,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -625,6 +646,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/tr/statistics.po b/applications/luci-app-statistics/po/tr/statistics.po
index a30b0b966c..860ff95e88 100644
--- a/applications/luci-app-statistics/po/tr/statistics.po
+++ b/applications/luci-app-statistics/po/tr/statistics.po
@@ -9,6 +9,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -33,6 +39,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -81,6 +90,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -273,6 +285,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -359,6 +374,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -482,6 +500,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -633,6 +654,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/uk/statistics.po b/applications/luci-app-statistics/po/uk/statistics.po
index 13e52d9654..ac9ae50940 100644
--- a/applications/luci-app-statistics/po/uk/statistics.po
+++ b/applications/luci-app-statistics/po/uk/statistics.po
@@ -14,6 +14,12 @@ msgstr ""
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Pootle 2.0.6\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr ""
@@ -38,6 +44,9 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -86,6 +95,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr ""
@@ -278,6 +290,9 @@ msgstr ""
msgid "Monitor filesystem types"
msgstr ""
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr ""
@@ -364,6 +379,9 @@ msgstr ""
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr ""
@@ -487,6 +505,9 @@ msgstr ""
msgid "Table"
msgstr ""
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -638,6 +659,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/vi/statistics.po b/applications/luci-app-statistics/po/vi/statistics.po
index a5fd33d05b..f5798a2651 100644
--- a/applications/luci-app-statistics/po/vi/statistics.po
+++ b/applications/luci-app-statistics/po/vi/statistics.po
@@ -14,6 +14,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Pootle 1.1.0\n"
+msgid "APC UPS"
+msgstr ""
+
+msgid "APCUPS Plugin Configuration"
+msgstr ""
+
msgid "Action (target)"
msgstr "Action (target)"
@@ -38,6 +44,9 @@ msgstr "ThÆ° mục CÆ¡ sá»"
msgid "Basic monitoring"
msgstr "Monitoring cÄn bản"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
msgid "CPU Frequency"
msgstr ""
@@ -89,6 +98,9 @@ msgstr ""
msgid "Conntrack Plugin Configuration"
msgstr ""
+msgid "Context Switches"
+msgstr ""
+
msgid "DF Plugin Configuration"
msgstr "Cấu hình DF plugin"
@@ -288,6 +300,9 @@ msgstr "Kiá»m soát ÄÄ©a và phân vùng"
msgid "Monitor filesystem types"
msgstr "Kiá»m soát loại filesystem"
+msgid "Monitor host"
+msgstr ""
+
msgid "Monitor hosts"
msgstr "Monitor hosts"
@@ -374,6 +389,9 @@ msgstr "Cấu hình Ping plugin"
msgid "Port"
msgstr ""
+msgid "Port for apcupsd communication"
+msgstr ""
+
msgid "Processes"
msgstr "Quá trình xỠlý"
@@ -497,6 +515,9 @@ msgstr "TTl cho gói ping"
msgid "Table"
msgstr "Table"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr ""
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
msgstr ""
@@ -690,6 +711,9 @@ msgstr ""
msgid "Thermal Plugin Configuration"
msgstr ""
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
msgid "This plugin collects statistics about the processor frequency scaling."
msgstr ""
diff --git a/applications/luci-app-statistics/po/zh-cn/rrdtool.po b/applications/luci-app-statistics/po/zh-cn/rrdtool.po
index 4e6ee4b4da..eef7ba6122 100644
--- a/applications/luci-app-statistics/po/zh-cn/rrdtool.po
+++ b/applications/luci-app-statistics/po/zh-cn/rrdtool.po
@@ -1,17 +1,20 @@
# rrdtool.pot
# generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-07-23 02:08+0200\n"
-"Last-Translator: Tanyingyu \n"
-"Language-Team: none\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-10-29 15:39+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"POT-Creation-Date: \n"
#. %H: Wireless - Signal Noise Ratio
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:1
@@ -36,12 +39,12 @@ msgstr "ä¿¡å·å¼ºåº¦"
#. %H: Wireless - Signal Quality
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:5
msgid "stat_dg_title_wireless__signal_quality"
-msgstr "æ 线信å·è´¨é"
+msgstr "%Hï¼æ 线 - ä¿¡å·è´¨é"
#. n
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:6
msgid "stat_dg_label_wireless__signal_quality"
-msgstr "æ 线信å·è´¨é"
+msgstr "n"
#. Signal Quality
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:7
@@ -51,7 +54,7 @@ msgstr "ä¿¡å·è´¨é"
#. %H: ICMP Roundtrip Times
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:8
msgid "stat_dg_title_ping"
-msgstr "ping"
+msgstr "%Hï¼ICMP å¾è¿æ¶é´"
#. ms
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:9
@@ -61,299 +64,299 @@ msgstr "ååº"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:10
msgid "stat_ds_ping"
-msgstr "ping"
+msgstr "%di"
#. %H: Firewall - Processed Packets
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:11
msgid "stat_dg_title_iptables__ipt_packets"
-msgstr "iptableså
"
+msgstr "%Hï¼é²ç«å¢ - å·²å¤ççæ°æ®å
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:12
msgid "stat_dg_label_iptables__ipt_packets"
-msgstr ""
+msgstr "å
/s"
#. Chain \"%di\"
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:13
msgid "stat_ds_ipt_packets"
-msgstr ""
+msgstr "é¾â%diâ"
#. %H: Netlink - Transfer on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:14
msgid "stat_dg_title_netlink__if_octets"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸çæ°æ®ä¼ è¾"
#. Bytes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:15
msgid "stat_dg_label_netlink__if_octets"
-msgstr ""
+msgstr "åè/ç§"
#. Bytes (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:16
msgid "stat_ds_if_octets"
-msgstr ""
+msgstr "åè (%ds)"
#. %H: Netlink - Packets on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:17
msgid "stat_dg_title_netlink__if_packets"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi çæ°æ®å
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:18
msgid "stat_dg_label_netlink__if_packets"
-msgstr ""
+msgstr "å
/s"
#. Processed (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:19
msgid "stat_ds_if_packets"
-msgstr ""
+msgstr "å·²å¤ç (%ds)"
#. Dropped (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:20
msgid "stat_ds_if_dropped"
-msgstr ""
+msgstr "ä¸¢å¼ (%ds)"
#. Errors (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:21
msgid "stat_ds_if_errors"
-msgstr ""
+msgstr "é误 (%ds)"
#. %H: Netlink - Multicast on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:22
msgid "stat_dg_title_netlink__if_multicast"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸çå¤æ"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:23
msgid "stat_dg_label_netlink__if_multicast"
-msgstr ""
+msgstr "å
/s"
#. Packets
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:24
msgid "stat_ds_if_multicast"
-msgstr ""
+msgstr "æ°æ®å
"
#. %H: Netlink - Collisions on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:25
msgid "stat_dg_title_netlink__if_collisions"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸ç Collisions"
#. Collisions/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:26
msgid "stat_dg_label_netlink__if_collisions"
-msgstr ""
+msgstr "碰æ/s"
#. Collisions
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:27
msgid "stat_ds_if_collisions"
-msgstr ""
+msgstr "碰æ"
#. %H: Netlink - Errors on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:28
msgid "stat_dg_title_netlink__if_tx_errors"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸åççé误"
#. Errors/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:29
msgid "stat_dg_label_netlink__if_tx_errors"
-msgstr ""
+msgstr "é误/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:30
msgid "stat_ds_if_tx_errors"
-msgstr ""
+msgstr "%di"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:31
msgid "stat_ds_if_rx_errors"
-msgstr ""
+msgstr "%di"
#. %H: Processes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:32
msgid "stat_dg_title_processes"
-msgstr ""
+msgstr "%Hï¼è¿ç¨"
#. Processes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:33
msgid "stat_dg_label_processes"
-msgstr ""
+msgstr "è¿ç¨/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:34
msgid "stat_ds_ps_state"
-msgstr ""
+msgstr "%di"
#. %H: Process %pi - used cpu time
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35
msgid "stat_dg_title_processes__ps_cputime"
-msgstr ""
+msgstr "%Hï¼è¿ç¨ %s - å ç¨ç CPU æ¶é´"
#. Jiffies
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36
msgid "stat_dg_label_processes__ps_cputime"
-msgstr ""
+msgstr "Jiffies"
#. system
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:37
msgid "stat_ds_ps_cputime__syst"
-msgstr ""
+msgstr "ç³»ç»"
#. user
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:38
msgid "stat_ds_ps_cputime__user"
-msgstr ""
+msgstr "ç¨æ·"
#. %H: Process %pi - threads and processes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39
msgid "stat_dg_title_processes__ps_count"
-msgstr ""
+msgstr "%Hï¼è¿ç¨ %pi - è¿ç¨ä¸çº¿ç¨"
#. Count
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:40
msgid "stat_dg_label_processes__ps_count"
-msgstr ""
+msgstr "个"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:41
msgid "stat_ds_ps_count"
-msgstr ""
+msgstr "%ds"
#. %H: Process %pi - page faults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:42
msgid "stat_dg_title_processes__ps_pagefaults"
-msgstr ""
+msgstr "%Hï¼è¿ç¨ %pi - å页é误"
#. Pagefaults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:43
msgid "stat_dg_label_processes__ps_pagefaults"
-msgstr ""
+msgstr "å页é误"
#. page faults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:44
msgid "stat_ds_ps_pagefaults"
-msgstr ""
+msgstr "å页é误"
#. %H: Process %pi - virtual memory size
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:45
msgid "stat_dg_title_processes__ps_rss"
-msgstr ""
+msgstr "%Hï¼è¿ç¨ %pi - èæå
å大å°"
#. Bytes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:46
msgid "stat_dg_label_processes__ps_rss"
-msgstr ""
+msgstr "åè"
#. virtual memory
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:47
msgid "stat_ds_ps_rss"
-msgstr ""
+msgstr "èæå
å"
#. %H: Usage on Processor #%pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:48
msgid "stat_dg_title_cpu"
-msgstr ""
+msgstr "%Hï¼å¯¹å¤çå¨ #%pi çå ç¨"
#. %
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:49
msgid "stat_dg_label_cpu"
-msgstr ""
+msgstr "%"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:50
msgid "stat_ds_cpu"
-msgstr ""
+msgstr "%di"
#. %H: Transfer on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:51
msgid "stat_dg_title_interface__if_octets"
-msgstr ""
+msgstr "%Hï¼%di ä¸çæ°æ®ä¼ è¾æ
åµ"
#. Bytes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:52
msgid "stat_dg_label_interface__if_octets"
-msgstr ""
+msgstr "åè/ç§"
#. %H: Packets on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:53
msgid "stat_dg_title_interface__if_packets"
-msgstr ""
+msgstr "%Hï¼%di ä¸çæ°æ®å
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:54
msgid "stat_dg_label_interface__if_packets"
-msgstr ""
+msgstr "å
/s"
#. %H: TCP-Connections to Port %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:55
msgid "stat_dg_title_tcpconns"
-msgstr ""
+msgstr "%Hï¼å°ç«¯å£ %pi ç TCP è¿æ¥"
#. Connections/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:56
msgid "stat_dg_label_tcpconns"
-msgstr ""
+msgstr "è¿æ¥/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:57
msgid "stat_ds_tcp_connections"
-msgstr ""
+msgstr "%di"
#. %H: Disk Space Usage on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:58
msgid "stat_dg_title_df"
-msgstr ""
+msgstr "%Hï¼%di ä¸çç£çå ç¨æ
åµ"
#. Bytes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:59
msgid "stat_dg_label_df"
-msgstr ""
+msgstr "åè"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:60
msgid "stat_ds_df__free"
-msgstr ""
+msgstr "%ds"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:61
msgid "stat_ds_df__used"
-msgstr ""
+msgstr "%ds"
#. %H: Interrupts
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:62
msgid "stat_dg_title_irq"
-msgstr ""
+msgstr "%Hï¼ä¸æ"
#. Issues/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:63
msgid "stat_dg_label_irq"
-msgstr ""
+msgstr "ä¸æ/s"
#. IRQ %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:64
msgid "stat_ds_irq"
-msgstr ""
+msgstr "IRQ %di"
#. %H: System Load
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:65
msgid "stat_dg_title_load"
-msgstr ""
+msgstr "%Hï¼ç³»ç»è´è½½"
#. Load
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:66
msgid "stat_dg_label_load"
-msgstr ""
+msgstr "è´è½½"
#. 1 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:67
msgid "stat_ds_load__shortterm"
-msgstr ""
+msgstr "1 åé"
#. 5 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:68
msgid "stat_ds_load__midterm"
-msgstr ""
+msgstr "5 åé"
#. 15 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:69
msgid "stat_ds_load__longterm"
-msgstr ""
+msgstr "15 åé"
diff --git a/applications/luci-app-statistics/po/zh-cn/statistics.po b/applications/luci-app-statistics/po/zh-cn/statistics.po
index a55f73fb18..fe631b5e8f 100644
--- a/applications/luci-app-statistics/po/zh-cn/statistics.po
+++ b/applications/luci-app-statistics/po/zh-cn/statistics.po
@@ -1,17 +1,26 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2014-06-13 15:04+0200\n"
-"Last-Translator: phantasm131 \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-10-29 15:50+0800\n"
+"Last-Translator: Yangfl \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Language-Team: \n"
+
+msgid "APC UPS"
+msgstr "APC UPS"
+
+msgid "APCUPS Plugin Configuration"
+msgstr "APCUPS æ件é
ç½®"
msgid "Action (target)"
msgstr "å¨ä½ï¼ç®æ ï¼"
@@ -29,7 +38,7 @@ msgid "Add notification command"
msgstr "æ°å¢éç¥å½ä»¤"
msgid "Aggregate number of connected users"
-msgstr ""
+msgstr "è¿æ¥ç¨æ·æ»æ°"
msgid "Base Directory"
msgstr "åºæ¬ç®å½"
@@ -37,20 +46,23 @@ msgstr "åºæ¬ç®å½"
msgid "Basic monitoring"
msgstr "åºæ¬çæ§"
+msgid "CPU Context Switches Plugin Configuration"
+msgstr "CPU Context Switches æ件é
ç½®"
+
msgid "CPU Frequency"
-msgstr ""
+msgstr "CPU é¢ç"
msgid "CPU Frequency Plugin Configuration"
-msgstr ""
+msgstr "CPU é¢çæ件é
ç½®"
msgid "CPU Plugin Configuration"
-msgstr "CPUæ件é
ç½®"
+msgstr "CPU æ件é
ç½®"
msgid "CSV Output"
-msgstr "CSVè¾åº"
+msgstr "CSV è¾åº"
msgid "CSV Plugin Configuration"
-msgstr "CSVæ件é
ç½®"
+msgstr "CSV æ件é
ç½®"
msgid "Cache collected data for"
msgstr "æ¶éç¼åæ°æ®"
@@ -71,30 +83,33 @@ msgid "CollectTopology"
msgstr "æ¶éææ"
msgid "Collectd Settings"
-msgstr "Collectd设置"
+msgstr "Collectd 设置"
msgid ""
"Collectd is a small daemon for collecting data from various sources through "
"different plugins. On this page you can change general settings for the "
"collectd daemon."
msgstr ""
-"Collectdæ¯ä¸ä¸ªéè¿ä¸åæ件ç¨äºæ¶éåç§æºæ°æ®çå°åå®æ¤ç¨åºãå¨æ¤é¡µé¢ä¸ï¼æ¨å¯"
-"以æ´æ¹Collectdå®æ¤è¿ç¨å¸¸è§è®¾ç½®ã"
+"Collectd æ¯ä¸ä¸ªéè¿ä¸åæ件ç¨äºæ¶éåç§æºæ°æ®çå°åå®æ¤ç¨åºãå¨æ¤é¡µé¢ä¸ï¼æ¨å¯"
+"以æ´æ¹ Collectd å®æ¤è¿ç¨å¸¸è§è®¾ç½®ã"
msgid "Conntrack"
msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
-msgstr "Conntrackæ件设置"
+msgstr "Conntrack æ件é
ç½®"
+
+msgid "Context Switches"
+msgstr "ä¸ä¸æåæ¢"
msgid "DF Plugin Configuration"
-msgstr "DFæ件设置"
+msgstr "DF æ件é
ç½®"
msgid "DNS"
msgstr "DNS"
msgid "DNS Plugin Configuration"
-msgstr "DNSæ件设置"
+msgstr "DNS æ件é
ç½®"
msgid "Data collection interval"
msgstr "æ°æ®æ¶éé´é"
@@ -103,16 +118,16 @@ msgid "Datasets definition file"
msgstr "æ°æ®éå®ä¹æ件"
msgid "Destination ip range"
-msgstr "ç®æ IPåºé´"
+msgstr "ç®æ IP åºé´"
msgid "Directory for collectd plugins"
-msgstr "Collectdæ件ç®å½"
+msgstr "Collectd æ件ç®å½"
msgid "Directory for sub-configurations"
msgstr "åé
ç½®ç®å½"
msgid "Disk Plugin Configuration"
-msgstr "Diskæ件é
ç½®"
+msgstr "Disk æ件é
ç½®"
msgid "Disk Space Usage"
msgstr "ç£ç空é´ä½¿ç¨æ
åµ"
@@ -127,31 +142,31 @@ msgid "Display timespan »"
msgstr "æ¾ç¤ºæ¶é´æ®µ"
msgid "E-Mail Plugin Configuration"
-msgstr "E-Mailæ件é
ç½®"
+msgstr "E-Mail æ件é
ç½®"
msgid "Email"
msgstr "çµåé®ä»¶"
msgid "Empty value = monitor all"
-msgstr ""
+msgstr "ç空 = çæ§ææ"
msgid "Enable this plugin"
msgstr "å¯ç¨è¯¥æ件"
msgid "Entropy"
-msgstr ""
+msgstr "çµ"
msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "çµå¼æ件é
ç½®"
msgid "Exec"
msgstr "Exec"
msgid "Exec Plugin Configuration"
-msgstr "Execæ件é
ç½®"
+msgstr "Exec æ件é
ç½®"
msgid "Filter class monitoring"
-msgstr "Filterç±»çæµ"
+msgstr "Filter ç±»çæµ"
msgid "Firewall"
msgstr "é²ç«å¢"
@@ -163,13 +178,13 @@ msgid "Forwarding between listen and server addresses"
msgstr "转åçå¬æå¡å¨ååºç¨æå¡å¨ä¹é´æ°æ®"
msgid "Gather compression statistics"
-msgstr ""
+msgstr "æ¶éå缩ç»è®¡ä¿¡æ¯"
msgid "General plugins"
-msgstr ""
+msgstr "éç¨æ件"
msgid "Generate a separate graph for each logged user"
-msgstr ""
+msgstr "为æ¯ä¸ªè®°å½çç¨æ·çæä¸ä¸ªåç¬çå¾è¡¨"
msgid "Graphs"
msgstr "å¾è¡¨"
@@ -181,7 +196,7 @@ msgid ""
"Here you can define external commands which will be started by collectd in "
"order to read certain values. The values will be read from stdout."
msgstr ""
-"å¨è¿éï¼ä½ å¯ä»¥å®ä¹å¤é¨å½ä»¤ï¼Collectdå°å¯å¨å½ä»¤æ¥è·åæäºå¼ï¼å°è·åçå¼ä»æ å"
+"å¨è¿éï¼æ¨å¯ä»¥å®ä¹å¤é¨å½ä»¤ï¼Collectd å°å¯å¨å½ä»¤æ¥è·åæäºå¼ï¼å°è·åçå¼ä»æ å"
"è¾åºç«¯å£è¾åºã"
msgid ""
@@ -189,16 +204,16 @@ msgid ""
"certain threshold values have been reached. The values leading to invokation "
"will be feeded to the the called programs stdin."
msgstr ""
-"å¨è¿éï¼ä½ å¯ä»¥å®ä¹å¤é¨å½ä»¤ï¼å½Collectdè¾¾å°ä¸å®éå¼æ¶ï¼å°å¯å¨å½ä»¤ãéå¼å°ä¼ä½"
-"为å½ä»¤çæ åè¾å
¥ã"
+"å¨è¿éï¼æ¨å¯ä»¥å®ä¹å¤é¨å½ä»¤ï¼å½ Collectd è¾¾å°ä¸å®éå¼æ¶ï¼å°å¯å¨å½ä»¤ãéå¼å°ä¼"
+"ä½ä¸ºå½ä»¤çæ åè¾å
¥ã"
msgid ""
"Here you can define various criteria by which the monitored iptables rules "
"are selected."
-msgstr "å¨è¿éï¼ä½ å¯ä»¥å®ä¹åç§çæ§iptablesè§å临çå¼ã"
+msgstr "å¨è¿éï¼æ¨å¯ä»¥å®ä¹åç§çæ§ iptables è§å临çå¼ã"
msgid "Hold Ctrl to select multiple items or to deselect entries."
-msgstr ""
+msgstr "æä½ Ctrl é®æ¥éæ©æåæ¶éæ©å¤ä¸ªé¡¹ç®ã"
msgid "Host"
msgstr "主æº"
@@ -207,10 +222,10 @@ msgid "Hostname"
msgstr "主æºå"
msgid "IP or hostname where to get the txtinfo output from"
-msgstr "è·åtxtinfoè¾åºçIPå°åæ主æºå"
+msgstr "è·å txtinfo è¾åºç IP å°åæ主æºå"
msgid "IRQ Plugin Configuration"
-msgstr "IRQæ件é
ç½®"
+msgstr "IRQ æ件é
ç½®"
msgid "Ignore source addresses"
msgstr "忽ç¥æºå°å"
@@ -219,7 +234,7 @@ msgid "Incoming interface"
msgstr "å
¥æ¥å£"
msgid "Interface Plugin Configuration"
-msgstr "Interfaceæ件é
ç½®"
+msgstr "Interface æ件é
ç½®"
msgid "Interfaces"
msgstr "Interfaces"
@@ -228,10 +243,10 @@ msgid "Interrupts"
msgstr "ä¸æ"
msgid "Interval for pings"
-msgstr "pingé´é"
+msgstr "ping é´é"
msgid "Iptables Plugin Configuration"
-msgstr "Iptablesæ件é
ç½®"
+msgstr "Iptables æ件é
ç½®"
msgid "Leave unselected to automatically determine interfaces to monitor."
msgstr "èªå¨ä¿ç对æªéä¸æ¥å£ççæ§ã"
@@ -246,12 +261,12 @@ msgid "Listener interfaces"
msgstr "çå¬æ¥å£"
msgid "Load Plugin Configuration"
-msgstr "Loadæ件é
ç½®"
+msgstr "Load æ件é
ç½®"
msgid ""
"Max values for a period can be used instead of averages when not using 'only "
"average RRAs'"
-msgstr ""
+msgstr "å¨ä¸ä½¿ç¨âä»
å¹³å RRAâçæ
åµä¸ï¼å¯ä»¥ä½¿ç¨ä¸æ®µæ¶é´çæ大å¼èä¸æ¯å¹³åå¼"
msgid "Maximum allowed connections"
msgstr "æ大å
许è¿æ¥æ°"
@@ -269,10 +284,10 @@ msgid "Monitor all local listen ports"
msgstr "çæµæææ¬å°çå¬ç«¯å£"
msgid "Monitor all sensors"
-msgstr ""
+msgstr "çæ§ææä¼ æå¨"
msgid "Monitor device(s) / thermal zone(s)"
-msgstr ""
+msgstr "çæ§è®¾å¤/温æåºå"
msgid "Monitor devices"
msgstr "çæµè®¾å¤"
@@ -283,6 +298,9 @@ msgstr "çæµç£çåååº"
msgid "Monitor filesystem types"
msgstr "çæµæ件系ç»ç±»å"
+msgid "Monitor host"
+msgstr "çæµä¸»æº"
+
msgid "Monitor hosts"
msgstr "çæµä¸»æº"
@@ -311,24 +329,26 @@ msgid "Netlink"
msgstr "Netlink"
msgid "Netlink Plugin Configuration"
-msgstr "Netlinkæ件é
ç½®"
+msgstr "Netlink æ件é
ç½®"
msgid "Network"
msgstr "Network"
msgid "Network Plugin Configuration"
-msgstr "Networkæ件é
ç½®"
+msgstr "Network æ件é
ç½®"
msgid "Network plugins"
-msgstr "Networkæ件"
+msgstr "Network æ件"
msgid "Network protocol"
-msgstr "Networkåè®®"
+msgstr "Network åè®®"
msgid ""
"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
"directory and all its parent directories need to be world readable."
msgstr ""
+"注æï¼ç±äºé¡µé¢æ¯ä»¥ 'nobody' 身份çæçï¼å æ¤ *.rrd æ件以åå
å«æ¤æ件çææç¶"
+"ç®å½å¿
é¡»å
¨å±å¯è¯»ã"
msgid "Number of threads for data collection"
msgstr "æ¶éç¨åºä½¿ç¨çº¿ç¨æ°"
@@ -337,19 +357,19 @@ msgid "OLSRd"
msgstr "OLSRd"
msgid "OLSRd Plugin Configuration"
-msgstr "OLSRdæ件é
ç½®"
+msgstr "OLSRd æ件é
ç½®"
msgid "Only create average RRAs"
-msgstr "ä»
å建平åRRAs"
+msgstr "ä»
å建平å RRAs"
msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "OpenVPN æ件é
ç½®"
msgid "OpenVPN status files"
-msgstr ""
+msgstr "OpenVPN ç¶ææ件"
msgid "Options"
msgstr "é项"
@@ -358,17 +378,20 @@ msgid "Outgoing interface"
msgstr "åºæ¥å£"
msgid "Output plugins"
-msgstr "Outputæ件"
+msgstr "Output æ件"
msgid "Ping"
msgstr "Ping"
msgid "Ping Plugin Configuration"
-msgstr "Pingæ件é
ç½®"
+msgstr "Ping æ件é
ç½®"
msgid "Port"
msgstr "端å£"
+msgid "Port for apcupsd communication"
+msgstr "apcupsd é信端å£"
+
msgid "Processes"
msgstr "è¿ç¨"
@@ -382,22 +405,22 @@ msgid "Processor"
msgstr "å¤çå¨"
msgid "Qdisc monitoring"
-msgstr "Qdiscçæµ"
+msgstr "Qdisc çæµ"
msgid "RRD XFiles Factor"
-msgstr "RRD XFileså å"
+msgstr "RRD XFiles å å"
msgid "RRD heart beat interval"
-msgstr "RRDå¿è·³é´é"
+msgstr "RRD å¿è·³é´é"
msgid "RRD step interval"
-msgstr "RRDåºé´é´é"
+msgstr "RRD åºé´é´é"
msgid "RRDTool"
msgstr "RRDTool"
msgid "RRDTool Plugin Configuration"
-msgstr "RRDToolæ件é
ç½®"
+msgstr "RRDTool æ件é
ç½®"
msgid "Rows per RRA"
msgstr "è¡/RRA"
@@ -409,13 +432,13 @@ msgid "Seconds"
msgstr "ç§"
msgid "Sensor list"
-msgstr ""
+msgstr "ä¼ æå¨å表"
msgid "Sensors"
-msgstr ""
+msgstr "ä¼ æå¨"
msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "Sensors æ件é
ç½®"
msgid "Server host"
msgstr "æå¡å¨ä¸»æº"
@@ -424,13 +447,13 @@ msgid "Server port"
msgstr "æå¡å¨ç«¯å£"
msgid "Setup"
-msgstr ""
+msgstr "设置"
msgid "Shaping class monitoring"
msgstr "æ´å½¢ç±»çæ§"
msgid "Show max values instead of averages"
-msgstr ""
+msgstr "æ¾ç¤ºæ大å¼èä¸æ¯å¹³åå¼"
msgid "Socket file"
msgstr "å¥æ¥åæ件"
@@ -442,7 +465,7 @@ msgid "Socket permissions"
msgstr "å¥æ¥åæé"
msgid "Source ip range"
-msgstr "æºIPåºé´"
+msgstr "æº IP åºé´"
msgid "Specifies what information to collect about links."
msgstr "æ¶éæå®é¾æ¥ç¸å
³ä¿¡æ¯ã"
@@ -454,10 +477,10 @@ msgid "Specifies what information to collect about the global topology."
msgstr "æ¶éæå®ææç¸å
³ä¿¡æ¯ã"
msgid "Splash Leases"
-msgstr ""
+msgstr "Splash Leases"
msgid "Splash Leases Plugin Configuration"
-msgstr ""
+msgstr "Splash Leases æ件é
ç½®"
msgid "Statistics"
msgstr "ç»è®¡"
@@ -466,7 +489,7 @@ msgid "Storage directory"
msgstr "åå¨ç®å½"
msgid "Storage directory for the csv files"
-msgstr "csvåå¨ç®å½"
+msgstr "csv åå¨ç®å½"
msgid "Store data values as rates instead of absolute values"
msgstr "åå¨æ°æ®å¼ååéèä¸æ¯ç»å¯¹å¼"
@@ -478,40 +501,43 @@ msgid "System Load"
msgstr "ç³»ç»å è½½"
msgid "TCP Connections"
-msgstr "TCPè¿æ¥æ°"
+msgstr "TCP è¿æ¥æ°"
msgid "TCPConns Plugin Configuration"
-msgstr "TCPConnsæ件é
ç½®"
+msgstr "TCPConns æ件é
ç½®"
msgid "TTL for network packets"
-msgstr "ç½ç»å
TTL"
+msgstr "ç½ç»å
TTL"
msgid "TTL for ping packets"
-msgstr "pingå
TTL"
+msgstr "ping å
TTL"
msgid "Table"
msgstr "表"
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr "APCUPS æ件æ¶é APC UPS çç»è®¡ä¿¡æ¯ã"
+
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
-msgstr "NUTæ件读åUPSä¿¡æ¯ã"
+msgstr "NUT æ件读å UPS ä¿¡æ¯ã"
msgid ""
"The OLSRd plugin reads information about meshed networks from the txtinfo "
"plugin of OLSRd."
-msgstr "OLSRdæ件éè¿txtinfoè·åmeshedç½ç»ä¿¡æ¯ã"
+msgstr "OLSRd æ件éè¿ txtinfo è·å meshed ç½ç»ä¿¡æ¯ã"
msgid ""
"The OpenVPN plugin gathers information about the current vpn connection "
"status."
-msgstr ""
+msgstr "OpenVPN æ件å¯ä»¥è·å VPN è¿æ¥å½åç¶æ"
msgid ""
"The conntrack plugin collects statistics about the number of tracked "
"connections."
-msgstr "conntrackæ件è·åè¿æ¥æ°ä¿¡æ¯ã"
+msgstr "conntrack æ件è·åè¿æ¥æ°ä¿¡æ¯ã"
msgid "The cpu plugin collects basic statistics about the processor usage."
-msgstr "cpuæ件è·åå¤çå¨ç¸å
³ä¿¡æ¯ã"
+msgstr "cpu æ件è·åå¤çå¨ç¸å
³ä¿¡æ¯ã"
msgid ""
"The csv plugin stores collected data in csv file format for further "
@@ -521,17 +547,17 @@ msgstr "csvæ件ç¨äºåå¨æ°æ®ï¼ä»¥æ¹ä¾¿å
¶ä»ç¨åºå¤çæ°æ®ã"
msgid ""
"The df plugin collects statistics about the disk space usage on different "
"devices, mount points or filesystem types."
-msgstr "dfæ件æ¶éç£ç空é´ä½¿ç¨æ
åµï¼æè½½ç¹åæ件系ç»ç¸å
³ä¿¡æ¯ã"
+msgstr "df æ件æ¶éç£ç空é´ä½¿ç¨æ
åµãæè½½ç¹åæ件系ç»ç¸å
³ä¿¡æ¯ã"
msgid ""
"The disk plugin collects detailled usage statistics for selected partitions "
"or whole disks."
-msgstr "diskæ件æ¶éç£çååºä½¿ç¨æ
åµåç¸å
³ä¿¡æ¯ã"
+msgstr "disk æ件æ¶éç£çååºä½¿ç¨æ
åµåç¸å
³ä¿¡æ¯ã"
msgid ""
"The dns plugin collects detailled statistics about dns related traffic on "
"selected interfaces."
-msgstr "dnsæ件æ¶édnsæ°æ®æµç¸å
³ä¿¡æ¯ã"
+msgstr "dns æ件æ¶é dns æ°æ®æµç¸å
³ä¿¡æ¯ã"
msgid ""
"The email plugin creates a unix socket which can be used to transmit email-"
@@ -539,50 +565,50 @@ msgid ""
"to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can "
"be used in other ways as well."
msgstr ""
-"é®ä»¶æ件å建ä¸ä¸ªunixå¥æ¥åç¨äºä¸ºCollectdå®æ¤è¿ç¨åéç»è®¡ä¿¡æ¯å°çµåé®ä»¶ç³»ç»ã"
-"è¿ä¸ªæ件主è¦ç®çæ¯ç»å使ç¨Mail::SpamAssasin::Pulgin::Collectdï¼ä½å¯ä»¥ç¨å¨å
¶ä»"
-"æ¹é¢ã"
+"é®ä»¶æ件å建ä¸ä¸ª unix å¥æ¥åç¨äºä¸º Collectd å®æ¤è¿ç¨åéç»è®¡ä¿¡æ¯å°çµåé®ä»¶ç³»"
+"ç»ãè¿ä¸ªæ件主è¦ç®çæ¯ç»åä½¿ç¨ Mail::SpamAssasin::Pulgin::Collectdï¼ä½å¯ä»¥ç¨"
+"å¨å
¶ä»æ¹é¢ã"
msgid "The entropy plugin collects statistics about the available entropy."
-msgstr ""
+msgstr "entropy æ件æ¶éå¯ç¨çµçç»è®¡ä¿¡æ¯ã"
msgid ""
"The exec plugin starts external commands to read values from or to notify "
"external processes when certain threshold values have been reached."
msgstr ""
-"execæ件ï¼ç¨äºå½æäºçæ§å¼å·²å°è¾¾éå¼æ¶ï¼å¯å¨å¤é¨å½ä»¤è¯»å¼æéç¥å¤é¨ç¨åºã"
+"exec æ件ç¨äºå½æäºçæ§å¼å·²å°è¾¾éå¼æ¶ï¼å¯å¨å¤é¨å½ä»¤è¯»å¼æéç¥å¤é¨ç¨åºã"
msgid ""
"The interface plugin collects traffic statistics on selected interfaces."
-msgstr "Interfaceæ件ï¼ç¨äºæ¶ééå®æ¥å£çæ°æ®å
çç»è®¡ä¿¡æ¯ã"
+msgstr "Interface æ件ç¨äºæ¶ééå®æ¥å£çæ°æ®å
çç»è®¡ä¿¡æ¯ã"
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
"informations about processed bytes and packets per rule."
-msgstr "iptablesæ件ï¼å°çæµéå®é²ç«å¢è§ååæ¶éå
³äºæ¯ä¸ªè§åå¤ççæ°æ®å
ä¿¡æ¯ã"
+msgstr "iptables æ件å°çæµéå®é²ç«å¢è§ååæ¶éå
³äºæ¯ä¸ªè§åå¤ççæ°æ®å
ä¿¡æ¯ã"
msgid ""
"The irq plugin will monitor the rate of issues per second for each selected "
"interrupt. If no interrupt is selected then all interrupts are monitored."
msgstr ""
-"irqæ件ï¼ç¨äºçæ§éå®ä¸æçæ¯ç§é产ççä¸ææ°ãå¦æ没æä¸æ被éä¸ï¼å表示对æ"
+"irq æ件ç¨äºçæ§éå®ä¸æçæ¯ç§é产ççä¸ææ°ãå¦æ没æä¸æ被éä¸ï¼å表示对æ"
"æä¸æè¿è¡çæµã"
msgid ""
"The iwinfo plugin collects statistics about wireless signal strength, noise "
"and quality."
-msgstr "iwinfoæ件ï¼æ¶éæ 线信å·å¼ºåº¦ãåªå£°åè´¨éçç»è®¡ä¿¡æ¯ã"
+msgstr "iwinfo æ件æ¶éæ 线信å·å¼ºåº¦ãåªå£°åè´¨éçç»è®¡ä¿¡æ¯ã"
msgid "The load plugin collects statistics about the general system load."
-msgstr "loadæ件ï¼æ¶é常è§ç³»ç»å è½½ç»è®¡ä¿¡æ¯ã"
+msgstr "load æ件æ¶é常è§ç³»ç»å è½½ç»è®¡ä¿¡æ¯ã"
msgid "The memory plugin collects statistics about the memory usage."
-msgstr "memoryæ件ï¼æ¶éå
³äºå
å使ç¨æ
åµçç»è®¡ä¿¡æ¯ã"
+msgstr "memory æ件æ¶éå
³äºå
å使ç¨æ
åµçç»è®¡ä¿¡æ¯ã"
msgid ""
"The netlink plugin collects extended informations like qdisc-, class- and "
"filter-statistics for selected interfaces."
-msgstr "netlinkæ件ï¼æ¶é为éå®æ¥å£qdisc-ãclass-åfilter- çæ©å±æ°æ®ã"
+msgstr "netlink æ件æ¶é为éå®æ¥å£ qdisc-ãclass- å filter- çæ©å±æ°æ®ã"
msgid ""
"The network plugin provides network based communication between different "
@@ -590,19 +616,19 @@ msgid ""
"client mode locally collected data is transferred to a collectd server "
"instance, in server mode the local instance receives data from other hosts."
msgstr ""
-"networkæ件,æä¾äºåºäºç½ç»çä¸åCollectdå®ä¾ãCollectdå¯ä»¥å·¥ä½å¨å®¢æ·ç«¯åæå¡"
-"å¨ä¸¤ä¸ªæ¨¡å¼ãå¨å®¢æ·ç«¯æ¨¡å¼ä¸æ¶éæ¬å°ä¿¡æ¯ï¼ç¶å转移å°ä¸ä¸ªCollectdæå¡å¨å®ä¾ä¸,å¨"
-"æå¡å¨æ¨¡å¼å°ä»å
¶ä»ä¸»æºæ¶éä¿¡æ¯ã"
+"network æ件æä¾äºåºäºç½ç»çä¸å Collectd å®ä¾ãCollectd å¯ä»¥å·¥ä½å¨å®¢æ·ç«¯åæ"
+"å¡å¨ä¸¤ä¸ªæ¨¡å¼ãå¨å®¢æ·ç«¯æ¨¡å¼ä¸æ¶éæ¬å°ä¿¡æ¯ï¼ç¶å转移å°ä¸ä¸ª Collectd æå¡å¨å®ä¾"
+"ä¸,å¨æå¡å¨æ¨¡å¼å°ä»å
¶ä»ä¸»æºæ¶éä¿¡æ¯ã"
msgid ""
"The ping plugin will send icmp echo replies to selected hosts and measure "
"the roundtrip time for each host."
-msgstr "pingæ件ï¼å°åéicmp echo replieså°éå®ä¸»æºæ¥æµéæ¯å°ä¸»æºçååºæ¶é´ã"
+msgstr "ping æ件å°åé icmp echo replies å°éå®ä¸»æºæ¥æµéæ¯å°ä¸»æºçååºæ¶é´ã"
msgid ""
"The processes plugin collects informations like cpu time, page faults and "
"memory usage of selected processes."
-msgstr "processesæ件ï¼æ¶ééå®è¿ç¨çcpuæ¶é´ã页é¢é误åå
å使ç¨ä¿¡æ¯ã"
+msgstr "processes æ件æ¶ééå®è¿ç¨ç cpu æ¶é´ã页é¢é误åå
å使ç¨ä¿¡æ¯ã"
msgid ""
"The rrdtool plugin stores the collected data in rrd database files, the "
@@ -610,62 +636,70 @@ msgid ""
"values will result in a very high memory consumption in the temporary "
"directory. This can render the device unusable!"
msgstr ""
-"rrdtoolæ件ï¼å°æ¶éæ°æ®ä»¥å¾è¡¨çå½¢å¼å¨åå¨RRDæ°æ®åºæ件ä¸ãè¦åï¼é误çåæ°è®¾ç½®ï¼å°å¯¼è´é常é«ç临æ¶å
åæ¶èãè¿å¯è½ä¼ä½¿è®¾å¤æ æ³"
"使ç¨ï¼ "
msgid ""
"The sensors plugin uses the Linux Sensors framework to gather environmental "
"statistics."
-msgstr ""
+msgstr "sensors æä»¶ä½¿ç¨ Linux Sensors æ¡æ¶æ¥æ¶éç¯å¢ç»è®¡ä¿¡æ¯ã"
msgid ""
"The splash leases plugin uses libuci to collect statistics about splash "
"leases."
-msgstr ""
+msgstr "splash leases æä»¶ä½¿ç¨ libuci æ¥æ¶é splash leases çç»è®¡ä¿¡æ¯ã"
msgid ""
"The statistics package uses Collectd "
"to gather data and RRDtool to "
"render diagram images."
msgstr ""
+"Statistics 软件å
ä½¿ç¨ Collectd æ¥æ¶éæ°"
+"æ®ï¼å¹¶ç¨ RRDtool çæç»è®¡å¾"
+"表ã"
msgid ""
"The tcpconns plugin collects informations about open tcp connections on "
"selected ports."
-msgstr "tcpconnsæ件ï¼æ¶ééå®ç«¯å£TCPè¿æ¥ä¿¡æ¯ã"
+msgstr "tcpconns æ件æ¶ééå®ç«¯å£ TCP è¿æ¥ä¿¡æ¯ã"
msgid ""
"The thermal plugin will monitor temperature of the system. Data is typically "
"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
"read, e.g. thermal_zone1 )"
msgstr ""
+"thermal æ件å°ä¼çæ§ç³»ç»æ¸©åº¦ãæ°æ®ä¸»è¦åèª /sys/class/thermal/*/temp ('*' 表"
+"示温æ设å¤çååï¼æ¯å¦ thermal_zone1) ã"
msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
-msgstr "unixsockæ件ï¼å建ä¸ä¸ªunixå¥æ¥åå¯ç¨äºè¯»åCollectdå®ä¾çæ¶éä¿¡æ¯ã"
+msgstr "unixsock æ件å建ä¸ä¸ª unix å¥æ¥åå¯ç¨äºè¯»å Collectd å®ä¾çæ¶éä¿¡æ¯ã"
msgid "The uptime plugin collects statistics about the uptime of the system."
-msgstr ""
+msgstr "uptime æ件æ¶éç³»ç»å¯å¨æ¶é´çç»è®¡ä¿¡æ¯ã"
msgid "Thermal"
-msgstr ""
+msgstr "温æ"
msgid "Thermal Plugin Configuration"
-msgstr ""
+msgstr "温ææ件é
ç½®"
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr "æ¤æ件æ¶éå¤çå¨ä¸ä¸æåæ¢çç»è®¡ä¿¡æ¯ã"
msgid "This plugin collects statistics about the processor frequency scaling."
-msgstr ""
+msgstr "æ¤æ件æ¶éå¤çå¨é¢çè°æ´çç»è®¡ä¿¡æ¯ã"
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
-msgstr "å®ä¹Collectdå°çå¬åªä¸ªæ¥å£æ¥ä¼ å
¥è¿æ¥æ¶éæ°æ®ã"
+msgstr "å®ä¹ Collectd å°çå¬åªä¸ªæ¥å£æ¥ä¼ å
¥è¿æ¥æ¶éæ°æ®ã"
msgid ""
"This section defines to which servers the locally collected data is sent to."
-msgstr "å®ä¹æ¬å°æ¶éæ°æ®è¢«åéå°åªå°Collectedæå¡å¨ã"
+msgstr "å®ä¹æ¬å°æ¶éæ°æ®è¢«åéå°åªå° Collected æå¡å¨ã"
msgid "Try to lookup fully qualified hostname"
msgstr "å°è¯è§£æ主æºå
¨åå"
@@ -674,28 +708,28 @@ msgid "UPS"
msgstr "UPS"
msgid "UPS Plugin Configuration"
-msgstr "UPSæ件é
ç½®"
+msgstr "UPS æ件é
ç½®"
msgid "UPS name in NUT ups@host format"
-msgstr "UPSå使ç¨NUTï¼Network UPS Toolsï¼æ ¼å¼ï¼ups@host"
+msgstr "UPS åä½¿ç¨ NUTï¼Network UPS Toolsï¼æ ¼å¼ï¼ups@host"
msgid "UnixSock"
msgstr "UnixSock"
msgid "Unixsock Plugin Configuration"
-msgstr "Unixsockæ件é
ç½®"
+msgstr "Unixsock æ件é
ç½®"
msgid "Uptime"
-msgstr ""
+msgstr "è¿è¡æ¶é´"
msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "è¿è¡æ¶é´æ件é
ç½®"
msgid "Use improved naming schema"
-msgstr ""
+msgstr "使ç¨æ´é«çº§çå½åè§å"
msgid "Used PID file"
-msgstr "æ£å¨ä½¿ç¨çPIDæ件"
+msgstr "æ£å¨ä½¿ç¨ç PID æ件"
msgid "User"
msgstr "ç¨æ·"
@@ -707,11 +741,11 @@ msgid "Wireless"
msgstr "æ 线"
msgid "Wireless iwinfo Plugin Configuration"
-msgstr "æ 线iwinfoæ件é
ç½®"
+msgstr "æ 线 iwinfo æ件é
ç½®"
msgid ""
"You can install additional collectd-mod-* plugins to enable more statistics."
-msgstr ""
+msgstr "æ¨å¯ä»¥å®è£
æ´å¤ç collectd-mod-* æ件以è·å¾æ´å¤çç»è®¡æ°æ®ã"
msgid "e.g. br-ff"
msgstr "ä¾å¦ï¼br-ff"
@@ -723,10 +757,10 @@ msgid "e.g. reject-with tcp-reset"
msgstr "ä¾å¦ï¼eject-with tcp-reset"
msgid "max. 16 chars"
-msgstr "æé¿16个å符"
+msgstr "æé¿ 16 个å符"
msgid "reduces rrd size"
-msgstr "åå°rrd大å°"
+msgstr "åå° rrd 大å°"
msgid "seconds; multiple separated by space"
msgstr "ç§æ°ï¼å¤ä¸ªä½¿ç¨ç©ºæ ¼åé"
diff --git a/applications/luci-app-statistics/po/zh-tw/rrdtool.po b/applications/luci-app-statistics/po/zh-tw/rrdtool.po
index 9245260b4c..ad5eb5b584 100644
--- a/applications/luci-app-statistics/po/zh-tw/rrdtool.po
+++ b/applications/luci-app-statistics/po/zh-tw/rrdtool.po
@@ -1,355 +1,362 @@
# rrdtool.pot
# generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Content-Type: text/plain; charset=ASCII\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-10-29 15:39+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"POT-Creation-Date: \n"
#. %H: Wireless - Signal Noise Ratio
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:1
msgid "stat_dg_title_wireless__signal_noise"
-msgstr ""
+msgstr "ç¡ç·è¨èåªé³"
#. dBm
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:2
msgid "stat_dg_label_wireless__signal_noise"
-msgstr ""
+msgstr "ä¿¡åªæ¯"
#. Noise Level
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:3
msgid "stat_ds_signal_noise"
-msgstr ""
+msgstr "è¨èåªé³"
#. Signal Strength
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:4
msgid "stat_ds_signal_power"
-msgstr ""
+msgstr "è¨è強度"
#. %H: Wireless - Signal Quality
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:5
msgid "stat_dg_title_wireless__signal_quality"
-msgstr ""
+msgstr "%Hï¼ç¡ç· - è¨è質é"
#. n
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:6
msgid "stat_dg_label_wireless__signal_quality"
-msgstr ""
+msgstr "n"
#. Signal Quality
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:7
msgid "stat_ds_signal_quality"
-msgstr ""
+msgstr "è¨è質é"
#. %H: ICMP Roundtrip Times
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:8
msgid "stat_dg_title_ping"
-msgstr ""
+msgstr "%Hï¼ICMP å¾è¿æé"
#. ms
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:9
msgid "stat_dg_label_ping"
-msgstr ""
+msgstr "é¿æ"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:10
msgid "stat_ds_ping"
-msgstr ""
+msgstr "%di"
#. %H: Firewall - Processed Packets
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:11
msgid "stat_dg_title_iptables__ipt_packets"
-msgstr ""
+msgstr "%Hï¼é²ç«ç - å·²èççè³æå
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:12
msgid "stat_dg_label_iptables__ipt_packets"
-msgstr ""
+msgstr "å
/s"
#. Chain \"%di\"
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:13
msgid "stat_ds_ipt_packets"
-msgstr ""
+msgstr "éâ%diâ"
#. %H: Netlink - Transfer on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:14
msgid "stat_dg_title_netlink__if_octets"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸çè³æå³è¼¸"
#. Bytes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:15
msgid "stat_dg_label_netlink__if_octets"
-msgstr ""
+msgstr "ä½å
çµ/ç§"
#. Bytes (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:16
msgid "stat_ds_if_octets"
-msgstr ""
+msgstr "ä½å
çµ (%ds)"
#. %H: Netlink - Packets on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:17
msgid "stat_dg_title_netlink__if_packets"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi çè³æå
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:18
msgid "stat_dg_label_netlink__if_packets"
-msgstr ""
+msgstr "å
/s"
#. Processed (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:19
msgid "stat_ds_if_packets"
-msgstr ""
+msgstr "å·²èç (%ds)"
#. Dropped (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:20
msgid "stat_ds_if_dropped"
-msgstr ""
+msgstr "ä¸æ£ (%ds)"
#. Errors (%ds)
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:21
msgid "stat_ds_if_errors"
-msgstr ""
+msgstr "é¯èª¤ (%ds)"
#. %H: Netlink - Multicast on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:22
msgid "stat_dg_title_netlink__if_multicast"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸çå¤æ"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:23
msgid "stat_dg_label_netlink__if_multicast"
-msgstr ""
+msgstr "å
/s"
#. Packets
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:24
msgid "stat_ds_if_multicast"
-msgstr ""
+msgstr "è³æå
"
#. %H: Netlink - Collisions on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:25
msgid "stat_dg_title_netlink__if_collisions"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸ç Collisions"
#. Collisions/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:26
msgid "stat_dg_label_netlink__if_collisions"
-msgstr ""
+msgstr "碰æ/s"
#. Collisions
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:27
msgid "stat_ds_if_collisions"
-msgstr ""
+msgstr "碰æ"
#. %H: Netlink - Errors on %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:28
msgid "stat_dg_title_netlink__if_tx_errors"
-msgstr ""
+msgstr "%Hï¼Netlink - %pi ä¸ç¼ççé¯èª¤"
#. Errors/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:29
msgid "stat_dg_label_netlink__if_tx_errors"
-msgstr ""
+msgstr "é¯èª¤/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:30
msgid "stat_ds_if_tx_errors"
-msgstr ""
+msgstr "%di"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:31
msgid "stat_ds_if_rx_errors"
-msgstr ""
+msgstr "%di"
#. %H: Processes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:32
msgid "stat_dg_title_processes"
-msgstr ""
+msgstr "%Hï¼ç¨åº"
#. Processes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:33
msgid "stat_dg_label_processes"
-msgstr ""
+msgstr "ç¨åº/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:34
msgid "stat_ds_ps_state"
-msgstr ""
+msgstr "%di"
#. %H: Process %pi - used cpu time
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35
msgid "stat_dg_title_processes__ps_cputime"
-msgstr ""
+msgstr "%Hï¼ç¨åº %s - ä½ç¨ç CPU æé"
#. Jiffies
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36
msgid "stat_dg_label_processes__ps_cputime"
-msgstr ""
+msgstr "Jiffies"
#. system
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:37
msgid "stat_ds_ps_cputime__syst"
-msgstr ""
+msgstr "系統"
#. user
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:38
msgid "stat_ds_ps_cputime__user"
-msgstr ""
+msgstr "使ç¨è
"
#. %H: Process %pi - threads and processes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39
msgid "stat_dg_title_processes__ps_count"
-msgstr ""
+msgstr "%Hï¼ç¨åº %pi - ç¨åºèå·è¡ç·"
#. Count
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:40
msgid "stat_dg_label_processes__ps_count"
-msgstr ""
+msgstr "å"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:41
msgid "stat_ds_ps_count"
-msgstr ""
+msgstr "%ds"
#. %H: Process %pi - page faults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:42
msgid "stat_dg_title_processes__ps_pagefaults"
-msgstr ""
+msgstr "%Hï¼ç¨åº %pi - åé é¯èª¤"
#. Pagefaults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:43
msgid "stat_dg_label_processes__ps_pagefaults"
-msgstr ""
+msgstr "åé é¯èª¤"
#. page faults
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:44
msgid "stat_ds_ps_pagefaults"
-msgstr ""
+msgstr "åé é¯èª¤"
#. %H: Process %pi - virtual memory size
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:45
msgid "stat_dg_title_processes__ps_rss"
-msgstr ""
+msgstr "%Hï¼ç¨åº %pi - èæ¬è¨æ¶é«å¤§å°"
#. Bytes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:46
msgid "stat_dg_label_processes__ps_rss"
-msgstr ""
+msgstr "ä½å
çµ"
#. virtual memory
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:47
msgid "stat_ds_ps_rss"
-msgstr ""
+msgstr "èæ¬è¨æ¶é«"
#. %H: Usage on Processor #%pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:48
msgid "stat_dg_title_cpu"
-msgstr ""
+msgstr "%Hï¼å°èçå¨ #%pi çä½ç¨"
#. %
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:49
msgid "stat_dg_label_cpu"
-msgstr ""
+msgstr "%"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:50
msgid "stat_ds_cpu"
-msgstr ""
+msgstr "%di"
#. %H: Transfer on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:51
msgid "stat_dg_title_interface__if_octets"
-msgstr ""
+msgstr "%Hï¼%di ä¸çè³æå³è¼¸æ
æ³"
#. Bytes/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:52
msgid "stat_dg_label_interface__if_octets"
-msgstr ""
+msgstr "ä½å
çµ/ç§"
#. %H: Packets on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:53
msgid "stat_dg_title_interface__if_packets"
-msgstr ""
+msgstr "%Hï¼%di ä¸çè³æå
"
#. Packets/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:54
msgid "stat_dg_label_interface__if_packets"
-msgstr ""
+msgstr "å
/s"
#. %H: TCP-Connections to Port %pi
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:55
msgid "stat_dg_title_tcpconns"
-msgstr ""
+msgstr "%Hï¼å°å %pi ç TCP é£ç·"
#. Connections/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:56
msgid "stat_dg_label_tcpconns"
-msgstr ""
+msgstr "é£ç·/ç§"
#. %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:57
msgid "stat_ds_tcp_connections"
-msgstr ""
+msgstr "%di"
#. %H: Disk Space Usage on %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:58
msgid "stat_dg_title_df"
-msgstr ""
+msgstr "%Hï¼%di ä¸çç£ç¢ä½ç¨æ
æ³"
#. Bytes
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:59
msgid "stat_dg_label_df"
-msgstr ""
+msgstr "ä½å
çµ"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:60
msgid "stat_ds_df__free"
-msgstr ""
+msgstr "%ds"
#. %ds
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:61
msgid "stat_ds_df__used"
-msgstr ""
+msgstr "%ds"
#. %H: Interrupts
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:62
msgid "stat_dg_title_irq"
-msgstr ""
+msgstr "%Hï¼ä¸æ·"
#. Issues/s
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:63
msgid "stat_dg_label_irq"
-msgstr ""
+msgstr "ä¸æ·/s"
#. IRQ %di
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:64
msgid "stat_ds_irq"
-msgstr ""
+msgstr "IRQ %di"
#. %H: System Load
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:65
msgid "stat_dg_title_load"
-msgstr ""
+msgstr "%Hï¼ç³»çµ±è² è¼"
#. Load
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:66
msgid "stat_dg_label_load"
-msgstr ""
+msgstr "è² è¼"
#. 1 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:67
msgid "stat_ds_load__shortterm"
-msgstr ""
+msgstr "1 åé"
#. 5 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:68
msgid "stat_ds_load__midterm"
-msgstr ""
+msgstr "5 åé"
#. 15 min
#: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:69
msgid "stat_ds_load__longterm"
-msgstr ""
+msgstr "15 åé"
diff --git a/applications/luci-app-statistics/po/zh-tw/statistics.po b/applications/luci-app-statistics/po/zh-tw/statistics.po
index f9e72b54dd..73c9d7b071 100644
--- a/applications/luci-app-statistics/po/zh-tw/statistics.po
+++ b/applications/luci-app-statistics/po/zh-tw/statistics.po
@@ -1,525 +1,563 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-06-10 03:40+0200\n"
+"PO-Revision-Date: 2017-10-29 15:50+0800\n"
+"Last-Translator: Yangfl \n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Language-Team: \n"
+
+msgid "APC UPS"
+msgstr "APC UPS"
+
+msgid "APCUPS Plugin Configuration"
+msgstr "APCUPS å¤æé
ç½®"
msgid "Action (target)"
-msgstr ""
+msgstr "åä½ï¼ç®æ¨ï¼"
msgid "Add command for reading values"
-msgstr ""
+msgstr "æ°å¢å½ä»¤è®åè³æ"
msgid "Add matching rule"
-msgstr ""
+msgstr "æ°å¢å¹é
è¦å"
msgid "Add multiple hosts separated by space."
-msgstr ""
+msgstr "使ç¨ç©ºæ ¼åéå¤å主æ©"
msgid "Add notification command"
-msgstr ""
+msgstr "æ°å¢éç¥å½ä»¤"
msgid "Aggregate number of connected users"
-msgstr ""
+msgstr "é£ç·ä½¿ç¨è
總æ¸"
msgid "Base Directory"
-msgstr ""
+msgstr "åºæ¬ç®é"
msgid "Basic monitoring"
-msgstr ""
+msgstr "åºæ¬ç£æ§"
+
+msgid "CPU Context Switches Plugin Configuration"
+msgstr "CPU Context Switches å¤æé
ç½®"
msgid "CPU Frequency"
-msgstr ""
+msgstr "CPU é »ç"
msgid "CPU Frequency Plugin Configuration"
-msgstr ""
+msgstr "CPU é »çå¤æé
ç½®"
msgid "CPU Plugin Configuration"
-msgstr ""
+msgstr "CPU å¤æé
ç½®"
msgid "CSV Output"
-msgstr ""
+msgstr "CSV 輸åº"
msgid "CSV Plugin Configuration"
-msgstr ""
+msgstr "CSV å¤æé
ç½®"
msgid "Cache collected data for"
-msgstr ""
+msgstr "æ¶éå¿«åè³æ"
msgid "Cache flush interval"
-msgstr ""
+msgstr "å¿«åæ¸
空éé"
msgid "Chain"
-msgstr ""
+msgstr "é"
msgid "CollectLinks"
-msgstr ""
+msgstr "æ¶éé£çµ"
msgid "CollectRoutes"
-msgstr ""
+msgstr "æ¶éè·¯ç±"
msgid "CollectTopology"
-msgstr ""
+msgstr "æ¶éææ²"
msgid "Collectd Settings"
-msgstr ""
+msgstr "Collectd è¨å®"
msgid ""
"Collectd is a small daemon for collecting data from various sources through "
"different plugins. On this page you can change general settings for the "
"collectd daemon."
msgstr ""
+"Collectd æ¯ä¸åééä¸åå¤æç¨æ¼æ¶éå種æºè³æçå°åå®è·ç¨å¼ãå¨æ¤é é¢ä¸ï¼æ¨å¯"
+"以æ´æ¹ Collectd å®è·ç¨åºå¸¸è¦è¨å®ã"
msgid "Conntrack"
-msgstr ""
+msgstr "Conntrack"
msgid "Conntrack Plugin Configuration"
-msgstr ""
+msgstr "Conntrack å¤æé
ç½®"
+
+msgid "Context Switches"
+msgstr "ä¸ä¸æåæ"
msgid "DF Plugin Configuration"
-msgstr ""
+msgstr "DF å¤æé
ç½®"
msgid "DNS"
-msgstr ""
+msgstr "DNS"
msgid "DNS Plugin Configuration"
-msgstr ""
+msgstr "DNS å¤æé
ç½®"
msgid "Data collection interval"
-msgstr ""
+msgstr "è³ææ¶ééé"
msgid "Datasets definition file"
-msgstr ""
+msgstr "è³æéå®ç¾©æªæ¡"
msgid "Destination ip range"
-msgstr ""
+msgstr "ç®æ¨ IP åé"
msgid "Directory for collectd plugins"
-msgstr ""
+msgstr "Collectd å¤æç®é"
msgid "Directory for sub-configurations"
-msgstr ""
+msgstr "åé
ç½®ç®é"
msgid "Disk Plugin Configuration"
-msgstr ""
+msgstr "Disk å¤æé
ç½®"
msgid "Disk Space Usage"
-msgstr ""
+msgstr "ç£ç¢ç©ºé使ç¨æ
æ³"
msgid "Disk Usage"
-msgstr ""
+msgstr "ç£ç¢ä½¿ç¨æ
æ³"
msgid "Display Host »"
-msgstr ""
+msgstr "顯示主æ©"
msgid "Display timespan »"
-msgstr ""
+msgstr "顯示æé段"
msgid "E-Mail Plugin Configuration"
-msgstr ""
+msgstr "E-Mail å¤æé
ç½®"
msgid "Email"
-msgstr ""
+msgstr "é»åéµä»¶"
msgid "Empty value = monitor all"
-msgstr ""
+msgstr "ç空 = ç£æ§ææ"
msgid "Enable this plugin"
-msgstr ""
+msgstr "åç¨è©²å¤æ"
msgid "Entropy"
-msgstr ""
+msgstr "çµ"
msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "çµå¼å¤æé
ç½®"
msgid "Exec"
-msgstr ""
+msgstr "Exec"
msgid "Exec Plugin Configuration"
-msgstr ""
+msgstr "Exec å¤æé
ç½®"
msgid "Filter class monitoring"
-msgstr ""
+msgstr "Filter é¡ç£æ¸¬"
msgid "Firewall"
-msgstr ""
+msgstr "é²ç«ç"
msgid "Flush cache after"
-msgstr ""
+msgstr "æ¸
空快åå¾"
msgid "Forwarding between listen and server addresses"
-msgstr ""
+msgstr "è½ç¼ç£è½ä¼ºæå¨åæç¨ä¼ºæå¨ä¹éè³æ"
msgid "Gather compression statistics"
-msgstr ""
+msgstr "æ¶éå£ç¸®çµ±è¨è³è¨"
msgid "General plugins"
-msgstr ""
+msgstr "éç¨å¤æ"
msgid "Generate a separate graph for each logged user"
-msgstr ""
+msgstr "çºæ¯åè¨éç使ç¨è
çæä¸åå®ç¨çå表"
msgid "Graphs"
-msgstr ""
+msgstr "å表"
msgid "Group"
-msgstr ""
+msgstr "çµ"
msgid ""
"Here you can define external commands which will be started by collectd in "
"order to read certain values. The values will be read from stdout."
msgstr ""
+"å¨é裡ï¼æ¨å¯ä»¥å®ç¾©å¤é¨å½ä»¤ï¼Collectd å°ååå½ä»¤ä¾ç²åæäºå¼ï¼å°ç²åçå¼å¾æ¨æº"
+"輸åºå 輸åºã"
msgid ""
"Here you can define external commands which will be started by collectd when "
"certain threshold values have been reached. The values leading to invokation "
"will be feeded to the the called programs stdin."
msgstr ""
+"å¨é裡ï¼æ¨å¯ä»¥å®ç¾©å¤é¨å½ä»¤ï¼ç¶ Collectd éå°ä¸å®é¾å¼æï¼å°ååå½ä»¤ãé¥å¼å°æ"
+"ä½çºå½ä»¤çæ¨æºè¼¸å
¥ã"
msgid ""
"Here you can define various criteria by which the monitored iptables rules "
"are selected."
-msgstr ""
+msgstr "å¨é裡ï¼æ¨å¯ä»¥å®ç¾©å種ç£æ§ iptables è¦åè¨çå¼ã"
msgid "Hold Ctrl to select multiple items or to deselect entries."
-msgstr ""
+msgstr "æä½ Ctrl éµä¾é¸ææåæ¶é¸æå¤åå°æ¡ã"
msgid "Host"
-msgstr ""
+msgstr "主æ©"
msgid "Hostname"
-msgstr ""
+msgstr "主æ©å"
msgid "IP or hostname where to get the txtinfo output from"
-msgstr ""
+msgstr "ç²å txtinfo 輸åºç IP ä½åæ主æ©å"
msgid "IRQ Plugin Configuration"
-msgstr ""
+msgstr "IRQ å¤æé
ç½®"
msgid "Ignore source addresses"
-msgstr ""
+msgstr "忽ç¥æºä½å"
msgid "Incoming interface"
-msgstr ""
+msgstr "å
¥ä»é¢"
msgid "Interface Plugin Configuration"
-msgstr ""
+msgstr "Interface å¤æé
ç½®"
msgid "Interfaces"
-msgstr ""
+msgstr "Interfaces"
msgid "Interrupts"
-msgstr ""
+msgstr "ä¸æ·"
msgid "Interval for pings"
-msgstr ""
+msgstr "ping éé"
msgid "Iptables Plugin Configuration"
-msgstr ""
+msgstr "Iptables å¤æé
ç½®"
msgid "Leave unselected to automatically determine interfaces to monitor."
-msgstr ""
+msgstr "èªåä¿çå°æªé¸ä¸ä»é¢çç£æ§ã"
msgid "Listen host"
-msgstr ""
+msgstr "ç£è½ä¸»æ©"
msgid "Listen port"
-msgstr ""
+msgstr "ç£è½å "
msgid "Listener interfaces"
-msgstr ""
+msgstr "ç£è½ä»é¢"
msgid "Load Plugin Configuration"
-msgstr ""
+msgstr "Load å¤æé
ç½®"
msgid ""
"Max values for a period can be used instead of averages when not using 'only "
"average RRAs'"
-msgstr ""
+msgstr "å¨ä¸ä½¿ç¨âå
å¹³å RRAâçæ
æ³ä¸ï¼å¯ä»¥ä½¿ç¨ä¸æ®µæéçæ大å¼èä¸æ¯å¹³åå¼"
msgid "Maximum allowed connections"
-msgstr ""
+msgstr "æ大å
許é£ç·æ¸"
msgid "Memory"
-msgstr ""
+msgstr "è¨æ¶é«"
msgid "Memory Plugin Configuration"
-msgstr ""
+msgstr "è¨æ¶é«å¤æé
ç½®"
msgid "Monitor all except specified"
-msgstr ""
+msgstr "ç£æ¸¬ææï¼é¤ç¹å¥è¨»æå¤ï¼"
msgid "Monitor all local listen ports"
-msgstr ""
+msgstr "ç£æ¸¬æææ¬å°ç£è½å "
msgid "Monitor all sensors"
-msgstr ""
+msgstr "ç£æ§æææ測å¨"
msgid "Monitor device(s) / thermal zone(s)"
-msgstr ""
+msgstr "ç£æ§è£ç½®/溫æåå"
msgid "Monitor devices"
-msgstr ""
+msgstr "ç£æ¸¬è£ç½®"
msgid "Monitor disks and partitions"
-msgstr ""
+msgstr "ç£æ¸¬ç£ç¢ååå²æ§½"
msgid "Monitor filesystem types"
-msgstr ""
+msgstr "ç£æ¸¬æªæ¡ç³»çµ±åå¥"
+
+msgid "Monitor host"
+msgstr "ç£æ¸¬ä¸»æ©"
msgid "Monitor hosts"
-msgstr ""
+msgstr "ç£æ¸¬ä¸»æ©"
msgid "Monitor interfaces"
-msgstr ""
+msgstr "ç£æ¸¬ä»é¢"
msgid "Monitor interrupts"
-msgstr ""
+msgstr "ç£æ¸¬ä¸æ·"
msgid "Monitor local ports"
-msgstr ""
+msgstr "ç£æ¸¬æ¬å°å "
msgid "Monitor mount points"
-msgstr ""
+msgstr "ç£æ¸¬æè¼é»"
msgid "Monitor processes"
-msgstr ""
+msgstr "ç£æ¸¬ç¨åº"
msgid "Monitor remote ports"
-msgstr ""
+msgstr "ç£æ¸¬é 端å "
msgid "Name of the rule"
-msgstr ""
+msgstr "è¦åå"
msgid "Netlink"
-msgstr ""
+msgstr "Netlink"
msgid "Netlink Plugin Configuration"
-msgstr ""
+msgstr "Netlink å¤æé
ç½®"
msgid "Network"
-msgstr ""
+msgstr "Network"
msgid "Network Plugin Configuration"
-msgstr ""
+msgstr "Network å¤æé
ç½®"
msgid "Network plugins"
-msgstr ""
+msgstr "Network å¤æ"
msgid "Network protocol"
-msgstr ""
+msgstr "Network åè°"
msgid ""
"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
"directory and all its parent directories need to be world readable."
msgstr ""
+"注æï¼ç±æ¼é é¢æ¯ä»¥ 'nobody' 身份çæçï¼å æ¤ *.rrd æªæ¡ä»¥åå
å«æ¤æªæ¡çææç¶"
+"ç®éå¿
é å
¨åæ§å¯è®ã"
msgid "Number of threads for data collection"
-msgstr ""
+msgstr "æ¶éç¨å¼ä½¿ç¨å·è¡ç·æ¸"
msgid "OLSRd"
-msgstr ""
+msgstr "OLSRd"
msgid "OLSRd Plugin Configuration"
-msgstr ""
+msgstr "OLSRd å¤æé
ç½®"
msgid "Only create average RRAs"
-msgstr ""
+msgstr "å
建ç«å¹³å RRAs"
msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "OpenVPN å¤æé
ç½®"
msgid "OpenVPN status files"
-msgstr ""
+msgstr "OpenVPN çæ
æªæ¡"
msgid "Options"
-msgstr ""
+msgstr "é¸é
"
msgid "Outgoing interface"
-msgstr ""
+msgstr "åºä»é¢"
msgid "Output plugins"
-msgstr ""
+msgstr "Output å¤æ"
msgid "Ping"
-msgstr ""
+msgstr "Ping"
msgid "Ping Plugin Configuration"
-msgstr ""
+msgstr "Ping å¤æé
ç½®"
msgid "Port"
-msgstr ""
+msgstr "å "
+
+msgid "Port for apcupsd communication"
+msgstr "apcupsd éè¨å "
msgid "Processes"
-msgstr ""
+msgstr "ç¨åº"
msgid "Processes Plugin Configuration"
-msgstr ""
+msgstr "ç¨åºå¤æé
ç½®"
msgid "Processes to monitor separated by space"
-msgstr ""
+msgstr "éç¨ç£æ§ï¼ç¨ç©ºæ ¼éé"
msgid "Processor"
-msgstr ""
+msgstr "èçå¨"
msgid "Qdisc monitoring"
-msgstr ""
+msgstr "Qdisc ç£æ¸¬"
msgid "RRD XFiles Factor"
-msgstr ""
+msgstr "RRD XFiles å å"
msgid "RRD heart beat interval"
-msgstr ""
+msgstr "RRD å¿è·³éé"
msgid "RRD step interval"
-msgstr ""
+msgstr "RRD åééé"
msgid "RRDTool"
-msgstr ""
+msgstr "RRDTool"
msgid "RRDTool Plugin Configuration"
-msgstr ""
+msgstr "RRDTool å¤æé
ç½®"
msgid "Rows per RRA"
-msgstr ""
+msgstr "è¡/RRA"
msgid "Script"
-msgstr ""
+msgstr "æ令碼"
msgid "Seconds"
-msgstr ""
+msgstr "ç§"
msgid "Sensor list"
-msgstr ""
+msgstr "æ測å¨å表"
msgid "Sensors"
-msgstr ""
+msgstr "æ測å¨"
msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "Sensors å¤æé
ç½®"
msgid "Server host"
-msgstr ""
+msgstr "伺æå¨ä¸»æ©"
msgid "Server port"
-msgstr ""
+msgstr "伺æå¨å "
msgid "Setup"
-msgstr ""
+msgstr "è¨å®"
msgid "Shaping class monitoring"
-msgstr ""
+msgstr "æ´å½¢é¡ç£æ§"
msgid "Show max values instead of averages"
-msgstr ""
+msgstr "顯示æ大å¼èä¸æ¯å¹³åå¼"
msgid "Socket file"
-msgstr ""
+msgstr "å¥æ¥åæªæ¡"
msgid "Socket group"
-msgstr ""
+msgstr "å¥æ¥åçµ"
msgid "Socket permissions"
-msgstr ""
+msgstr "å¥æ¥å許å¯æ¬"
msgid "Source ip range"
-msgstr ""
+msgstr "æº IP åé"
msgid "Specifies what information to collect about links."
-msgstr ""
+msgstr "æ¶éæå®é£çµç¸éè³è¨ã"
msgid "Specifies what information to collect about routes."
-msgstr ""
+msgstr "æ¶éæå®è·¯ç±ç¸éè³è¨ã"
msgid "Specifies what information to collect about the global topology."
-msgstr ""
+msgstr "æ¶éæå®ææ²ç¸éè³è¨ã"
msgid "Splash Leases"
-msgstr ""
+msgstr "Splash Leases"
msgid "Splash Leases Plugin Configuration"
-msgstr ""
+msgstr "Splash Leases å¤æé
ç½®"
msgid "Statistics"
-msgstr ""
+msgstr "çµ±è¨"
msgid "Storage directory"
-msgstr ""
+msgstr "å²åç®é"
msgid "Storage directory for the csv files"
-msgstr ""
+msgstr "csv å²åç®é"
msgid "Store data values as rates instead of absolute values"
-msgstr ""
+msgstr "å²åè³æå¼è®åéèä¸æ¯çµå°å¼"
msgid "Stored timespans"
-msgstr ""
+msgstr "å²åæé跨度"
msgid "System Load"
-msgstr ""
+msgstr "系統è¼å
¥"
msgid "TCP Connections"
-msgstr ""
+msgstr "TCP é£ç·æ¸"
msgid "TCPConns Plugin Configuration"
-msgstr ""
+msgstr "TCPConns å¤æé
ç½®"
msgid "TTL for network packets"
-msgstr ""
+msgstr "網路å
TTL"
msgid "TTL for ping packets"
-msgstr ""
+msgstr "ping å
TTL"
msgid "Table"
-msgstr ""
+msgstr "表"
+
+msgid "The APCUPS plugin collects statistics about the APC UPS."
+msgstr "APCUPS å¤ææ¶é APC UPS ççµ±è¨è³è¨ã"
msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
-msgstr ""
+msgstr "NUT å¤æè®å UPS è³è¨ã"
msgid ""
"The OLSRd plugin reads information about meshed networks from the txtinfo "
"plugin of OLSRd."
-msgstr ""
+msgstr "OLSRd å¤æéé txtinfo ç²å meshed 網路è³è¨ã"
msgid ""
"The OpenVPN plugin gathers information about the current vpn connection "
"status."
-msgstr ""
+msgstr "OpenVPN å¤æå¯ä»¥ç²å VPN é£ç·ç¶åçæ
"
msgid ""
"The conntrack plugin collects statistics about the number of tracked "
"connections."
-msgstr ""
+msgstr "conntrack å¤æç²åé£ç·æ¸è³è¨ã"
msgid "The cpu plugin collects basic statistics about the processor usage."
-msgstr ""
+msgstr "cpu å¤æç²åèçå¨ç¸éè³è¨ã"
msgid ""
"The csv plugin stores collected data in csv file format for further "
"processing by external programs."
-msgstr ""
+msgstr "csvå¤æç¨æ¼å²åè³æï¼ä»¥æ¹ä¾¿å
¶ä»ç¨å¼èçè³æã"
msgid ""
"The df plugin collects statistics about the disk space usage on different "
"devices, mount points or filesystem types."
-msgstr ""
+msgstr "df å¤ææ¶éç£ç¢ç©ºé使ç¨æ
æ³ãæè¼é»åæªæ¡ç³»çµ±ç¸éè³è¨ã"
msgid ""
"The disk plugin collects detailled usage statistics for selected partitions "
"or whole disks."
-msgstr ""
+msgstr "disk å¤ææ¶éç£ç¢åå²æ§½ä½¿ç¨æ
æ³åç¸éè³è¨ã"
msgid ""
"The dns plugin collects detailled statistics about dns related traffic on "
"selected interfaces."
-msgstr ""
+msgstr "dns å¤ææ¶é dns è³ææµç¸éè³è¨ã"
msgid ""
"The email plugin creates a unix socket which can be used to transmit email-"
@@ -527,44 +565,50 @@ msgid ""
"to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can "
"be used in other ways as well."
msgstr ""
+"éµä»¶å¤æ建ç«ä¸å unix å¥æ¥åç¨æ¼çº Collectd å®è·ç¨åºå³éçµ±è¨è³è¨å°é»åéµä»¶ç³»"
+"çµ±ãéåå¤æ主è¦ç®çæ¯çµåä½¿ç¨ Mail::SpamAssasin::Pulgin::Collectdï¼ä½å¯ä»¥ç¨"
+"å¨å
¶ä»æ¹é¢ã"
msgid "The entropy plugin collects statistics about the available entropy."
-msgstr ""
+msgstr "entropy å¤ææ¶éå¯ç¨çµççµ±è¨è³è¨ã"
msgid ""
"The exec plugin starts external commands to read values from or to notify "
"external processes when certain threshold values have been reached."
msgstr ""
+"exec å¤æç¨æ¼ç¶æäºç£æ§å¼å·²å°éé¾å¼æï¼ååå¤é¨å½ä»¤è®å¼æéç¥å¤é¨ç¨å¼ã"
msgid ""
"The interface plugin collects traffic statistics on selected interfaces."
-msgstr ""
+msgstr "Interface å¤æç¨æ¼æ¶éé¸å®ä»é¢çè³æå
ççµ±è¨è³è¨ã"
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
"informations about processed bytes and packets per rule."
-msgstr ""
+msgstr "iptables å¤æå°ç£æ¸¬é¸å®é²ç«çè¦ååæ¶ééæ¼æ¯åè¦åèççè³æå
è³è¨ã"
msgid ""
"The irq plugin will monitor the rate of issues per second for each selected "
"interrupt. If no interrupt is selected then all interrupts are monitored."
msgstr ""
+"irq å¤æç¨æ¼ç£æ§é¸å®ä¸æ·çæ¯ç§éç¢ççä¸æ·æ¸ãå¦ææ²æä¸æ·è¢«é¸ä¸ï¼å表示å°æ"
+"æä¸æ·é²è¡ç£æ¸¬ã"
msgid ""
"The iwinfo plugin collects statistics about wireless signal strength, noise "
"and quality."
-msgstr ""
+msgstr "iwinfo å¤ææ¶éç¡ç·è¨è強度ãåªè²å質éççµ±è¨è³è¨ã"
msgid "The load plugin collects statistics about the general system load."
-msgstr ""
+msgstr "load å¤ææ¶é常è¦ç³»çµ±è¼å
¥çµ±è¨è³è¨ã"
msgid "The memory plugin collects statistics about the memory usage."
-msgstr ""
+msgstr "memory å¤ææ¶ééæ¼è¨æ¶é«ä½¿ç¨æ
æ³ççµ±è¨è³è¨ã"
msgid ""
"The netlink plugin collects extended informations like qdisc-, class- and "
"filter-statistics for selected interfaces."
-msgstr ""
+msgstr "netlink å¤ææ¶éçºé¸å®ä»é¢ qdisc-ãclass- å filter- çæ´å
å¥ä»¶è³æã"
msgid ""
"The network plugin provides network based communication between different "
@@ -572,16 +616,19 @@ msgid ""
"client mode locally collected data is transferred to a collectd server "
"instance, in server mode the local instance receives data from other hosts."
msgstr ""
+"network å¤ææä¾äºåºæ¼ç¶²è·¯çä¸å Collectd ä¾é
ãCollectd å¯ä»¥å·¥ä½å¨å®¢æ¶ç«¯åæ"
+"åå¨å
©å模å¼ãå¨å®¢æ¶ç«¯æ¨¡å¼ä¸æ¶éæ¬å°è³è¨ï¼ç¶å¾è½ç§»å°ä¸å Collectd 伺æå¨ä¾é
"
+"ä¸,å¨ä¼ºæå¨æ¨¡å¼å°å¾å
¶ä»ä¸»æ©æ¶éè³è¨ã"
msgid ""
"The ping plugin will send icmp echo replies to selected hosts and measure "
"the roundtrip time for each host."
-msgstr ""
+msgstr "ping å¤æå°å³é icmp echo replies å°é¸å®ä¸»æ©ä¾æ¸¬éæ¯èºä¸»æ©çé¿ææéã"
msgid ""
"The processes plugin collects informations like cpu time, page faults and "
"memory usage of selected processes."
-msgstr ""
+msgstr "processes å¤ææ¶éé¸å®ç¨åºç cpu æéãé é¢é¯èª¤åè¨æ¶é«ä½¿ç¨è³è¨ã"
msgid ""
"The rrdtool plugin stores the collected data in rrd database files, the "
@@ -589,123 +636,152 @@ msgid ""
"values will result in a very high memory consumption in the temporary "
"directory. This can render the device unusable!"
msgstr ""
+"rrdtool å¤æå°æ¶éè³æ以å表çå½¢å¼å²åå¨ RRD è³æ庫æªæ¡ä¸ãè¦åï¼é¯èª¤çå¼æ¸è¨å®ï¼å°å°è´é常é«çè¨æè¨æ¶é«æ¶èãéå¯è½æ使è£ç½®ç¡æ³"
+"使ç¨ï¼ "
msgid ""
"The sensors plugin uses the Linux Sensors framework to gather environmental "
"statistics."
-msgstr ""
+msgstr "sensors å¤æä½¿ç¨ Linux Sensors æ¡æ¶ä¾æ¶éç°å¢çµ±è¨è³è¨ã"
msgid ""
"The splash leases plugin uses libuci to collect statistics about splash "
"leases."
-msgstr ""
+msgstr "splash leases å¤æä½¿ç¨ libuci ä¾æ¶é splash leases ççµ±è¨è³è¨ã"
msgid ""
"The statistics package uses Collectd "
"to gather data and RRDtool to "
"render diagram images."
msgstr ""
+"Statistics è»é«å
ä½¿ç¨ Collectd ä¾æ¶éæ¸"
+"æï¼ä¸¦ç¨ RRDtool çæçµ±è¨å"
+"表ã"
msgid ""
"The tcpconns plugin collects informations about open tcp connections on "
"selected ports."
-msgstr ""
+msgstr "tcpconns å¤ææ¶éé¸å®å TCP é£ç·è³è¨ã"
msgid ""
"The thermal plugin will monitor temperature of the system. Data is typically "
"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
"read, e.g. thermal_zone1 )"
msgstr ""
+"thermal å¤æå°æç£æ§ç³»çµ±æº«åº¦ãè³æ主è¦åèª /sys/class/thermal/*/temp ('*' 表"
+"示溫æè£ç½®çååï¼æ¯å¦ thermal_zone1) ã"
msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
-msgstr ""
+msgstr "unixsock å¤æ建ç«ä¸å unix å¥æ¥åå¯ç¨æ¼è®å Collectd ä¾é
çæ¶éè³è¨ã"
msgid "The uptime plugin collects statistics about the uptime of the system."
-msgstr ""
+msgstr "uptime å¤ææ¶é系統ååæéççµ±è¨è³è¨ã"
msgid "Thermal"
-msgstr ""
+msgstr "溫æ"
msgid "Thermal Plugin Configuration"
-msgstr ""
+msgstr "溫æå¤æé
ç½®"
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr "æ¤å¤ææ¶éèçå¨ä¸ä¸æåæççµ±è¨è³è¨ã"
msgid "This plugin collects statistics about the processor frequency scaling."
-msgstr ""
+msgstr "æ¤å¤ææ¶éèçå¨é »ç調æ´ççµ±è¨è³è¨ã"
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
-msgstr ""
+msgstr "å®ç¾© Collectd å°ç£è½åªåä»é¢ä¾å³å
¥é£ç·æ¶éè³æã"
msgid ""
"This section defines to which servers the locally collected data is sent to."
-msgstr ""
+msgstr "å®ç¾©æ¬å°æ¶éè³æ被髮éå°åªèº Collected 伺æå¨ã"
msgid "Try to lookup fully qualified hostname"
-msgstr ""
+msgstr "å試解æ主æ©å
¨åå"
msgid "UPS"
-msgstr ""
+msgstr "UPS"
msgid "UPS Plugin Configuration"
-msgstr ""
+msgstr "UPS å¤æé
ç½®"
msgid "UPS name in NUT ups@host format"
-msgstr ""
+msgstr "UPS åä½¿ç¨ NUTï¼Network UPS Toolsï¼æ ¼å¼ï¼ups@host"
msgid "UnixSock"
-msgstr ""
+msgstr "UnixSock"
msgid "Unixsock Plugin Configuration"
-msgstr ""
+msgstr "Unixsock å¤æé
ç½®"
msgid "Uptime"
-msgstr ""
+msgstr "å·è¡æé"
msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "å·è¡æéå¤æé
ç½®"
msgid "Use improved naming schema"
-msgstr ""
+msgstr "使ç¨æ´é«éçå½åè¦å"
msgid "Used PID file"
-msgstr ""
+msgstr "æ£å¨ä½¿ç¨ç PID æªæ¡"
msgid "User"
-msgstr ""
+msgstr "使ç¨è
"
msgid "Verbose monitoring"
-msgstr ""
+msgstr "詳細ç£æ¸¬"
msgid "Wireless"
-msgstr ""
+msgstr "ç¡ç·"
msgid "Wireless iwinfo Plugin Configuration"
-msgstr ""
+msgstr "ç¡ç· iwinfo å¤æé
ç½®"
msgid ""
"You can install additional collectd-mod-* plugins to enable more statistics."
-msgstr ""
+msgstr "æ¨å¯ä»¥å®è£æ´å¤ç collectd-mod-* å¤æ以ç²å¾æ´å¤ççµ±è¨è³æã"
msgid "e.g. br-ff"
-msgstr ""
+msgstr "ä¾å¦ï¼br-ff"
msgid "e.g. br-lan"
-msgstr ""
+msgstr "ä¾å¦ï¼br-lan"
msgid "e.g. reject-with tcp-reset"
-msgstr ""
+msgstr "ä¾å¦ï¼eject-with tcp-reset"
msgid "max. 16 chars"
-msgstr ""
+msgstr "æé· 16 ååå
"
msgid "reduces rrd size"
-msgstr ""
+msgstr "æ¸å° rrd 大å°"
msgid "seconds; multiple separated by space"
-msgstr ""
+msgstr "ç§æ¸ï¼å¤å使ç¨ç©ºæ ¼åé"
msgid "server interfaces"
-msgstr ""
+msgstr "伺æå¨ä»é¢"
+
+#~ msgid "Collectd"
+#~ msgstr "Collectd"
+
+#~ msgid "System plugins"
+#~ msgstr "系統å¤æ"
+
+#~ msgid ""
+#~ "The statistics package is based on Collectd and uses RRD Tool to render diagram images from collected data."
+#~ msgstr ""
+#~ "çµ±è¨è»é«å
æ¯åºæ¼Collectd ï¼"
+#~ "並使ç¨RRDå·¥å
· ä¾æ¸²æå表ï¼ç¨"
+#~ "æ¼æ¶éè³æã"
+
+#~ msgid "group name"
+#~ msgstr "群å稱"
diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics
index 774a8382e2..8cc918e3db 100644
--- a/applications/luci-app-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/config/luci_statistics
@@ -49,9 +49,17 @@ config statistics 'collectd_unixsock'
# input plugins
+config statistics 'collectd_apcups'
+ option enable '0'
+ option Host 'localhost'
+ option Port '3551'
+
config statistics 'collectd_conntrack'
option enable '0'
+config statistics 'collectd_contextswitch'
+ option enable '0'
+
config statistics 'collectd_cpu'
option enable '1'
diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
index df9af15261..2bf63c1fe6 100755
--- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
@@ -255,6 +255,12 @@ end
plugins = {
+ apcups = {
+ { "Host", "Port" },
+ { },
+ { }
+ },
+
collectd = {
{ "BaseDir", "Include", "PIDFile", "PluginDir", "TypesDB", "Interval", "ReadThreads", "Hostname" },
{ },
@@ -279,6 +285,12 @@ plugins = {
{ }
},
+ contextswitch = {
+ { },
+ { },
+ { }
+ },
+
csv = {
{ "DataDir" },
{ "StoreRates" },
@@ -349,12 +361,6 @@ plugins = {
{ }
},
- madwifi = {
- { "WatchSet" },
- { },
- { "Interfaces", "WatchAdds" }
- },
-
memory = {
{ },
{ },
@@ -461,8 +467,10 @@ preprocess = {
section("collectd")
+section("logfile")
+
for plugin in pairs(plugins) do
- if plugin ~= "collectd" then
+ if (plugin ~= "collectd") and (plugin ~= "logfile") then
section( plugin )
end
end
diff --git a/applications/luci-app-transmission/po/zh-cn/transmission.po b/applications/luci-app-transmission/po/zh-cn/transmission.po
index 9dd34915e0..f4dba62591 100644
--- a/applications/luci-app-transmission/po/zh-cn/transmission.po
+++ b/applications/luci-app-transmission/po/zh-cn/transmission.po
@@ -1,23 +1,26 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-08 14:06+0200\n"
-"PO-Revision-Date: 2014-06-15 04:57+0200\n"
-"Last-Translator: phantasm131 \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-10-29 15:56+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Alternative download speed"
msgstr "临æ¶ä¸è½½éé"
msgid "Alternative speed enabled"
-msgstr "å¯ç¨ä¸´æ¶éé"
+msgstr "临æ¶ééå·²å¯ç¨"
msgid "Alternative speed time begin"
msgstr "计åééå§äº"
@@ -29,7 +32,7 @@ msgid "Alternative speed time end"
msgstr "计åééæ¢äº"
msgid "Alternative speed timing enabled"
-msgstr "å¯ç¨è®¡åéé"
+msgstr "计åééå·²å¯ç¨"
msgid "Alternative upload speed"
msgstr "临æ¶ä¸ä¼ é度"
@@ -41,13 +44,13 @@ msgid "Bandwidth settings"
msgstr "带宽é
ç½®"
msgid "Binding address IPv4"
-msgstr "ç»å®IPv4å°å"
+msgstr "ç»å® IPv4 å°å"
msgid "Binding address IPv6"
-msgstr "ç»å®IPv6å°å"
+msgstr "ç»å® IPv6 å°å"
msgid "Block list enabled"
-msgstr "å¯ç¨é»æ¢å表"
+msgstr "é»æ¢å表已å¯ç¨"
msgid "Blocklist URL"
msgstr "URLé»æ¢æ¸
å"
@@ -62,7 +65,7 @@ msgid "Config file directory"
msgstr "é
ç½®æ件çç®å½"
msgid "DHT enabled"
-msgstr "å¯ç¨DHT"
+msgstr "å¯ç¨ DHT"
msgid "Debug"
msgstr "è°è¯"
@@ -71,7 +74,7 @@ msgid "Download directory"
msgstr "ä¸è½½ç®å½"
msgid "Download queue enabled"
-msgstr "å¯ç¨ä¸è½½éå"
+msgstr "ä¸è½½éåå·²å¯ç¨"
msgid "Download queue size"
msgstr "ä¸è½½éå大å°"
@@ -80,7 +83,7 @@ msgid "Enable watch directory"
msgstr "å¯ç¨ç§å轮询ç®å½"
msgid "Enabled"
-msgstr "å¯ç¨"
+msgstr "å·²å¯ç¨"
msgid "Encryption"
msgstr "å å¯"
@@ -101,7 +104,7 @@ msgid "Full"
msgstr "å
¨åé
"
msgid "Global peer limit"
-msgstr "å
¨å±Peeréå¶"
+msgstr "å
¨å± Peer éå¶"
msgid "Global settings"
msgstr "å
¨å±è®¾ç½®"
@@ -110,22 +113,22 @@ msgid "Idle seeding limit"
msgstr "空é²åç§éæ¶"
msgid "Idle seeding limit enabled"
-msgstr "å¯ç¨ç©ºé²åç§æ¶é´"
+msgstr "空é²åç§æ¶é´å·²å¯ç¨"
msgid "Incomplete directory"
msgstr "æªå®æç®å½"
msgid "Incomplete directory enabled"
-msgstr "å¯ç¨æªå®æç®å½"
+msgstr "æªå®æç®å½å·²å¯ç¨"
msgid "Info"
msgstr "ä¿¡æ¯"
msgid "LPD enabled"
-msgstr "å¯ç¨LPD"
+msgstr "LPD å·²å¯ç¨"
msgid "Lazy bitfield enabled"
-msgstr "å¯ç¨ä½æ®µå»¶è¿"
+msgstr "ä½æ®µå»¶è¿å·²å¯ç¨"
msgid "Message level"
msgstr "æ¶æ¯çº§å«"
@@ -140,55 +143,57 @@ msgid ""
"Number/bitfield. Start with 0, then for each day you want the scheduler "
"enabled, add a value. For Sunday - 1, Monday - 2, Tuesday - 4, Wednesday - "
"8, Thursday - 16, Friday - 32, Saturday - 64"
-msgstr "çææ¥ææ¯å¯¹åºæ¥æçç®æ¯å åå¼ã对åºå
³ç³»ï¼å¨æ¥-1ãå¨ä¸-2ãå¨äº-4ãå¨ä¸-8ãå¨å-16ãå¨äº-32ãå¨å
-64ã"
+msgstr ""
+"çææ¥ææ¯å¯¹åºæ¥æçç®æ¯å åå¼ã对åºå
³ç³»ï¼å¨æ¥-1ãå¨ä¸-2ãå¨äº-4ãå¨ä¸-8ãå¨"
+"å-16ãå¨äº-32ãå¨å
-64ã"
msgid "Off"
msgstr "å
³é"
msgid "Open Web Interface"
-msgstr "Web管ççé¢"
+msgstr "æå¼ Web 管ççé¢"
msgid "PEX enabled"
-msgstr "å¯ç¨PEX"
+msgstr "PEX å·²å¯ç¨"
msgid "Peer Port settings"
-msgstr "Peer端å£è®¾ç½®"
+msgstr "Peer 端å£è®¾ç½®"
msgid "Peer congestion algorithm"
-msgstr "Peeræ¥å¡ç®æ³"
+msgstr "Peer æ¥å¡ç®æ³"
msgid "Peer limit per torrent"
-msgstr "æ¯ä¸ªç§åPeeréå¶æ°"
+msgstr "æ¯ä¸ªç§å Peer éå¶æ°"
msgid "Peer port"
-msgstr "Peer端å£"
+msgstr "Peer 端å£"
msgid "Peer port random high"
-msgstr "Peeréæºç«¯å£æ大å¼"
+msgstr "Peer éæºç«¯å£æ大å¼"
msgid "Peer port random low"
-msgstr "Peeréæºç«¯å£æå°å¼"
+msgstr "Peer éæºç«¯å£æå°å¼"
msgid "Peer port random on start"
-msgstr "Peer端å£éæº"
+msgstr "Peer 端å£éæº"
msgid "Peer settings"
-msgstr "Peer设置"
+msgstr "Peer 设置"
msgid "Peer socket tos"
-msgstr "Peerå¥æ¥åtoså¼"
+msgstr "Peer å¥æ¥å tos å¼"
msgid "Port forwarding enabled"
-msgstr "å¯ç¨ç«¯å£è½¬å"
+msgstr "端å£è½¬åå·²å¯ç¨"
msgid "Preferred"
msgstr "ä¼å
"
msgid "Prefetch enabled"
-msgstr "å¯ç¨é¢åç¼å"
+msgstr "é¢åç¼åå·²å¯ç¨"
msgid "Queue stalled enabled"
-msgstr "å¯ç¨éåæå"
+msgstr "éåæåå·²å¯ç¨"
msgid "Queue stalled minutes"
msgstr "éåæååé"
@@ -200,37 +205,37 @@ msgid "RPC URL"
msgstr "RPC URL"
msgid "RPC authentication required"
-msgstr "PRCææéªè¯"
+msgstr "RPC ææéªè¯"
msgid "RPC bind address"
-msgstr "RPCç»å®å°å"
+msgstr "RPC ç»å®å°å"
msgid "RPC enabled"
-msgstr "å¯ç¨PRC"
+msgstr "RPC å·²å¯ç¨"
msgid "RPC password"
-msgstr "RPCå¯ç "
+msgstr "RPC å¯ç "
msgid "RPC port"
-msgstr "RPC端å£"
+msgstr "RPC 端å£"
msgid "RPC settings"
-msgstr "RPCé
ç½®"
+msgstr "RPC é
ç½®"
msgid "RPC username"
-msgstr "RPCç¨æ·å"
+msgstr "RPC ç¨æ·å"
msgid "RPC whitelist"
-msgstr "RPCç½åå"
+msgstr "RPC ç½åå"
msgid "RPC whitelist enabled"
-msgstr "å¯ç¨RPCç½åå"
+msgstr "RPC ç½ååå·²å¯ç¨"
msgid "Ratio limit"
msgstr "å享çéå¼"
msgid "Ratio limit enabled"
-msgstr "å¯ç¨å享çéå¶"
+msgstr "å享çéå¶å·²å¯ç¨"
msgid "Rename partial files"
msgstr "éå½åæªå®ææ件"
@@ -242,16 +247,16 @@ msgid "Scheduling"
msgstr "计åä»»å¡"
msgid "Scrape paused torrents enabled"
-msgstr "忽ç¥æåçç§å"
+msgstr "忽ç¥æåç§åå·²å¯ç¨"
msgid "Script torrent done enabled"
-msgstr "ç§åå®ææ¶è¿è¡èæ¬"
+msgstr "ç§åå®ææ¶è¿è¡èæ¬å·²å¯ç¨"
msgid "Script torrent done filename"
msgstr "èæ¬æ件å"
msgid "Seed queue enabled"
-msgstr "å¯ç¨åç§éå"
+msgstr "åç§éåå·²å¯ç¨"
msgid "Seed queue size"
msgstr "åç§éå大å°"
@@ -260,13 +265,13 @@ msgid "Speed limit down"
msgstr "ä¸è½½éé"
msgid "Speed limit down enabled"
-msgstr "å¯ç¨ä¸è½½éé"
+msgstr "ä¸è½½ééå·²å¯ç¨"
msgid "Speed limit up"
msgstr "ä¸ä¼ éé"
msgid "Speed limit up enabled"
-msgstr "å¯ç¨ä¸ä¼ éé"
+msgstr "ä¸ä¼ ééå·²å¯ç¨"
msgid "Transmission"
msgstr "Transmission"
@@ -274,7 +279,7 @@ msgstr "Transmission"
msgid ""
"Transmission daemon is a simple bittorrent client, here you can configure "
"the settings."
-msgstr "Transmissionæ¯ä¸ªç®åæç¨çBT/PT客æ·ç«¯ã"
+msgstr "Transmission æ¯ä¸ä¸ªç®åç bittorrent 客æ·ç«¯ï¼å¨è¿éæ¨å¯ä»¥é
ç½®å
¶è®¾ç½®ã"
msgid "Trash original torrent files"
msgstr "å é¤ç§åæºæ件"
@@ -286,10 +291,10 @@ msgid "Watch directory"
msgstr "轮询ç§åç®å½"
msgid "in minutes from midnight"
-msgstr "ä»æä¸00:00èµ·çåéæ°ï¼ééå°ä¸´æ¶é度"
+msgstr "ä»æä¸ 00:00 èµ·çåéæ°ï¼ééå°ä¸´æ¶é度"
msgid "preallocation"
msgstr "ç£çé¢åé
çç¥"
msgid "uTP enabled"
-msgstr "å¯ç¨uTP"
+msgstr "uTP å·²å¯ç¨"
diff --git a/applications/luci-app-transmission/po/zh-tw/transmission.po b/applications/luci-app-transmission/po/zh-tw/transmission.po
index 78da18dd15..304bfdad1e 100644
--- a/applications/luci-app-transmission/po/zh-tw/transmission.po
+++ b/applications/luci-app-transmission/po/zh-tw/transmission.po
@@ -1,84 +1,89 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-16 23:11+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-10-08 14:06+0200\n"
+"PO-Revision-Date: 2017-10-29 15:56+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Alternative download speed"
-msgstr "P2P代æä¸è¼é度"
+msgstr "è¨æä¸è¼éé"
msgid "Alternative speed enabled"
-msgstr "P2P代æé度åç¨"
+msgstr "è¨æééå·²åç¨"
msgid "Alternative speed time begin"
-msgstr "P2P代æèµ·å§æé"
+msgstr "è¨åééå§æ¼"
msgid "Alternative speed time day"
-msgstr "P2P代æèµ·æ¯æ¥æé"
+msgstr "è¨åééæ¥æ"
msgid "Alternative speed time end"
-msgstr "P2P代æçµææé"
+msgstr "è¨åééæ¢æ¼"
msgid "Alternative speed timing enabled"
-msgstr "P2P代æé±ææ©å¶åç¨"
+msgstr "è¨åééå·²åç¨"
msgid "Alternative upload speed"
-msgstr "P2P代æä¸å³é度"
+msgstr "è¨æä¸å³é度"
msgid "Automatically start added torrents"
-msgstr "ç¶å¢å 種åå¾èªåéå§ä¸è¼"
+msgstr "種åèªåä¸è¼"
msgid "Bandwidth settings"
-msgstr "æµéè¨å®"
+msgstr "é »å¯¬é
ç½®"
msgid "Binding address IPv4"
-msgstr "ç¶å®çIPv4ä½ç½®"
+msgstr "ç¹«çµ IPv4 ä½å"
msgid "Binding address IPv6"
-msgstr "ç¶å®çIPv6ä½ç½®"
+msgstr "ç¹«çµ IPv6 ä½å"
msgid "Block list enabled"
-msgstr "åç¨å°éå表"
+msgstr "é»æ¢å表已åç¨"
msgid "Blocklist URL"
-msgstr "å°éURL"
+msgstr "URLé»æ¢æ¸
å®"
msgid "Blocklists"
-msgstr "å°éå表"
+msgstr "é»æ¢æ¸
å®"
msgid "Cache size in MB"
-msgstr "å¿«å大å°(MB)"
+msgstr "å¿«å大å°ï¼MBï¼"
msgid "Config file directory"
-msgstr "è¨å®æªç®é"
+msgstr "é
ç½®æªæ¡çç®é"
msgid "DHT enabled"
-msgstr "DHTåç¨"
+msgstr "åç¨ DHT"
msgid "Debug"
-msgstr "åµé¯"
+msgstr "é¤é¯"
msgid "Download directory"
msgstr "ä¸è¼ç®é"
msgid "Download queue enabled"
-msgstr "åç¨ä¸è¼éå"
+msgstr "ä¸è¼ä½åå·²åç¨"
msgid "Download queue size"
-msgstr "ä¸è¼éå大å°"
+msgstr "ä¸è¼ä½å大å°"
msgid "Enable watch directory"
-msgstr "åç¨è§çç®é"
+msgstr "åç¨ç¨®å輪詢ç®é"
msgid "Enabled"
-msgstr "åç¨"
+msgstr "å·²åç¨"
msgid "Encryption"
msgstr "å å¯"
@@ -96,200 +101,200 @@ msgid "Forced"
msgstr "å¼·å¶"
msgid "Full"
-msgstr "å
¨é"
+msgstr "å
¨åé
"
msgid "Global peer limit"
-msgstr "ä¸è¬é£æ¥éå¶"
+msgstr "å
¨åæ§ Peer éå¶"
msgid "Global settings"
-msgstr "ä¸è¬è¨å®"
+msgstr "å
¨åæ§è¨å®"
msgid "Idle seeding limit"
-msgstr "éç½®ä½ç¨®éå¶"
+msgstr "空éå種éæ"
msgid "Idle seeding limit enabled"
-msgstr "éç½®ä½ç¨®éå¶æ©å¶åç¨"
+msgstr "空éå種æéå·²åç¨"
msgid "Incomplete directory"
-msgstr "ä¸å®æ´çç®éè·¯å¾"
+msgstr "æªå®æç®é"
msgid "Incomplete directory enabled"
-msgstr "ä¸å®æ´çç®éç½®æ¾åæ©å¶åç¨"
+msgstr "æªå®æç®éå·²åç¨"
msgid "Info"
msgstr "è³è¨"
msgid "LPD enabled"
-msgstr "LPDåç¨"
+msgstr "LPD å·²åç¨"
msgid "Lazy bitfield enabled"
-msgstr "é²ISPæ¶æ£æ éææ³åç¨"
+msgstr "ä½æ®µå»¶é²å·²åç¨"
msgid "Message level"
-msgstr "è¨æ¯çç´"
+msgstr "è¨æ¯ç´å¥"
msgid "Miscellaneous"
-msgstr "éé
"
+msgstr "å
¶ä»å¼æ¸"
msgid "None"
-msgstr "None"
+msgstr "空"
msgid ""
"Number/bitfield. Start with 0, then for each day you want the scheduler "
"enabled, add a value. For Sunday - 1, Monday - 2, Tuesday - 4, Wednesday - "
"8, Thursday - 16, Friday - 32, Saturday - 64"
msgstr ""
-"æ¸å/æ¬ä½. ç±0éå§,æ¯æ¥ä½ è¥è¦åç¨æç¨,å°±å ä¸æ°æ¸å¼. æææ¥ -1, ææä¸ -2, ææäº -4, ææä¸ -8, ææå-16, "
-"ææäº-32ææå
-64"
+"çææ¥ææ¯å°ææ¥æçç®è¡å åå¼ãå°æéä¿ï¼é±æ¥-1ãé±ä¸-2ãé±äº-4ãé±ä¸-8ãå¨"
+"å-16ãé±äº-32ãé±å
-64ã"
msgid "Off"
msgstr "éé"
msgid "Open Web Interface"
-msgstr "éåWebä»é¢"
+msgstr "éå Web 管çä»é¢"
msgid "PEX enabled"
-msgstr "åç¨PEX"
+msgstr "PEX å·²åç¨"
msgid "Peer Port settings"
-msgstr "P2Pç¯é»å èè¨å®"
+msgstr "Peer å è¨å®"
msgid "Peer congestion algorithm"
-msgstr "P2Pç¯é»å µå¡æ¼ç®æ³"
+msgstr "Peer æå¡æ¼ç®æ³"
msgid "Peer limit per torrent"
-msgstr "P2Pç¯é»æ¯å種åçéå¶"
+msgstr "æ¯å種å Peer éå¶æ¸"
msgid "Peer port"
-msgstr "P2Pç¯é»å è"
+msgstr "Peer å "
msgid "Peer port random high"
-msgstr "P2Pç¯é»è¼é«é¨æ©å è"
+msgstr "Peer é¨æ©å æ大å¼"
msgid "Peer port random low"
-msgstr "P2Pç¯é»è¼ä½é¨æ©å è"
+msgstr "Peer é¨æ©å æå°å¼"
msgid "Peer port random on start"
-msgstr "ä¸éå§å°±åç¨P2Pç¯é»é¨æ©å "
+msgstr "Peer å é¨æ©"
msgid "Peer settings"
-msgstr "å èè¨å®"
+msgstr "Peer è¨å®"
msgid "Peer socket tos"
-msgstr "P2Pç¯é»åªå
IPæ槽"
+msgstr "Peer å¥æ¥å tos å¼"
msgid "Port forwarding enabled"
-msgstr "å è½ç¼åç¨"
+msgstr "å è½ç¼å·²åç¨"
msgid "Preferred"
-msgstr "é¦é¸"
+msgstr "åªå
"
msgid "Prefetch enabled"
-msgstr "é é¸åç¨"
+msgstr "é åå¿«åå·²åç¨"
msgid "Queue stalled enabled"
-msgstr "éåå滯åç¨"
+msgstr "ä½åæ«åå·²åç¨"
msgid "Queue stalled minutes"
-msgstr "éåå滯åé"
+msgstr "ä½åæ«ååé"
msgid "Queueing"
-msgstr "æéä¸"
+msgstr "ä½å"
msgid "RPC URL"
-msgstr "é 端調ç¨ç¶²å"
+msgstr "RPC URL"
msgid "RPC authentication required"
-msgstr "é 端調ç¨éè¦é©è"
+msgstr "RPC ææ¬é©è"
msgid "RPC bind address"
-msgstr "é 端調ç¨ç¶å®ä½å"
+msgstr "RPC 繫çµä½å"
msgid "RPC enabled"
-msgstr "é 端調ç¨åè½åç¨"
+msgstr "RPC å·²åç¨"
msgid "RPC password"
-msgstr "é 端調ç¨å¯ç¢¼"
+msgstr "RPC å¯ç¢¼"
msgid "RPC port"
-msgstr "é 端調ç¨å è"
+msgstr "RPC å "
msgid "RPC settings"
-msgstr "é 端調ç¨è¨å®"
+msgstr "RPC é
ç½®"
msgid "RPC username"
-msgstr "é 端調ç¨ç¨æ¶å稱"
+msgstr "RPC 使ç¨è
å稱"
msgid "RPC whitelist"
-msgstr "é 端調ç¨ç½åå®"
+msgstr "RPC ç½åå®"
msgid "RPC whitelist enabled"
-msgstr "åç¨é 端調ç¨ç½åå®"
+msgstr "RPC ç½åå®å·²åç¨"
msgid "Ratio limit"
-msgstr "æ¯çéå¶"
+msgstr "å享çéå¼"
msgid "Ratio limit enabled"
-msgstr "åç¨æ¯çéå¶"
+msgstr "å享çéå¶å·²åç¨"
msgid "Rename partial files"
-msgstr "ä¸å®æ´æªæ¡æ´å"
+msgstr "éæ°å½åæªå®ææªæ¡"
msgid "Run daemon as user"
-msgstr "åç¨æ¶ä½¿ç¨ä¸æ¨£å¸¸é§"
+msgstr "使ç¨è
çµ"
msgid "Scheduling"
-msgstr "æç¨"
+msgstr "è¨åä»»å"
msgid "Scrape paused torrents enabled"
-msgstr "ä¸è¼æ«åéå§å種"
+msgstr "忽ç¥æ«å種åå·²åç¨"
msgid "Script torrent done enabled"
-msgstr "ä½ç¨®è
³æ¬åç¨"
+msgstr "種åå®ææå·è¡æ令碼已åç¨"
msgid "Script torrent done filename"
-msgstr "ä½ç¨®è
³æ¬æªå"
+msgstr "æ令碼æªå"
msgid "Seed queue enabled"
-msgstr "åç¨ä½ç¨®éå"
+msgstr "å種ä½åå·²åç¨"
msgid "Seed queue size"
-msgstr "ä½ç¨®éå大å°"
+msgstr "å種ä½å大å°"
msgid "Speed limit down"
-msgstr "ä¸è¼é度éå¶"
+msgstr "ä¸è¼éé"
msgid "Speed limit down enabled"
-msgstr "åç¨ä¸è¼é度éå¶"
+msgstr "ä¸è¼ééå·²åç¨"
msgid "Speed limit up"
-msgstr "ä¸å³é度éå¶"
+msgstr "ä¸å³éé"
msgid "Speed limit up enabled"
-msgstr "åç¨ä¸å³é度éå¶"
+msgstr "ä¸å³ééå·²åç¨"
msgid "Transmission"
-msgstr "å³è¼¸ä»»å"
+msgstr "Transmission"
msgid ""
"Transmission daemon is a simple bittorrent client, here you can configure "
"the settings."
-msgstr "å³è¼¸ä»»å常é§æ¯ä¸åç°¡å®çbittorrentç¨æ¶ç«¯ç¨å¼, éè£¡ä½ å¯ä»¥é
ç½®è¨å®"
+msgstr "Transmission æ¯ä¸åç°¡å®ç bittorrent 客æ¶ç«¯ï¼å¨é裡æ¨å¯ä»¥é
ç½®å
¶è¨å®ã"
msgid "Trash original torrent files"
-msgstr "ä¸æ£ä¾æºç¨®åæª"
+msgstr "åªé¤ç¨®ååå§æª"
msgid "Upload slots per torrent"
-msgstr "æ¯å種åçä¸å³æ槽æ¸"
+msgstr "æ¯å種åä¸å³é£ç·æ¸"
msgid "Watch directory"
-msgstr "ç£çç®é"
+msgstr "輪詢種åç®é"
msgid "in minutes from midnight"
-msgstr "å¾åå¤ç®èµ·ç¨å表示"
+msgstr "å¾æä¸ 00:00 èµ·çåéæ¸ï¼ééå°è¨æé度"
msgid "preallocation"
-msgstr "é å
åé
"
+msgstr "ç£ç¢é åé
çç¥"
msgid "uTP enabled"
-msgstr "åç¨uTP"
+msgstr "uTP å·²åç¨"
diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile
index f4b1b0a4e3..6170f9d4c3 100644
--- a/applications/luci-app-travelmate/Makefile
+++ b/applications/luci-app-travelmate/Makefile
@@ -1,11 +1,11 @@
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
+# Copyright 2017 Dirk Brenken (dev@brenken.org)
+# This is free software, licensed under the Apache License, Version 2.0
#
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Travelmate
-LUCI_DEPENDS:=+travelmate
+LUCI_DEPENDS:=+travelmate +luci-lib-jsonc
LUCI_PKGARCH:=all
include ../../luci.mk
diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
index 27c19c4e52..a418a8ec61 100644
--- a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
+++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
@@ -1,11 +1,35 @@
--- Licensed to the public under the Apache License 2.0.
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
module("luci.controller.travelmate", package.seeall)
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local i18n = require("luci.i18n")
+local templ = require("luci.template")
+
function index()
if not nixio.fs.access("/etc/config/travelmate") then
return
end
+ entry({"admin", "services", "travelmate"}, firstchild(), _("Travelmate"), 40).dependent = false
+ entry({"admin", "services", "travelmate", "tab_from_cbi"}, cbi("travelmate/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
+ entry({"admin", "services", "travelmate", "stations"}, template("travelmate/stations"), _("Wireless Stations"), 20).leaf = true
+ entry({"admin", "services", "travelmate", "logfile"}, call("logread"), _("View Logfile"), 30).leaf = true
+ entry({"admin", "services", "travelmate", "advanced"}, firstchild(), _("Advanced"), 100)
+ entry({"admin", "services", "travelmate", "advanced", "configuration"}, cbi("travelmate/configuration_tab"), _("Edit Travelmate Configuration"), 110).leaf = true
+ entry({"admin", "services", "travelmate", "advanced", "cfg_wireless"}, cbi("travelmate/cfg_wireless_tab"), _("Edit Wireless Configuration"), 120).leaf = true
+ entry({"admin", "services", "travelmate", "advanced", "cfg_network"}, cbi("travelmate/cfg_network_tab"), _("Edit Network Configuration"), 130).leaf = true
+ entry({"admin", "services", "travelmate", "advanced", "cfg_firewall"}, cbi("travelmate/cfg_firewall_tab"), _("Edit Firewall Configuration"), 140).leaf = true
+
+ entry({"admin", "services", "travelmate", "wifiscan"}, template("travelmate/wifi_scan")).leaf = true
+ entry({"admin", "services", "travelmate", "wifiadd"}, cbi("travelmate/wifi_add", {hideresetbtn=true, hidesavebtn=true})).leaf = true
+ entry({"admin", "services", "travelmate", "wifiedit"}, cbi("travelmate/wifi_edit", {hideresetbtn=true, hidesavebtn=true})).leaf = true
+ entry({"admin", "services", "travelmate", "wifidelete"}, cbi("travelmate/wifi_delete", {hideresetbtn=true, hidesavebtn=true})).leaf = true
+ entry({"admin", "services", "travelmate", "wifiorder"}, cbi("travelmate/wifi_order", {hideresetbtn=true, hidesavebtn=true})).leaf = true
+end
- entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60)
+function logread()
+ local logfile = util.trim(util.exec("logread -e 'travelmate'"))
+ templ.render("travelmate/logread", {title = i18n.translate("Travelmate Logfile"), content = logfile})
end
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
deleted file mode 100644
index fa44d4b523..0000000000
--- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
+++ /dev/null
@@ -1,53 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("travelmate", translate("Travelmate"),
- translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[]] ..
- translate("Brief advice: Create a wwan interface, configure it to use dhcp and " ..
- "add it to the wan zone in firewall. Create the wifi interfaces to be used ('client' mode, " ..
- "assigned to wwan network, left as disabled). Travelmate will try " ..
- "to connect to the known wifi client interfaces in the defined order. ") ..
- [[]]
- .. translate("Link to detailed advice")
- .. [[ ]] )
-
--- General options
-
-s = m:section(NamedSection, "global", "travelmate", translate("Global options"))
-
-o = s:option(Flag, "trm_enabled", translate("Enable Travelmate"))
-o.rmempty = false
-o.default = 0
-
-o = s:option(Value, "trm_maxwait", translate("Max. timeout in seconds for wlan interface reload"),
- translate("Default 20, range 10-60"))
-o.rmempty = false
-o.default = 20
-o.datatype = "range(10,60)"
-
-o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"),
- translate("Default 3, range 1-10"))
-o.rmempty = false
-o.default = 3
-o.datatype = "range(1,10)"
-
--- Extra options
-
-e = m:section(NamedSection, "global", "travelmate", translate("Extra options"))
-
-a = e:option(Flag, "trm_debug", translate("Debug logging"))
-a.rmempty = true
-a.default = a.disabled
-
-a = e:option(Value, "trm_iface", translate("Restrict reload trigger to certain interface(s)"),
- translate("Space separated list of wwan interfaces that trigger reload action. To disable reload trigger set it to 'false'. Default: empty"))
-a.rmempty = true
-a.default = ""
-a.datatype = "uciname"
-
-a = e:option(Flag, "trm_iw", translate("Use iw for scanning"),
- translate("Disable this if you want to use iwinfo instead of iw"))
-a.rmempty = true
-a.default = a.enabled
-
-return m
-
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua
new file mode 100644
index 0000000000..e5a048fa88
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua
@@ -0,0 +1,37 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/firewall"
+
+if not nixio.fs.access(trminput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main firewall configuration file (/etc/config/firewall)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua
new file mode 100644
index 0000000000..0096d6a8c2
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua
@@ -0,0 +1,37 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/network"
+
+if not nixio.fs.access(trminput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main network configuration file (/etc/config/network)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua
new file mode 100644
index 0000000000..7ef9920a08
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua
@@ -0,0 +1,37 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/wireless"
+
+if not nixio.fs.access(trminput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main wireless configuration file (/etc/config/wireless)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua
new file mode 100644
index 0000000000..8a20ab9cce
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/travelmate"
+
+if not nixio.fs.access(trminput) then
+ m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+ m.reset = false
+ m.submit = false
+ return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.submit = translate("Save")
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+ translate("This form allows you to modify the content of the main travelmate configuration file (/etc/config/travelmate)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+ return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+ return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+ return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
new file mode 100644
index 0000000000..27971dfdad
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
@@ -0,0 +1,189 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local json = require("luci.jsonc")
+local nw = require("luci.model.network").init()
+local fw = require("luci.model.firewall").init()
+local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan"
+local trminput = uci.get("travelmate", "global", "trm_rtfile") or "/tmp/trm_runtime.json"
+local uplink = uci.get("network", trmiface) or ""
+local parse = json.parse(fs.readfile(trminput) or "")
+
+m = Map("travelmate", translate("Travelmate"),
+ translate("Configuration of the travelmate package to to enable travel router functionality. ")
+ .. translatef("For further information "
+ .. ""
+ .. "see online documentation ", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md"))
+
+function m.on_after_commit(self)
+ luci.sys.call("env -i /etc/init.d/travelmate restart >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+end
+
+s = m:section(NamedSection, "global", "travelmate")
+
+-- Interface Wizard
+
+if uplink == "" then
+ dv = s:option(DummyValue, "", translate("Interface Wizard"))
+ dv.template = "cbi/nullsection"
+
+ o = s:option(Value, "", translate("Uplink interface"))
+ o.datatype = "and(uciname,rangelength(3,15))"
+ o.default = trmiface
+ o.rmempty = false
+
+ btn = s:option(Button, "trm_iface", translate("Create Uplink Interface"),
+ translate("Create a new wireless wan uplink interface, configure it to use dhcp and ")
+ .. translate("add it to the wan zone of the firewall. This step has only to be done once."))
+ btn.inputtitle = translate("Add Interface")
+ btn.inputstyle = "apply"
+ btn.disabled = false
+ function btn.write(self, section, value)
+ local iface = o:formvalue(section)
+ if iface then
+ uci:set("travelmate", section, "trm_iface", iface)
+ uci:save("travelmate")
+ uci:commit("travelmate")
+ local net = nw:add_network(iface, { proto = "dhcp" })
+ if net then
+ nw:save("network")
+ nw:commit("network")
+ local zone = fw:get_zone_by_network("wan")
+ if zone then
+ zone:add_network(iface)
+ fw:save("firewall")
+ fw:commit("firewall")
+ end
+ end
+ luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
+ end
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+ end
+ return m
+end
+
+-- Main travelmate options
+
+o1 = s:option(Flag, "trm_enabled", translate("Enable travelmate"))
+o1.default = o1.disabled
+o1.rmempty = false
+
+o2 = s:option(Flag, "trm_automatic", translate("Enable 'automatic' mode"),
+ translate("Keep travelmate in an active state. Check every n seconds the connection status, i.e. the uplink availability."))
+o2.default = o2.enabled
+o2.rmempty = false
+
+btn = s:option(Button, "", translate("Manual Rescan"))
+btn:depends("trm_automatic", "")
+btn.inputtitle = translate("Rescan")
+btn.inputstyle = "find"
+btn.disabled = false
+function btn.write()
+ luci.sys.call("env -i /etc/init.d/travelmate start >/dev/null 2>&1")
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+end
+
+o3 = s:option(Value, "trm_iface", translate("Uplink / Trigger interface"),
+ translate("Name of the uplink interface that triggers travelmate processing in 'manual' mode."))
+o3.datatype = "and(uciname,rangelength(3,15))"
+o3.default = trmiface
+o3.rmempty = false
+
+o4 = s:option(Value, "trm_triggerdelay", translate("Trigger delay"),
+ translate("Additional trigger delay in seconds before travelmate processing begins."))
+o4.default = 2
+o4.datatype = "range(1,90)"
+o4.rmempty = false
+
+o5 = s:option(Flag, "trm_debug", translate("Enable verbose debug logging"))
+o5.default = o5.disabled
+o5.rmempty = false
+
+-- Runtime information
+
+ds = s:option(DummyValue, "_dummy", translate("Runtime information"))
+ds.template = "cbi/nullsection"
+
+dv1 = s:option(DummyValue, "status", translate("Online Status"))
+dv1.template = "travelmate/runtime"
+if parse == nil then
+ dv1.value = translate("n/a")
+elseif parse.data.station_connection == "true" then
+ dv1.value = translate("connected")
+else
+ dv1.value = translate("not connected")
+end
+
+dv2 = s:option(DummyValue, "travelmate_version", translate("Travelmate version"))
+dv2.template = "travelmate/runtime"
+if parse ~= nil then
+ dv2.value = parse.data.travelmate_version or translate("n/a")
+else
+ dv2.value = translate("n/a")
+end
+
+dv3 = s:option(DummyValue, "station_ssid", translate("Station SSID"))
+dv3.template = "travelmate/runtime"
+if parse ~= nil then
+ dv3.value = parse.data.station_ssid or translate("n/a")
+else
+ dv3.value = translate("n/a")
+end
+
+dv4 = s:option(DummyValue, "station_interface", translate("Station Interface"))
+dv4.template = "travelmate/runtime"
+if parse ~= nil then
+ dv4.value = parse.data.station_interface or translate("n/a")
+else
+ dv4.value = translate("n/a")
+end
+
+dv5 = s:option(DummyValue, "station_radio", translate("Station Radio"))
+dv5.template = "travelmate/runtime"
+if parse ~= nil then
+ dv5.value = parse.data.station_radio or translate("n/a")
+else
+ dv5.value = translate("n/a")
+end
+
+dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate"))
+dv6.template = "travelmate/runtime"
+if parse ~= nil then
+ dv6.value = parse.data.last_rundate or translate("n/a")
+else
+ dv6.value = translate("n/a")
+end
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "travelmate", translate("Extra options"),
+translate("Options for further tweaking in case the defaults are not suitable for you."))
+
+e1 = e:option(Value, "trm_radio", translate("Radio selection"),
+ translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'."))
+e1.datatype = "and(uciname,rangelength(6,6))"
+e1.rmempty = true
+
+e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"),
+ translate("How many times should travelmate try to connect to an Uplink. ")
+ .. translate("To disable this feature set it to '0' which means unlimited retries."))
+e2.default = 3
+e2.datatype = "range(0,30)"
+e2.rmempty = false
+
+e3 = e:option(Value, "trm_maxwait", translate("Interface Timeout"),
+ translate("How long should travelmate wait for a successful wlan interface reload."))
+e3.default = 30
+e3.datatype = "range(5,60)"
+e3.rmempty = false
+
+e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"),
+ translate("Timeout in seconds between retries in 'automatic' mode."))
+e4.default = 60
+e4.datatype = "range(60,300)"
+e4.rmempty = false
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua
new file mode 100644
index 0000000000..dcfa17c8b5
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua
@@ -0,0 +1,70 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local http = require("luci.http")
+local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan"
+
+m = SimpleForm("add", translate("Add Wireless Uplink Configuration"))
+m.submit = translate("Save")
+m.cancel = translate("Back to overview")
+m.reset = false
+
+function m.on_cancel()
+ http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
+end
+
+m.hidden = {
+ device = http.formvalue("device"),
+ ssid = http.formvalue("ssid"),
+ wep = http.formvalue("wep"),
+ wpa_suites = http.formvalue("wpa_suites"),
+ wpa_version = http.formvalue("wpa_version")
+}
+
+if m.hidden.ssid ~= "" then
+ wssid = m:field(Value, "ssid", translate("SSID"))
+ wssid.default = m.hidden.ssid
+else
+ wssid = m:field(Value, "ssid", translate("SSID (hidden)"))
+end
+
+if (tonumber(m.hidden.wep) or 0) == 1 then
+ wkey = m:field(Value, "key", translate("WEP passphrase"),
+ translate("Specify the secret encryption key here."))
+ wkey.password = true
+ wkey.datatype = "wepkey"
+elseif (tonumber(m.hidden.wpa_version) or 0) > 0 and
+ (m.hidden.wpa_suites == "PSK" or m.hidden.wpa_suites == "PSK2")
+then
+ wkey = m:field(Value, "key", translate("WPA passphrase"),
+ translate("Specify the secret encryption key here."))
+ wkey.password = true
+ wkey.datatype = "wpakey"
+end
+
+function wssid.write(self, section, value)
+ newsection = uci:section("wireless", "wifi-iface", nil, {
+ mode = "sta",
+ network = trmiface,
+ device = m.hidden.device,
+ ssid = wssid:formvalue(section),
+ disabled = "1"
+ })
+ if (tonumber(m.hidden.wep) or 0) == 1 then
+ uci:set("wireless", newsection, "encryption", "wep-open")
+ uci:set("wireless", newsection, "key", "1")
+ uci:set("wireless", newsection, "key1", wkey:formvalue(section))
+ elseif (tonumber(m.hidden.wpa_version) or 0) > 0 then
+ uci:set("wireless", newsection, "encryption", "psk2")
+ uci:set("wireless", newsection, "key", wkey:formvalue(section))
+ else
+ uci:set("wireless", newsection, "encryption", "none")
+ end
+ uci:save("wireless")
+ uci:commit("wireless")
+ http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua
new file mode 100644
index 0000000000..0c3cc1865b
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua
@@ -0,0 +1,13 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local uci = require("luci.model.uci").cursor()
+local http = require("luci.http")
+local cfg = http.formvalue("cfg")
+
+if cfg ~= nil then
+ uci:delete("wireless", cfg)
+ uci:save("wireless")
+ uci:commit("wireless")
+end
+http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua
new file mode 100644
index 0000000000..c60ff22c4d
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua
@@ -0,0 +1,56 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local http = require("luci.http")
+
+m = SimpleForm("edit", translate("Edit Wireless Uplink Configuration"))
+m.submit = translate("Save")
+m.cancel = translate("Back to overview")
+m.reset = false
+
+function m.on_cancel()
+ http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
+end
+
+m.hidden = {
+ cfg = http.formvalue("cfg")
+}
+
+local s = uci:get_all("wireless", m.hidden.cfg)
+if s ~= nil then
+ wssid = m:field(Value, "ssid", translate("SSID"))
+ wssid.default = s.ssid
+ wssid.datatype = "rangelength(1,32)"
+ if s.encryption and s.key then
+ wkey = m:field(Value, "key", translatef("Passphrase (%s)", s.encryption))
+ elseif s.encryption and s.password then
+ wkey = m:field(Value, "password", translatef("Passphrase (%s)", s.encryption))
+ end
+ if s.encryption and (s.key or s.password) then
+ wkey.password = true
+ wkey.default = s.key or s.password
+ if s.encryption == "wep" then
+ wkey.datatype = "wepkey"
+ else
+ wkey.datatype = "wpakey"
+ end
+ end
+else
+ m.on_cancel()
+end
+
+function wssid.write(self, section, value)
+ uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section))
+ if s.encryption and s.key then
+ uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section))
+ elseif s.encryption and s.password then
+ uci:set("wireless", m.hidden.cfg, "password", wkey:formvalue(section))
+ end
+ uci:save("wireless")
+ uci:commit("wireless")
+ m.on_cancel()
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua
new file mode 100644
index 0000000000..6eb4c72063
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua
@@ -0,0 +1,36 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local http = require("luci.http")
+local cfg = http.formvalue("cfg")
+local dir = http.formvalue("dir")
+local uci = require("luci.model.uci").cursor()
+local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
+
+if cfg ~= nil then
+ local section = ""
+ local idx = ""
+ local idx_change = ""
+ local changed = ""
+ uci:foreach("wireless", "wifi-iface", function(s)
+ local iface = s.network or ""
+ if iface == trmiface then
+ section = s['.name']
+ if cfg == section then
+ idx = s['.index']
+ else
+ idx_change = s['.index']
+ end
+ if (dir == "up" and idx ~= "" and idx_change ~= "" and idx_change < idx) or
+ (dir == "down" and idx ~= "" and idx_change ~= "" and idx_change > idx) then
+ changed = uci:reorder("wireless", cfg, idx_change)
+ idx = ""
+ end
+ end
+ end)
+ if changed ~= "" then
+ uci:save("wireless")
+ uci:commit("wireless")
+ end
+end
+http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm
new file mode 100644
index 0000000000..53493a18fb
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm
@@ -0,0 +1,10 @@
+
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm
new file mode 100644
index 0000000000..7f6ff7776d
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm
@@ -0,0 +1,15 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+
+
+ <%:This form shows the syslog output, pre-filtered for travelmate related messages only.%>
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm
new file mode 100644
index 0000000000..2b9885567a
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm
@@ -0,0 +1,10 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+cbi/valueheader%>
+
+
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
new file mode 100644
index 0000000000..cbb6c189b8
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
@@ -0,0 +1,77 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%-
+ local write = io.write
+ local uci = require("luci.model.uci").cursor()
+ local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
+-%>
+
+<%+header%>
+
+
+
<%:Wireless Stations%>
+
+ <%=translatef("Provides an overview of all configured uplinks for the travelmate interface (%s). You can edit, delete or re-order existing uplinks or scan for a new one. The currently used uplink is emphasized in blue.", trmiface)%>
+
+
+
+
+
+
+<%
+ uci:foreach("wireless", "wifi-device", function(s)
+ local device = s[".name"]
+%>
+
+<%
+ end)
+%>
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm
new file mode 100644
index 0000000000..af90c18d23
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm
@@ -0,0 +1,90 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%-
+ local sys = require("luci.sys")
+ local utl = require("luci.util")
+ local dev = luci.http.formvalue("device")
+ local iw = luci.sys.wifi.getiwinfo(dev)
+
+ if not iw then
+ luci.http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations"))
+ end
+
+ function format_wifi_encryption(info)
+ if info.wep == true then
+ return translate("WEP")
+ elseif info.wpa > 0 then
+ return translate("WPA / WPA2")
+ elseif info.enabled then
+ return translate("Unknown")
+ else
+ return translate("Open")
+ end
+ end
+
+ function percent_wifi_signal(info)
+ local qc = info.quality or 0
+ local qm = info.quality_max or 0
+ if info.ssid and qc > 0 and qm > 0 then
+ return math.floor((100 / qm) * qc)
+ else
+ return 0
+ end
+ end
+-%>
+
+<%+header%>
+
+
+
<%:Wireless Scan%>
+
+
+
+ <%:Uplink SSID%>
+ <%:Encryption%>
+ <%:Signal strength%>
+
+ <% for i, net in ipairs(iw.scanlist or { }) do %>
+
+
+ <%=net.ssid and utl.pcdata(net.ssid) or "%s " % translate("hidden")%>
+
+
+ <%=format_wifi_encryption(net.encryption)%>
+
+
+ <%=percent_wifi_signal(net)%> %
+
+
+
+
+
+ <% end %>
+
+
+
+
+
+
+
+
+<%+footer%>
diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po
index de1aceed95..febdbd5833 100644
--- a/applications/luci-app-travelmate/po/ja/travelmate.po
+++ b/applications/luci-app-travelmate/po/ja/travelmate.po
@@ -7,85 +7,321 @@ msgstr ""
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.3\n"
"Last-Translator: INAGAKI Hiroshi \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: ja\n"
+msgid "Actions"
+msgstr "æä½"
+
+msgid "Add Interface"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®è¿½å "
+
+msgid "Add Uplink"
+msgstr "ã¢ãããªã³ã¯ã®è¿½å "
+
+msgid "Add Wireless Uplink Configuration"
+msgstr "ç¡ç·ã¢ãããªã³ã¯è¿½å ã®è¨å®"
+
msgid ""
-"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
-"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
-"mode, assigned to wwan network, left as disabled). Travelmate will try to "
-"connect to the known wifi client interfaces in the defined order."
-msgstr ""
-"ç°¡åãªè§£èª¬: äºãWWANã¤ã³ã¿ã¼ãã§ã¼ã¹ãä½æããDHCPã使ç¨ããããæ§æãã¦ãã¡"
-"ã¤ã¢ã¦ã©ã¼ã«ã®WANã¾ã¼ã³ã«è¿½å ãã¾ããã¾ãã使ç¨ãããç¡ç·ã¤ã³ã¿ã¼ãã§ã¼ã¹ãä½"
-"æãã¦ããã¾ãï¼\"ã¯ã©ã¤ã¢ã³ã\" ã¢ã¼ããWWANã«å²ãå½ã¦ãç¡å¹ç¶æ
ï¼ã"
-"Travelmateã¯ãç»é²ããã¦ããé åºã§æ¢ç¥ã®ç¡ç·ã¯ã©ã¤ã¢ã³ã ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¸ã®"
-"æ¥ç¶ã試è¡ãã¾ãã"
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr "Travelmate ã®å¦çãéå§ãããã¾ã§ã®ã追å ã®é
延æéï¼ç§ï¼ã§ãã"
+
+msgid "Advanced"
+msgstr "詳細è¨å®"
+
+msgid "Back to overview"
+msgstr "æ¦è¦ã¸æ»ã"
msgid ""
-"Configuration of the Travelmate package to enable travel router "
+"Configuration of the travelmate package to to enable travel router "
"functionality."
-msgstr "ãã©ãã« ã«ã¼ã¿æ©è½ãæå¹ã«ãããTravelmate ããã±ã¼ã¸ã®è¨å®ã§ãã"
+msgstr ""
+"ãã©ãã« ã«ã¼ã¿ã¼æ©è½ãæå¹åããããã®ã Travelmate ããã±ã¼ã¸ã®è¨å®ã§ãã"
+
+msgid "Connection Limit"
+msgstr "æ¥ç¶å¶é"
-msgid "Debug logging"
-msgstr "ãããã° ãã°"
+msgid "Create Uplink Interface"
+msgstr "ã¢ãããªã³ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä½æ"
+
+msgid ""
+"Create a new wireless wan uplink interface, configure it to use dhcp and"
+msgstr ""
+"æ°è¦ã®ç¡ç· WAN ã¢ãããªã³ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹ãä½æãã DHCP ã使ç¨ããããæ§"
+"æãã¦"
-msgid "Default 20, range 10-60"
-msgstr "æ¢å®å¤ 20ãç¯å² 10 - 60"
+msgid "Delete"
+msgstr "åé¤"
-msgid "Default 3, range 1-10"
-msgstr "æ¢å®å¤ 3ãç¯å² 1 - 10"
+msgid "Delete this Uplink"
+msgstr "ãã®ã¢ãããªã³ã¯ãåé¤"
-msgid "Disable this if you want to use iwinfo instead of iw"
-msgstr "iw ã®ä»£ããã« iwinfo ã使ç¨ãããå ´åããã®è¨å®ãç¡å¹ã«ãã¾ãã"
+msgid "Device"
+msgstr "ããã¤ã¹"
-msgid "Enable Travelmate"
-msgstr "Travelmateã®æå¹å"
+msgid "Edit"
+msgstr "ç·¨é"
+
+msgid "Edit Firewall Configuration"
+msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã«è¨å®ã®ç·¨é"
+
+msgid "Edit Network Configuration"
+msgstr "ãããã¯ã¼ã¯è¨å®ã®ç·¨é"
+
+msgid "Edit Travelmate Configuration"
+msgstr "Travelmate è¨å®ã®ç·¨é"
+
+msgid "Edit Wireless Configuration"
+msgstr "ç¡ç·è¨å®ã®ç·¨é"
+
+msgid "Edit Wireless Uplink Configuration"
+msgstr "ç¡ç·ã¢ãããªã³ã¯è¨å®ã®ç·¨é"
+
+msgid "Edit this Uplink"
+msgstr "ãã®ã¢ãããªã³ã¯ãç·¨é"
+
+msgid "Enable 'automatic' mode"
+msgstr "'automatic' ã¢ã¼ãã®æå¹å"
+
+msgid "Enable travelmate"
+msgstr "Travelmate ã®æå¹å"
+
+msgid "Enable verbose debug logging"
+msgstr "詳細ãªãããã° ãã°ã®æå¹å"
+
+msgid "Encryption"
+msgstr "æå·å"
msgid "Extra options"
msgstr "æ¡å¼µãªãã·ã§ã³"
-msgid "Global options"
-msgstr "å
¨è¬ãªãã·ã§ã³"
+msgid "Find and join network on"
+msgstr "ãããã¯ã¼ã¯ã®æ¤ç´¢ã¨åå :"
+
+msgid ""
+"For further information see online "
+"documentation "
+msgstr ""
+"詳細ãªæ
å ±ã¯ ãªã³ã©ã¤ã³ ããã¥ã¡ã³ã ã"
+"確èªãã¦ãã ããã"
+
+msgid "How long should travelmate wait for a successful wlan interface reload."
+msgstr ""
+"ç¡ç·LAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ãªãã¼ããæåããã¾ã§ã®ãTravelmate ã®å¾
æ©æéã§"
+"ãã"
+
+msgid "How many times should travelmate try to connect to an Uplink."
+msgstr "Travelmate ãã¢ãããªã³ã¯ã¸ã®æ¥ç¶ã試è¡ããåæ°ã§ãã"
+
+msgid "Input file not found, please check your configuration."
+msgstr "å
¥åãã¡ã¤ã«ãè¦ã¤ããã¾ãããè¨å®ã確èªãã¦ãã ããã"
-msgid "Link to detailed advice"
-msgstr "詳細ãªè§£èª¬ã¸ã®ãªã³ã¯"
+msgid "Interface Timeout"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ ã¿ã¤ã ã¢ã¦ã"
-msgid "Max. number of connection retries to an uplink"
-msgstr "確ç«ã¾ã§ã®æ¥ç¶è©¦è¡åæ°"
+msgid "Interface Wizard"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ ã¦ã£ã¶ã¼ã"
-msgid "Max. timeout in seconds for wlan interface reload"
-msgstr "ç¡ç·LANã¤ã³ã¿ã¼ãã§ã¼ã¹ ãªãã¼ãæã®æ大å¾
æ©æéï¼ç§ï¼"
+msgid ""
+"Keep travelmate in an active state. Check every n seconds the connection "
+"status, i.e. the uplink availability."
+msgstr ""
+"Travelmate ãã¢ã¯ãã£ãç¶æ
ã§ç¶æãã¾ãã\"å®è¡éé\" ã§è¨å®ãããæéæ¯"
+"ï¼ç§ï¼ã«ãã¢ãããªã³ã¯ã®å¯ç¨æ§ã確èªããããã«æ¥ç¶ç¶æ
ããã§ãã¯ãã¾ã"
+
+msgid "Last rundate"
+msgstr "æçµå®è¡æ¥æ"
-msgid "Restrict reload trigger to certain interface(s)"
-msgstr "ãªãã¼ã ããªã¬ãç¹å®ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«éå®ãã"
+msgid "Manual Rescan"
+msgstr "æååã¹ãã£ã³"
+
+msgid "Move down"
+msgstr "ä¸ã¸"
+
+msgid "Move up"
+msgstr "ä¸ã¸"
msgid ""
-"Space separated list of wwan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Name of the uplink interface that triggers travelmate processing in 'manual' "
+"mode."
msgstr ""
-"ãªãã¼ãåä½ã®ããªã¬ã¨ãªããã¹ãã¼ã¹ã§åºåãããWWAN ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ãªã¹ã"
-"ã§ãããªãã¼ãã®ããªã¬ãç¡å¹ã«ããã«ã¯ã'false' ãè¨å®ãã¾ããæ¢å®å¤:ï¼ç©ºï¼"
+"'manual' ã¢ã¼ãæã« Travelmate ã®å¦çã®ããªã¬ã¼ã¨ãªããã¢ãããªã³ã¯ ã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã®ååã§ãã"
+
+msgid "Online Status"
+msgstr "ãªã³ã©ã¤ã³ ã¹ãã¼ã¿ã¹"
+
+msgid "Open"
+msgstr "ãªã¼ãã³"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "ããã©ã«ãã®è¨å®ãé©åã§ãªãå ´åãããã«è¨å®ããããã®ãªãã·ã§ã³ã§ãã"
+
+msgid "Overall Timeout"
+msgstr "å®è¡éé"
+
+msgid "Overview"
+msgstr "æ¦è¦"
+
+msgid "Passphrase (%s)"
+msgstr "æå·ãã¬ã¼ãº (%s)"
+
+msgid ""
+"Provides an overview of all configured uplinks for the travelmate interface "
+"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
+"one. The currently used uplink is emphasized in blue."
+msgstr ""
+"Travelmate ç¨ã¤ã³ã¿ã¼ãã§ã¼ã¹ï¼%sï¼ã«è¨å®æ¸ã¿ã®å
¨ã¢ãããªã³ã¯ã®ä¸è¦§ã§ããæ¢å"
+"ã®ã¢ãããªã³ã¯ã®ç·¨éãåé¤ã並ã¹æ¿ããè¡ã£ãããã¹ãã£ã³ãè¡ã£ã¦æ°è¦ã¢ãããª"
+"ã³ã¯ã追å ãããã¨ãã§ãã¾ããç¾å¨ä½¿ç¨ããã¦ããã¢ãããªã³ã¯ã¯ãéè²ã§å¼·èª¿ã"
+"ãã¾ãã"
+
+msgid "Radio selection"
+msgstr "ç¡ç·ã®é¸æ"
+
+msgid "Repeat scan"
+msgstr "åã¹ãã£ã³"
+
+msgid "Rescan"
+msgstr "åã¹ãã£ã³"
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgstr "Travelmate ãæå®ãããç¡ç·ã«æ¥ç¶ããããå¶å¾¡ãã¾ããï¼ä¾: 'radio0'ï¼"
+
+msgid "Runtime information"
+msgstr "å®è¡æ
å ±"
+
+msgid "SSID"
+msgstr "SSID"
+
+msgid "SSID (hidden)"
+msgstr "SSIDï¼ã¹ãã«ã¹ï¼"
+
+msgid "Save"
+msgstr "ä¿å"
+
+msgid "Scan"
+msgstr "ã¹ãã£ã³:"
+
+msgid "Signal strength"
+msgstr "ä¿¡å·å¼·åº¦"
+
+msgid "Specify the secret encryption key here."
+msgstr "æå·ãã¼ãè¨å®ãã¾ãã"
+
+msgid "Station Interface"
+msgstr "ã¹ãã¼ã·ã§ã³ ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Station Radio"
+msgstr "ã¹ãã¼ã·ã§ã³é»æ³¢"
+
+msgid "Station SSID"
+msgstr "ã¹ãã¼ã·ã§ã³ SSID"
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ããã¡ã¤ã¢ã¦ã©ã¼ã« è¨å®ãã¡ã¤ã« (/etc/config/firewall) ã®å
容"
+"ãå¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ããããã¯ã¼ã¯ è¨å®ãã¡ã¤ã« (/etc/config/network) ã®å
容ãå¤"
+"æ´ãããã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ã Travelmate è¨å®ãã¡ã¤ã« (/etc/config/travelmate) ã®å
容ã"
+"å¤æ´ãããã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+"ãã®ãã©ã¼ã ã§ã¯ãç¡ç· è¨å®ãã¡ã¤ã« (/etc/config/wireless) ã®å
容ãå¤æ´ããã"
+"ã¨ãã§ãã¾ãã"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+"ãã®ãã©ã¼ã ã«ã¯ãã·ã¹ãã ãã°å
ã® Travelmate ã«é¢ããã¡ãã»ã¼ã¸ã®ã¿ã表示ã"
+"ãã¾ãã"
+
+msgid "Timeout in seconds between retries in 'automatic' mode."
+msgstr "'automatic' ã¢ã¼ãæã«æ¥ç¶ã確èªã¾ãã¯å試è¡ããééï¼ç§ï¼ã§ãã"
+
+msgid "To disable this feature set it to '0' which means unlimited retries."
+msgstr ""
+"ãã®æ©è½ãç¡å¹ã«ãã¦æ¥ç¶ã®å試è¡ãç¡å¶éã«ããå ´åã '0' ãè¨å®ãã¾ãã"
msgid "Travelmate"
msgstr "Travelmate"
-msgid "Use iw for scanning"
-msgstr "ã¹ãã£ã³ã« iw ã使ç¨ãã"
+msgid "Travelmate Logfile"
+msgstr "Travelmate ãã°ãã¡ã¤ã«"
+
+msgid "Travelmate version"
+msgstr "Travelmate ãã¼ã¸ã§ã³"
+
+msgid "Trigger delay"
+msgstr "ããªã¬ã¼é
延"
+
+msgid "Unknown"
+msgstr "ä¸æ"
+
+msgid "Uplink / Trigger interface"
+msgstr "ã¢ãããªã³ã¯ / ããªã¬ã¼ ã¤ã³ã¿ã¼ãã§ã¼ã¹"
-#~ msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
-#~ msgstr "æ¢å®å¤ 3ãç¯å² 0 - 10ãå試è¡åæ°ãå¶éããªãå ´åã0 ã«è¨å®ãã¾ãã"
+msgid "Uplink SSID"
+msgstr "ã¢ãããªã³ã¯ SSID"
+
+msgid "Uplink interface"
+msgstr "ã¢ãããªã³ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "View Logfile"
+msgstr "ãã°ãã¡ã¤ã«ã®ç¢ºèª"
+
+msgid "WEP"
+msgstr "WEP"
+
+msgid "WEP passphrase"
+msgstr "WEP æå·ãã¼"
+
+msgid "WPA / WPA2"
+msgstr "WPA / WPA2"
+
+msgid "WPA passphrase"
+msgstr "WPA æå·ãã¼"
+
+msgid "Wireless Scan"
+msgstr "ç¡ç·ã¹ãã£ã³"
+
+msgid "Wireless Stations"
+msgstr "ç¡ç·ã¹ãã¼ã·ã§ã³"
+
+msgid ""
+"add it to the wan zone of the firewall. This step has only to be done once."
+msgstr ""
+"ãã¡ã¤ã¢ã¦ã©ã¼ã«ã® wan ã¾ã¼ã³ã«è¿½å ãã¾ãããã®ã¹ãããã¯ãä¸åº¦ã ãå®è¡ããã"
+"å¿
è¦ãããã¾ãã"
-#~ msgid "Default 30, range 5-60"
-#~ msgstr "æ¢å®å¤ 30ãç¯å² 5 - 60"
+msgid "connected"
+msgstr "æ¥ç¶æ¸ã¿"
-#~ msgid "Default: empty = use all radios."
-#~ msgstr "ããã©ã«ã:ï¼ç©ºï¼= å
¨ã¦ã®ç¡ç·ã使ç¨"
+msgid "hidden"
+msgstr "ï¼ä¸æï¼"
-#~ msgid "Loop timeout in seconds for wlan monitoring"
-#~ msgstr "ç¡ç·LAN ã¢ãã¿ã¼ã®ã«ã¼ã ã¿ã¤ã ã¢ã¦ãï¼ç§ï¼"
+msgid "n/a"
+msgstr "å©ç¨ä¸å¯"
-#~ msgid "Use only one radio, e.g. 'radio0'"
-#~ msgstr "åä¸ã®ç¡ç·ã®ã¿ä½¿ç¨ãããä¾: 'radio0'"
+msgid "not connected"
+msgstr "æªæ¥ç¶"
diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po
new file mode 100644
index 0000000000..41fab70149
--- /dev/null
+++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po
@@ -0,0 +1,360 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Actions"
+msgstr ""
+
+msgid "Add Interface"
+msgstr ""
+
+msgid "Add Uplink"
+msgstr ""
+
+msgid "Add Wireless Uplink Configuration"
+msgstr ""
+
+msgid ""
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Back to overview"
+msgstr ""
+
+msgid ""
+"Configuration of the travelmate package to to enable travel router "
+"functionality."
+msgstr ""
+
+msgid "Connection Limit"
+msgstr ""
+
+msgid "Create Uplink Interface"
+msgstr ""
+
+msgid ""
+"Create a new wireless wan uplink interface, configure it to use dhcp and"
+msgstr ""
+
+msgid "Delete"
+msgstr ""
+
+msgid "Delete this Uplink"
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Edit"
+msgstr ""
+
+msgid "Edit Firewall Configuration"
+msgstr ""
+
+msgid "Edit Network Configuration"
+msgstr ""
+
+msgid "Edit Travelmate Configuration"
+msgstr ""
+
+msgid "Edit Wireless Configuration"
+msgstr ""
+
+msgid "Edit Wireless Uplink Configuration"
+msgstr ""
+
+msgid "Edit this Uplink"
+msgstr ""
+
+msgid "Enable 'automatic' mode"
+msgstr ""
+
+msgid "Enable travelmate"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr ""
+
+msgid "Encryption"
+msgstr ""
+
+msgid "Extra options"
+msgstr "Opções adicionais"
+
+msgid "Find and join network on"
+msgstr ""
+
+msgid ""
+"For further information see online "
+"documentation "
+msgstr ""
+
+msgid "How long should travelmate wait for a successful wlan interface reload."
+msgstr ""
+
+msgid "How many times should travelmate try to connect to an Uplink."
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Interface Timeout"
+msgstr ""
+
+msgid "Interface Wizard"
+msgstr ""
+
+msgid ""
+"Keep travelmate in an active state. Check every n seconds the connection "
+"status, i.e. the uplink availability."
+msgstr ""
+
+msgid "Last rundate"
+msgstr ""
+
+msgid "Manual Rescan"
+msgstr ""
+
+msgid "Move down"
+msgstr ""
+
+msgid "Move up"
+msgstr ""
+
+msgid ""
+"Name of the uplink interface that triggers travelmate processing in 'manual' "
+"mode."
+msgstr ""
+
+msgid "Online Status"
+msgstr ""
+
+msgid "Open"
+msgstr ""
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Overall Timeout"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Passphrase (%s)"
+msgstr ""
+
+msgid ""
+"Provides an overview of all configured uplinks for the travelmate interface "
+"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
+"one. The currently used uplink is emphasized in blue."
+msgstr ""
+
+msgid "Radio selection"
+msgstr ""
+
+msgid "Repeat scan"
+msgstr ""
+
+msgid "Rescan"
+msgstr ""
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "SSID"
+msgstr ""
+
+msgid "SSID (hidden)"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Scan"
+msgstr ""
+
+msgid "Signal strength"
+msgstr ""
+
+msgid "Specify the secret encryption key here."
+msgstr ""
+
+msgid "Station Interface"
+msgstr ""
+
+msgid "Station Radio"
+msgstr ""
+
+msgid "Station SSID"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+
+msgid "Timeout in seconds between retries in 'automatic' mode."
+msgstr ""
+
+msgid "To disable this feature set it to '0' which means unlimited retries."
+msgstr ""
+
+msgid "Travelmate"
+msgstr "Travelmate"
+
+msgid "Travelmate Logfile"
+msgstr ""
+
+msgid "Travelmate version"
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Uplink / Trigger interface"
+msgstr ""
+
+msgid "Uplink SSID"
+msgstr ""
+
+msgid "Uplink interface"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "WEP"
+msgstr ""
+
+msgid "WEP passphrase"
+msgstr ""
+
+msgid "WPA / WPA2"
+msgstr ""
+
+msgid "WPA passphrase"
+msgstr ""
+
+msgid "Wireless Scan"
+msgstr ""
+
+msgid "Wireless Stations"
+msgstr ""
+
+msgid ""
+"add it to the wan zone of the firewall. This step has only to be done once."
+msgstr ""
+
+msgid "connected"
+msgstr ""
+
+msgid "hidden"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "not connected"
+msgstr ""
+
+#~ msgid ""
+#~ "Brief advice: Create a wwan interface, configure it to use dhcp and add "
+#~ "it to the wan zone in firewall. Create the wifi interfaces to be used "
+#~ "('client' mode, assigned to wwan network, left as disabled). Travelmate "
+#~ "will try to connect to the known wifi client interfaces in the defined "
+#~ "order."
+#~ msgstr ""
+#~ "Breve conselho: Crie uma interface wwan, configure-a para usar DHCP e "
+#~ "adicione-a à zona wan no firewall. Crie as interfaces wifi a serem usadas "
+#~ "(modo 'cliente', atribuÃdo à rede wwan, deixado como desativado). O "
+#~ "Travelmate tentará se conectar às interfaces de cliente wifi conhecidas "
+#~ "na ordem definida."
+
+#~ msgid ""
+#~ "Configuration of the Travelmate package to enable travel router "
+#~ "functionality."
+#~ msgstr ""
+#~ "Configuração do pacote Travelmate para permitir a funcionalidade de "
+#~ "roteador de viagem."
+
+#~ msgid "Debug logging"
+#~ msgstr "Registros(log) para depuração"
+
+#~ msgid "Default 20, range 10-60"
+#~ msgstr "Padrão 20, faixa 10-60"
+
+#~ msgid "Default 3, range 1-10"
+#~ msgstr "Padrão 3, faixa 1-10"
+
+#~ msgid "Disable this if you want to use iwinfo instead of iw"
+#~ msgstr "Desabilite isto se você quer usar o iwinfo ao invés do iw"
+
+#~ msgid "Enable Travelmate"
+#~ msgstr "Habilitar o Travelmate"
+
+#~ msgid "Global options"
+#~ msgstr "Opções Globais"
+
+#~ msgid "Link to detailed advice"
+#~ msgstr "Endereço para conselhos detalhados"
+
+#~ msgid "Max. number of connection retries to an uplink"
+#~ msgstr "Máximo número de tentativas de conexão para um enlace"
+
+#~ msgid "Max. timeout in seconds for wlan interface reload"
+#~ msgstr "Tempo limite máximo em segundos para recarregar a interface wlan"
+
+#~ msgid "Restrict reload trigger to certain interface(s)"
+#~ msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)"
+
+#~ msgid ""
+#~ "Space separated list of wwan interfaces that trigger reload action. To "
+#~ "disable reload trigger set it to 'false'. Default: empty"
+#~ msgstr ""
+#~ "Lista separada por espaços de interfaces wwan que acionam a ação de "
+#~ "recarga. Para desabilitar o gatilho de recarga, defina-o como 'false'. "
+#~ "Padrão: vazio"
+
+#~ msgid "Use iw for scanning"
+#~ msgstr "Use o iw para escaneamento"
diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot
index 20628196b6..a9ceafe237 100644
--- a/applications/luci-app-travelmate/po/templates/travelmate.pot
+++ b/applications/luci-app-travelmate/po/templates/travelmate.pot
@@ -1,58 +1,288 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+msgid "Actions"
+msgstr ""
+
+msgid "Add Interface"
+msgstr ""
+
+msgid "Add Uplink"
+msgstr ""
+
+msgid "Add Wireless Uplink Configuration"
+msgstr ""
+
msgid ""
-"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
-"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
-"mode, assigned to wwan network, left as disabled). Travelmate will try to "
-"connect to the known wifi client interfaces in the defined order."
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Back to overview"
msgstr ""
msgid ""
-"Configuration of the Travelmate package to enable travel router "
+"Configuration of the travelmate package to to enable travel router "
"functionality."
msgstr ""
-msgid "Debug logging"
+msgid "Connection Limit"
+msgstr ""
+
+msgid "Create Uplink Interface"
+msgstr ""
+
+msgid ""
+"Create a new wireless wan uplink interface, configure it to use dhcp and"
msgstr ""
-msgid "Default 20, range 10-60"
+msgid "Delete"
msgstr ""
-msgid "Default 3, range 1-10"
+msgid "Delete this Uplink"
msgstr ""
-msgid "Disable this if you want to use iwinfo instead of iw"
+msgid "Device"
msgstr ""
-msgid "Enable Travelmate"
+msgid "Edit"
+msgstr ""
+
+msgid "Edit Firewall Configuration"
+msgstr ""
+
+msgid "Edit Network Configuration"
+msgstr ""
+
+msgid "Edit Travelmate Configuration"
+msgstr ""
+
+msgid "Edit Wireless Configuration"
+msgstr ""
+
+msgid "Edit Wireless Uplink Configuration"
+msgstr ""
+
+msgid "Edit this Uplink"
+msgstr ""
+
+msgid "Enable 'automatic' mode"
+msgstr ""
+
+msgid "Enable travelmate"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr ""
+
+msgid "Encryption"
msgstr ""
msgid "Extra options"
msgstr ""
-msgid "Global options"
+msgid "Find and join network on"
msgstr ""
-msgid "Link to detailed advice"
+msgid ""
+"For further information see online "
+"documentation "
msgstr ""
-msgid "Max. number of connection retries to an uplink"
+msgid "How long should travelmate wait for a successful wlan interface reload."
msgstr ""
-msgid "Max. timeout in seconds for wlan interface reload"
+msgid "How many times should travelmate try to connect to an Uplink."
msgstr ""
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Interface Timeout"
+msgstr ""
+
+msgid "Interface Wizard"
+msgstr ""
+
+msgid ""
+"Keep travelmate in an active state. Check every n seconds the connection "
+"status, i.e. the uplink availability."
+msgstr ""
+
+msgid "Last rundate"
+msgstr ""
+
+msgid "Manual Rescan"
+msgstr ""
+
+msgid "Move down"
+msgstr ""
+
+msgid "Move up"
+msgstr ""
+
+msgid ""
+"Name of the uplink interface that triggers travelmate processing in 'manual' "
+"mode."
+msgstr ""
+
+msgid "Online Status"
+msgstr ""
+
+msgid "Open"
msgstr ""
msgid ""
-"Space separated list of wwan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Overall Timeout"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Passphrase (%s)"
+msgstr ""
+
+msgid ""
+"Provides an overview of all configured uplinks for the travelmate interface "
+"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
+"one. The currently used uplink is emphasized in blue."
+msgstr ""
+
+msgid "Radio selection"
+msgstr ""
+
+msgid "Repeat scan"
+msgstr ""
+
+msgid "Rescan"
+msgstr ""
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "SSID"
+msgstr ""
+
+msgid "SSID (hidden)"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Scan"
+msgstr ""
+
+msgid "Signal strength"
+msgstr ""
+
+msgid "Specify the secret encryption key here."
+msgstr ""
+
+msgid "Station Interface"
+msgstr ""
+
+msgid "Station Radio"
+msgstr ""
+
+msgid "Station SSID"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+
+msgid "Timeout in seconds between retries in 'automatic' mode."
+msgstr ""
+
+msgid "To disable this feature set it to '0' which means unlimited retries."
msgstr ""
msgid "Travelmate"
msgstr ""
-msgid "Use iw for scanning"
+msgid "Travelmate Logfile"
+msgstr ""
+
+msgid "Travelmate version"
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Uplink / Trigger interface"
+msgstr ""
+
+msgid "Uplink SSID"
+msgstr ""
+
+msgid "Uplink interface"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "WEP"
+msgstr ""
+
+msgid "WEP passphrase"
+msgstr ""
+
+msgid "WPA / WPA2"
+msgstr ""
+
+msgid "WPA passphrase"
+msgstr ""
+
+msgid "Wireless Scan"
+msgstr ""
+
+msgid "Wireless Stations"
+msgstr ""
+
+msgid ""
+"add it to the wan zone of the firewall. This step has only to be done once."
+msgstr ""
+
+msgid "connected"
+msgstr ""
+
+msgid "hidden"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "not connected"
msgstr ""
diff --git a/applications/luci-app-uhttpd/Makefile b/applications/luci-app-uhttpd/Makefile
index 9a2cf462e5..3014770665 100644
--- a/applications/luci-app-uhttpd/Makefile
+++ b/applications/luci-app-uhttpd/Makefile
@@ -11,16 +11,9 @@ LUCI_TITLE:=uHTTPd Webserver Configuration
LUCI_DEPENDS:=+uhttpd
LUCI_PKGARCH:=all
-PKG_NAME:=luci-app-uhttpd
-PKG_VERSION:=1.0.0
-PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=Daniel Dickinson
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
LUA_TARGET:=source
include ../../luci.mk
diff --git a/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua b/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua
index 03821ad9b5..883e1bb631 100644
--- a/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua
+++ b/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua
@@ -202,14 +202,17 @@ o = ucs:taboption("advanced", Value, "max_requests", translate("Maximum number o
o.optional = true
o.datatype = "uinteger"
-local s = m:section(NamedSection, "px5g", "cert", translate("uHTTPd Self-signed Certificate Parameters"))
+local s = m:section(TypedSection, "cert", translate("uHTTPd Self-signed Certificate Parameters"))
+
+s.template = "cbi/tsection"
+s.anonymous = true
o = s:option(Value, "days", translate("Valid for # of Days"))
o.default = 730
o.datatype = "uinteger"
o = s:option(Value, "bits", translate("Length of key in bits"))
-o.default = 1024
+o.default = 2048
o.datatype = "min(1024)"
o = s:option(Value, "commonname", translate("Server Hostname"), translate("a.k.a CommonName"))
@@ -222,6 +225,6 @@ o = s:option(Value, "state", translate("State"))
o.default = "Unknown"
o = s:option(Value, "location", translate("Location"))
-o.default = "Somewhere"
+o.default = "Unknown"
return m
diff --git a/applications/luci-app-uhttpd/po/pt-br/uhttpd.po b/applications/luci-app-uhttpd/po/pt-br/uhttpd.po
new file mode 100644
index 0000000000..af68b9e140
--- /dev/null
+++ b/applications/luci-app-uhttpd/po/pt-br/uhttpd.po
@@ -0,0 +1,208 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+"(/old/path=/new/path) ou (just /old/path que se torna /cgi-prefix/old/path)"
+
+msgid "404 Error"
+msgstr "Erro 404"
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr "Um servidor HTTP(S) leve de únida thread."
+
+msgid "Advanced Settings"
+msgstr "Opções Avançadas"
+
+msgid "Aliases"
+msgstr "Pseudônimos (Aliases)"
+
+msgid "Base directory for files to be served"
+msgstr "Diretório Base para publicar arquivos"
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+"Escute em uma interface:porta especÃfica (especificando o endereço da "
+"interface"
+
+msgid "CGI filetype handler"
+msgstr "Interpretador de tipo de arquivo CGI"
+
+msgid "CGI is disabled if not present."
+msgstr "O CGI estará desabilitado se não presente."
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr "Arquivo de configuração (ex: credenciais para autenticação básica)"
+
+msgid "Connection reuse"
+msgstr "Reutilizar conexão"
+
+msgid "Country"
+msgstr "PaÃs"
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr "Desabilita a autorização JSON-RPC através da API de sessão ubus"
+
+msgid "Do not follow symlinks outside document root"
+msgstr "Não siga ligações simbólicas (symlinks) para fora do documento raiz"
+
+msgid "Do not generate directory listings."
+msgstr "Não gere listagens de diretórios"
+
+msgid "Document root"
+msgstr "Documento Raiz"
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr "Ex: use index.html e index.php quando usar PHP"
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr "O interpretador Lua embutido será desabilitado se não presente."
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr "Habilite o suporte para recursos JSON-RPC de origem cruzada"
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr "Para ajustes envolvidos com mais do que prover a interface web"
+
+msgid "Full Web Server Settings"
+msgstr "Configurações Completas do Servidor Web"
+
+msgid "Full real path to handler for Lua scripts"
+msgstr "Caminho completo para o interpretador de scripts Lua"
+
+msgid "General Settings"
+msgstr "Configurações Gerais"
+
+msgid "HTTP listeners (address:port)"
+msgstr "Escutas do HTTP (endereço:porta)"
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr "Certificado do HTTPS (codificado em formato PEM)"
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr "Chave Privada do HTTPS (codificado como DER)"
+
+msgid "HTTPS listener (address:port)"
+msgstr "Escuta do HTTPS (endereço:porta)"
+
+msgid "Ignore private IPs on public interface"
+msgstr "Ignore endereços IP privados na interface pública"
+
+msgid "Index page(s)"
+msgstr "Página(s) Ãndice(s)"
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+"Interpretador para associar com extensões de arquivos "
+"('extensão=interpretador', ex: '.php=/usr/bin/php-cgi')"
+
+msgid "Length of key in bits"
+msgstr "Comprimento da chave em bits"
+
+msgid "Location"
+msgstr "Localização"
+
+msgid "Maximum number of connections"
+msgstr "Número máximo de requisições para script"
+
+msgid "Maximum number of script requests"
+msgstr "Número máximo de requisições para script"
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr "Tempo máximo de espera para execuções de Lua, CGI ou ubus"
+
+msgid "Maximum wait time for network activity"
+msgstr "Tempo máximo de espera para atividade na rede"
+
+msgid "Override path for ubus socket"
+msgstr "Sobrescrever o caminho do socket ubus"
+
+msgid "Path prefix for CGI scripts"
+msgstr "Prefixo do caminho para scripts CGI"
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+"Evite acesso de endereços privados (RFC1918) na interface que tem um "
+"endereço IP público"
+
+msgid "Realm for Basic Auth"
+msgstr "Reino para Autenticação Simples"
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr "Redirecionar todo tráfego HTTP para HTTPS"
+
+msgid "Remove configuration for certificate and key"
+msgstr "Remove a configuração para o certificado e chave"
+
+msgid "Remove old certificate and key"
+msgstr "Remove os certificados e chaves antigas"
+
+msgid "Server Hostname"
+msgstr "Nome do Servidor"
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr "Ajustes que são raramente usadas ou que afetam a interface web"
+
+msgid "State"
+msgstr "Estado"
+
+msgid "TCP Keepalive"
+msgstr "Manter conexões TCP abertas (Keepalive)"
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr "Isto apaga permanentemente o certificado, a chave e a configuração."
+
+msgid "Valid for # of Days"
+msgstr "Valido por # dias"
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+"URL virtual ou script CGI para mostrar quando ocorrer erro '404 Não "
+"Encontrado'. Deve começar com '/'"
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr "Prefixo do caminho virtual para scripts Lua"
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr "Prefixo do caminho virtual para o ubus através da integração JSON-RPC"
+
+msgid "Will not use HTTP authentication if not present"
+msgstr "Não usar autenticação HTTP se não presente"
+
+msgid "a.k.a CommonName"
+msgstr "também conhecido como Nome Comum"
+
+msgid "uHTTPd"
+msgstr "uHTTPd"
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr "Parâmetros do Certificado Auto-assinado do uHTTPd"
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr ""
+"o uHTTPd gerará um certificado auto-assinado usando a configuração mostrada "
+"abaixo."
+
+msgid "ubus integration is disabled if not present"
+msgstr "A integração com o ubus será desativada se não presente"
diff --git a/applications/luci-app-unbound/luasrc/controller/unbound.lua b/applications/luci-app-unbound/luasrc/controller/unbound.lua
index 0a5abc5a5e..b44bf038eb 100644
--- a/applications/luci-app-unbound/luasrc/controller/unbound.lua
+++ b/applications/luci-app-unbound/luasrc/controller/unbound.lua
@@ -1,17 +1,151 @@
-- Copyright 2008 Steven Barth
-- Copyright 2008 Jo-Philipp Wich
+-- Copyright 2017 Eric Luehrsen
-- Licensed to the public under the Apache License 2.0.
module("luci.controller.unbound", package.seeall)
+
function index()
- if not nixio.fs.access("/etc/config/unbound") then
- return
- end
+ local ucl = luci.model.uci.cursor()
+ local valexp = ucl:get_first("unbound", "unbound", "extended_luci")
+ local valman = ucl:get_first("unbound", "unbound", "manual_conf")
+
+
+ if not nixio.fs.access("/etc/config/unbound") then
+ return
+ end
+
+
+ if valexp == "1" then
+ -- Expanded View
+ entry({"admin", "services", "unbound"}, firstchild(), _("Recursive DNS")).dependent = false
+
+ -- UCI Tab(s)
+ entry({"admin", "services", "unbound", "configure"}, cbi("unbound/configure"), _("Settings"), 10)
+
+ -- Status Tab(s)
+ entry({"admin", "services", "unbound", "status"}, firstchild(), _("Status"), 20)
+ entry({"admin", "services", "unbound", "status", "syslog"}, call("QuerySysLog"), _("Log"), 50).leaf = true
+
+
+ if nixio.fs.access("/usr/sbin/unbound-control") then
+ -- Require unbound-control to execute
+ entry({"admin", "services", "unbound", "status", "statistics"}, call("QueryStatistics"), _("Statistics"), 10).leaf = true
+ entry({"admin", "services", "unbound", "status", "localdata"}, call("QueryLocalData"), _("Local Data"), 20).leaf = true
+ entry({"admin", "services", "unbound", "status", "localzone"}, call("QueryLocalZone"), _("Local Zones"), 30).leaf = true
+
+ else
+ entry({"admin", "services", "unbound", "status", "statistics"}, call("ShowEmpty"), _("Statistics"), 10).leaf = true
+ end
+
+
+ -- Raw File Tab(s)
+ entry({"admin", "services", "unbound", "files"}, firstchild(), _("Files"), 30)
+
+
+ if valman ~= "1" then
+ entry({"admin", "services", "unbound", "files", "base"}, call("ShowUnboundConf"), _("UCI: Unbound"), 10).leaf = true
+ else
+ entry({"admin", "services", "unbound", "files", "base"}, cbi("unbound/manual"), _("Edit: Unbound"), 10).leaf = true
+ end
+
+
+ entry({"admin", "services", "unbound", "files", "server"}, cbi("unbound/server"), _("Edit: Server"), 20).leaf = true
+ entry({"admin", "services", "unbound", "files", "extended"}, cbi("unbound/extended"), _("Edit: Extended"), 30).leaf = true
+
+
+ if nixio.fs.access("/var/lib/unbound/unbound_dhcp.conf") then
+ entry({"admin", "services", "unbound", "files", "dhcp"}, call("ShowDHCPConf"), _("Include: DHCP"), 40).leaf = true
+ end
+
+
+ if nixio.fs.access("/var/lib/unbound/adb_list.overall") then
+ entry({"admin", "services", "unbound", "files", "adblock"}, call("ShowAdblock"), _("Include: Adblock"), 50).leaf = true
+ end
+
+ else
+ -- Simple View to UCI only
+ entry({"admin", "services", "unbound"}, cbi("unbound/configure"), _("Recursive DNS")).dependent = false
+ end
+end
+
+
+function ShowEmpty()
+ local lclhead = "Unbound Control"
+ local lcldesc = luci.i18n.translate("This could display more statistics with the unbound-control package.")
+ luci.template.render("unbound/show-empty", {heading = lclhead, description = lcldesc})
+end
+
+
+function QuerySysLog()
+ local lclhead = "System Log"
+ local lcldata = luci.util.exec("logread | grep -i unbound")
+ local lcldesc = luci.i18n.translate("This shows syslog filtered for events involving Unbound.")
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function QueryStatistics()
+ local lclhead = "Unbound Control Stats"
+ local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf stats_noreset")
+ local lcldesc = luci.i18n.translate("This shows some performance statistics tracked by Unbound.")
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function QueryLocalData()
+ local lclhead = "Unbound Control Local Data"
+ local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf list_local_data")
+ local lcldesc = luci.i18n.translate("This shows local host records that shortcut recursion.")
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function QueryLocalZone()
+ local lclhead = "Unbound Control Local Zones"
+ local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf list_local_zones")
+ local lcldesc = luci.i18n.translate("This shows local zone definitions that affect recursion routing or processing. ")
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function ShowUnboundConf()
+ local unboundfile = "/var/lib/unbound/unbound.conf"
+ local lclhead = "Unbound Conf"
+ local lcldata = nixio.fs.readfile(unboundfile)
+ local lcldesc = luci.i18n.translate("This shows configuration generated by UCI:")
+ lcldesc = lcldesc .. " (" .. unboundfile .. ")"
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function ShowDHCPConf()
+ local dhcpfile = "/var/lib/unbound/unbound_dhcp.conf"
+ local lclhead = "DHCP Conf"
+ local lcldata = nixio.fs.readfile(dhcpfile)
+ local lcldesc = luci.i18n.translate("This shows LAN hosts added by DHCP hook scripts:")
+ lcldesc = lcldesc .. " (" .. dhcpfile .. ")"
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+end
+
+
+function ShowAdblock()
+ local adblockfile = "/var/lib/unbound/adb_list.overall"
+ local lclhead = "Adblock Conf"
+ local lcldata, lcldesc
+
- local page
+ if nixio.fs.stat(adblockfile).size > 262144 then
+ lcldesc = luci.i18n.translate("Adblock domain list is too large for LuCI:")
+ lcldesc = lcldesc .. " (" .. adblockfile .. ")"
+ luci.template.render("unbound/show-empty", {heading = lclhead, description = lcldesc})
- page = entry({"admin", "services", "unbound"}, cbi("unbound"), _("Recursive DNS"))
- page.dependent = true
+ else
+ lcldata = nixio.fs.readfile(adblockfile)
+ lcldesc = luci.i18n.translate("This shows blocked domains provided by Adblock scripts:")
+ lcldesc = lcldesc .. " (" .. adblockfile .. ")"
+ luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata})
+ end
end
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
deleted file mode 100644
index 847c98a3e8..0000000000
--- a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
+++ /dev/null
@@ -1,189 +0,0 @@
--- Copyright 2008 Steven Barth
--- Copyright 2016 Eric Luehrsen
--- Copyright 2016 Dan Luedtke
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("unbound", translate("Recursive DNS"),
- translate("Unbound is a validating, recursive, and caching DNS resolver."))
-
-s1 = m:section(TypedSection, "unbound")
-s1.addremove = false
-s1.anonymous = true
-s1:tab("service", translate("Basic Settings"))
-s1:tab("advanced", translate("Advanced Settings"))
-s1:tab("resource", translate("Resource Settings"))
-
---LuCI or Not
-
-ena = s1:taboption("service", Flag, "enabled", translate("Enable Unbound:"),
- translate("Enable the initialization scripts for Unbound"))
-ena.rmempty = false
-
-mcf = s1:taboption("service", Flag, "manual_conf", translate("Manual Conf:"),
- translate("Skip UCI and use /etc/unbound/unbound.conf"))
-mcf.rmempty = false
-
-function ena.cfgvalue(self, section)
- return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
-end
-
-function ena.write(self, section, value)
- if value == "1" then
- luci.sys.init.enable("unbound")
- luci.sys.call("/etc/init.d/unbound start >/dev/null")
- else
- luci.sys.call("/etc/init.d/unbound stop >/dev/null")
- luci.sys.init.disable("unbound")
- end
-
- return Flag.write(self, section, value)
-end
-
---Basic Tab
-
-lsv = s1:taboption("service", Flag, "localservice", translate("Local Service:"),
- translate("Accept queries only from local subnets"))
-lsv.rmempty = false
-
-rlh = s1:taboption("service", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
- translate("Prevent upstream response of 127.0.0.0/8"))
-rlh.rmempty = false
-
-rpv = s1:taboption("service", Flag, "rebind_protection", translate("Block Private Rebind:"),
- translate("Prevent upstream response of RFC1918 ranges"))
-rpv.rmempty = false
-
-vld = s1:taboption("service", Flag, "validator", translate("Enable DNSSEC:"),
- translate("Enable the DNSSEC validator module"))
-vld.rmempty = false
-
-nvd = s1:taboption("service", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
- translate("Break the loop where DNSSEC needs NTP and NTP needs DNS"))
-nvd.rmempty = false
-nvd:depends({ validator = true })
-
-eds = s1:taboption("service", Value, "edns_size", translate("EDNS Size:"),
- translate("Limit extended DNS packet size"))
-eds.datatype = "and(uinteger,min(512),max(4096))"
-eds.rmempty = false
-
-prt = s1:taboption("service", Value, "listen_port", translate("Listening Port:"),
- translate("Choose Unbounds listening port"))
-prt.datatype = "port"
-prt.rmempty = false
-
-tlm = s1:taboption("service", Value, "ttl_min", translate("TTL Minimum:"),
- translate("Prevent excessively short cache periods"))
-tlm.datatype = "and(uinteger,min(0),max(600))"
-tlm.rmempty = false
-
---Advanced Tab
-
-ctl = s1:taboption("advanced", Flag, "unbound_control", translate("Unbound Control App:"),
- translate("Enable unecrypted localhost access for unbound-control"))
-ctl.rmempty = false
-
-dlk = s1:taboption("advanced", ListValue, "dhcp_link", translate("DHCP Link:"),
- translate("Link to supported programs to load DHCP into DNS"))
-dlk:value("none", translate("No Link"))
-dlk:value("dnsmasq", "dnsmasq")
-dlk:value("odhcpd", "odhcpd")
-dlk.rmempty = false
-
-dom = s1:taboption("advanced", Value, "domain", translate("Local Domain:"),
- translate("Domain suffix for this router and DHCP clients"))
-dom.placeholder = "lan"
-dom:depends({ dhcp_link = "none" })
-dom:depends({ dhcp_link = "odhcpd" })
-
-dty = s1:taboption("advanced", ListValue, "domain_type", translate("Local Domain Type:"),
- translate("How to treat queries of this local domain"))
-dty:value("deny", translate("Ignored"))
-dty:value("refuse", translate("Refused"))
-dty:value("static", translate("Only Local"))
-dty:value("transparent", translate("Also Forwarded"))
-dty:depends({ dhcp_link = "none" })
-dty:depends({ dhcp_link = "odhcpd" })
-
-lfq = s1:taboption("advanced", ListValue, "add_local_fqdn", translate("LAN DNS:"),
- translate("How to enter the LAN or local network router in DNS"))
-lfq:value("0", translate("No DNS"))
-lfq:value("1", translate("Hostname, Primary Address"))
-lfq:value("2", translate("Hostname, All Addresses"))
-lfq:value("3", translate("Host FQDN, All Addresses"))
-lfq:value("4", translate("Interface FQDN, All Addresses"))
-lfq:depends({ dhcp_link = "none" })
-lfq:depends({ dhcp_link = "odhcpd" })
-
-wfq = s1:taboption("advanced", ListValue, "add_wan_fqdn", translate("WAN DNS:"),
- translate("Override the WAN side router entry in DNS"))
-wfq:value("0", translate("Upstream"))
-wfq:value("1", translate("Hostname, Primary Address"))
-wfq:value("2", translate("Hostname, All Addresses"))
-wfq:value("3", translate("Host FQDN, All Addresses"))
-wfq:value("4", translate("Interface FQDN, All Addresses"))
-wfq:depends({ dhcp_link = "none" })
-wfq:depends({ dhcp_link = "odhcpd" })
-
-ctl = s1:taboption("advanced", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"),
- translate("Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)"))
-ctl.rmempty = false
-
-d64 = s1:taboption("advanced", Flag, "dns64", translate("Enable DNS64:"),
- translate("Enable the DNS64 module"))
-d64.rmempty = false
-
-pfx = s1:taboption("advanced", Value, "dns64_prefix", translate("DNS64 Prefix:"),
- translate("Prefix for generated DNS64 addresses"))
-pfx.datatype = "ip6addr"
-pfx.placeholder = "64:ff9b::/96"
-pfx.optional = true
-pfx:depends({ dns64 = true })
-
-qry = s1:taboption("advanced", Flag, "query_minimize", translate("Query Minimize:"),
- translate("Break down query components for limited added privacy"))
-qry.rmempty = false
-
-qrs = s1:taboption("advanced", Flag, "query_min_strict", translate("Strict Minimize:"),
- translate("Strict version of 'query minimize' but it can break DNS"))
-qrs.rmempty = false
-qrs:depends({ query_minimize = true })
-
---TODO: dnsmasq needs to not reference resolve-file and get off port 53.
-
---Resource Tuning Tab
-
-pro = s1:taboption("resource", ListValue, "protocol", translate("Recursion Protocol:"),
- translate("Chose the protocol recursion queries leave on"))
-pro:value("mixed", translate("IP4 and IP6"))
-pro:value("ip6_prefer", translate("IP6 Preferred"))
-pro:value("ip4_only", translate("IP4 Only"))
-pro:value("ip6_only", translate("IP6 Only"))
-pro.rmempty = false
-
-rsn = s1:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
- translate("Recursion activity affects memory growth and CPU load"))
-rsn:value("aggressive", translate("Aggressive"))
-rsn:value("default", translate("Default"))
-rsn:value("passive", translate("Passive"))
-rsn.rmempty = false
-
-rsc = s1:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
- translate("Use menu System/Processes to observe any memory growth"))
-rsc:value("large", translate("Large"))
-rsc:value("medium", translate("Medium"))
-rsc:value("small", translate("Small"))
-rsc:value("tiny", translate("Tiny"))
-rsc.rmempty = false
-
-ag2 = s1:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
- translate("Limit days between RFC5011 to reduce flash writes"))
-ag2.datatype = "and(uinteger,min(1),max(99))"
-ag2:value("14", "14")
-ag2:value("28", "28 ("..translate("default")..")")
-ag2:value("45", "45")
-ag2:value("90", "90")
-ag2:value("99", "99 ("..translate("never")..")")
-
-return m
-
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua
new file mode 100644
index 0000000000..cdf7757e3a
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua
@@ -0,0 +1,273 @@
+-- Copyright 2008 Steven Barth
+-- Copyright 2016 Eric Luehrsen
+-- Copyright 2016 Dan Luedtke
+-- Licensed to the public under the Apache License 2.0.
+
+local m1, s1
+local ena, mcf, lci, lsv, rlh, rpv, vld, nvd, eds, prt, tlm
+local ctl, dlk, dom, dty, lfq, wfq, exa, dp6, d64, pfx, qry, qrs
+local pro, tgr, rsc, rsn, ag2, stt
+local ucl = luci.model.uci.cursor()
+local valman = ucl:get_first("unbound", "unbound", "manual_conf")
+
+m1 = Map("unbound")
+
+s1 = m1:section(TypedSection, "unbound")
+s1.addremove = false
+s1.anonymous = true
+
+--LuCI, Unbound, or Not
+s1:tab("basic", translate("Basic"),
+ translatef("Unbound Basic Settings \n"
+ .. "Unbound "
+ .. " is a validating, recursive, and caching DNS resolver. "
+ .. "UCI help can be found on "
+ .. "github .",
+ "https://www.unbound.net/",
+ "https://github.com/openwrt/packages/blob/master/net/unbound/files/README.md"))
+
+ena = s1:taboption("basic", Flag, "enabled", translate("Enable Unbound:"),
+ translate("Enable the initialization scripts for Unbound"))
+ena.rmempty = false
+
+mcf = s1:taboption("basic", Flag, "manual_conf", translate("Manual Conf:"),
+ translate("Skip UCI and use /etc/unbound/unbound.conf"))
+mcf.rmempty = false
+
+lci = s1:taboption("basic", Flag, "extended_luci", translate("Advanced LuCI:"),
+ translate("See detailed tabs for debug and advanced manual configuration"))
+lci.rmempty = false
+
+
+function ena.cfgvalue(self, section)
+ return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
+end
+
+
+function ena.write(self, section, value)
+ if value == "1" then
+ luci.sys.init.enable("unbound")
+ luci.sys.call("/etc/init.d/unbound start >/dev/null")
+ else
+ luci.sys.call("/etc/init.d/unbound stop >/dev/null")
+ luci.sys.init.disable("unbound")
+ end
+
+ return Flag.write(self, section, value)
+end
+
+
+if valman ~= "1" then
+ -- Not in manual configuration mode; show UCI
+ s1:tab("advanced", translate("Advanced"),
+ translatef("Unbound Advanced Settings \n"
+ .. "Advanced setttings and plugin modules for "
+ .. "Unbound "
+ .. " DNS resolver.", "https://www.unbound.net/"))
+
+ s1:tab("resource", translate("Resource"),
+ translatef("Unbound Resource Settings \n"
+ .. "Memory and protocol setttings for "
+ .. "Unbound "
+ .. " DNS resolver.", "https://www.unbound.net/"))
+
+ --Basic Tab
+ lsv = s1:taboption("basic", Flag, "localservice", translate("Local Service:"),
+ translate("Accept queries only from local subnets"))
+ lsv.rmempty = false
+
+ rlh = s1:taboption("basic", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
+ translate("Prevent upstream response of 127.0.0.0/8"))
+ rlh.rmempty = false
+
+ rpv = s1:taboption("basic", Flag, "rebind_protection", translate("Block Private Rebind:"),
+ translate("Prevent upstream response of RFC1918 ranges"))
+ rpv.rmempty = false
+
+ vld = s1:taboption("basic", Flag, "validator", translate("Enable DNSSEC:"),
+ translate("Enable the DNSSEC validator module"))
+ vld.rmempty = false
+
+ nvd = s1:taboption("basic", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
+ translate("Break the loop where DNSSEC needs NTP and NTP needs DNS"))
+ nvd.rmempty = false
+ nvd:depends({ validator = true })
+
+ eds = s1:taboption("basic", Value, "edns_size", translate("EDNS Size:"),
+ translate("Limit extended DNS packet size"))
+ eds.datatype = "and(uinteger,min(512),max(4096))"
+ eds.rmempty = false
+
+ prt = s1:taboption("basic", Value, "listen_port", translate("Listening Port:"),
+ translate("Choose Unbounds listening port"))
+ prt.datatype = "port"
+ prt.rmempty = false
+
+ tlm = s1:taboption("basic", Value, "ttl_min", translate("TTL Minimum:"),
+ translate("Prevent excessively short cache periods"))
+ tlm.datatype = "and(uinteger,min(0),max(600))"
+ tlm.rmempty = false
+
+ --Advanced Tab
+ ctl = s1:taboption("advanced", ListValue, "unbound_control", translate("Unbound Control App:"),
+ translate("Enable access for unbound-control"))
+ ctl.rmempty = false
+ ctl:value("0", translate("No Remote Control"))
+ ctl:value("1", translate("Local Host, No Encryption"))
+ ctl:value("2", translate("Local Host, Encrypted"))
+ ctl:value("3", translate("Local Subnet, Encrypted"))
+ ctl:value("4", translate("Local Subnet, Static Encryption"))
+
+ dlk = s1:taboption("advanced", ListValue, "dhcp_link", translate("DHCP Link:"),
+ translate("Link to supported programs to load DHCP into DNS"))
+ dlk:value("none", translate("No Link"))
+ dlk:value("dnsmasq", "dnsmasq")
+ dlk:value("odhcpd", "odhcpd")
+ dlk.rmempty = false
+
+ dom = s1:taboption("advanced", Value, "domain", translate("Local Domain:"),
+ translate("Domain suffix for this router and DHCP clients"))
+ dom.placeholder = "lan"
+ dom:depends({ dhcp_link = "none" })
+ dom:depends({ dhcp_link = "odhcpd" })
+
+ dty = s1:taboption("advanced", ListValue, "domain_type", translate("Local Domain Type:"),
+ translate("How to treat queries of this local domain"))
+ dty:value("deny", translate("Ignored"))
+ dty:value("refuse", translate("Refused"))
+ dty:value("static", translate("Only Local"))
+ dty:value("transparent", translate("Also Forwarded"))
+ dty:depends({ dhcp_link = "none" })
+ dty:depends({ dhcp_link = "odhcpd" })
+
+ lfq = s1:taboption("advanced", ListValue, "add_local_fqdn", translate("LAN DNS:"),
+ translate("How to enter the LAN or local network router in DNS"))
+ lfq:value("0", translate("No DNS"))
+ lfq:value("1", translate("Hostname, Primary Address"))
+ lfq:value("2", translate("Hostname, All Addresses"))
+ lfq:value("3", translate("Host FQDN, All Addresses"))
+ lfq:value("4", translate("Interface FQDN, All Addresses"))
+ lfq:depends({ dhcp_link = "none" })
+ lfq:depends({ dhcp_link = "odhcpd" })
+
+ wfq = s1:taboption("advanced", ListValue, "add_wan_fqdn", translate("WAN DNS:"),
+ translate("Override the WAN side router entry in DNS"))
+ wfq:value("0", translate("Upstream"))
+ wfq:value("1", translate("Hostname, Primary Address"))
+ wfq:value("2", translate("Hostname, All Addresses"))
+ wfq:value("3", translate("Host FQDN, All Addresses"))
+ wfq:value("4", translate("Interface FQDN, All Addresses"))
+ wfq:depends({ dhcp_link = "none" })
+ wfq:depends({ dhcp_link = "odhcpd" })
+
+ exa = s1:taboption("advanced", ListValue, "add_extra_dns", translate("Extra DNS:"),
+ translate("Use extra DNS entries found in /etc/config/dhcp"))
+ exa:value("0", translate("Ignore"))
+ exa:value("1", translate("Include Network/Hostnames"))
+ exa:value("2", translate("Advanced MX/SRV RR"))
+ exa:value("3", translate("Advanced CNAME RR"))
+ exa:depends({ dhcp_link = "none" })
+ exa:depends({ dhcp_link = "odhcpd" })
+
+ dp6 = s1:taboption("advanced", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"),
+ translate("Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)"))
+ dp6.rmempty = false
+
+ d64 = s1:taboption("advanced", Flag, "dns64", translate("Enable DNS64:"),
+ translate("Enable the DNS64 module"))
+ d64.rmempty = false
+
+ pfx = s1:taboption("advanced", Value, "dns64_prefix", translate("DNS64 Prefix:"),
+ translate("Prefix for generated DNS64 addresses"))
+ pfx.datatype = "ip6addr"
+ pfx.placeholder = "64:ff9b::/96"
+ pfx.optional = true
+ pfx:depends({ dns64 = true })
+
+ qry = s1:taboption("advanced", Flag, "query_minimize", translate("Query Minimize:"),
+ translate("Break down query components for limited added privacy"))
+ qry.rmempty = false
+
+ qrs = s1:taboption("advanced", Flag, "query_min_strict", translate("Strict Minimize:"),
+ translate("Strict version of 'query minimize' but it can break DNS"))
+ qrs.rmempty = false
+ qrs:depends({ query_minimize = true })
+
+ --TODO: dnsmasq needs to not reference resolve-file and get off port 53.
+
+ --Resource Tuning Tab
+ pro = s1:taboption("resource", ListValue, "protocol", translate("Recursion Protocol:"),
+ translate("Chose the protocol recursion queries leave on"))
+ pro:value("mixed", translate("IP4 and IP6"))
+ pro:value("ip6_prefer", translate("IP6 Preferred"))
+ pro:value("ip4_only", translate("IP4 Only"))
+ pro:value("ip6_only", translate("IP6 Only"))
+ pro.rmempty = false
+
+ rsn = s1:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
+ translate("Recursion activity affects memory growth and CPU load"))
+ rsn:value("aggressive", translate("Aggressive"))
+ rsn:value("default", translate("Default"))
+ rsn:value("passive", translate("Passive"))
+ rsn.rmempty = false
+
+ rsc = s1:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
+ translate("Use menu System/Processes to observe any memory growth"))
+ rsc:value("large", translate("Large"))
+ rsc:value("medium", translate("Medium"))
+ rsc:value("small", translate("Small"))
+ rsc:value("tiny", translate("Tiny"))
+ rsc.rmempty = false
+
+ ag2 = s1:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
+ translate("Limit days between RFC5011 to reduce flash writes"))
+ ag2.datatype = "and(uinteger,min(1),max(99))"
+ ag2:value("3", "3")
+ ag2:value("9", "9 ("..translate("default")..")")
+ ag2:value("12", "12")
+ ag2:value("24", "24")
+ ag2:value("99", "99 ("..translate("never")..")")
+
+ stt = s1:taboption("resource", Flag, "extended_stats", translate("Extended Statistics:"),
+ translate("Extended statistics are printed from unbound-control"))
+ stt.rmempty = false
+
+ tgr = s1:taboption("resource", Value, "trigger", translate("Trigger Networks:"),
+ translate("Networks that may trigger Unbound to reload (avoid wan6)"))
+ tgr.template = "cbi/network_netlist"
+ tgr.widget = "checkbox"
+ tgr.cast = "string"
+
+else
+ s1:tab("rfc5011", translate("RFC5011"),
+ translatef("Unbound RFC5011 Settings \n"
+ .. "RFC5011 copy scripts protect flash ROM even with UCI disabled."))
+
+ ag2 = s1:taboption("rfc5011", Value, "root_age", translate("Root DSKEY Age:"),
+ translate("Limit days to copy /var/->/etc/ to reduce flash writes"))
+ ag2.datatype = "and(uinteger,min(1),max(99))"
+ ag2:value("3", "3")
+ ag2:value("9", "9 ("..translate("default")..")")
+ ag2:value("12", "12")
+ ag2:value("24", "24")
+ ag2:value("99", "99 ("..translate("never")..")")
+end
+
+
+function m1.on_after_commit(self)
+ function ena.validate(self, value)
+ if value ~= "0" then
+ luci.sys.call("/etc/init.d/unbound restart >/dev/null 2>&1")
+ else
+ luci.sys.call("/etc/init.d/unbound stop >/dev/null 2>&1")
+ end
+ end
+
+
+ -- Restart Unbound with configuration and reload the page (some options hide)
+ luci.http.redirect(luci.dispatcher.build_url("admin", "services", "unbound"))
+end
+
+
+return m1
+
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua
new file mode 100644
index 0000000000..67d2ec6c6b
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen
+-- Licensed to the public under the Apache License 2.0.
+
+local m4, s4, frm
+local filename = "/etc/unbound/unbound_ext.conf"
+local description = translatef("Here you may edit 'forward:' and 'remote-control:' in an extended 'include:'")
+description = description .. " (" .. filename .. ")"
+
+m4 = SimpleForm("editing", nil)
+m4:append(Template("unbound/css-editing"))
+m4.submit = translate("Save")
+m4.reset = false
+s4 = m4:section(SimpleSection, "Unbound Extended Conf", description)
+frm = s4:option(TextValue, "data")
+frm.datatype = "string"
+frm.rows = 20
+
+
+function frm.cfgvalue()
+ return nixio.fs.readfile(filename) or ""
+end
+
+
+function frm.write(self, section, data)
+ return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n")))
+end
+
+
+return m4
+
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua
new file mode 100644
index 0000000000..5cfb9c32c1
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen
+-- Licensed to the public under the Apache License 2.0.
+
+local m2, s2, frm
+local filename = "/etc/unbound/unbound.conf"
+local description = translatef("Here you may edit raw 'unbound.conf' when you don't use UCI:")
+description = description .. " (" .. filename .. ")"
+
+m2 = SimpleForm("editing", nil)
+m2:append(Template("unbound/css-editing"))
+m2.submit = translate("Save")
+m2.reset = false
+s2 = m2:section(SimpleSection, "Unbound Conf", description)
+frm = s2:option(TextValue, "data")
+frm.datatype = "string"
+frm.rows = 20
+
+
+function frm.cfgvalue()
+ return nixio.fs.readfile(filename) or ""
+end
+
+
+function frm.write(self, section, data)
+ return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n")))
+end
+
+
+return m2
+
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua
new file mode 100644
index 0000000000..d0ac407847
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen
+-- Licensed to the public under the Apache License 2.0.
+
+local m3, s3, frm
+local filename = "/etc/unbound/unbound_srv.conf"
+local description = translatef("Here you may edit the 'server:' clause in an internal 'include:'")
+description = description .. " (" .. filename .. ")"
+
+m3 = SimpleForm("editing", nil)
+m3:append(Template("unbound/css-editing"))
+m3.submit = translate("Save")
+m3.reset = false
+s3 = m3:section(SimpleSection, "Unbound Server Conf", description)
+frm = s3:option(TextValue, "data")
+frm.datatype = "string"
+frm.rows = 20
+
+
+function frm.cfgvalue()
+ return nixio.fs.readfile(filename) or ""
+end
+
+
+function frm.write(self, section, data)
+ return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n")))
+end
+
+
+return m3
+
diff --git a/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm b/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm
new file mode 100644
index 0000000000..44d09378c3
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm
@@ -0,0 +1,8 @@
+
+
diff --git a/applications/luci-app-unbound/luasrc/view/unbound/show-empty.htm b/applications/luci-app-unbound/luasrc/view/unbound/show-empty.htm
new file mode 100644
index 0000000000..87d6cc68cb
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/view/unbound/show-empty.htm
@@ -0,0 +1,5 @@
+<%+header%>
+<%=heading:pcdata()%>
+<%=description:pcdata()%>
+<%+footer%>
+
diff --git a/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm b/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm
new file mode 100644
index 0000000000..c0a7d133dc
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm
@@ -0,0 +1,8 @@
+<%+header%>
+<%=heading:pcdata()%>
+<%=description:pcdata()%>
+
+
+
+<%+footer%>
+
diff --git a/applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound b/applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound
new file mode 100644
index 0000000000..c2ac8c93b6
--- /dev/null
+++ b/applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@unbound[-1]
+ add ucitrack unbound
+ set ucitrack.@unbound[-1].init=unbound
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+
diff --git a/applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua b/applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua
index f1bb450dd5..74b9d1d033 100644
--- a/applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua
+++ b/applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua
@@ -12,21 +12,21 @@ s.addremove = false
s:tab("general", translate("General Settings"))
s:tab("advanced", translate("Advanced Settings"))
-e = s:taboption("general", Flag, "_init", translate("Start UPnP and NAT-PMP service"))
+e = s:taboption("general", Flag, "enabled", translate("Start UPnP and NAT-PMP service"))
e.rmempty = false
-function e.cfgvalue(self, section)
- return luci.sys.init.enabled("miniupnpd") and self.enabled or self.disabled
-end
+--function e.cfgvalue(self, section)
+-- return luci.sys.init.enabled("miniupnpd") and self.enabled or self.disabled
+--end
function e.write(self, section, value)
if value == "1" then
- luci.sys.call("/etc/init.d/miniupnpd enable >/dev/null")
luci.sys.call("/etc/init.d/miniupnpd start >/dev/null")
else
luci.sys.call("/etc/init.d/miniupnpd stop >/dev/null")
- luci.sys.call("/etc/init.d/miniupnpd disable >/dev/null")
end
+
+ return Flag.write(self, section, value)
end
s:taboption("general", Flag, "enable_upnp", translate("Enable UPnP functionality")).default = "1"
diff --git a/applications/luci-app-upnp/po/zh-cn/upnp.po b/applications/luci-app-upnp/po/zh-cn/upnp.po
index 693bbc12e9..022e16ec00 100644
--- a/applications/luci-app-upnp/po/zh-cn/upnp.po
+++ b/applications/luci-app-upnp/po/zh-cn/upnp.po
@@ -82,7 +82,7 @@ msgid "External ports"
msgstr "å¤é¨ç«¯å£"
msgid "General Settings"
-msgstr "ä¸è¬è®¾ç½®"
+msgstr "åºæ¬è®¾ç½®"
msgid "Internal addresses"
msgstr "å
é¨å°å"
diff --git a/applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp b/applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp
new file mode 100755
index 0000000000..e9636f9a28
--- /dev/null
+++ b/applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@upnpd[-1]
+ add ucitrack upnpd
+ set ucitrack.@upnpd[-1].init=miniupnpd
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po b/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po
index 5207a8b2ca..7926f797b6 100644
--- a/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po
+++ b/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po
@@ -17,9 +17,9 @@ msgstr "診æ·"
msgid ""
"The diagnostics available on your device depend on the modules that you have "
"installed."
-msgstr "è½å¦è¨ºæ·ä½ çè¨å端çä½ å·²å®è£ç模çµ"
+msgstr "è½å¦è¨ºæ·æ¨çè¨å端çæ¨å·²å®è£ç模çµ"
msgid ""
"Under this menu are options that allow you to configure and perform tests on "
"the voice operations of your system. These are known as diagnostics."
-msgstr "é¸å®ä¸æé¸é
è®ä½ è½å¤ è¨å®ä¸¦å·è¡æ¸¬è©¦ä½ 系統ä¸çèªé³æä½. éäºé½æ¯å·²ç¥ç診æ·æ¹æ³"
+msgstr "é¸å®ä¸æé¸é
è®æ¨è½å¤ è¨å®ä¸¦å·è¡æ¸¬è©¦æ¨ç³»çµ±ä¸çèªé³æä½. éäºé½æ¯å·²ç¥ç診æ·æ¹æ³"
diff --git a/applications/luci-app-vpnbypass/Makefile b/applications/luci-app-vpnbypass/Makefile
index 58b3d30d9c..0ca74ae38a 100644
--- a/applications/luci-app-vpnbypass/Makefile
+++ b/applications/luci-app-vpnbypass/Makefile
@@ -3,42 +3,14 @@
include $(TOPDIR)/rules.mk
-PKG_NAME:=luci-app-vpnbypass
-PKG_VERSION:=1.0.0
-PKG_RELEASE:=3
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Stan Grishin
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-include $(INCLUDE_DIR)/package.mk
+LUCI_TITLE:=VPN Bypass Web UI
+LUCI_DEPENDS:=+vpnbypass
+LUCI_PKGARCH:=all
+PKG_RELEASE:=1
-define Package/luci-app-vpnbypass
- SECTION:=luci
- CATEGORY:=LuCI
- SUBMENU:=3. Applications
- TITLE:=VPN Bypass Web UI
- DEPENDS:=+luci-mod-admin-full +vpnbypass
- PKGARCH:=all
-endef
+include ../../luci.mk
-define Package/luci-app-vpnbypass/description
- This package will install VPN Bypass Web UI.
-endef
-
-define Build/Prepare
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/luci-app-vpnbypass/install
- $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
- $(INSTALL_BIN) ./luasrc/controller/vpnbypass.lua $(1)/usr/lib/lua/luci/controller/vpnbypass.lua
- $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/
- $(INSTALL_BIN) ./luasrc/model/cbi/vpnbypass.lua $(1)/usr/lib/lua/luci/model/cbi/vpnbypass.lua
-endef
-
-$(eval $(call BuildPackage,luci-app-vpnbypass))
\ No newline at end of file
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
index 6becd67914..ed6f4f4da4 100644
--- a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
+++ b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
@@ -3,6 +3,5 @@ function index()
if not nixio.fs.access("/etc/config/vpnbypass") then
return
end
- entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), translate("VPN Bypass"), 1)
+ entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), _("VPN Bypass"))
end
-
diff --git a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
index 1957948382..b35a8e4e02 100644
--- a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
+++ b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
@@ -1,35 +1,61 @@
-m = Map("vpnbypass", translate("VPN Bypass Settings"), translate("Configuration of VPN Bypass Settings"))
+readmeURL = "https://github.com/openwrt/packages/blob/master/net/vpnbypass/files/README.md"
+
+m = Map("vpnbypass", translate("VPN Bypass Settings"))
s = m:section(NamedSection, "config", "vpnbypass")
-- General options
-o1 = s:option(Flag, "enabled", translate("Enable VPN Bypass"))
-o1.rmempty = false
-o1.default = 0
+e = s:option(Flag, "enabled", translate("Enable/start service"))
+e.rmempty = false
+
+function e.cfgvalue(self, section)
+ return self.map:get(section, "enabled") == "1" and luci.sys.init.enabled("vpnbypass") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+ if value == "1" then
+ luci.sys.call("/etc/init.d/vpnbypass enable >/dev/null")
+ luci.sys.call("/etc/init.d/vpnbypass start >/dev/null")
+ else
+ luci.sys.call("/etc/init.d/vpnbypass stop >/dev/null")
+ end
+ return Flag.write(self, section, value)
+end
-- Local Ports
p1 = s:option(DynamicList, "localport", translate("Local Ports to Bypass"), translate("Local ports to trigger VPN Bypass"))
-p1.addremove = true
-p1.optional = true
+p1.datatype = "portrange"
+-- p1.placeholder = "0-65535"
+p1.addremove = false
+p1.optional = false
-- Remote Ports
p2 = s:option(DynamicList, "remoteport", translate("Remote Ports to Bypass"), translate("Remote ports to trigger VPN Bypass"))
-p2.addremove = true
-p2.optional = true
+p2.datatype = "portrange"
+-- p2.placeholder = "0-65535"
+p2.addremove = false
+p2.optional = false
-- Local Subnets
-r1 = s:option(DynamicList, "localsubnet", translate("Local IP Subnets to Bypass"), translate("Local IP ranges with direct internet access (outside of the VPN tunnel)"))
-r1.addremove = true
-r1.optional = true
+r1 = s:option(DynamicList, "localsubnet", translate("Local IP Addresses to Bypass"), translate("Local IP addresses or subnets with direct internet access (outside of the VPN tunnel)"))
+r1.datatype = "ip4addr"
+-- r1.placeholder = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr") .. "/" .. uci.cursor():get("network", "lan", "netmask"))
+r1.addremove = false
+r1.optional = false
-- Remote Subnets
-r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Subnets to Bypass"), translate("Remote IP ranges which will be accessed directly (outside of the VPN tunnel)"))
-r2.addremove = true
-r2.optional = true
+r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Addresses to Bypass"), translate("Remote IP addresses or subnets which will be accessed directly (outside of the VPN tunnel)"))
+r2.datatype = "ip4addr"
+-- r2.placeholder = "0.0.0.0/0"
+r2.addremove = false
+r2.optional = false
-- Domains
-d1 = s:option(DynamicList, "domain", translate("Domains to Bypass"), translate("Domains which will be accessed directly (outside of the VPN tunnel)"))
-d1.addremove = true
-d1.optional = true
-
-return m
-
+d = Map("dhcp")
+s4 = d:section(TypedSection, "dnsmasq")
+s4.anonymous = true
+di = s4:option(DynamicList, "ipset", translate("Domains to Bypass"),
+ translate("Domains to be accessed directly (outside of the VPN tunnel), see ")
+ .. [[]]
+ .. translate("README") .. [[ ]] .. translate(" for syntax"))
+
+return m, d
diff --git a/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po b/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
new file mode 100644
index 0000000000..9f3fa2a679
--- /dev/null
+++ b/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
@@ -0,0 +1,90 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Domains to Bypass"
+msgstr "DomÃnios para evitar a VPN"
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr ""
+
+msgid "Enable/start service"
+msgstr ""
+
+msgid "Local IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr ""
+
+msgid "Local Ports to Bypass"
+msgstr "Portas locais para evitar a VPN"
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr "Portas locais para disparar o VPN Bypass"
+
+msgid "README"
+msgstr ""
+
+msgid "Remote IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr ""
+
+msgid "Remote Ports to Bypass"
+msgstr "Portas remotas para evitar a VPN"
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr "Portas remotas para disparar o VPN Bypass"
+
+msgid "VPN Bypass"
+msgstr "VPN Bypass"
+
+msgid "VPN Bypass Settings"
+msgstr "Configurações do VPN Bypass"
+
+msgid "for syntax"
+msgstr ""
+
+#~ msgid "Enable VPN Bypass"
+#~ msgstr "Habilitar o VPN Bypass"
+
+#~ msgid "Configuration of VPN Bypass Settings"
+#~ msgstr "Configurações do VPN Bypass"
+
+#~ msgid "Domains which will be accessed directly (outside of the VPN tunnel)"
+#~ msgstr "DomÃnios que serão acessados diretamente (fora do túnel VPN)"
+
+#~ msgid "Local IP Subnets to Bypass"
+#~ msgstr "Subredes IP locais para evitar a VPN"
+
+#~ msgid ""
+#~ "Local IP ranges with direct internet access (outside of the VPN tunnel)"
+#~ msgstr ""
+#~ "Faixa de endereços IP locais que terão acesso internet direto (fora do "
+#~ "túnel VPN)"
+
+#~ msgid "Remote IP Subnets to Bypass"
+#~ msgstr "Subredes IP remotas para evitar a VPN"
+
+#~ msgid ""
+#~ "Remote IP ranges which will be accessed directly (outside of the VPN "
+#~ "tunnel)"
+#~ msgstr ""
+#~ "Faixa de endereços IP remotos que serão acessados diretamente (fora do "
+#~ "túnel VPN)"
diff --git a/applications/luci-app-vpnbypass/po/templates/vpnbypass.pot b/applications/luci-app-vpnbypass/po/templates/vpnbypass.pot
new file mode 100644
index 0000000000..fd92b5e8a8
--- /dev/null
+++ b/applications/luci-app-vpnbypass/po/templates/vpnbypass.pot
@@ -0,0 +1,51 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Domains to Bypass"
+msgstr ""
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr ""
+
+msgid "Enable/start service"
+msgstr ""
+
+msgid "Local IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr ""
+
+msgid "Local Ports to Bypass"
+msgstr ""
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr ""
+
+msgid "README"
+msgstr ""
+
+msgid "Remote IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr ""
+
+msgid "Remote Ports to Bypass"
+msgstr ""
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr ""
+
+msgid "VPN Bypass"
+msgstr ""
+
+msgid "VPN Bypass Settings"
+msgstr ""
+
+msgid "for syntax"
+msgstr ""
diff --git a/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po b/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po
new file mode 100644
index 0000000000..a1539171fc
--- /dev/null
+++ b/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po
@@ -0,0 +1,61 @@
+#
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-29 15:30+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+msgid "Domains to Bypass"
+msgstr "è¦ç»è¿çå"
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr "è¦ç´æ¥è®¿é®çåï¼ä¸ä½¿ç¨ VPN é§éï¼ï¼è¯·åè§"
+
+msgid "Enable/start service"
+msgstr "å¯ç¨/å¯å¨æå¡"
+
+msgid "Local IP Addresses to Bypass"
+msgstr "è¦ç»è¿çæ¬å° IP å°å"
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr "ç´æ¥è®¿é®çæ¬å° IP å°åæåç½ï¼ä¸ä½¿ç¨ VPN é§éï¼"
+
+msgid "Local Ports to Bypass"
+msgstr "è¦ç»è¿çæ¬å°ç«¯å£"
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr "触å VPN ç»è¿çæ¬å°ç«¯å£"
+
+msgid "README"
+msgstr "README"
+
+msgid "Remote IP Addresses to Bypass"
+msgstr "è¦ç»è¿çè¿ç¨ IP å°å"
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr "å°ç´æ¥è®¿é®çè¿ç¨ IP å°åæåç½ï¼ä¸ä½¿ç¨ VPN é§éï¼"
+
+msgid "Remote Ports to Bypass"
+msgstr "è¦ç»è¿çè¿ç¨ç«¯å£"
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr "触å VPN ç»è¿çè¿ç¨ç«¯å£"
+
+msgid "VPN Bypass"
+msgstr "VPN ç»è¿"
+
+msgid "VPN Bypass Settings"
+msgstr "VPN ç»è¿è®¾ç½®"
+
+msgid "for syntax"
+msgstr "对äºè¯æ³"
diff --git a/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po b/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po
new file mode 100644
index 0000000000..90ba85f7ce
--- /dev/null
+++ b/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po
@@ -0,0 +1,61 @@
+#
+# Yangfl , 2017.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"PO-Revision-Date: 2017-10-29 15:30+0800\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+msgid "Domains to Bypass"
+msgstr "è¦ç¹éçå"
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr "è¦ç´æ¥è¨ªåçåï¼ä¸ä½¿ç¨ VPN é§éï¼ï¼è«åè¦"
+
+msgid "Enable/start service"
+msgstr "åç¨/ååæå"
+
+msgid "Local IP Addresses to Bypass"
+msgstr "è¦ç¹éçæ¬å° IP ä½å"
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr "ç´æ¥è¨ªåçæ¬å° IP ä½åæå網ï¼ä¸ä½¿ç¨ VPN é§éï¼"
+
+msgid "Local Ports to Bypass"
+msgstr "è¦ç¹éçæ¬å°å "
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr "è§¸ç¼ VPN ç¹éçæ¬å°å "
+
+msgid "README"
+msgstr "README"
+
+msgid "Remote IP Addresses to Bypass"
+msgstr "è¦ç¹éçé 端 IP ä½å"
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr "å°ç´æ¥è¨ªåçé 端 IP ä½åæå網ï¼ä¸ä½¿ç¨ VPN é§éï¼"
+
+msgid "Remote Ports to Bypass"
+msgstr "è¦ç¹éçé 端å "
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr "è§¸ç¼ VPN ç¹éçé 端å "
+
+msgid "VPN Bypass"
+msgstr "VPN ç¹é"
+
+msgid "VPN Bypass Settings"
+msgstr "VPN ç¹éè¨å®"
+
+msgid "for syntax"
+msgstr "å°æ¼èªæ³"
diff --git a/applications/luci-app-watchcat/po/pt-br/watchcat.po b/applications/luci-app-watchcat/po/pt-br/watchcat.po
index fe97036379..e37066c3d9 100644
--- a/applications/luci-app-watchcat/po/pt-br/watchcat.po
+++ b/applications/luci-app-watchcat/po/pt-br/watchcat.po
@@ -1,15 +1,16 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-29 23:20+0200\n"
-"Last-Translator: Luiz Angelo \n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-20 18:10-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
msgid "Forced reboot delay"
msgstr "Atraso para reinÃcio forçado"
@@ -51,15 +52,13 @@ msgstr "PerÃodo de ping"
msgid "Watchcat"
msgstr "Watchcat"
-#, fuzzy
msgid ""
"Watchcat allows configuring a periodic reboot when the Internet connection "
"has been lost for a certain period of time."
msgstr ""
-"Watchcat permite que se configure um perÃodo para reiniciar e/ou quando a "
+"Watchcat permite a configuração de um perÃodo para reiniciar e/ou quando a "
"conexão com à Internet foi perdida por um ser perÃodo de tempo."
-#, fuzzy
msgid ""
"When rebooting the system, the watchcat will trigger a soft reboot. Entering "
"a non zero value here will trigger a delayed hard reboot if the soft reboot "
diff --git a/applications/luci-app-watchcat/po/sv/watchcat.po b/applications/luci-app-watchcat/po/sv/watchcat.po
index 0b811bceea..96c73e3111 100644
--- a/applications/luci-app-watchcat/po/sv/watchcat.po
+++ b/applications/luci-app-watchcat/po/sv/watchcat.po
@@ -19,6 +19,8 @@ msgid ""
"How often to check internet connection. Default unit is seconds, you can you "
"use the suffix 'm' for minutes, 'h' for hours or 'd' for days"
msgstr ""
+"Hur ofta internet-anslutningen ska kollas. Standardenheten är sekunder, du "
+"kan använda tillägget 'm' för minutrar, 't' för timmar eller 'd' för dagar"
msgid ""
"In periodic mode, it defines the reboot period. In internet mode, it defines "
@@ -28,7 +30,7 @@ msgid ""
msgstr ""
msgid "Operating mode"
-msgstr ""
+msgstr "Driftsläge"
msgid "Period"
msgstr "Period"
@@ -37,7 +39,7 @@ msgid "Ping host"
msgstr "Pinga värd"
msgid "Ping period"
-msgstr ""
+msgstr "Period för pingning"
msgid "Watchcat"
msgstr "Watchcat"
diff --git a/applications/luci-app-watchcat/po/zh-cn/watchcat.po b/applications/luci-app-watchcat/po/zh-cn/watchcat.po
index 991fc48a23..fc9f7d6286 100644
--- a/applications/luci-app-watchcat/po/zh-cn/watchcat.po
+++ b/applications/luci-app-watchcat/po/zh-cn/watchcat.po
@@ -21,7 +21,7 @@ msgid ""
"How often to check internet connection. Default unit is seconds, you can you "
"use the suffix 'm' for minutes, 'h' for hours or 'd' for days"
msgstr ""
-"æ£æµç½ç»è¿æ¥çé¢çãé»è®¤åä½ä¸ºç§ï¼ä½ å¯ä»¥ä½¿ç¨'m'ä½ä¸ºåç¼è¡¨ç¤ºåéï¼âhâ表示å°"
+"æ£æµç½ç»è¿æ¥çé¢çãé»è®¤åä½ä¸ºç§ï¼æ¨å¯ä»¥ä½¿ç¨'m'ä½ä¸ºåç¼è¡¨ç¤ºåéï¼âhâ表示å°"
"æ¶âdâ表示天ã"
msgid ""
@@ -31,7 +31,7 @@ msgid ""
"for hours or 'd' for days"
msgstr ""
"å¨å¨æ模å¼ï¼æ¤å¤å®ä¹äºéå¯çå¨æãå¨èç½æ¨¡å¼ï¼è¿ä¸ªè¡¨ç¤ºæ²¡æç½ç»è¿æ¥æ
åµä¸å°æ§"
-"è¡éå¯çæé¿æ¶é´é´éãé»è®¤åä½ä¸ºç§ï¼ä½ å¯ä»¥ä½¿ç¨'m'ä½ä¸ºåç¼è¡¨ç¤ºåéï¼âhâ表示å°"
+"è¡éå¯çæé¿æ¶é´é´éãé»è®¤åä½ä¸ºç§ï¼æ¨å¯ä»¥ä½¿ç¨'m'ä½ä¸ºåç¼è¡¨ç¤ºåéï¼âhâ表示å°"
"æ¶âdâ表示天ã"
msgid "Operating mode"
diff --git a/applications/luci-app-wifischedule/po/it/wifischedule.po b/applications/luci-app-wifischedule/po/it/wifischedule.po
new file mode 100644
index 0000000000..18a9dce23a
--- /dev/null
+++ b/applications/luci-app-wifischedule/po/it/wifischedule.po
@@ -0,0 +1,101 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Activate wifi"
+msgstr "Attiva wifi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr "Impossibile trovare /usr/bin/wifi_schedule.sh o /sbin/wifi"
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "Impossibile trovare il programma /usr/bin/iwinfo"
+
+msgid "Cron Jobs"
+msgstr "Operazioni Programmate"
+
+msgid "Day(s) of Week"
+msgstr "Giorno(i) della Settimana"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "Definisce un piano di accensione o spegnimento del wifi"
+
+msgid "Determine Modules Automatically"
+msgstr "Determina i Moduli Automaticamente"
+
+msgid "Disable wifi gracefully"
+msgstr "Disabilita wifi con grazia"
+
+msgid "Disabled wifi forced"
+msgstr "Disabilita wifi con forza"
+
+msgid "Enable"
+msgstr "Abilita"
+
+msgid "Enable Wifi Schedule"
+msgstr "Abilita il Piano Wifi"
+
+msgid "Enable logging"
+msgstr "Abilita il registro"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "Forza disattivazione wifi anche con stazioni associate"
+
+msgid "Friday"
+msgstr "Venerdì"
+
+msgid "Global Settings"
+msgstr "Impostazioni Globali"
+
+msgid "Monday"
+msgstr "Lunedì"
+
+msgid "Saturday"
+msgstr "Sabato"
+
+msgid "Schedule"
+msgstr "Piano"
+
+msgid "Schedule events"
+msgstr "Piano eventi"
+
+msgid "Start Time"
+msgstr "Orario di Inizio"
+
+msgid "Start WiFi"
+msgstr ""
+
+msgid "Stop Time"
+msgstr "Orario di Stop"
+
+msgid "Stop WiFi"
+msgstr ""
+
+msgid "Sunday"
+msgstr "Domenica"
+
+msgid "The value %s is invalid"
+msgstr "Il valore %s è invalido"
+
+msgid "Thursday"
+msgstr "Giovedì"
+
+msgid "Tuesday"
+msgstr "Martedì"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "Scarica Moduli (sperimentale; risparmia più energia)"
+
+msgid "View Cron Jobs"
+msgstr "Vedi Operazioni Programmate"
+
+msgid "View Logfile"
+msgstr "Vedi il Registro"
+
+msgid "Wednesday"
+msgstr "Mercoledì"
+
+msgid "Wifi Schedule"
+msgstr "Piano Wifi"
+
+msgid "Wifi Schedule Logfile"
+msgstr "Registro Piano Wifi"
diff --git a/applications/luci-app-wifischedule/po/pt-br/wifischedule.po b/applications/luci-app-wifischedule/po/pt-br/wifischedule.po
new file mode 100644
index 0000000000..19e31b54ca
--- /dev/null
+++ b/applications/luci-app-wifischedule/po/pt-br/wifischedule.po
@@ -0,0 +1,114 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Activate wifi"
+msgstr "Ativar a WiFi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr ""
+"Não foi possÃvel localizar os programas necessários '/usr/bin/wifi_schedule."
+"sh' ou '/sbin/wifi'."
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "Não foi possÃvel localizar o programa necessário '/usr/bin/iwinfo'"
+
+msgid "Cron Jobs"
+msgstr "Tarefas da Cron"
+
+msgid "Day(s) of Week"
+msgstr "Dia(s) da semana"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "Define um agendamento para quando ligar ou desligar a WiFi."
+
+msgid "Determine Modules Automatically"
+msgstr "Determinar os Módulos Automaticamente"
+
+msgid "Disable wifi gracefully"
+msgstr "Desabilitar a WiFi amistosamente"
+
+msgid "Disabled wifi forced"
+msgstr "WiFi foi desabilitada de forma forçada."
+
+msgid "Enable"
+msgstr "Habilitar"
+
+msgid "Enable Wifi Schedule"
+msgstr "Habilitar o agendamento da WiFi"
+
+msgid "Enable logging"
+msgstr "Habilite os registros (log)"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "Force a desativação da WiFi mesmo se existirem estações associadas "
+
+msgid "Friday"
+msgstr "Sexta-feira"
+
+msgid "Global Settings"
+msgstr "Configurações Globais"
+
+msgid "Monday"
+msgstr "Segunda-Feira"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Schedule"
+msgstr "Agendamento"
+
+msgid "Schedule events"
+msgstr "Eventos do agendamento"
+
+msgid "Start Time"
+msgstr "Hora Inicial"
+
+msgid "Start WiFi"
+msgstr "Iniciar WiFi"
+
+msgid "Stop Time"
+msgstr "Hora Final"
+
+msgid "Stop WiFi"
+msgstr "Parar WiFi"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "The value %s is invalid"
+msgstr "O valor %s é inválido"
+
+msgid "Thursday"
+msgstr "Quita-feira"
+
+msgid "Tuesday"
+msgstr "Terça-feira"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "Descarregar Módulos (experimental, poupa mais energia)"
+
+msgid "View Cron Jobs"
+msgstr "Visualizar Tarefas da Cron"
+
+msgid "View Logfile"
+msgstr "Visualizar o Arquivo de Registros (log)"
+
+msgid "Wednesday"
+msgstr "Quarta-feira"
+
+msgid "Wifi Schedule"
+msgstr "Agendamento da Wifi"
+
+msgid "Wifi Schedule Logfile"
+msgstr "Arquivo de Registros (log) do Agendamento da Wifi"
diff --git a/applications/luci-app-wifischedule/po/sv/wifischedule.po b/applications/luci-app-wifischedule/po/sv/wifischedule.po
new file mode 100644
index 0000000000..50953aa285
--- /dev/null
+++ b/applications/luci-app-wifischedule/po/sv/wifischedule.po
@@ -0,0 +1,101 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Activate wifi"
+msgstr "Aktivera wifi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr ""
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr ""
+
+msgid "Cron Jobs"
+msgstr "Cron-jobb"
+
+msgid "Day(s) of Week"
+msgstr "Dag(ar) i veckan"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "Anger ett schema när wifi ska startas och stängas ner."
+
+msgid "Determine Modules Automatically"
+msgstr "Avgör moduler automatiskt"
+
+msgid "Disable wifi gracefully"
+msgstr "Inaktivera wifi elegant"
+
+msgid "Disabled wifi forced"
+msgstr "Inaktivering av wifi påtvingat"
+
+msgid "Enable"
+msgstr "Aktivera"
+
+msgid "Enable Wifi Schedule"
+msgstr "Aktivera Wifi-schema"
+
+msgid "Enable logging"
+msgstr "Aktivera loggning"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr ""
+
+msgid "Friday"
+msgstr "Fredag"
+
+msgid "Global Settings"
+msgstr "Globala inställningar"
+
+msgid "Monday"
+msgstr "MÃ¥ndag"
+
+msgid "Saturday"
+msgstr "Lördag"
+
+msgid "Schedule"
+msgstr "Schema"
+
+msgid "Schedule events"
+msgstr "Schemalägg händelser"
+
+msgid "Start Time"
+msgstr "Starttid"
+
+msgid "Start WiFi"
+msgstr "Starta WiFi"
+
+msgid "Stop Time"
+msgstr "Stopptid"
+
+msgid "Stop WiFi"
+msgstr "Stoppa WiFi"
+
+msgid "Sunday"
+msgstr "Söndag"
+
+msgid "The value %s is invalid"
+msgstr "Värdet %s är ogiltigt"
+
+msgid "Thursday"
+msgstr "Torsdag"
+
+msgid "Tuesday"
+msgstr "Tisdag"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "Befria moduler (experimentiell; sparar mer ström)"
+
+msgid "View Cron Jobs"
+msgstr "Se Cron-jobb"
+
+msgid "View Logfile"
+msgstr "Se loggfilen"
+
+msgid "Wednesday"
+msgstr "Onsdag"
+
+msgid "Wifi Schedule"
+msgstr "Wifi-schema"
+
+msgid "Wifi Schedule Logfile"
+msgstr "Loggfil för Wifi-schema"
diff --git a/applications/luci-app-wireguard/Makefile b/applications/luci-app-wireguard/Makefile
new file mode 100644
index 0000000000..92cdcf2700
--- /dev/null
+++ b/applications/luci-app-wireguard/Makefile
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2016-2017 Dan Luedtke
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=WireGuard Status
+LUCI_DEPENDS:=+wireguard-tools +kmod-wireguard
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Dan Luedtke
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wireguard/luasrc/controller/wireguard.lua b/applications/luci-app-wireguard/luasrc/controller/wireguard.lua
new file mode 100644
index 0000000000..68a82fe5cc
--- /dev/null
+++ b/applications/luci-app-wireguard/luasrc/controller/wireguard.lua
@@ -0,0 +1,8 @@
+-- Copyright 2016-2017 Dan Luedtke
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.wireguard", package.seeall)
+
+function index()
+ entry({"admin", "status", "wireguard"}, template("wireguard"), _("WireGuard Status"), 92)
+end
diff --git a/applications/luci-app-wireguard/luasrc/view/wireguard.htm b/applications/luci-app-wireguard/luasrc/view/wireguard.htm
new file mode 100644
index 0000000000..5af6232ae6
--- /dev/null
+++ b/applications/luci-app-wireguard/luasrc/view/wireguard.htm
@@ -0,0 +1,209 @@
+<%#
+ Copyright 2016-2017 Dan Luedtke
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%
+ local data = { }
+ local last_device = ""
+
+ local wg_dump = io.popen("wg show all dump")
+ if wg_dump then
+ local line
+ for line in wg_dump:lines() do
+ local line = string.split(line, "\t")
+ if not (last_device == line[1]) then
+ last_device = line[1]
+ data[line[1]] = {
+ name = line[1],
+ public_key = line[3],
+ listen_port = line[4],
+ fwmark = line[5],
+ peers = { }
+ }
+ else
+ local peer = {
+ public_key = line[2],
+ endpoint = line[4],
+ allowed_ips = { },
+ latest_handshake = line[6],
+ transfer_rx = line[7],
+ transfer_tx = line[8],
+ persistent_keepalive = line[9]
+ }
+ if not (line[4] == '(none)') then
+ for ipkey, ipvalue in pairs(string.split(line[5], ",")) do
+ if #ipvalue > 0 then
+ table.insert(peer['allowed_ips'], ipvalue)
+ end
+ end
+ end
+ table.insert(data[line[1]].peers, peer)
+ end
+ end
+ end
+
+ if luci.http.formvalue("status") == "1" then
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(data)
+ return
+ end
+-%>
+
+<%+header%>
+
+
+
+
+WireGuard Status
+
+
+<%-
+for ikey, iface in pairs(data) do
+ -%>
+ <%:Interface%> <%=ikey%>
+
+
+ <%:Configuration%>
+
+
+
+
+
+
+
+ <%:Collecting data...%>
+
+
+
+
+ <%-
+ for pkey, peer in pairs(iface.peers) do
+ -%>
+
+ <%:Peer%>
+
+
+
+
+
+ ?
+
+
+ <%:Collecting data...%>
+
+
+
+
+ <%-
+ end
+ -%>
+
+ <%-
+end
+-%>
+
+
+<%+footer%>
diff --git a/applications/luci-app-wireguard/po/ja/wireguard.po b/applications/luci-app-wireguard/po/ja/wireguard.po
new file mode 100644
index 0000000000..5cd7a90037
--- /dev/null
+++ b/applications/luci-app-wireguard/po/ja/wireguard.po
@@ -0,0 +1,74 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-02-28 00:31+0900\n"
+"Last-Translator: INAGAKI Hiroshi \n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.12\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "Allowed IPs"
+msgstr "許å¯ãããIP"
+
+msgid "Collecting data..."
+msgstr "ãã¼ã¿åéä¸ã§ã..."
+
+msgid "Configuration"
+msgstr "è¨å®"
+
+msgid "Data Received"
+msgstr "åä¿¡æ¸ã¿ãã¼ã¿"
+
+msgid "Data Transmitted"
+msgstr "éä¿¡æ¸ã¿ãã¼ã¿"
+
+msgid "Endpoint"
+msgstr "ã¨ã³ããã¤ã³ã"
+
+msgid "Firewall Mark"
+msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã« ãã¼ã¯"
+
+msgid "Interface"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+msgid "Interface does not have a public key!"
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å
¬ééµãããã¾ããï¼"
+
+msgid "Latest Handshake"
+msgstr "ææ°ã®ãã³ãã·ã§ã¤ã¯"
+
+msgid "Listen Port"
+msgstr "å¾
ã¡åããã¼ã"
+
+msgid "Never"
+msgstr "ç¡ã"
+
+msgid "Peer"
+msgstr "ãã¢"
+
+msgid "Persistent Keepalive"
+msgstr "æ°¸ç¶çãªãã¼ãã¢ã©ã¤ã"
+
+msgid "Public Key"
+msgstr "å
¬ééµ"
+
+msgid "WireGuard Status"
+msgstr "WireGuard ã¹ãã¼ã¿ã¹"
+
+msgid "h ago"
+msgstr "æéå"
+
+msgid "m ago"
+msgstr "åå"
+
+msgid "over a day ago"
+msgstr "1æ¥ä»¥ä¸å"
+
+msgid "s ago"
+msgstr "ç§å"
diff --git a/applications/luci-app-wireguard/po/pt-br/wireguard.po b/applications/luci-app-wireguard/po/pt-br/wireguard.po
new file mode 100644
index 0000000000..d3b5059d5f
--- /dev/null
+++ b/applications/luci-app-wireguard/po/pt-br/wireguard.po
@@ -0,0 +1,73 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Allowed IPs"
+msgstr "Endereços IP autorizados"
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
+msgid "Configuration"
+msgstr "Configuração"
+
+msgid "Data Received"
+msgstr "Dados Recebidos"
+
+msgid "Data Transmitted"
+msgstr "Dados Enviados"
+
+msgid "Endpoint"
+msgstr "Equipamento do ponto final"
+
+msgid "Firewall Mark"
+msgstr "Marca do Firewall"
+
+msgid "Interface"
+msgstr "Interface"
+
+msgid "Interface does not have a public key!"
+msgstr "A interface não tem uma chave pública!"
+
+msgid "Latest Handshake"
+msgstr "Ãltima Negociação"
+
+msgid "Listen Port"
+msgstr "Porta de Escuta"
+
+msgid "Never"
+msgstr "Nunca"
+
+msgid "Peer"
+msgstr "Parceiro"
+
+msgid "Persistent Keepalive"
+msgstr "Manter Conexões Abertas (Keepalive)"
+
+msgid "Public Key"
+msgstr "Chave Pública"
+
+msgid "WireGuard Status"
+msgstr "Estado do WireGuard"
+
+msgid "h ago"
+msgstr "horas atrás"
+
+msgid "m ago"
+msgstr "meses atrás"
+
+msgid "over a day ago"
+msgstr "mais de um dia atrás"
+
+msgid "s ago"
+msgstr "segundos atrás"
diff --git a/applications/luci-app-wireguard/po/sv/wireguard.po b/applications/luci-app-wireguard/po/sv/wireguard.po
new file mode 100644
index 0000000000..3422ae91e9
--- /dev/null
+++ b/applications/luci-app-wireguard/po/sv/wireguard.po
@@ -0,0 +1,62 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Allowed IPs"
+msgstr "Tillåtna IP-adresser"
+
+msgid "Collecting data..."
+msgstr "Samlar in data..."
+
+msgid "Configuration"
+msgstr "Konfiguration"
+
+msgid "Data Received"
+msgstr "Mottagen data"
+
+msgid "Data Transmitted"
+msgstr "Ãverförd data"
+
+msgid "Endpoint"
+msgstr "Slutpunkt"
+
+msgid "Firewall Mark"
+msgstr "Brandväggsmarkering"
+
+msgid "Interface"
+msgstr "Gränssnitt"
+
+msgid "Interface does not have a public key!"
+msgstr "Gränssnittet har inte en publik nyckel!"
+
+msgid "Latest Handshake"
+msgstr "Senaste handskakning"
+
+msgid "Listen Port"
+msgstr "Lyssningsport"
+
+msgid "Never"
+msgstr "Aldrig"
+
+msgid "Peer"
+msgstr "Jämlike"
+
+msgid "Persistent Keepalive"
+msgstr "Hålla vid liv ständigt"
+
+msgid "Public Key"
+msgstr "Publik nyckel"
+
+msgid "WireGuard Status"
+msgstr "Status för WireGuard"
+
+msgid "h ago"
+msgstr "t sedan"
+
+msgid "m ago"
+msgstr "m sedan"
+
+msgid "over a day ago"
+msgstr "över en dag sedan"
+
+msgid "s ago"
+msgstr "s sedan"
diff --git a/applications/luci-app-wireguard/po/templates/wireguard.pot b/applications/luci-app-wireguard/po/templates/wireguard.pot
new file mode 100644
index 0000000000..9ec5c60048
--- /dev/null
+++ b/applications/luci-app-wireguard/po/templates/wireguard.pot
@@ -0,0 +1,62 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Allowed IPs"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Data Received"
+msgstr ""
+
+msgid "Data Transmitted"
+msgstr ""
+
+msgid "Endpoint"
+msgstr ""
+
+msgid "Firewall Mark"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+msgid "Interface does not have a public key!"
+msgstr ""
+
+msgid "Latest Handshake"
+msgstr ""
+
+msgid "Listen Port"
+msgstr ""
+
+msgid "Never"
+msgstr ""
+
+msgid "Peer"
+msgstr ""
+
+msgid "Persistent Keepalive"
+msgstr ""
+
+msgid "Public Key"
+msgstr ""
+
+msgid "WireGuard Status"
+msgstr ""
+
+msgid "h ago"
+msgstr ""
+
+msgid "m ago"
+msgstr ""
+
+msgid "over a day ago"
+msgstr ""
+
+msgid "s ago"
+msgstr ""
diff --git a/applications/luci-app-wireguard/po/zh-cn/wireguard.po b/applications/luci-app-wireguard/po/zh-cn/wireguard.po
new file mode 100644
index 0000000000..e873a83891
--- /dev/null
+++ b/applications/luci-app-wireguard/po/zh-cn/wireguard.po
@@ -0,0 +1,73 @@
+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.0.1\n"
+"Last-Translator: liushuyu \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: zh_CN\n"
+
+msgid "Allowed IPs"
+msgstr "å
许ç IP"
+
+msgid "Collecting data..."
+msgstr "æ£å¨æ¶éæ°æ®..."
+
+msgid "Configuration"
+msgstr "é
ç½®"
+
+msgid "Data Received"
+msgstr "å·²æ¥æ¶"
+
+msgid "Data Transmitted"
+msgstr "å·²åé"
+
+msgid "Endpoint"
+msgstr "ä¼ è¾ç«¯ç¹"
+
+msgid "Firewall Mark"
+msgstr "é²ç«å¢æ è¯"
+
+msgid "Interface"
+msgstr "æ¥å£"
+
+msgid "Interface does not have a public key!"
+msgstr "æ¥å£æ²¡æé
ç½®å
¬é¥ï¼"
+
+msgid "Latest Handshake"
+msgstr "ä¸æ¬¡æ¡æ"
+
+msgid "Listen Port"
+msgstr "çå¬ç«¯å£"
+
+msgid "Never"
+msgstr "ä»ä¸"
+
+msgid "Peer"
+msgstr "对端"
+
+msgid "Persistent Keepalive"
+msgstr "Keepalive é´éï¼ç§ï¼"
+
+msgid "Public Key"
+msgstr "å
¬é¥"
+
+msgid "WireGuard Status"
+msgstr "WireGuard ç¶æ"
+
+msgid "h ago"
+msgstr "å°æ¶å"
+
+msgid "m ago"
+msgstr "åéå"
+
+msgid "over a day ago"
+msgstr "è¶
è¿ä¸å¤©å"
+
+msgid "s ago"
+msgstr "ç§å"
diff --git a/applications/luci-app-wol/po/it/wol.po b/applications/luci-app-wol/po/it/wol.po
index bf23eb8ce0..d0c35f497b 100644
--- a/applications/luci-app-wol/po/it/wol.po
+++ b/applications/luci-app-wol/po/it/wol.po
@@ -16,7 +16,7 @@ msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid "Broadcast on all interfaces"
-msgstr "Broadcast su tutte le interfaccie"
+msgstr "Broadcast su tutte le interfacce"
msgid "Choose the host to wake up or enter a custom MAC address to use"
msgstr "Scegli l'host da \"svegliare\" o inserisci il MAC address da usare"
@@ -25,20 +25,20 @@ msgid "Host to wake up"
msgstr "Host da \"svegliare\""
msgid "Network interface to use"
-msgstr "Interfacci di rete da usare"
+msgstr "Interfaccia di rete da usare"
msgid "Send to broadcast address"
-msgstr ""
+msgstr "Manda a indirizzo di broadcast"
#, fuzzy
msgid ""
"Sometimes only one of the two tools works. If one fails, try the other one"
msgstr ""
-"Avvolte solo uno dei due tools funziona. Se uno fallisce, tenta di usare il "
+"A volte solo uno dei due tools funziona. Se uno fallisce, tenta di usare il "
"secondo"
msgid "Specifies the interface the WoL packet is sent on"
-msgstr "Secifica l'interfaccia su cui il pacchetto \"magico\" WoL è inviato"
+msgstr "Specifica l'interfaccia su cui il pacchetto \"magico\" WoL è inviato"
msgid "Starting WoL utility:"
msgstr "Avvia l'utility WoL:"
@@ -49,8 +49,8 @@ msgstr "Wake on LAN"
msgid ""
"Wake on LAN is a mechanism to remotely boot computers in the local network."
msgstr ""
-"Wake on LAN è un meccanismo che ti permette di avviare da remoto un computer "
-"collegato alla LAN."
+"Wake on LAN è un meccanismo che permette di avviare da remoto i computer "
+"nella rete locale"
msgid "Wake up host"
msgstr "Sveglia Host"
diff --git a/applications/luci-app-wol/po/pt-br/wol.po b/applications/luci-app-wol/po/pt-br/wol.po
index 6195e4cba4..783ec0bc0d 100644
--- a/applications/luci-app-wol/po/pt-br/wol.po
+++ b/applications/luci-app-wol/po/pt-br/wol.po
@@ -2,18 +2,18 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-19 00:29+0200\n"
-"PO-Revision-Date: 2011-10-11 20:31+0200\n"
-"Last-Translator: Luiz Angelo \n"
+"PO-Revision-Date: 2017-02-20 18:13-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Poedit 1.8.11\n"
msgid "Broadcast on all interfaces"
msgstr "Broadcast em todas as interfaces"
@@ -28,14 +28,13 @@ msgid "Network interface to use"
msgstr "Interfaces de rede para usar"
msgid "Send to broadcast address"
-msgstr ""
+msgstr "Enviar para o endereço de broadcast"
-#, fuzzy
msgid ""
"Sometimes only one of the two tools works. If one fails, try the other one"
msgstr ""
-"Algumas vezes, somente uma das ferramentas funciona. Se uma delas falhar, "
-"tente a outra"
+"Algumas vezes, somente uma das duas ferramentas funciona. Se uma delas "
+"falhar, tente a outra"
msgid "Specifies the interface the WoL packet is sent on"
msgstr "Especifica a interface para onde os pacotes de WoL serão enviados"
diff --git a/applications/luci-app-wol/po/sv/wol.po b/applications/luci-app-wol/po/sv/wol.po
index 5b3e923476..923d4fdbac 100644
--- a/applications/luci-app-wol/po/sv/wol.po
+++ b/applications/luci-app-wol/po/sv/wol.po
@@ -18,13 +18,13 @@ msgstr ""
"använda"
msgid "Host to wake up"
-msgstr "Värd som ska väckas upp"
+msgstr "Värd att väcka upp"
msgid "Network interface to use"
-msgstr "Nätverksgränssnitt som ska användas"
+msgstr "Nätverksgränssnitt att använda"
msgid "Send to broadcast address"
-msgstr ""
+msgstr "Skicka till sändningsadress"
msgid ""
"Sometimes only one of the two tools works. If one fails, try the other one"
diff --git a/applications/luci-app-wol/po/zh-cn/wol.po b/applications/luci-app-wol/po/zh-cn/wol.po
index 7bbae61173..3c66a16b0c 100644
--- a/applications/luci-app-wol/po/zh-cn/wol.po
+++ b/applications/luci-app-wol/po/zh-cn/wol.po
@@ -1,23 +1,26 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-19 00:29+0200\n"
-"PO-Revision-Date: 2012-06-21 17:52+0200\n"
-"Last-Translator: phantasm131 \n"
-"Language-Team: QQ Group 75543259 \n"
+"PO-Revision-Date: 2017-10-28 16:44+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Broadcast on all interfaces"
msgstr "åæææ¥å£å¹¿æ"
msgid "Choose the host to wake up or enter a custom MAC address to use"
-msgstr "éæ©è¦å¤éç主æºæè
è¾å
¥èªå®ä¹macå°å"
+msgstr "éæ©è¦å¤éç主æºï¼æè
è¾å
¥èªå®ä¹ MAC å°å"
msgid "Host to wake up"
msgstr "éæ©è¦å¤éç主æº"
@@ -26,7 +29,7 @@ msgid "Network interface to use"
msgstr "éæ©ä½¿ç¨çç½ç»æ¥å£"
msgid "Send to broadcast address"
-msgstr ""
+msgstr "åéå°å¹¿æå°å"
#, fuzzy
msgid ""
@@ -34,17 +37,17 @@ msgid ""
msgstr "ææ¶åªæä¸ä¸ªå·¥å
·çæãå¦æå
¶ä¸ä¸ä¸ªå¤±æï¼è¯·å°è¯å¦ä¸ä¸ª"
msgid "Specifies the interface the WoL packet is sent on"
-msgstr "éå®ç½ç»å¤éæ°æ®å
å°è¢«åéå°çæ¥å£"
+msgstr "éå®å°åéç½ç»å¤éæ°æ®å
çæ¥å£"
msgid "Starting WoL utility:"
-msgstr "æ£å¨å¯å¨ç½ç»å¤éå·¥å
·"
+msgstr "æ£å¨å¯å¨ç½ç»å¤éå·¥å
·ï¼"
msgid "Wake on LAN"
msgstr "ç½ç»å¤é"
msgid ""
"Wake on LAN is a mechanism to remotely boot computers in the local network."
-msgstr "ç½ç»å¤éæä¾äºä»è¿ç¨å¯å¨æ¬å°ç½ç»å
计ç®æºçæºå¶ã"
+msgstr "ç½ç»å¤éæ¯ä¸ä¸ªè¿ç¨å¯å¨æ¬å°ç½ç»å
计ç®æºçæºå¶ã"
msgid "Wake up host"
msgstr "å¤é主æº"
diff --git a/applications/luci-app-wol/po/zh-tw/wol.po b/applications/luci-app-wol/po/zh-tw/wol.po
index 553d2d04fe..3ef8ea2e2c 100644
--- a/applications/luci-app-wol/po/zh-tw/wol.po
+++ b/applications/luci-app-wol/po/zh-tw/wol.po
@@ -1,51 +1,56 @@
+#
+# Yangfl , 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-14 10:25+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-04-19 00:29+0200\n"
+"PO-Revision-Date: 2017-10-28 16:44+0800\n"
+"Last-Translator: Yangfl \n"
+"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Gtranslator 2.91.7\n"
msgid "Broadcast on all interfaces"
-msgstr "廣æå°ææä»é¢"
+msgstr "åææä»é¢å»£æ"
msgid "Choose the host to wake up or enter a custom MAC address to use"
-msgstr "å«éè¨é¸ç主æ©æè
æå
¥ç¹å®çMACä½å以便使ç¨"
+msgstr "é¸æè¦åéç主æ©ï¼æè
輸å
¥èªå®ç¾© MAC ä½å"
msgid "Host to wake up"
-msgstr "è¦åé主æ©æ¸
å®"
+msgstr "é¸æè¦åéç主æ©"
msgid "Network interface to use"
-msgstr "使ç¨ç網路ä»é¢"
+msgstr "é¸æ使ç¨ç網路ä»é¢"
msgid "Send to broadcast address"
-msgstr ""
+msgstr "å³éå°å»£æä½å"
#, fuzzy
msgid ""
"Sometimes only one of the two tools works. If one fails, try the other one"
-msgstr "æäºæåå
¨é¨å·¥å
·è£¡é¢åªæä¸åç¼çä½ç¨,試試å¦å¤ä¸å"
+msgstr "ææåªæä¸åå·¥å
·çæãå¦æå
¶ä¸ä¸å失æï¼è«å試å¦ä¸å"
msgid "Specifies the interface the WoL packet is sent on"
-msgstr "æå®WoLåéå°å
å°å³å°åªåä»é¢"
+msgstr "éå®å°å³é網路åéè³æå
çä»é¢"
msgid "Starting WoL utility:"
-msgstr "åç¨åéå·¥å
·:"
+msgstr "æ£å¨åå網路åéå·¥å
·ï¼"
msgid "Wake on LAN"
-msgstr "LANå網åé"
+msgstr "網路åé"
msgid ""
"Wake on LAN is a mechanism to remotely boot computers in the local network."
-msgstr "Wolå°±æ¯å¨æ¬å°ç¶²è·¯ä¸éå°é 端éæ©é»è
¦åéçæ©å¶"
+msgstr "網路åéæ¯ä¸åé 端ååæ¬å°ç¶²è·¯å
§è¨ç®æ©çæ©å¶ã"
msgid "Wake up host"
msgstr "åé主æ©"
msgid "WoL program"
-msgstr "Wolåéç¨å¼"
+msgstr "網路åéç¨å¼"
diff --git a/applications/luci-app-wshaper/Makefile b/applications/luci-app-wshaper/Makefile
deleted file mode 100644
index 63e63aba28..0000000000
--- a/applications/luci-app-wshaper/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Support for wshaper
-LUCI_DEPENDS:=+wshaper
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wshaper/luasrc/controller/wshaper.lua b/applications/luci-app-wshaper/luasrc/controller/wshaper.lua
deleted file mode 100644
index 2d0fe484f8..0000000000
--- a/applications/luci-app-wshaper/luasrc/controller/wshaper.lua
+++ /dev/null
@@ -1,9 +0,0 @@
--- Copyright 2011 Manuel Munz
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.controller.wshaper"
-
-function index()
- entry({"admin", "network", "wshaper"}, cbi("wshaper"), _("Wondershaper"), 80)
-end
-
diff --git a/applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua b/applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua
deleted file mode 100644
index 6bd0255cd6..0000000000
--- a/applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua
+++ /dev/null
@@ -1,46 +0,0 @@
--- Copyright 2011 Manuel Munz
--- Licensed to the public under the Apache License 2.0.
-
-require("luci.tools.webadmin")
-
-m = Map("wshaper", translate("Wondershaper"),
- translate("Wondershaper shapes traffic to ensure low latencies for interactive traffic even when your " ..
- "internet connection is highly saturated."))
-
-s = m:section(NamedSection, "settings", "wshaper", translate("Wondershaper settings"))
-s.anonymous = true
-
-network = s:option(ListValue, "network", translate("Interface"))
-luci.tools.webadmin.cbi_add_networks(network)
-
-uplink = s:option(Value, "uplink", translate("Uplink"), translate("Upstream bandwidth in kbit/s"))
-uplink.optional = false
-uplink.datatype = "uinteger"
-uplink.default = "240"
-
-uplink = s:option(Value, "downlink", translate("Downlink"), translate("Downstream bandwidth in kbit/s"))
-uplink.optional = false
-uplink.datatype = "uinteger"
-uplink.default = "200"
-
-nopriohostsrc = s:option(DynamicList, "nopriohostsrc", translate("Low priority hosts (Source)"), translate("Host or Network in CIDR notation."))
-nopriohostsrc.optional = true
-nopriohostsrc.datatype = ipaddr
-nopriohostsrc.placeholder = "10.0.0.1/32"
-
-nopriohostdst = s:option(DynamicList, "nopriohostdst", translate("Low priority hosts (Destination)"), translate("Host or Network in CIDR notation."))
-nopriohostdst.optional = true
-nopriohostdst.datatype = ipaddr
-nopriohostdst.placeholder = "10.0.0.1/32"
-
-noprioportsrc = s:option(DynamicList, "noprioportsrc", translate("Low priority source ports"))
-noprioportsrc.optional = true
-noprioportsrc.datatype = "range(0,65535)"
-noprioportsrc.placeholder = "21"
-
-noprioportdst = s:option(DynamicList, "noprioportdst", translate("Low priority destination ports"))
-noprioportdst.optional = true
-noprioportdst.datatype = "range(0,65535)"
-noprioportdst.placeholder = "21"
-
-return m
diff --git a/applications/luci-app-wshaper/po/ca/wshaper.po b/applications/luci-app-wshaper/po/ca/wshaper.po
deleted file mode 100644
index 2560383329..0000000000
--- a/applications/luci-app-wshaper/po/ca/wshaper.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-01 22:51+0200\n"
-"PO-Revision-Date: 2014-07-01 03:51+0200\n"
-"Last-Translator: Alex \n"
-"Language-Team: LANGUAGE \n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "Enllaç descendent"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Amplada de banda descendent en kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Host o xarxa en notació CIDR."
-
-msgid "Interface"
-msgstr "InterfÃcie"
-
-msgid "Low priority destination ports"
-msgstr "Ports de destà de baixa prioritat"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts de baixa prioritat (destÃ)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts de baixa prioritat (origen)"
-
-msgid "Low priority source ports"
-msgstr "Ports d'origen de baixa prioritat"
-
-msgid "Uplink"
-msgstr "Enllaç ascendent"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Amplada de banda ascendent en kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Ajusts del Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershapter afaiçona el trà nsit per assegurar latències baixes per a "
-"trà nsit interactiu encara que la vostra connexió de Internet estigui "
-"altament saturada."
diff --git a/applications/luci-app-wshaper/po/cs/wshaper.po b/applications/luci-app-wshaper/po/cs/wshaper.po
deleted file mode 100644
index bca6c4e579..0000000000
--- a/applications/luci-app-wshaper/po/cs/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-24 15:20+0200\n"
-"Last-Translator: awm1 \n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "PÅÃchozà rychlost"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Rychlost stahovánà dat v kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Adresa poÄÃtaÄe nebo sÃtÄ v CIDR notaci."
-
-msgid "Interface"
-msgstr "SÃÅ¥ové rozhranÃ"
-
-msgid "Low priority destination ports"
-msgstr "CÃlové porty s nÃzkou prioritou"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Adresy cÃlových poÄÃtaÄů s nÃzkou prioritou"
-
-msgid "Low priority hosts (Source)"
-msgstr "Adresy zdrojových poÄÃtaÄů s nÃzkou prioritou"
-
-msgid "Low priority source ports"
-msgstr "Zdrojové porty s nÃzkou prioritou"
-
-msgid "Uplink"
-msgstr "Odchozà rychlost"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Rychlost odesÃlánà dat v kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Nastavenà skriptu Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Ãkolem skriptu Wondershaper je ÅÃzenà provozu na daném sÃÅ¥ovém rozhranÃ. "
-"Snažà se zajistit nÃzké pÅenosové zpoždÄnà pro \"interaktivnÃ\" sÃÅ¥ový "
-"provoz (napÅ. SSH), a to pÅedevÅ¡Ãm v okamžicÃch, kdy ostatnà sÃÅ¥ový provoz "
-"zahltà linku."
diff --git a/applications/luci-app-wshaper/po/de/wshaper.po b/applications/luci-app-wshaper/po/de/wshaper.po
deleted file mode 100644
index 39dd61771a..0000000000
--- a/applications/luci-app-wshaper/po/de/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2011-10-18 12:28+0200\n"
-"Last-Translator: Manuel \n"
-"Language-Team: \n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "Download"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Download Bandbreite in kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Rechner oder Netzwerk in CIDR Schreibweise"
-
-msgid "Interface"
-msgstr "Schnittstelle"
-
-msgid "Low priority destination ports"
-msgstr "Zielports mit niedriger Priorität"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Zielrechner mit nideriger Priorität"
-
-msgid "Low priority hosts (Source)"
-msgstr "Quellrechner mit neidriger Priorität"
-
-msgid "Low priority source ports"
-msgstr "Quellports mit niedriger Priorität"
-
-msgid "Uplink"
-msgstr "Upload"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Upload Bandbreite in kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper Einstellungen"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper ermöglicht mit Hilfe von Traffic Shaping niedrige Latenzzeiten "
-"für interaktiven Internetverkehr selbst wenn die Internetverbindung extrem "
-"ausgelastet ist."
diff --git a/applications/luci-app-wshaper/po/el/wshaper.po b/applications/luci-app-wshaper/po/el/wshaper.po
deleted file mode 100644
index 6d2f092846..0000000000
--- a/applications/luci-app-wshaper/po/el/wshaper.po
+++ /dev/null
@@ -1,55 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-03-18 17:10+0200\n"
-"PO-Revision-Date: 2012-03-18 17:10+0200\n"
-"Last-Translator: Vasilis \n"
-"Language-Team: LANGUAGE \n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr "ÎιεÏαÏή"
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/en/wshaper.po b/applications/luci-app-wshaper/po/en/wshaper.po
deleted file mode 100644
index b6858398c0..0000000000
--- a/applications/luci-app-wshaper/po/en/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/es/wshaper.po b/applications/luci-app-wshaper/po/es/wshaper.po
deleted file mode 100644
index f562760d5c..0000000000
--- a/applications/luci-app-wshaper/po/es/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-16 01:00+0200\n"
-"PO-Revision-Date: 2012-09-03 18:57+0200\n"
-"Last-Translator: José Vicente \n"
-"Language-Team: LANGUAGE \n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "Enlace de bajada"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Ancho de banda de bajada en Kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Máquina o red en notación CIDR."
-
-msgid "Interface"
-msgstr "Interfaz"
-
-msgid "Low priority destination ports"
-msgstr "Puertos de destino de prioridad baja"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Máquinas de prioridad baja (destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Máquinas de prioridad baja (origen)"
-
-msgid "Low priority source ports"
-msgstr "Puertos de origen de prioridad baja"
-
-msgid "Uplink"
-msgstr "Enlace de salida"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Ancho de banda de subida en Kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Configuración de Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper modela el tráfico para asegurar latencias bajas al tráfico "
-"interactivo incluso cuando la conexión a Internet esté muy saturada."
diff --git a/applications/luci-app-wshaper/po/fr/wshaper.po b/applications/luci-app-wshaper/po/fr/wshaper.po
deleted file mode 100644
index 2fc9f53c5c..0000000000
--- a/applications/luci-app-wshaper/po/fr/wshaper.po
+++ /dev/null
@@ -1,62 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr "Lien descendant (télé-chargement)"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Bande-passante descendante en kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Hôte ou réseau en notation CIDR."
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Ports-cible à faible priorité"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hôtes-cible à faible priorité"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hôtes-source à faible priorité"
-
-msgid "Low priority source ports"
-msgstr "Ports-source à faible priorité"
-
-msgid "Uplink"
-msgstr "Lien montant (envois)"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Bande-passante montante en kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Paramètres Wondershaper"
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-
-#~ msgid ""
-#~ "Wondershaper uses traffic shaping to ensure low latencies for interactive "
-#~ "traffic even when your internet connection is highly saturated."
-#~ msgstr ""
-#~ "Wondershaper gère la priorités entre les flux pour assurer une faible "
-#~ "latence au trafic interactif même quand votre connexion Internet est très "
-#~ "chargée."
diff --git a/applications/luci-app-wshaper/po/he/wshaper.po b/applications/luci-app-wshaper/po/he/wshaper.po
deleted file mode 100644
index f03d5df030..0000000000
--- a/applications/luci-app-wshaper/po/he/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: he\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/hu/wshaper.po b/applications/luci-app-wshaper/po/hu/wshaper.po
deleted file mode 100644
index 2377fa543c..0000000000
--- a/applications/luci-app-wshaper/po/hu/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgid "Downlink"
-msgstr "Letöltés"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Letöltési sebesség kbit/másodberc-ben"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Gép vagy hálózat (CIDR jelöléssel)"
-
-msgid "Interface"
-msgstr "Interfész"
-
-msgid "Low priority destination ports"
-msgstr "Alacsony prioritású cél portok"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Alacson prioritású cél gépek"
-
-msgid "Low priority hosts (Source)"
-msgstr "Alacsony prioritású forrás gépek"
-
-msgid "Low priority source ports"
-msgstr "Alacson prioritású forrás portok"
-
-msgid "Uplink"
-msgstr "Feltöltés"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Feltöltési sebesség kbit/másodperc-ben"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper beállÃtások"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"A Wondershaper 'traffic shaping'-et használatával biztosÃtja az interaktÃv "
-"forgalom alacsony késleletetését még akkor is ha az internet kapcsolat "
-"erÅsen leterhelt."
diff --git a/applications/luci-app-wshaper/po/it/wshaper.po b/applications/luci-app-wshaper/po/it/wshaper.po
deleted file mode 100644
index 6a72c7e5de..0000000000
--- a/applications/luci-app-wshaper/po/it/wshaper.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-28 01:36+0200\n"
-"PO-Revision-Date: 2013-02-03 14:07+0200\n"
-"Last-Translator: Francesco <3gasas@gmail.com>\n"
-"Language-Team: LANGUAGE \n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "Collegamento discendente"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Larghezza di banda in downstream in kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Host o rete in notazione CIDR."
-
-msgid "Interface"
-msgstr "Interfaccia"
-
-msgid "Low priority destination ports"
-msgstr "Porte di destinazione a bassa priorità "
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts a bassa priorità (Destinazione)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts a bassa priorità (Fonte)"
-
-msgid "Low priority source ports"
-msgstr "Porte sorgenti a bassa priorità "
-
-msgid "Uplink"
-msgstr "Uplink"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Larghezza di banda in upstream in kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Impostazioni Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"WonderShaper usa la regolazione del traffico per garantire bassa latenza per "
-"il traffico interattivo anche quando la connessione a Internet è molto "
-"satura."
diff --git a/applications/luci-app-wshaper/po/ja/wshaper.po b/applications/luci-app-wshaper/po/ja/wshaper.po
deleted file mode 100644
index d58476cf3e..0000000000
--- a/applications/luci-app-wshaper/po/ja/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-03-17 18:28+0200\n"
-"PO-Revision-Date: 2012-03-18 09:07+0200\n"
-"Last-Translator: Kentaro \n"
-"Language-Team: LANGUAGE \n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "ä¸ããªã³ã¯"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "ä¸ããªã³ã¯å¸¯å (kbit/sec)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "ãã¹ãåã¾ãã¯CIDR表è¨ã®ãããã¯ã¼ã¯ã¢ãã¬ã¹"
-
-msgid "Interface"
-msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹"
-
-msgid "Low priority destination ports"
-msgstr "ä½åªå
度ã®å®å
ãã¼ã"
-
-msgid "Low priority hosts (Destination)"
-msgstr "ä½åªå
度ã®å®å
ãã¹ã"
-
-msgid "Low priority hosts (Source)"
-msgstr "ä½åªå
度ã®éä¿¡å
ãã¹ã"
-
-msgid "Low priority source ports"
-msgstr "ä½åªå
度ã®éä¿¡å
ãã¼ã"
-
-msgid "Uplink"
-msgstr "ä¸ããªã³ã¯"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "ä¸ããªã³ã¯å¸¯å (kbit/sec)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper è¨å®"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondweshaperã¯ãã¤ã³ã¿ã¼ãããæ¥ç¶ã飽åç¶æ
ã®å ´åã§ããä½ãã¬ã¤ãã³ã·ã»åæ»"
-"ãªéä¿¡ãå®ç¾ããããã«ãã©ãã£ãã¯ã»ã·ã§ã¼ãã³ã°ãè¡ãã¾ãã"
diff --git a/applications/luci-app-wshaper/po/ms/wshaper.po b/applications/luci-app-wshaper/po/ms/wshaper.po
deleted file mode 100644
index ede1386624..0000000000
--- a/applications/luci-app-wshaper/po/ms/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ms\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/no/wshaper.po b/applications/luci-app-wshaper/po/no/wshaper.po
deleted file mode 100644
index 1b1ab329eb..0000000000
--- a/applications/luci-app-wshaper/po/no/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Language: nn\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/pl/wshaper.po b/applications/luci-app-wshaper/po/pl/wshaper.po
deleted file mode 100644
index a85bf00449..0000000000
--- a/applications/luci-app-wshaper/po/pl/wshaper.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-14 14:15+0200\n"
-"PO-Revision-Date: 2012-04-14 17:21+0200\n"
-"Last-Translator: Tomecki \n"
-"Language-Team: LANGUAGE \n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "Downlink"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "PrzepustowoÅÄ pobierania w kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Adres hosta lub adres sieci w notacji CIDR"
-
-msgid "Interface"
-msgstr "Interfejs"
-
-msgid "Low priority destination ports"
-msgstr "Porty docelowe o niskim priorytecie"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosty docelowe o niskim priorytecie"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosty źródÅowe o niskim priorytecie"
-
-msgid "Low priority source ports"
-msgstr "Porty źródÅowe o niskim priorytecie"
-
-msgid "Uplink"
-msgstr "Uplink"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "PrzepustowoÅÄ wysyÅania w kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Ustawienia Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper wykorzystuje ksztaÅtowanie ruchu aby zapewniÄ niskie opóźnienia "
-"nawet wtedy, gdy Twoje poÅÄ
czenie internetowe jest wysycone."
diff --git a/applications/luci-app-wshaper/po/pt-br/wshaper.po b/applications/luci-app-wshaper/po/pt-br/wshaper.po
deleted file mode 100644
index f973ebb5cd..0000000000
--- a/applications/luci-app-wshaper/po/pt-br/wshaper.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-18 19:32+0200\n"
-"PO-Revision-Date: 2011-10-18 19:39+0200\n"
-"Last-Translator: Luiz Angelo \n"
-"Language-Team: LANGUAGE \n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "Velocidade para baixar (downlink)"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Taxa de transferência para baixar em kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Equipamento ou Rede na notação CIDR."
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Portas de destino de baixa prioridade"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Equipamentos de baixa prioridade (Destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Equipamentos de baixa prioridade (Origem)"
-
-msgid "Low priority source ports"
-msgstr "Portas de origem de baixa prioridade"
-
-msgid "Uplink"
-msgstr "Velocidade para subir (uplink)"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Taxa de transferência para subir em kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Configuração do Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper usa o controle de tráfego para garantir baixa latência para "
-"tráfego interativo mesmo quando sua conexão com a internet está extremamente "
-"saturada."
diff --git a/applications/luci-app-wshaper/po/pt/wshaper.po b/applications/luci-app-wshaper/po/pt/wshaper.po
deleted file mode 100644
index 96a7be8165..0000000000
--- a/applications/luci-app-wshaper/po/pt/wshaper.po
+++ /dev/null
@@ -1,55 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-05-31 12:13+0200\n"
-"PO-Revision-Date: 2013-05-31 12:15+0200\n"
-"Last-Translator: joao.f.vieira \n"
-"Language-Team: LANGUAGE \n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Porta de destino com baixa prioridade"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts com baixa prioridade (Destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts com baixa prioridade (Origem)"
-
-msgid "Low priority source ports"
-msgstr "Portas de origem com baixa prioridade"
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/ro/wshaper.po b/applications/luci-app-wshaper/po/ro/wshaper.po
deleted file mode 100644
index d2569f6d23..0000000000
--- a/applications/luci-app-wshaper/po/ro/wshaper.po
+++ /dev/null
@@ -1,56 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-28 18:45+0200\n"
-"PO-Revision-Date: 2014-06-28 18:46+0200\n"
-"Last-Translator: xxvirusxx \n"
-"Language-Team: LANGUAGE \n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/ru/wshaper.po b/applications/luci-app-wshaper/po/ru/wshaper.po
deleted file mode 100644
index 1984aacb62..0000000000
--- a/applications/luci-app-wshaper/po/ru/wshaper.po
+++ /dev/null
@@ -1,61 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI: wsharper\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-01-26 15:09+0200\n"
-"PO-Revision-Date: 2012-08-15 11:53+0300\n"
-"Last-Translator: Roman A. aka BasicXP \n"
-"Language-Team: Russian \n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-msgid "Downlink"
-msgstr "ÐиÑÑ
одÑÑий канал"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "ШиÑина полоÑÑ Ð¿ÑопÑÑÐºÐ°Ð½Ð¸Ñ Ð¿ÑÑмого канала (кбиÑ/Ñ)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "ХоÑÑ Ð¸Ð»Ð¸ ÑеÑÑ Ð² ноÑаÑии CIDR."
-
-msgid "Interface"
-msgstr "ÐнÑеÑÑейÑ"
-
-msgid "Low priority destination ports"
-msgstr "ÐизкопÑиоÑиÑеÑнÑе поÑÑÑ Ð½Ð°Ð·Ð½Ð°ÑениÑ"
-
-msgid "Low priority hosts (Destination)"
-msgstr "ÐизкопÑиоÑиÑеÑнÑе Ñ
оÑÑÑ Ð½Ð°Ð·Ð½Ð°ÑениÑ"
-
-msgid "Low priority hosts (Source)"
-msgstr "ÐизкопÑиоÑиÑеÑнÑе Ñ
оÑÑÑ Ð¸ÑÑоÑника"
-
-msgid "Low priority source ports"
-msgstr "ÐизкопÑиоÑиÑеÑнÑе поÑÑÑ Ð¸ÑÑоÑника"
-
-msgid "Uplink"
-msgstr "ÐоÑÑ
одÑÑий канал"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "ÐÑопÑÑÐºÐ½Ð°Ñ ÑпоÑобноÑÑÑ Ð¾Ð±ÑаÑного канала (кбиÑ/c)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "УÑÑановки Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper иÑполÑзÑÐµÑ ÑоÑмиÑование ÑÑаÑика Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð½Ð¸Ð·ÐºÐ¸Ñ
задеÑжек "
-"инÑеÑакÑивного ÑÑаÑика даже в ÑлÑÑае вÑÑокой загÑÑженноÑÑи инÑеÑнеÑ-"
-"ÑоединениÑ."
diff --git a/applications/luci-app-wshaper/po/sk/wshaper.po b/applications/luci-app-wshaper/po/sk/wshaper.po
deleted file mode 100644
index 4e03aa8f8a..0000000000
--- a/applications/luci-app-wshaper/po/sk/wshaper.po
+++ /dev/null
@@ -1,50 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/sv/wshaper.po b/applications/luci-app-wshaper/po/sv/wshaper.po
deleted file mode 100644
index 4f0fc53468..0000000000
--- a/applications/luci-app-wshaper/po/sv/wshaper.po
+++ /dev/null
@@ -1,53 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgid "Downlink"
-msgstr "Nerladdningslänk"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Nerströms bandbredd i kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Värd eller Nätverk i CIDR-noteringen"
-
-msgid "Interface"
-msgstr "Gränssnitt"
-
-msgid "Low priority destination ports"
-msgstr "Destinations-portar med låg prioritet"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Värdar med låg prioritet (Destination)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Värdar med låg prioritet (Källa)"
-
-msgid "Low priority source ports"
-msgstr "Käll-portar med låg prioritet"
-
-msgid "Uplink"
-msgstr "Uppladdningslänk"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Bandbredd uppströms i kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Inställningar för Wondershaper"
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper formar trafiken för att säkerställa låga latenser för "
-"interaktiv trafik även när din internetanslutning är mättad som mest."
diff --git a/applications/luci-app-wshaper/po/templates/wshaper.pot b/applications/luci-app-wshaper/po/templates/wshaper.pot
deleted file mode 100644
index 42de011b30..0000000000
--- a/applications/luci-app-wshaper/po/templates/wshaper.pot
+++ /dev/null
@@ -1,43 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/tr/wshaper.po b/applications/luci-app-wshaper/po/tr/wshaper.po
deleted file mode 100644
index 7c0acb06d1..0000000000
--- a/applications/luci-app-wshaper/po/tr/wshaper.po
+++ /dev/null
@@ -1,50 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/uk/wshaper.po b/applications/luci-app-wshaper/po/uk/wshaper.po
deleted file mode 100644
index 94d20df992..0000000000
--- a/applications/luci-app-wshaper/po/uk/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-28 21:54+0200\n"
-"Last-Translator: Yurii \n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "ÐÑÑмий канал"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "ШиÑина ÑмÑги пÑопÑÑÐºÐ°Ð½Ð½Ñ Ð¿ÑÑмого ÐºÐ°Ð½Ð°Ð»Ñ (кбÑÑ/Ñ)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "ÐÑзол або меÑежа в ноÑаÑÑÑ CIDR."
-
-msgid "Interface"
-msgstr "ÐнÑеÑÑейÑ"
-
-msgid "Low priority destination ports"
-msgstr "ÐизÑкопÑÑоÑиÑеÑÐ½Ñ Ð¿Ð¾ÑÑи пÑизнаÑеннÑ"
-
-msgid "Low priority hosts (Destination)"
-msgstr "ÐизÑкопÑÑоÑиÑеÑÐ½Ñ Ð²Ñзли пÑизнаÑеннÑ"
-
-msgid "Low priority hosts (Source)"
-msgstr "ÐизÑкопÑÑоÑиÑеÑÐ½Ñ Ð²Ñзли джеÑела"
-
-msgid "Low priority source ports"
-msgstr "ÐизÑкопÑÑоÑиÑеÑÐ½Ñ Ð¿Ð¾ÑÑи джеÑела"
-
-msgid "Uplink"
-msgstr "ÐвоÑоÑнÑй канал"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "ШиÑина ÑмÑги пÑопÑÑÐºÐ°Ð½Ð½Ñ Ð·Ð²Ð¾ÑоÑного ÐºÐ°Ð½Ð°Ð»Ñ (кбÑÑ/c)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper викоÑиÑÑовÑÑ ÑоÑмÑÐ²Ð°Ð½Ð½Ñ ÑÑаÑÑÐºÑ Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑÐµÐ½Ð½Ñ Ð½Ð¸Ð·ÑÐºÐ¾Ñ "
-"заÑÑимки ÑнÑеÑакÑивного ÑÑаÑÑкÑ, навÑÑÑ ÑкÑо ваÑе з'ÑÐ´Ð½Ð°Ð½Ð½Ñ Ð· ÑнÑеÑнеÑом "
-"дÑже наÑиÑене."
diff --git a/applications/luci-app-wshaper/po/vi/wshaper.po b/applications/luci-app-wshaper/po/vi/wshaper.po
deleted file mode 100644
index e0b8e53242..0000000000
--- a/applications/luci-app-wshaper/po/vi/wshaper.po
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: vi\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/zh-cn/wshaper.po b/applications/luci-app-wshaper/po/zh-cn/wshaper.po
deleted file mode 100644
index a35ccd02d0..0000000000
--- a/applications/luci-app-wshaper/po/zh-cn/wshaper.po
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-03 08:25+0200\n"
-"PO-Revision-Date: 2013-10-10 20:15+0200\n"
-"Last-Translator: Tanyingyu \n"
-"Language-Team: LANGUAGE \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "ä¸è½½é¾æ¥"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "ä¸è½½å¸¦å®½kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "主æºæç½ç»çCIDRæ è®°ã"
-
-msgid "Interface"
-msgstr "端å£"
-
-msgid "Low priority destination ports"
-msgstr "ä½ä¼å
级ç®æ 端å£"
-
-msgid "Low priority hosts (Destination)"
-msgstr "ä½ä¼å
级ç®æ 主æº"
-
-msgid "Low priority hosts (Source)"
-msgstr "ä½ä¼å
级æºä¸»æº"
-
-msgid "Low priority source ports"
-msgstr "ä½ä¼å
级æºç«¯å£"
-
-msgid "Uplink"
-msgstr "ä¸è"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "ä¸è¡å¸¦å®½kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper设置"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaperéè¿æµéå¹é
,ç¡®ä¿ä½å»¶æ¶ç交äºæ°æ®å
ï¼çè³å½ä½ çäºèç½è¿æ¥æ¯é«åº¦é¥±"
-"åã"
diff --git a/applications/luci-app-wshaper/po/zh-tw/wshaper.po b/applications/luci-app-wshaper/po/zh-tw/wshaper.po
deleted file mode 100644
index 18148259f0..0000000000
--- a/applications/luci-app-wshaper/po/zh-tw/wshaper.po
+++ /dev/null
@@ -1,56 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-14 12:40+0200\n"
-"Last-Translator: omnistack \n"
-"Language-Team: none\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "ä¸è¼"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "以 kbit/s表示çä¸è¼é »å¯¬"
-
-msgid "Host or Network in CIDR notation."
-msgstr "CIDRç¡é¡å¥åéè·¯ç±ä¸ç主æ©æ網路"
-
-msgid "Interface"
-msgstr "ä»é¢"
-
-msgid "Low priority destination ports"
-msgstr "ä½åªå
æ¬ç®å°å è"
-
-msgid "Low priority hosts (Destination)"
-msgstr "ä½åªå
æ¬ä¸»æ©(ç®çå°)"
-
-msgid "Low priority hosts (Source)"
-msgstr "ä½åªå
æ¬ä¸»æ©(ä¾æº)"
-
-msgid "Low priority source ports"
-msgstr "ä½åªå
æ¬ä¾æºå è"
-
-msgid "Uplink"
-msgstr "ä¸å³"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "以kbit/s表示çä¸å³é »å¯¬"
-
-msgid "Wondershaper"
-msgstr "Wondershaperé »å¯¬ç®¡ç"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaperè¨å®å¼"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"æ¢ä½¿ä½ ç網路é£ç·éå°é«é£½å, Wondershaperæ¡ç¨æµéé³åå¡å½¢ä»¥éå°æªç¥çæµéä¿è"
-"ä½å»¶é²"
diff --git a/applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper b/applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper
deleted file mode 100644
index 918dff2801..0000000000
--- a/applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-uci -q batch <<-EOF >/dev/null
- delete ucitrack.@wshaper[-1]
- set ucitrack.wshaper="wshaper"
- set ucitrack.wshaper.exec='/etc/init.d/wshaper start'
- commit ucitrack
-EOF
-
-rm -f /tmp/luci-indexcache
-exit 0
diff --git a/build/zoneinfo2lua.pl b/build/zoneinfo2lua.pl
index d3f0403263..1a0bee1c68 100755
--- a/build/zoneinfo2lua.pl
+++ b/build/zoneinfo2lua.pl
@@ -46,6 +46,34 @@ while( ! eof ZTAB ) {
close ZTAB;
+# Add Etc/GMT zones from manually as they are not in zone.tab
+$TZ{"Etc/GMT"} = "GMT0";
+$TZ{"Etc/GMT-1"} = "<+01>-1";
+$TZ{"Etc/GMT-2"} = "<+02>-2";
+$TZ{"Etc/GMT-3"} = "<+03>-3";
+$TZ{"Etc/GMT-4"} = "<+04>-4";
+$TZ{"Etc/GMT-5"} = "<+05>-5";
+$TZ{"Etc/GMT-6"} = "<+06>-6";
+$TZ{"Etc/GMT-7"} = "<+07>-7";
+$TZ{"Etc/GMT-8"} = "<+08>-8";
+$TZ{"Etc/GMT-9"} = "<+09>-9";
+$TZ{"Etc/GMT-10"} = "<+10>-10";
+$TZ{"Etc/GMT-11"} = "<+11>-11";
+$TZ{"Etc/GMT-12"} = "<+12>-12";
+$TZ{"Etc/GMT-13"} = "<+13>-13";
+$TZ{"Etc/GMT-14"} = "<+14>-14";
+$TZ{"Etc/GMT+1"} = "<-01>1";
+$TZ{"Etc/GMT+2"} = "<-02>2";
+$TZ{"Etc/GMT+3"} = "<-03>3";
+$TZ{"Etc/GMT+4"} = "<-04>4";
+$TZ{"Etc/GMT+5"} = "<-05>5";
+$TZ{"Etc/GMT+6"} = "<-06>6";
+$TZ{"Etc/GMT+7"} = "<-07>7";
+$TZ{"Etc/GMT+8"} = "<-08>8";
+$TZ{"Etc/GMT+9"} = "<-09>9";
+$TZ{"Etc/GMT+10"} = "<-10>10";
+$TZ{"Etc/GMT+11"} = "<-11>11";
+$TZ{"Etc/GMT+12"} = "<-12>12";
open(O, "> $tzdout/tzdata.lua") || die "open($tzdout/tzdata.lua): $!\n";
diff --git a/collections/luci-ssl-openssl/Makefile b/collections/luci-ssl-openssl/Makefile
index b5f4b091b1..d1e752e8b8 100644
--- a/collections/luci-ssl-openssl/Makefile
+++ b/collections/luci-ssl-openssl/Makefile
@@ -11,10 +11,10 @@ LUCI_BASENAME:=ssl-openssl
LUCI_TITLE:=LuCI with HTTPS support (OpenSSL as SSL backend)
LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
- Note: px5g still requires libmbedtls (in LEDE) or libpolarssl (in Openwrt). \
- In LEDE it is also possible to replace px5g with openssl-util as uhttpd can \
- also generate keys with openssl commandline tools if px5g is not installed.
-LUCI_DEPENDS:=+luci +libustream-openssl +px5g
+ OpenSSL cmd tools (openssl-util) are used by uhttpd for SSL key generation \
+ instead of the default px5g. (If px5g is installed, uhttpd will prefer that.)
+
+LUCI_DEPENDS:=+luci +libustream-openssl +openssl-util
include ../../luci.mk
diff --git a/collections/luci-ssl/Makefile b/collections/luci-ssl/Makefile
index 8fb8ff4627..399c982d22 100644
--- a/collections/luci-ssl/Makefile
+++ b/collections/luci-ssl/Makefile
@@ -12,6 +12,8 @@ LUCI_BASENAME:=ssl
LUCI_TITLE:=LuCI with HTTPS support (mbedTLS as SSL backend)
LUCI_DEPENDS:=+luci +libustream-mbedtls +px5g
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/collections/luci/Makefile b/collections/luci/Makefile
index 4625c95f24..9b495c3187 100644
--- a/collections/luci/Makefile
+++ b/collections/luci/Makefile
@@ -12,7 +12,10 @@ LUCI_BASENAME:=luci
LUCI_TITLE:=Standard OpenWrt set including full admin with ppp support and the default Bootstrap theme
LUCI_DEPENDS:= \
+uhttpd +uhttpd-mod-ubus +luci-mod-admin-full +luci-theme-bootstrap \
- +luci-app-firewall +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6
+ +luci-app-firewall +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6 \
+ +rpcd-mod-rrdns
+
+PKG_LICENSE:=Apache-2.0
include ../../luci.mk
diff --git a/contrib/package/community-profiles/files/etc/config/profile_potsdam b/contrib/package/community-profiles/files/etc/config/profile_potsdam
index c15624a9fd..9bdb603239 100644
--- a/contrib/package/community-profiles/files/etc/config/profile_potsdam
+++ b/contrib/package/community-profiles/files/etc/config/profile_potsdam
@@ -1,19 +1,35 @@
config 'community' 'profile'
option 'name' 'Freifunk Potsdam'
option 'homepage' 'http://potsdam.freifunk.net'
- option 'ssid' 'www.freifunk-potsdam.de'
+ option 'ssid' 'Freifunk-Potsdam-XXX-YYY'
option 'mesh_network' '10.22.0.0/16'
option 'splash_network' '192.168.22.0/24'
option 'splash_prefix' '24'
option 'latitude' '52.39349'
option 'longitude' '13.06489'
+ option 'ipv6' '0'
+
+config 'defaults' 'interface'
+ option 'netmask' '255.255.0.0'
+ option 'dns' '85.214.20.141 213.73.91.35 194.150.168.168'
+ option 'delegate' '0'
config 'defaults' 'wifi_device'
option 'channel' '5'
+config 'defaults' 'wifi_device_5'
+ option 'channel' '44'
+
config 'defaults' 'bssidscheme'
option '5' '02:CA:FF:EE:BA:BE'
+ option '44' '02:CA:FF:EE:BA:BE'
-config 'defaults' 'interface'
- option 'dns' '85.214.20.141 213.73.91.35 194.150.168.168'
+config 'defaults' 'ssidscheme'
+ option '5' 'Mesh23'
+ option '44' 'Mesh23'
+
+config 'defaults' 'dhcp'
+ option 'leasetime' '15m'
+config 'defaults' 'olsrd'
+ option 'LinkQualityAlgorithm' 'etx_ffeth'
diff --git a/contrib/package/freifunk-common/Makefile b/contrib/package/freifunk-common/Makefile
index d9bbd994a1..2b9336fb06 100644
--- a/contrib/package/freifunk-common/Makefile
+++ b/contrib/package/freifunk-common/Makefile
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=freifunk-common
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
diff --git a/contrib/package/freifunk-common/files/etc/config/freifunk b/contrib/package/freifunk-common/files/etc/config/freifunk
index 9a46f056ad..b1a2e41e2a 100644
--- a/contrib/package/freifunk-common/files/etc/config/freifunk
+++ b/contrib/package/freifunk-common/files/etc/config/freifunk
@@ -104,12 +104,6 @@ config 'defaults' 'wifi_iface'
option 'bssid' '12:CA:FF:EE:BA:BE'
option 'mcast_rate' '6000'
-config 'defaults' 'madwifi_wifi_iface'
- option 'bgscan' '0'
- option 'sw_merge' '1'
- option 'probereq' '1'
- option 'mcast_rate' '5500'
-
config 'defaults' 'interface'
option 'netmask' '255.255.0.0'
option 'dns' '8.8.8.8 212.204.49.83 141.1.1.1'
diff --git a/contrib/package/meshwizard/Makefile b/contrib/package/meshwizard/Makefile
index 9ac5a06286..62983465c1 100644
--- a/contrib/package/meshwizard/Makefile
+++ b/contrib/package/meshwizard/Makefile
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=meshwizard
-PKG_RELEASE:=0.3.2
+PKG_RELEASE:=0.3.3
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
index e9139ed510..f2d10cc9e2 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# This script renames IB_wifi_ interface names into real interface names used on this system.
-# E.g. wireless.IB_wifi0 would become wireless.wifi0 on madwifi and wireless.radio0 on mac80211
+# E.g. wireless.IB_wifi0 would become wireless.radio0 on mac80211
. $dir/functions.sh
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
index 01a93874ab..9ebcb46b13 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
@@ -73,7 +73,7 @@ setup_nameservice() {
uci batch <<- EOF
set $cfg.olsrd_nameservice=LoadPlugin
- set $cfg.olsrd_nameservice.library="olsrd_nameservice.so.0.3"
+ set $cfg.olsrd_nameservice.library="olsrd_nameservice.so.0.4"
set $cfg.olsrd_nameservice.latlon_file="$llfile"
set $cfg.olsrd_nameservice.hosts_file="$hosts"
set $cfg.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
@@ -118,7 +118,7 @@ setup_jsoninfo() {
proto="$1"
uci batch <<- EOF
set $cfg.olsrd_jsoninfo=LoadPlugin
- set $cfg.olsrd_jsoninfo.library="olsrd_jsoninfo.so.0.0"
+ set $cfg.olsrd_jsoninfo.library="olsrd_jsoninfo.so.1.1"
EOF
if [ "$proto" = "6" ]; then
uci set $cfg.olsrd_jsoninfo.ipv6only='1'
@@ -130,7 +130,7 @@ setup_txtinfo() {
proto="$1"
uci batch <<- EOF
set $cfg.olsrd_txtinfo=LoadPlugin
- set $cfg.olsrd_txtinfo.library="olsrd_txtinfo.so.0.1"
+ set $cfg.olsrd_txtinfo.library="olsrd_txtinfo.so.1.1"
EOF
if [ "$proto" = "6" ]; then
uci set $cfg.olsrd_txtinfo.ipv6only='1'
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
index 41feb86651..707b7b72cd 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
@@ -59,11 +59,6 @@ uci set wireless.$net\_iface=wifi-iface
# create new wifi-iface for $net from defaults
set_defaults "wifi_iface_" wireless.$net\_iface
-# overwrite some settings for type atheros (madwifi)
-if [ "$type" = "atheros" ]; then
- set_defaults "madwifi_wifi_iface_" wireless.${net}
-fi
-
# overwrite defaults
bssid="$($dir/helpers/gen_bssid.sh $channel $community)"
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
index 0585ab5fe1..7fdff3c566 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
@@ -8,9 +8,7 @@ if [ -z "$dev" -o -z "$type" ]; then
exit 1
fi
-if [ "$type" = "atheros" ]; then
- exit 0
-elif [ "$type" = "mac80211" ]; then
+if [ "$type" = "mac80211" ]; then
# not hostapd[-mini], no VAP
if [ ! -x /usr/sbin/hostapd ]; then
echo "WARNING: hostapd[-mini] is required to be able to use VAP with mac80211."
diff --git a/contrib/package/remote-update/Makefile b/contrib/package/remote-update/Makefile
deleted file mode 100644
index 4f8b3a596b..0000000000
--- a/contrib/package/remote-update/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2009 Jo-Philipp Wich
-#
-# This is free software, licensed under the Apache 2.0 license.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=remote-update
-PKG_RELEASE:=4
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/remote-update
- SECTION:=luci
- CATEGORY:=LuCI
- SUBMENU:=9. Freifunk
- TITLE:=Freifunk remote update utility.
- DEPENDS:=@TARGET_atheros||@TARGET_ar71xx||@TARGET_brcm_2_4
-endef
-
-define Package/remote-update/description
- The freifunk remote-update utility uses sysupgrade to reflash the currently
- running firmware while keeping most of the existing configuratio.
-endef
-
-define Build/Prepare
- mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/remote-update/install
- $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,remote-update))
diff --git a/contrib/package/remote-update/files/usr/sbin/remote-update b/contrib/package/remote-update/files/usr/sbin/remote-update
deleted file mode 100755
index 6e45e482be..0000000000
--- a/contrib/package/remote-update/files/usr/sbin/remote-update
+++ /dev/null
@@ -1,306 +0,0 @@
-#!/bin/sh
-
-local tempfile=/tmp/remote-upgrade.img
-local D2='\([0-9]\{2\}\)'
-local D4='\([0-9]\{4\}\)'
-local NL='
-'
-
-find_architecture()
-{
- local ifs="$IFS"; IFS="-"
- set -- $(opkg list_installed kernel)
- IFS="$ifs"
-
- echo "$3"
-}
-
-find_image()
-{
- case "$1" in
- atheros)
- echo "openwrt-atheros-combined.squashfs.img"
- ;;
- ar71xx)
- echo "openwrt-ar71xx-combined.squashfs.img"
- ;;
- brcm)
- echo "openwrt-brcm-2.4-squashfs.trx"
- ;;
- esac
-}
-
-check_image()
-{
- local file; for file in /lib/upgrade/*.sh; do . $file; done
- if platform_check_image "$1" >/dev/null 2>/dev/null; then
- return 0
- fi
- return 1
-}
-
-find_remote_checksum()
-{
- wget -qO- ${1%/*}/md5sums 2>/dev/null | \
- sed -ne '/'$2'/ { s/ .*//p }'
-}
-
-find_local_checksum()
-{
- set -- $(md5sum "$tempfile")
- echo $1
-}
-
-find_remote_info()
-{
- wget -qO- "${1%/*}/VERSION.txt" 2>/dev/null
-}
-
-find_remote_version()
-{
- find_remote_info "$1" | \
- sed -ne "s!.*$D4/$D2/$D2 $D2:$D2.*!\\1\\2\\3\\4\\5!p;t"
-}
-
-find_local_version()
-{
- if [ -f /rom/etc/banner ]; then
- sed -ne "s!.*$D4/$D2/$D2 $D2:$D2.*!\\1\\2\\3\\4\\5!p;t" \
- /rom/etc/banner
- else
- date +"%Y%m%d%H%M" -r /bin/sh
- fi
-}
-
-stop_service()
-{
- [ -x /etc/init.d/$1 ] && {
- echo -n "Stopping service $1 ... "
- /etc/init.d/$1 stop >/dev/null 2>/dev/null
- echo "done"
- }
-}
-
-do_wait()
-{
- if [ ${1:-0} -gt 0 ]; then
- echo -n "${2:-Waiting} "
- for i in $(seq 1 $1); do
- printf "%-2dseconds" $(($1-$i))
- sleep 1
- echo -en "\b\b\b\b\b\b\b\b\b"
- done
- echo "${NL}"
- fi
-}
-
-version_compare()
-{
- local v1="$1"
- local v2="$2"
-
- while [ -n "$v1" -o -n "$v2" ]; do
- if [ -z "${v2:0:4}" -o "${v1:0:4}" -gt "${v2:0:4}" ]; then
- return 1
- elif [ -z "${v1:0:4}" -o "${v1:0:4}" -lt "${v2:0:4}" ]; then
- return 2
- fi
-
- v1="${v1:4}"
- v2="${v2:4}"
- done
-
- return 0
-}
-
-usage()
-{
- cat <] -c
- remote-update [-v] [-y] [-u ] -w
- remote-update [-d] [-n] [-v] [-y] [-s ] [-u ]
-
-Actions:
- -h Display this help message and exit.
- -c Check for firmware update and exit.
- -w Fetch image and exit, do not perform flash write.
-
-Options:
- -d Do not detach from terminal.
- -n Do not backup configuration.
- -v Skip verification of downloaded image.
- -y Assume defaults for all questions.
-
- -s
- Sleep given amount of seconds before starting flash write.
- If ommitted and '-y' is not used, 5 seconds are assumed.
-
- -u
- Fetch firmware image from given url. A file "md5sums" is expected
- in the same remote directory. If there is no such file, use -v to
- suppress verification.
-
-EOT
-
- exit 1
-}
-
-
-while getopts "s:u:cdnvwyh" flag; do
- case $flag in
- s) sleeptime="$OPTARG";;
- u) updateurl="$OPTARG";;
- c) checkupdate=1;;
- d) nodetach=1;;
- n) nobackup=1;;
- v) noverify=1;;
- w) noflash=1;;
- y) noquestions=1;;
- *) usage;;
- esac
-done
-
-
-local image_url="$updateurl"
-local image_name="${image_url##*/}"
-
-[ -z "$image_url" ] && {
- local arch=$(find_architecture)
- local image=$(find_image "$arch")
- local repo=$(uci get freifunk.upgrade.repository 2>/dev/null)
- repo=${repo:-$(uci get system.upgrade.repository 2>/dev/null)}
-
- [ -z "$arch" ] && {
- echo "Can not determine the current architecture."
- exit 1
- }
-
- [ -z "$repo" ] && {
- echo "No repository configured in 'system.upgrade.repository'."
- echo "Use the '-u' flag to specify an image location."
- exit 1
- }
-
- [ -z "$image" ] && {
- echo "No suitable image for the '$arch' architecture."
- echo "Your platform is not supported."
- exit 1
- }
-
- echo "Architecture: $arch"
- echo "Repository: $repo"
-
- image_name="$image"
- image_url="${repo%/}/$arch/$image"
-}
-
-
-if [ "$checkupdate" = 1 ]; then
- local v1=$(find_local_version)
- local v2=$(find_remote_version "$image_url")
-
- [ -n "$v1" -a -n "$v2" ] && {
- version_compare "$v1" "$v2"
- [ $? == 2 ] && {
- echo "Update available!${NL}Local: $v1${NL}Remote: $v2${NL}--"
- find_remote_info "$image_url"
- exit 0
- } || {
- echo "Local version $v1 is up to date"
- exit 2
- }
- } || {
- echo "No remote time stamp found."
- exit 1
- }
-else
- if [ "$noquestions" != 1 ]; then
- echo -n "${NL}About to download $image_name. Continue? [y] "
- read answer
- case "$answer" in
- [nN]) exit 1;;
- esac
- fi
-
- echo -n "Downloading $image_name ... "
- rm -f $tempfile
- wget -qO $tempfile "$image_url" 2>/dev/null
- [ $? == 0 ] && echo done || {
- echo failed
- rm -f $tempfile
- exit 1
- }
-
- if [ "$noverify" != 1 ]; then
- echo -n "Verifying $image_name ... "
-
- local md5_remote=$(find_remote_checksum "$image_url" "$image_name")
- local md5_local=$(find_local_checksum)
-
- check_image "$tempfile"
- local image_ok=$?
-
- if [ $image_ok = 0 -a -n "$md5_remote" -a -n "$md5_local" -a "$md5_remote" = "$md5_local" ]; then
- echo "done"
- else
- if [ $image_ok != 0 ]; then
- echo "unsupported image type"
- else
- echo "checksum mismatch! (local:${md5_local:-(none)} remote:${md5_remote:-(none)})"
- fi
-
- local answer=n
- if [ "$noquestions" != 1 ]; then
- echo -n "${NL}Verification failed. Continue anyway? [n] "
- read answer
- fi
-
- case "$answer" in
- [yYjJ]*) : ;;
- *)
- echo "Aborting."
- rm -f $tempfile
- exit 1
- ;;
- esac
- fi
- fi
-
- if [ "$noflash" != 1 ]; then
- if [ -f "$tempfile" ]; then
- if [ "$noquestions" == 1 ]; then
- do_wait ${sleeptime:-5} "${NL}About to start flashing, hit to abort!${NL}${NL}Starting in"
- else
- if [ -z "$nobackup" ]; then
- echo -n "${NL}Keep configuration files? [y] "
- read answer
- case "$answer" in
- [nN]) nobackup=1;;
- esac
- fi
-
- echo -n "${NL}About to start flashing!${NL}Hit to continue or to abort.${NL}"
- read answer
- fi
-
- for s in lucid collectd; do stop_service $s; done
-
- if [ "$nodetach" != 1 ]; then
- echo -n "Starting sysupgrade in background ... "
- /bin/busybox start-stop-daemon -S -b -x /sbin/sysupgrade -- ${nobackup:+-n} "$tempfile"
- echo "done"
- else
- echo "Executing sysupgrade ... "
- exec /sbin/sysupgrade ${nobackup:+-n} "$tempfile"
- fi
- else
- echo "No upgrade image found!"
- exit 1
- fi
- else
- echo "Image saved in '$tempfile'"
- fi
-fi
diff --git a/libs/luci-lib-ip/Makefile b/libs/luci-lib-ip/Makefile
index eb80dcb258..15cb537cff 100644
--- a/libs/luci-lib-ip/Makefile
+++ b/libs/luci-lib-ip/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Lua library for IP calculation and routing information
LUCI_DEPENDS:=+liblua +libnl-tiny
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/libs/luci-lib-json/Makefile b/libs/luci-lib-json/Makefile
index 069886d5c3..ededc1f650 100644
--- a/libs/luci-lib-json/Makefile
+++ b/libs/luci-lib-json/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI JSON library
LUCI_DEPENDS:=
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/libs/luci-lib-nixio/Makefile b/libs/luci-lib-nixio/Makefile
index 41800fe54b..bec5f83cda 100644
--- a/libs/luci-lib-nixio/Makefile
+++ b/libs/luci-lib-nixio/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=NIXIO POSIX library
LUCI_DEPENDS:=+PACKAGE_luci-lib-nixio_openssl:libopenssl +PACKAGE_luci-lib-nixio_cyassl:libcyassl +liblua
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/libs/luci-lib-nixio/src/fs.c b/libs/luci-lib-nixio/src/fs.c
index 12ca111ac0..ba184ed119 100644
--- a/libs/luci-lib-nixio/src/fs.c
+++ b/libs/luci-lib-nixio/src/fs.c
@@ -355,7 +355,7 @@ static int nixio_stat(lua_State *L) {
static int nixio_lstat(lua_State *L) {
nixio_stat_t buf;
- if (stat(luaL_checkstring(L, 1), &buf)) {
+ if (lstat(luaL_checkstring(L, 1), &buf)) {
return nixio__perror(L);
} else {
nixio__push_stat(L, &buf);
diff --git a/libs/luci-lib-px5g/Makefile b/libs/luci-lib-px5g/Makefile
index 70b95e8505..eefee107e8 100644
--- a/libs/luci-lib-px5g/Makefile
+++ b/libs/luci-lib-px5g/Makefile
@@ -10,6 +10,7 @@ LUCI_TITLE:=RSA/X.509 Key Generator (required for LuCId SSL support)
LUCI_DEPENDS:=+liblua
PKG_USE_MIPS16:=0
+PKG_LICENSE:=LGPL-2.1
include ../../luci.mk
diff --git a/libs/rpcd-mod-rrdns/Makefile b/libs/rpcd-mod-rrdns/Makefile
new file mode 100644
index 0000000000..f0bf140a87
--- /dev/null
+++ b/libs/rpcd-mod-rrdns/Makefile
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2016-2017 Jo-Philipp Wich
+#
+# Licensed under the Apache License, Version 2.0.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rpcd-mod-rrdns
+PKG_VERSION:=20170710
+PKG_MAINTAINER:=Jo-Philipp Wich
+
+PKG_LICENSE:=Apache-2.0
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Build/Prepare
+ $(INSTALL_DIR) $(PKG_BUILD_DIR)
+ $(CP) ./src/* $(PKG_BUILD_DIR)/
+endef
+
+define Package/rpcd-mod-rrdns
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Rapid reverse DNS rpcd module
+ DEPENDS:=+rpcd +libubox +libubus
+endef
+
+define Package/rpcd-mod-rrdns/description
+ Provides rapid mass reverse DNS lookup functionality.
+endef
+
+define Package/rpcd-mod-rrdns/install
+ $(INSTALL_DIR) $(1)/usr/lib/rpcd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/rrdns.so $(1)/usr/lib/rpcd/
+endef
+
+define Package/rpcd-mod-rrdns/postinst
+#!/bin/sh
+killall -HUP rpcd 2>/dev/null
+exit 0
+endef
+
+$(eval $(call BuildPackage,rpcd-mod-rrdns))
diff --git a/libs/rpcd-mod-rrdns/src/CMakeLists.txt b/libs/rpcd-mod-rrdns/src/CMakeLists.txt
new file mode 100644
index 0000000000..ace6ac8664
--- /dev/null
+++ b/libs/rpcd-mod-rrdns/src/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 2.6)
+
+PROJECT(rpcd-mod-rrdns C)
+
+ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations)
+
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
+
+IF(APPLE)
+ INCLUDE_DIRECTORIES(/opt/local/include)
+ LINK_DIRECTORIES(/opt/local/lib)
+ENDIF()
+
+FIND_LIBRARY(resolv NAMES resolv)
+IF(resolv STREQUAL "LIBS-NOTFOUND")
+ SET(resolv "")
+ENDIF()
+
+ADD_LIBRARY(rpcd-mod-rrdns MODULE rrdns.c)
+TARGET_LINK_LIBRARIES(rpcd-mod-rrdns ubox ubus ${resolv})
+SET_TARGET_PROPERTIES(rpcd-mod-rrdns PROPERTIES OUTPUT_NAME rrdns PREFIX "")
+
+INSTALL(TARGETS rpcd-mod-rrdns LIBRARY DESTINATION lib)
diff --git a/libs/rpcd-mod-rrdns/src/rrdns.c b/libs/rpcd-mod-rrdns/src/rrdns.c
new file mode 100644
index 0000000000..691db9c8fa
--- /dev/null
+++ b/libs/rpcd-mod-rrdns/src/rrdns.c
@@ -0,0 +1,389 @@
+/*
+ * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server
+ *
+ * Copyright (C) 2016 Jo-Philipp Wich
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+#include
+#include
+
+#include
+
+#include
+#include
+#include
+
+#include
+
+#include "rrdns.h"
+
+
+enum {
+ RPC_L_ADDRS,
+ RPC_L_TIMEOUT,
+ RPC_L_SERVER,
+ RPC_L_PORT,
+ RPC_L_LIMIT,
+ __RPC_L_MAX,
+};
+
+static const struct blobmsg_policy rpc_lookup_policy[__RPC_L_MAX] = {
+ [RPC_L_ADDRS] = { .name = "addrs", .type = BLOBMSG_TYPE_ARRAY },
+ [RPC_L_TIMEOUT] = { .name = "timeout", .type = BLOBMSG_TYPE_INT32 },
+ [RPC_L_SERVER] = { .name = "server", .type = BLOBMSG_TYPE_STRING },
+ [RPC_L_PORT] = { .name = "port", .type = BLOBMSG_TYPE_INT16 },
+ [RPC_L_LIMIT] = { .name = "limit", .type = BLOBMSG_TYPE_INT32 },
+};
+
+
+static int
+rrdns_cmp_id(const void *k1, const void *k2, void *ptr)
+{
+ const uint16_t *id1 = k1, *id2 = k2;
+ return (*id1 - *id2);
+}
+
+static int
+rrdns_cmp_addr(const void *k1, const void *k2, void *ptr)
+{
+ const struct in6_addr *a1 = k1, *a2 = k2;
+ return memcmp(a1, a2, sizeof(*a1));
+}
+
+static int
+rrdns_parse_response(struct rrdns_context *rctx)
+{
+ int n, len;
+ uint16_t id;
+ struct rrdns_request *req;
+ unsigned char res[512];
+ char buf[INET6_ADDRSTRLEN], dname[MAXDNAME];
+ HEADER *hdr;
+ ns_msg handle;
+ ns_rr rr;
+
+ len = recv(rctx->socket.fd, res, sizeof(res), 0);
+
+ if (len < sizeof(*hdr))
+ return -ENODATA;
+
+ hdr = (HEADER *)res;
+ id = hdr->id;
+ req = avl_find_element(&rctx->request_ids, &id, req, by_id);
+
+ if (!req)
+ return -ENOENT;
+
+ avl_delete(&rctx->request_ids, &req->by_id);
+
+ if (ns_initparse(res, len, &handle))
+ return -EINVAL;
+
+ for (n = 0; n < ns_msg_count(handle, ns_s_an); n++) {
+ if (ns_parserr(&handle, ns_s_an, n, &rr))
+ return -EINVAL;
+
+ if (ns_rr_type(rr) != ns_t_ptr)
+ continue;
+
+ if (ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle),
+ ns_rr_rdata(rr), dname, sizeof(dname)) < 0)
+ return -EINVAL;
+
+ inet_ntop(req->family, &req->addr, buf, sizeof(buf));
+ blobmsg_add_string(&rctx->blob, buf, dname);
+ }
+
+ return 0;
+}
+
+static int
+rrdns_next_query(struct rrdns_context *rctx)
+{
+ const char *addr = NULL, *hex = "0123456789abcdef";
+ struct rrdns_request *req;
+ int i, alen, family;
+ char *p, dname[73];
+
+ union {
+ unsigned char uchar[4];
+ struct in6_addr in6;
+ struct in_addr in;
+ } a = { };
+
+ union {
+ unsigned char buf[512];
+ HEADER hdr;
+ } msg;
+
+ if (rctx->addr_rem > 0 &&
+ blob_pad_len(rctx->addr_cur) <= rctx->addr_rem &&
+ blob_pad_len(rctx->addr_cur) >= sizeof(struct blob_attr)) {
+
+ addr = blobmsg_get_string(rctx->addr_cur);
+ rctx->addr_rem -= blob_pad_len(rctx->addr_cur);
+ rctx->addr_cur = blob_next(rctx->addr_cur);
+ }
+
+ if (!addr)
+ return 0;
+
+ if (inet_pton(AF_INET6, addr, &a.in6)) {
+ memset(dname, 0, sizeof(dname));
+
+ for (i = 0, p = dname; i < 16; i++) {
+ *p++ = hex[a.in6.s6_addr[15-i] % 16];
+ *p++ = '.';
+ *p++ = hex[a.in6.s6_addr[15-i] / 16];
+ *p++ = '.';
+ }
+
+ p += snprintf(p, p - dname - 1, "ip6.arpa");
+
+ family = AF_INET6;
+ alen = p - dname;
+ }
+ else if (inet_pton(AF_INET, addr, &a.in)) {
+ family = AF_INET;
+ alen = snprintf(dname, sizeof(dname), "%u.%u.%u.%u.in-addr.arpa",
+ a.uchar[3], a.uchar[2], a.uchar[1], a.uchar[0]);
+ }
+ else {
+ return -EINVAL;
+ }
+
+ alen = res_mkquery(QUERY, dname, C_IN, T_PTR, NULL, 0, NULL,
+ msg.buf, sizeof(msg.buf));
+
+ if (alen < 0)
+ return alen;
+
+ if (avl_find(&rctx->request_addrs, &a.in6))
+ return -ENOTUNIQ;
+
+ if (send(rctx->socket.fd, msg.buf, alen, 0) != alen)
+ return -errno;
+
+ req = calloc(1, sizeof(*req));
+
+ if (!req)
+ return -ENOMEM;
+
+ req->id = msg.hdr.id;
+ req->by_id.key = &req->id;
+ avl_insert(&rctx->request_ids, &req->by_id);
+
+ req->family = family;
+ req->addr.in6 = a.in6;
+ req->by_addr.key = &req->addr.in6;
+ avl_insert(&rctx->request_addrs, &req->by_addr);
+
+ return 0;
+}
+
+static void
+rdns_shutdown(struct rrdns_context *rctx)
+{
+ struct rrdns_request *req, *tmp;
+
+ uloop_timeout_cancel(&rctx->timeout);
+ uloop_fd_delete(&rctx->socket);
+
+ close(rctx->socket.fd);
+
+ ubus_send_reply(rctx->context, &rctx->request, rctx->blob.head);
+ ubus_complete_deferred_request(rctx->context, &rctx->request,
+ UBUS_STATUS_OK);
+
+ avl_remove_all_elements(&rctx->request_addrs, req, by_addr, tmp)
+ free(req);
+
+ blob_buf_free(&rctx->blob);
+ free(rctx);
+}
+
+static void
+rrdns_handle_timeout(struct uloop_timeout *utm)
+{
+ struct rrdns_context *rctx =
+ container_of(utm, struct rrdns_context, timeout);
+
+ rdns_shutdown(rctx);
+}
+
+static void
+rrdns_handle_response(struct uloop_fd *ufd, unsigned int ev)
+{
+ struct rrdns_context *rctx =
+ container_of(ufd, struct rrdns_context, socket);
+
+ int err = rrdns_parse_response(rctx);
+
+ if (err != -ENODATA && err != -ENOENT)
+ rrdns_next_query(rctx);
+
+ if (avl_is_empty(&rctx->request_ids))
+ rdns_shutdown(rctx);
+}
+
+static char *
+rrdns_find_nameserver(void)
+{
+ static char line[2*INET6_ADDRSTRLEN];
+ struct in6_addr in6;
+ FILE *resolvconf;
+ char *p;
+
+ resolvconf = fopen("/etc/resolv.conf", "r");
+
+ if (!resolvconf)
+ return NULL;
+
+ while (fgets(line, sizeof(line), resolvconf)) {
+ p = strtok(line, " \t");
+
+ if (!p || strcmp(p, "nameserver"))
+ continue;
+
+ p = strtok(NULL, " \t\r\n");
+
+ if (!p)
+ continue;
+
+ if (!inet_pton(AF_INET6, p, &in6) && !inet_pton(AF_INET, p, &in6))
+ continue;
+
+ fclose(resolvconf);
+ return p;
+ }
+
+ fclose(resolvconf);
+ return NULL;
+}
+
+static int
+rpc_rrdns_lookup(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
+{
+ int port = 53, limit = RRDNS_DEF_LIMIT, timeout = RRDNS_DEF_TIMEOUT;
+ struct blob_attr *tb[__RPC_L_MAX];
+ struct rrdns_context *rctx;
+ const char *server = NULL;
+
+ blobmsg_parse(rpc_lookup_policy, __RPC_L_MAX, tb,
+ blob_data(msg), blob_len(msg));
+
+ if (tb[RPC_L_PORT])
+ port = blobmsg_get_u16(tb[RPC_L_PORT]);
+
+ if (tb[RPC_L_LIMIT])
+ limit = blobmsg_get_u32(tb[RPC_L_LIMIT]);
+
+ if (tb[RPC_L_TIMEOUT])
+ timeout = blobmsg_get_u32(tb[RPC_L_TIMEOUT]);
+
+ if (tb[RPC_L_SERVER])
+ server = blobmsg_get_string(tb[RPC_L_SERVER]);
+
+
+ if (!tb[RPC_L_ADDRS])
+ return UBUS_STATUS_INVALID_ARGUMENT;
+
+ if (port <= 0)
+ return UBUS_STATUS_INVALID_ARGUMENT;
+
+ if (limit <= 0 || limit > RRDNS_MAX_LIMIT)
+ return UBUS_STATUS_INVALID_ARGUMENT;
+
+ if (timeout <= 0 || timeout > RRDNS_MAX_TIMEOUT)
+ return UBUS_STATUS_INVALID_ARGUMENT;
+
+
+ if (!server || !*server)
+ server = rrdns_find_nameserver();
+
+ if (!server)
+ return UBUS_STATUS_NOT_FOUND;
+
+ rctx = calloc(1, sizeof(*rctx));
+
+ if (!rctx)
+ return UBUS_STATUS_UNKNOWN_ERROR;
+
+ rctx->socket.fd = usock(USOCK_UDP, server, usock_port(port));
+
+ if (rctx->socket.fd < 0) {
+ free(rctx);
+ return UBUS_STATUS_UNKNOWN_ERROR;
+ }
+
+ rctx->context = ctx;
+ rctx->addr_cur = blobmsg_data(tb[RPC_L_ADDRS]);
+ rctx->addr_rem = blobmsg_data_len(tb[RPC_L_ADDRS]);
+
+ avl_init(&rctx->request_ids, rrdns_cmp_id, false, NULL);
+ avl_init(&rctx->request_addrs, rrdns_cmp_addr, false, NULL);
+
+ rctx->timeout.cb = rrdns_handle_timeout;
+ uloop_timeout_set(&rctx->timeout, timeout);
+
+ rctx->socket.cb = rrdns_handle_response;
+ uloop_fd_add(&rctx->socket, ULOOP_READ);
+
+ blob_buf_init(&rctx->blob, 0);
+
+ while (limit--)
+ rrdns_next_query(rctx);
+
+ ubus_defer_request(ctx, req, &rctx->request);
+
+ return UBUS_STATUS_OK;
+}
+
+
+static int
+rpc_rrdns_api_init(const struct rpc_daemon_ops *o, struct ubus_context *ctx)
+{
+ static const struct ubus_method rrdns_methods[] = {
+ UBUS_METHOD("lookup", rpc_rrdns_lookup, rpc_lookup_policy),
+ };
+
+ static struct ubus_object_type rrdns_type =
+ UBUS_OBJECT_TYPE("rpcd-rrdns", rrdns_methods);
+
+ static struct ubus_object obj = {
+ .name = "network.rrdns",
+ .type = &rrdns_type,
+ .methods = rrdns_methods,
+ .n_methods = ARRAY_SIZE(rrdns_methods),
+ };
+
+ return ubus_add_object(ctx, &obj);
+}
+
+struct rpc_plugin rpc_plugin = {
+ .init = rpc_rrdns_api_init
+};
diff --git a/libs/rpcd-mod-rrdns/src/rrdns.h b/libs/rpcd-mod-rrdns/src/rrdns.h
new file mode 100644
index 0000000000..3f95116f08
--- /dev/null
+++ b/libs/rpcd-mod-rrdns/src/rrdns.h
@@ -0,0 +1,51 @@
+/*
+ * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server
+ *
+ * Copyright (C) 2016-2017 Jo-Philipp Wich
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include
+#include
+#include
+
+#define RRDNS_MAX_TIMEOUT 5000
+#define RRDNS_DEF_TIMEOUT 250
+
+#define RRDNS_MAX_LIMIT 1000
+#define RRDNS_DEF_LIMIT 10
+
+
+struct rrdns_request {
+ struct avl_node by_id;
+ struct avl_node by_addr;
+ uint16_t id;
+ uint16_t family;
+ union {
+ struct in_addr in;
+ struct in6_addr in6;
+ } addr;
+};
+
+struct rrdns_context {
+ struct ubus_context *context;
+ struct ubus_request_data request;
+ struct uloop_timeout timeout;
+ struct blob_attr *addr_cur;
+ int addr_rem;
+ struct uloop_fd socket;
+ struct blob_buf blob;
+ struct avl_tree request_ids;
+ struct avl_tree request_addrs;
+};
diff --git a/luci.mk b/luci.mk
index 69aecaa250..0b2ec4e700 100644
--- a/luci.mk
+++ b/luci.mk
@@ -7,7 +7,7 @@
LUCI_NAME?=$(notdir ${CURDIR})
LUCI_TYPE?=$(word 2,$(subst -, ,$(LUCI_NAME)))
LUCI_BASENAME?=$(patsubst luci-$(LUCI_TYPE)-%,%,$(LUCI_NAME))
-LUCI_LANGUAGES:=$(filter-out templates,$(notdir $(wildcard ${CURDIR}/po/*)))
+LUCI_LANGUAGES:=$(sort $(filter-out templates,$(notdir $(wildcard ${CURDIR}/po/*))))
LUCI_DEFAULTS:=$(notdir $(wildcard ${CURDIR}/root/etc/uci-defaults/*))
LUCI_PKGARCH?=$(if $(realpath src/Makefile),,all)
@@ -36,7 +36,7 @@ LUCI_LANG.sv=Svenska (Swedish)
LUCI_LANG.tr=Türkçe (Turkish)
LUCI_LANG.uk=ÑкÑаÑÌнÑÑка (Ukrainian)
LUCI_LANG.vi=Tiếng Viá»t (Vietnamese)
-LUCI_LANG.zh-cn=æ®éè¯ (Chinese)
+LUCI_LANG.zh-cn=ä¸æ (Chinese)
LUCI_LANG.zh-tw=èºç£è¯èª (Taiwanese)
# Submenu titles
@@ -56,7 +56,7 @@ PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
elif git log -1 >/dev/null 2>/dev/null; then \
revision="svn-r$$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"; \
if [ "$$revision" = "svn-r" ]; then \
- set -- $$(git log -1 --format="%ct %h"); \
+ set -- $$(git log -1 --format="%ct %h" --abbrev=7); \
secs="$$(($$1 % 86400))"; \
yday="$$(date --utc --date="@$$1" "+%y.%j")"; \
revision="$$(printf 'git-%s.%05d-%s' "$$yday" "$$secs" "$$2")"; \
@@ -70,7 +70,8 @@ PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
PKG_GITBRANCH?=$(if $(DUMP),x,$(strip $(shell \
variant="LuCI"; \
if git log -1 >/dev/null 2>/dev/null; then \
- branch="$$(git symbolic-ref --short -q HEAD 2>/dev/null)"; \
+ branch="$$(git branch --remote --verbose --no-abbrev --contains 2>/dev/null | \
+ sed -rne 's|^[^/]+/([^ ]+) [a-f0-9]{40} .+$$|\1|p' | head -n1)"; \
if [ "$$branch" != "master" ]; then \
variant="LuCI $$branch branch"; \
else \
diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile
index 753ff259fa..6393195e59 100644
--- a/modules/luci-base/Makefile
+++ b/modules/luci-base/Makefile
@@ -16,7 +16,8 @@ LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +
PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet
-PKG_MD5SUM:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea
+PKG_HASH:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea
+PKG_LICENSE:=Apache-2.0
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1
@@ -25,6 +26,7 @@ include $(INCLUDE_DIR)/host-build.mk
define Package/luci-base/conffiles
/etc/luci-uploads
/etc/config/luci
+/etc/config/ucitrack
endef
include ../../luci.mk
diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js
index 8e66cbc380..b334703bdf 100644
--- a/modules/luci-base/htdocs/luci-static/resources/cbi.js
+++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js
@@ -118,48 +118,88 @@ var cbi_validators = {
return false;
},
- 'ipmask': function()
+ 'ip4prefix': function()
{
- return cbi_validators.ipmask4.apply(this) ||
- cbi_validators.ipmask6.apply(this);
+ return !isNaN(this) && this >= 0 && this <= 32;
},
- 'ipmask4': function()
+ 'ip6prefix': function()
{
- var ip = this, mask = 32;
+ return !isNaN(this) && this >= 0 && this <= 128;
+ },
- if (ip.match(/^(\S+)\/(\S+)$/))
+ 'cidr': function()
+ {
+ return cbi_validators.cidr4.apply(this) ||
+ cbi_validators.cidr6.apply(this);
+ },
+
+ 'cidr4': function()
+ {
+ if (this.match(/^(\S+)\/(\S+)$/))
{
ip = RegExp.$1;
mask = RegExp.$2;
+ return cbi_validators.ip4addr.apply(ip) &&
+ cbi_validators.ip4prefix.apply(mask);
}
+ return false;
+ },
- if (!isNaN(mask) && (mask < 0 || mask > 32))
- return false;
-
- if (isNaN(mask) && !cbi_validators.ip4addr.apply(mask))
- return false;
-
- return cbi_validators.ip4addr.apply(ip);
+ 'cidr6': function()
+ {
+ if (this.match(/^(\S+)\/(\S+)$/))
+ {
+ ip = RegExp.$1;
+ mask = RegExp.$2;
+ return cbi_validators.ip6addr.apply(ip) &&
+ cbi_validators.ip6prefix.apply(mask);
+ }
+ return false;
},
- 'ipmask6': function()
+ 'ipnet4': function()
{
- var ip = this, mask = 128;
+ if (this.match(/^(\S+)\/(\S+)$/))
+ {
+ ip = RegExp.$1;
+ net = RegExp.$2;
+ return cbi_validators.ip4addr.apply(ip) &&
+ cbi_validators.ip4addr.apply(net);
+ }
+ return false;
+ },
- if (ip.match(/^(\S+)\/(\S+)$/))
+ 'ipnet6': function()
+ {
+ if (this.match(/^(\S+)\/(\S+)$/))
{
ip = RegExp.$1;
- mask = RegExp.$2;
+ net = RegExp.$2;
+ return cbi_validators.ip6addr.apply(ip) &&
+ cbi_validators.ip6addr.apply(net);
}
+ return false;
+ },
- if (!isNaN(mask) && (mask < 0 || mask > 128))
- return false;
+ 'ipmask': function()
+ {
+ return cbi_validators.ipmask4.apply(this) ||
+ cbi_validators.ipmask6.apply(this);
+ },
- if (isNaN(mask) && !cbi_validators.ip6addr.apply(mask))
- return false;
+ 'ipmask4': function()
+ {
+ return cbi_validators.cidr4.apply(this) ||
+ cbi_validators.ipnet4.apply(this) ||
+ cbi_validators.ip4addr.apply(this);
+ },
- return cbi_validators.ip6addr.apply(ip);
+ 'ipmask6': function()
+ {
+ return cbi_validators.cidr6.apply(this) ||
+ cbi_validators.ipnet6.apply(this) ||
+ cbi_validators.ip6addr.apply(this);
},
'port': function()
@@ -189,7 +229,7 @@ var cbi_validators = {
{
return cbi_validators.hostname.apply(this) ||
((ipv4only != 1) && cbi_validators.ipaddr.apply(this)) ||
- ((ipv4only == 1) && cb_validators.ip4addr.apply(this));
+ ((ipv4only == 1) && cbi_validators.ip4addr.apply(this));
},
'hostname': function()
@@ -481,8 +521,9 @@ function cbi_d_check(deps) {
istat = (istat && cbi_d_checkvalue(j, deps[i][j]))
}
}
- if (istat) {
- return !reverse;
+
+ if (istat ^ reverse) {
+ return true;
}
}
return def;
@@ -648,9 +689,6 @@ function cbi_combobox(id, values, def, man, focus) {
var dt = obj.getAttribute('cbi_datatype');
var op = obj.getAttribute('cbi_optional');
- if (dt)
- cbi_validate_field(sel, op == 'true', dt);
-
if (!values[obj.value]) {
if (obj.value == "") {
var optdef = document.createElement("option");
@@ -685,6 +723,9 @@ function cbi_combobox(id, values, def, man, focus) {
obj.style.display = "none";
+ if (dt)
+ cbi_validate_field(sel, op == 'true', dt);
+
cbi_bind(sel, "change", function() {
if (sel.selectedIndex == sel.options.length - 1) {
obj.style.display = "inline";
@@ -727,7 +768,7 @@ function cbi_filebrowser(id, defpath) {
browser.focus();
}
-function cbi_browser_init(id, defpath)
+function cbi_browser_init(id, resource, defpath)
{
function cbi_browser_btnclick(e) {
cbi_filebrowser(id, defpath);
@@ -738,7 +779,7 @@ function cbi_browser_init(id, defpath)
var btn = document.createElement('img');
btn.className = 'cbi-image-button';
- btn.src = cbi_strings.path.resource + '/cbi/folder.gif';
+ btn.src = (resource || cbi_strings.path.resource) + '/cbi/folder.gif';
field.parentNode.insertBefore(btn, field.nextSibling);
cbi_bind(btn, 'click', cbi_browser_btnclick);
@@ -805,7 +846,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
parent.appendChild(b);
if (datatype == 'file')
{
- cbi_browser_init(t.id, parent.getAttribute('data-browser-path'));
+ cbi_browser_init(t.id, null, parent.getAttribute('data-browser-path'));
}
parent.appendChild(document.createElement('br'));
diff --git a/modules/luci-base/htdocs/luci-static/resources/xhr.js b/modules/luci-base/htdocs/luci-static/resources/xhr.js
index 701c12ac19..3385f8f230 100644
--- a/modules/luci-base/htdocs/luci-static/resources/xhr.js
+++ b/modules/luci-base/htdocs/luci-static/resources/xhr.js
@@ -91,8 +91,6 @@ XHR = function()
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
- xhr.setRequestHeader('Content-length', code.length);
- xhr.setRequestHeader('Connection', 'close');
xhr.send(code);
}
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua
index 98f6a44d77..df23aaf135 100644
--- a/modules/luci-base/luasrc/cbi/datatypes.lua
+++ b/modules/luci-base/luasrc/cbi/datatypes.lua
@@ -1,4 +1,5 @@
-- Copyright 2010 Jo-Philipp Wich
+-- Copyright 2017 Dan Luedtke
-- Licensed to the public under the Apache License 2.0.
local fs = require "nixio.fs"
@@ -131,38 +132,48 @@ function ip6prefix(val)
return ( val and val >= 0 and val <= 128 )
end
-function ipmask(val)
- return ipmask4(val) or ipmask6(val)
+function cidr4(val)
+ local ip, mask = val:match("^([^/]+)/([^/]+)$")
+
+ return ip4addr(ip) and ip4prefix(mask)
end
-function ipmask4(val)
+function cidr6(val)
local ip, mask = val:match("^([^/]+)/([^/]+)$")
- local bits = tonumber(mask)
- if bits and (bits < 0 or bits > 32) then
- return false
- end
+ return ip6addr(ip) and ip6prefix(mask)
+end
- if not bits and not ip4addr(mask) then
- return false
- end
+function ipnet4(val)
+ local ip, mask = val:match("^([^/]+)/([^/]+)$")
- return ip4addr(ip or val)
+ return ip4addr(ip) and ip4addr(mask)
end
-function ipmask6(val)
+function ipnet6(val)
local ip, mask = val:match("^([^/]+)/([^/]+)$")
- local bits = tonumber(mask)
- if bits and (bits < 0 or bits > 128) then
- return false
- end
+ return ip6addr(ip) and ip6addr(mask)
+end
- if not bits and not ip6addr(mask) then
- return false
+function ipmask(val)
+ return ipmask4(val) or ipmask6(val)
+end
+
+function ipmask4(val)
+ return cidr4(val) or ipnet4(val) or ip4addr(val)
+end
+
+function ipmask6(val)
+ return cidr6(val) or ipnet6(val) or ip6addr(val)
+end
+
+function ip6hostid(val)
+ if val and val:match("^[a-fA-F0-9:]+$") and (#val > 2) then
+ return (ip6addr("2001:db8:0:0" .. val) or ip6addr("2001:db8:0:0:" .. val))
end
- return ip6addr(ip or val)
+ return false
end
function port(val)
@@ -267,11 +278,33 @@ function wepkey(val)
end
end
+function hexstring(val)
+ if val then
+ return (val:match("^[a-fA-F0-9]+$") ~= nil)
+ end
+ return false
+end
+
+function hex(val, maxbytes)
+ maxbytes = tonumber(maxbytes)
+ if val and maxbytes ~= nil then
+ return ((val:match("^0x[a-fA-F0-9]+$") ~= nil) and (#val <= 2 + maxbytes * 2))
+ end
+ return false
+end
+
+function base64(val)
+ if val then
+ return (val:match("^[a-zA-Z0-9/+]+=?=?$") ~= nil) and (math.fmod(#val, 4) == 0)
+ end
+ return false
+end
+
function string(val)
return true -- Everything qualifies as valid string
end
-function directory( val, seen )
+function directory(val, seen)
local s = fs.stat(val)
seen = seen or { }
@@ -287,7 +320,7 @@ function directory( val, seen )
return false
end
-function file( val, seen )
+function file(val, seen)
local s = fs.stat(val)
seen = seen or { }
@@ -303,7 +336,7 @@ function file( val, seen )
return false
end
-function device( val, seen )
+function device(val, seen)
local s = fs.stat(val)
seen = seen or { }
@@ -438,4 +471,3 @@ function dateyyyymmdd(val)
end
return false
end
-
diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua
index 0876ce6585..e4f77f18d8 100644
--- a/modules/luci-base/luasrc/dispatcher.lua
+++ b/modules/luci-base/luasrc/dispatcher.lua
@@ -14,8 +14,6 @@ uci = require "luci.model.uci"
i18n = require "luci.i18n"
_M.fs = fs
-authenticator = {}
-
-- Index table
local index = nil
@@ -101,24 +99,6 @@ function error500(message)
return false
end
-function authenticator.htmlauth(validator, accs, default)
- local user = http.formvalue("luci_username")
- local pass = http.formvalue("luci_password")
-
- if user and validator(user, pass) then
- return user
- end
-
- require("luci.i18n")
- require("luci.template")
- context.path = {}
- http.status(403, "Forbidden")
- luci.template.render("sysauth", {duser=default, fuser=user})
-
- return false
-
-end
-
function httpdispatch(request, prefix)
http.context.request = request
@@ -188,6 +168,44 @@ function test_post_security()
return true
end
+local function session_retrieve(sid, allowed_users)
+ local sdat = util.ubus("session", "get", { ubus_rpc_session = sid })
+
+ if type(sdat) == "table" and
+ type(sdat.values) == "table" and
+ type(sdat.values.token) == "string" and
+ (not allowed_users or
+ util.contains(allowed_users, sdat.values.username))
+ then
+ return sid, sdat.values
+ end
+
+ return nil, nil
+end
+
+local function session_setup(user, pass, allowed_users)
+ if util.contains(allowed_users, user) then
+ local login = util.ubus("session", "login", {
+ username = user,
+ password = pass,
+ timeout = tonumber(luci.config.sauth.sessiontime)
+ })
+
+ if type(login) == "table" and
+ type(login.ubus_rpc_session) == "string"
+ then
+ util.ubus("session", "set", {
+ ubus_rpc_session = login.ubus_rpc_session,
+ values = { token = sys.uniqueid(16) }
+ })
+
+ return session_retrieve(login.ubus_rpc_session)
+ end
+ end
+
+ return nil, nil
+end
+
function dispatch(request)
--context._disable_memtrace = require "luci.debug".trap_memtrace("l")
local ctx = context
@@ -201,10 +219,19 @@ function dispatch(request)
local lang = conf.main.lang or "auto"
if lang == "auto" then
local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
- for lpat in aclang:gmatch("[%w-]+") do
- lpat = lpat and lpat:gsub("-", "_")
- if conf.languages[lpat] then
- lang = lpat
+ for aclang in aclang:gmatch("[%w_-]+") do
+ local country, culture = aclang:match("^([a-z][a-z])[_-]([a-zA-Z][a-zA-Z])$")
+ if country and culture then
+ local cc = "%s_%s" %{ country, culture:lower() }
+ if conf.languages[cc] then
+ lang = cc
+ break
+ elseif conf.languages[country] then
+ lang = country
+ break
+ end
+ elseif conf.languages[aclang] then
+ lang = aclang
break
end
end
@@ -332,74 +359,65 @@ function dispatch(request)
)
if track.sysauth then
- local authen = type(track.sysauth_authenticator) == "function"
- and track.sysauth_authenticator
- or authenticator[track.sysauth_authenticator]
+ local authen = track.sysauth_authenticator
+ local _, sid, sdat, default_user, allowed_users
- local def = (type(track.sysauth) == "string") and track.sysauth
- local accs = def and {track.sysauth} or track.sysauth
- local sess = ctx.authsession
- if not sess then
- sess = http.getcookie("sysauth")
- sess = sess and sess:match("^[a-f0-9]*$")
+ if type(authen) == "string" and authen ~= "htmlauth" then
+ error500("Unsupported authenticator %q configured" % authen)
+ return
end
- local sdat = (util.ubus("session", "get", { ubus_rpc_session = sess }) or { }).values
- local user, token
+ if type(track.sysauth) == "table" then
+ default_user, allowed_users = nil, track.sysauth
+ else
+ default_user, allowed_users = track.sysauth, { track.sysauth }
+ end
- if sdat then
- user = sdat.user
- token = sdat.token
+ if type(authen) == "function" then
+ _, sid = authen(sys.user.checkpasswd, allowed_users)
else
- local eu = http.getenv("HTTP_AUTH_USER")
- local ep = http.getenv("HTTP_AUTH_PASS")
- if eu and ep and sys.user.checkpasswd(eu, ep) then
- authen = function() return eu end
- end
+ sid = http.getcookie("sysauth")
end
- if not util.contains(accs, user) then
- if authen then
- local user, sess = authen(sys.user.checkpasswd, accs, def)
- local token
- if not user or not util.contains(accs, user) then
- return
- else
- if not sess then
- local sdat = util.ubus("session", "create", { timeout = tonumber(luci.config.sauth.sessiontime) })
- if sdat then
- token = sys.uniqueid(16)
- util.ubus("session", "set", {
- ubus_rpc_session = sdat.ubus_rpc_session,
- values = {
- user = user,
- token = token,
- section = sys.uniqueid(16)
- }
- })
- sess = sdat.ubus_rpc_session
- end
- end
+ sid, sdat = session_retrieve(sid, allowed_users)
- if sess and token then
- http.header("Set-Cookie", 'sysauth=%s; path=%s' %{ sess, build_url() })
+ if not (sid and sdat) and authen == "htmlauth" then
+ local user = http.getenv("HTTP_AUTH_USER")
+ local pass = http.getenv("HTTP_AUTH_PASS")
- ctx.authsession = sess
- ctx.authtoken = token
- ctx.authuser = user
+ if user == nil and pass == nil then
+ user = http.formvalue("luci_username")
+ pass = http.formvalue("luci_password")
+ end
+
+ sid, sdat = session_setup(user, pass, allowed_users)
+
+ if not sid then
+ local tmpl = require "luci.template"
+
+ context.path = {}
- http.redirect(build_url(unpack(ctx.requestpath)))
- end
- end
- else
http.status(403, "Forbidden")
+ tmpl.render(track.sysauth_template or "sysauth", {
+ duser = default_user,
+ fuser = user
+ })
+
return
end
- else
- ctx.authsession = sess
- ctx.authtoken = token
- ctx.authuser = user
+
+ http.header("Set-Cookie", 'sysauth=%s; path=%s' %{ sid, build_url() })
+ http.redirect(build_url(unpack(ctx.requestpath)))
end
+
+ if not sid or not sdat then
+ http.status(403, "Forbidden")
+ return
+ end
+
+ ctx.authsession = sid
+ ctx.authtoken = sdat.token
+ ctx.authuser = sdat.username
end
if c and require_post_security(c.target) then
diff --git a/modules/luci-base/luasrc/http.lua b/modules/luci-base/luasrc/http.lua
index 8795dfc4b2..9cc9857867 100644
--- a/modules/luci-base/luasrc/http.lua
+++ b/modules/luci-base/luasrc/http.lua
@@ -224,7 +224,15 @@ function write(content, src_err)
header("Cache-Control", "no-cache")
header("Expires", "0")
end
-
+ if not context.headers["x-frame-options"] then
+ header("X-Frame-Options", "SAMEORIGIN")
+ end
+ if not context.headers["x-xss-protection"] then
+ header("X-XSS-Protection", "1; mode=block")
+ end
+ if not context.headers["x-content-type-options"] then
+ header("X-Content-Type-Options", "nosniff")
+ end
context.eoh = true
coroutine.yield(3)
diff --git a/modules/luci-base/luasrc/http/protocol.lua b/modules/luci-base/luasrc/http/protocol.lua
index 061c6ad544..0a8b2fbab9 100644
--- a/modules/luci-base/luasrc/http/protocol.lua
+++ b/modules/luci-base/luasrc/http/protocol.lua
@@ -264,7 +264,7 @@ function header_source( sock )
end
-- Content-Type. Stores all extracted data associated with its parameter name
--- in the params table withing the given message object. Multiple parameter
+-- in the params table within the given message object. Multiple parameter
-- values are stored as tables, ordinary ones as strings.
-- If an optional file callback function is given then it is feeded with the
-- file contents chunk by chunk and only the extracted file name is stored
@@ -433,7 +433,7 @@ function mimedecode_message_body( src, msg, filecb )
end
-- Content-Type. Stores all extracted data associated with its parameter name
--- in the params table withing the given message object. Multiple parameter
+-- in the params table within the given message object. Multiple parameter
-- values are stored as tables, ordinary ones as strings.
function urldecode_message_body( src, msg )
diff --git a/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua b/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua
index f49fed4a56..3f8b091cf3 100644
--- a/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua
+++ b/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua
@@ -63,6 +63,15 @@ if luci.model.network:has_ipv6() then
ip6prefix.datatype = "ip6addr"
ip6prefix:depends("ip6assign", "")
+ local ip6ifaceid = s:taboption("general", Value, "ip6ifaceid", translate("IPv6 suffix"),
+ translate("Optional. Allowed values: 'eui64', 'random', fixed value like '::1' " ..
+ "or '::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a " ..
+ "delegating server, use the suffix (like '::1') to form the IPv6 address " ..
+ "('a:b:c:d::1') for the interface."))
+ ip6ifaceid.datatype = "ip6hostid"
+ ip6ifaceid.placeholder = "::1"
+ ip6ifaceid.rmempty = true
+
end
diff --git a/modules/luci-base/luasrc/model/firewall.lua b/modules/luci-base/luasrc/model/firewall.lua
index 5573a9b86c..feff0855c4 100644
--- a/modules/luci-base/luasrc/model/firewall.lua
+++ b/modules/luci-base/luasrc/model/firewall.lua
@@ -498,11 +498,13 @@ function forwarding.dest(self)
end
function forwarding.src_zone(self)
- return zone(self:src())
+ local z = zone(self:src())
+ return z.sid and z
end
function forwarding.dest_zone(self)
- return zone(self:dest())
+ local z = zone(self:dest())
+ return z.sid and z
end
diff --git a/modules/luci-base/luasrc/model/network.lua b/modules/luci-base/luasrc/model/network.lua
index 2d8336bf33..d9ef4089c8 100644
--- a/modules/luci-base/luasrc/model/network.lua
+++ b/modules/luci-base/luasrc/model/network.lua
@@ -950,6 +950,13 @@ function protocol.dns6addrs(self)
return dns
end
+function protocol.ip6prefix(self)
+ local prefix = self:_ubus("ipv6-prefix")
+ if prefix and #prefix > 0 then
+ return "%s/%d" %{ prefix[1].address, prefix[1].mask }
+ end
+end
+
function protocol.is_bridge(self)
return (not self:is_virtual() and self:type() == "bridge")
end
@@ -1355,8 +1362,6 @@ function wifidev.get_i18n(self)
local t = "Generic"
if self.iwinfo.type == "wl" then
t = "Broadcom"
- elseif self.iwinfo.type == "madwifi" then
- t = "Atheros"
end
local m = ""
diff --git a/modules/luci-base/luasrc/sys.lua b/modules/luci-base/luasrc/sys.lua
index a97271732a..115c54d54a 100644
--- a/modules/luci-base/luasrc/sys.lua
+++ b/modules/luci-base/luasrc/sys.lua
@@ -117,45 +117,12 @@ end
net = {}
--- The following fields are defined for arp entry objects:
--- { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" }
-function net.arptable(callback)
- local arp = (not callback) and {} or nil
- local e, r, v
- if fs.access("/proc/net/arp") then
- for e in io.lines("/proc/net/arp") do
- local r = { }, v
- for v in e:gmatch("%S+") do
- r[#r+1] = v
- end
-
- if r[1] ~= "IP" then
- local x = {
- ["IP address"] = r[1],
- ["HW type"] = r[2],
- ["Flags"] = r[3],
- ["HW address"] = r[4],
- ["Mask"] = r[5],
- ["Device"] = r[6]
- }
-
- if callback then
- callback(x)
- else
- arp = arp or { }
- arp[#arp+1] = x
- end
- end
- end
- end
- return arp
-end
-
local function _nethints(what, callback)
local _, k, e, mac, ip, name
local cur = uci.cursor()
local ifn = { }
local hosts = { }
+ local lookup = { }
local function _add(i, ...)
local k = select(i, ...)
@@ -224,8 +191,20 @@ local function _nethints(what, callback)
end
end
+ for _, e in pairs(hosts) do
+ lookup[#lookup+1] = (what > 1) and e[what] or (e[2] or e[3])
+ end
+
+ if #lookup > 0 then
+ lookup = luci.util.ubus("network.rrdns", "lookup", {
+ addrs = lookup,
+ timeout = 250,
+ limit = 1000
+ }) or { }
+ end
+
for _, e in luci.util.kspairs(hosts) do
- callback(e[1], e[2], e[3], e[4])
+ callback(e[1], e[2], e[3], lookup[e[2]] or lookup[e[3]] or e[4])
end
end
@@ -234,17 +213,17 @@ end
function net.mac_hints(callback)
if callback then
_nethints(1, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v4 or v6, nil, 100) or v4
+ name = name or v4
if name and name ~= mac then
- callback(mac, name or nixio.getnameinfo(v4 or v6, nil, 100) or v4)
+ callback(mac, name or v4)
end
end)
else
local rv = { }
_nethints(1, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v4 or v6, nil, 100) or v4
+ name = name or v4
if name and name ~= mac then
- rv[#rv+1] = { mac, name or nixio.getnameinfo(v4 or v6, nil, 100) or v4 }
+ rv[#rv+1] = { mac, name or v4 }
end
end)
return rv
@@ -256,7 +235,7 @@ end
function net.ipv4_hints(callback)
if callback then
_nethints(2, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v4, nil, 100) or mac
+ name = name or mac
if name and name ~= v4 then
callback(v4, name)
end
@@ -264,7 +243,7 @@ function net.ipv4_hints(callback)
else
local rv = { }
_nethints(2, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v4, nil, 100) or mac
+ name = name or mac
if name and name ~= v4 then
rv[#rv+1] = { v4, name }
end
@@ -278,7 +257,7 @@ end
function net.ipv6_hints(callback)
if callback then
_nethints(3, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v6, nil, 100) or mac
+ name = name or mac
if name and name ~= v6 then
callback(v6, name)
end
@@ -286,7 +265,7 @@ function net.ipv6_hints(callback)
else
local rv = { }
_nethints(3, function(mac, v4, v6, name)
- name = name or nixio.getnameinfo(v6, nil, 100) or mac
+ name = name or mac
if name and name ~= v6 then
rv[#rv+1] = { v6, name }
end
@@ -369,8 +348,10 @@ end
function net.devices()
local devs = {}
+ local seen = {}
for k, v in ipairs(nixio.getifaddrs()) do
- if v.family == "packet" then
+ if v.name and not seen[v.name] then
+ seen[v.name] = true
devs[#devs+1] = v.name
end
end
@@ -378,145 +359,6 @@ function net.devices()
end
-function net.deviceinfo()
- local devs = {}
- for k, v in ipairs(nixio.getifaddrs()) do
- if v.family == "packet" then
- local d = v.data
- d[1] = d.rx_bytes
- d[2] = d.rx_packets
- d[3] = d.rx_errors
- d[4] = d.rx_dropped
- d[5] = 0
- d[6] = 0
- d[7] = 0
- d[8] = d.multicast
- d[9] = d.tx_bytes
- d[10] = d.tx_packets
- d[11] = d.tx_errors
- d[12] = d.tx_dropped
- d[13] = 0
- d[14] = d.collisions
- d[15] = 0
- d[16] = 0
- devs[v.name] = d
- end
- end
- return devs
-end
-
-
--- The following fields are defined for route entry tables:
--- { "dest", "gateway", "metric", "refcount", "usecount", "irtt",
--- "flags", "device" }
-function net.routes(callback)
- local routes = { }
-
- for line in io.lines("/proc/net/route") do
-
- local dev, dst_ip, gateway, flags, refcnt, usecnt, metric,
- dst_mask, mtu, win, irtt = line:match(
- "([^%s]+)\t([A-F0-9]+)\t([A-F0-9]+)\t([A-F0-9]+)\t" ..
- "(%d+)\t(%d+)\t(%d+)\t([A-F0-9]+)\t(%d+)\t(%d+)\t(%d+)"
- )
-
- if dev then
- gateway = luci.ip.Hex( gateway, 32, luci.ip.FAMILY_INET4 )
- dst_mask = luci.ip.Hex( dst_mask, 32, luci.ip.FAMILY_INET4 )
- dst_ip = luci.ip.Hex(
- dst_ip, dst_mask:prefix(dst_mask), luci.ip.FAMILY_INET4
- )
-
- local rt = {
- dest = dst_ip,
- gateway = gateway,
- metric = tonumber(metric),
- refcount = tonumber(refcnt),
- usecount = tonumber(usecnt),
- mtu = tonumber(mtu),
- window = tonumber(window),
- irtt = tonumber(irtt),
- flags = tonumber(flags, 16),
- device = dev
- }
-
- if callback then
- callback(rt)
- else
- routes[#routes+1] = rt
- end
- end
- end
-
- return routes
-end
-
--- The following fields are defined for route entry tables:
--- { "source", "dest", "nexthop", "metric", "refcount", "usecount",
--- "flags", "device" }
-function net.routes6(callback)
- if fs.access("/proc/net/ipv6_route", "r") then
- local routes = { }
-
- for line in io.lines("/proc/net/ipv6_route") do
-
- local dst_ip, dst_prefix, src_ip, src_prefix, nexthop,
- metric, refcnt, usecnt, flags, dev = line:match(
- "([a-f0-9]+) ([a-f0-9]+) " ..
- "([a-f0-9]+) ([a-f0-9]+) " ..
- "([a-f0-9]+) ([a-f0-9]+) " ..
- "([a-f0-9]+) ([a-f0-9]+) " ..
- "([a-f0-9]+) +([^%s]+)"
- )
-
- if dst_ip and dst_prefix and
- src_ip and src_prefix and
- nexthop and metric and
- refcnt and usecnt and
- flags and dev
- then
- src_ip = luci.ip.Hex(
- src_ip, tonumber(src_prefix, 16), luci.ip.FAMILY_INET6, false
- )
-
- dst_ip = luci.ip.Hex(
- dst_ip, tonumber(dst_prefix, 16), luci.ip.FAMILY_INET6, false
- )
-
- nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
-
- local rt = {
- source = src_ip,
- dest = dst_ip,
- nexthop = nexthop,
- metric = tonumber(metric, 16),
- refcount = tonumber(refcnt, 16),
- usecount = tonumber(usecnt, 16),
- flags = tonumber(flags, 16),
- device = dev,
-
- -- lua number is too small for storing the metric
- -- add a metric_raw field with the original content
- metric_raw = metric
- }
-
- if callback then
- callback(rt)
- else
- routes[#routes+1] = rt
- end
- end
- end
-
- return routes
- end
-end
-
-function net.pingtest(host)
- return os.execute("ping -c1 '"..host:gsub("'", '').."' >/dev/null 2>&1")
-end
-
-
process = {}
function process.info(key)
diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
index 465d7df3d3..419c191f2b 100644
--- a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
+++ b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
@@ -59,42 +59,42 @@ TZ = {
{ 'America/Anchorage', 'AKST9AKDT,M3.2.0,M11.1.0' },
{ 'America/Anguilla', 'AST4' },
{ 'America/Antigua', 'AST4' },
- { 'America/Araguaina', 'BRT3' },
- { 'America/Argentina/Buenos Aires', 'ART3' },
- { 'America/Argentina/Catamarca', 'ART3' },
- { 'America/Argentina/Cordoba', 'ART3' },
- { 'America/Argentina/Jujuy', 'ART3' },
- { 'America/Argentina/La Rioja', 'ART3' },
- { 'America/Argentina/Mendoza', 'ART3' },
- { 'America/Argentina/Rio Gallegos', 'ART3' },
- { 'America/Argentina/Salta', 'ART3' },
- { 'America/Argentina/San Juan', 'ART3' },
- { 'America/Argentina/San Luis', 'ART3' },
- { 'America/Argentina/Tucuman', 'ART3' },
- { 'America/Argentina/Ushuaia', 'ART3' },
+ { 'America/Araguaina', '<-03>3' },
+ { 'America/Argentina/Buenos Aires', '<-03>3' },
+ { 'America/Argentina/Catamarca', '<-03>3' },
+ { 'America/Argentina/Cordoba', '<-03>3' },
+ { 'America/Argentina/Jujuy', '<-03>3' },
+ { 'America/Argentina/La Rioja', '<-03>3' },
+ { 'America/Argentina/Mendoza', '<-03>3' },
+ { 'America/Argentina/Rio Gallegos', '<-03>3' },
+ { 'America/Argentina/Salta', '<-03>3' },
+ { 'America/Argentina/San Juan', '<-03>3' },
+ { 'America/Argentina/San Luis', '<-03>3' },
+ { 'America/Argentina/Tucuman', '<-03>3' },
+ { 'America/Argentina/Ushuaia', '<-03>3' },
{ 'America/Aruba', 'AST4' },
- { 'America/Asuncion', 'PYT4PYST,M10.1.0/0,M3.4.0/0' },
+ { 'America/Asuncion', '<-04>4<-03>,M10.1.0/0,M3.4.0/0' },
{ 'America/Atikokan', 'EST5' },
- { 'America/Bahia', 'BRT3' },
+ { 'America/Bahia', '<-03>3' },
{ 'America/Bahia Banderas', 'CST6CDT,M4.1.0,M10.5.0' },
{ 'America/Barbados', 'AST4' },
- { 'America/Belem', 'BRT3' },
+ { 'America/Belem', '<-03>3' },
{ 'America/Belize', 'CST6' },
{ 'America/Blanc-Sablon', 'AST4' },
- { 'America/Boa Vista', 'AMT4' },
- { 'America/Bogota', 'COT5' },
+ { 'America/Boa Vista', '<-04>4' },
+ { 'America/Bogota', '<-05>5' },
{ 'America/Boise', 'MST7MDT,M3.2.0,M11.1.0' },
{ 'America/Cambridge Bay', 'MST7MDT,M3.2.0,M11.1.0' },
- { 'America/Campo Grande', 'AMT4AMST,M10.3.0/0,M2.3.0/0' },
+ { 'America/Campo Grande', '<-04>4<-03>,M10.3.0/0,M2.3.0/0' },
{ 'America/Cancun', 'EST5' },
- { 'America/Caracas', 'VET4' },
- { 'America/Cayenne', 'GFT3' },
+ { 'America/Caracas', '<-04>4' },
+ { 'America/Cayenne', '<-03>3' },
{ 'America/Cayman', 'EST5' },
{ 'America/Chicago', 'CST6CDT,M3.2.0,M11.1.0' },
{ 'America/Chihuahua', 'MST7MDT,M4.1.0,M10.5.0' },
{ 'America/Costa Rica', 'CST6' },
{ 'America/Creston', 'MST7' },
- { 'America/Cuiaba', 'AMT4AMST,M10.3.0/0,M2.3.0/0' },
+ { 'America/Cuiaba', '<-04>4<-03>,M10.3.0/0,M2.3.0/0' },
{ 'America/Curacao', 'AST4' },
{ 'America/Danmarkshavn', 'GMT0' },
{ 'America/Dawson', 'PST8PDT,M3.2.0,M11.1.0' },
@@ -103,19 +103,19 @@ TZ = {
{ 'America/Detroit', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/Dominica', 'AST4' },
{ 'America/Edmonton', 'MST7MDT,M3.2.0,M11.1.0' },
- { 'America/Eirunepe', 'ACT5' },
+ { 'America/Eirunepe', '<-05>5' },
{ 'America/El Salvador', 'CST6' },
{ 'America/Fort Nelson', 'MST7' },
- { 'America/Fortaleza', 'BRT3' },
+ { 'America/Fortaleza', '<-03>3' },
{ 'America/Glace Bay', 'AST4ADT,M3.2.0,M11.1.0' },
- { 'America/Godthab', 'WGT3WGST,M3.5.0/-2,M10.5.0/-1' },
+ { 'America/Godthab', '<-03>3<-02>,M3.5.0/-2,M10.5.0/-1' },
{ 'America/Goose Bay', 'AST4ADT,M3.2.0,M11.1.0' },
{ 'America/Grand Turk', 'AST4' },
{ 'America/Grenada', 'AST4' },
{ 'America/Guadeloupe', 'AST4' },
{ 'America/Guatemala', 'CST6' },
- { 'America/Guayaquil', 'ECT5' },
- { 'America/Guyana', 'GYT4' },
+ { 'America/Guayaquil', '<-05>5' },
+ { 'America/Guyana', '<-04>4' },
{ 'America/Halifax', 'AST4ADT,M3.2.0,M11.1.0' },
{ 'America/Havana', 'CST5CDT,M3.2.0/0,M11.1.0/1' },
{ 'America/Hermosillo', 'MST7' },
@@ -134,13 +134,13 @@ TZ = {
{ 'America/Kentucky/Louisville', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/Kentucky/Monticello', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/Kralendijk', 'AST4' },
- { 'America/La Paz', 'BOT4' },
- { 'America/Lima', 'PET5' },
+ { 'America/La Paz', '<-04>4' },
+ { 'America/Lima', '<-05>5' },
{ 'America/Los Angeles', 'PST8PDT,M3.2.0,M11.1.0' },
{ 'America/Lower Princes', 'AST4' },
- { 'America/Maceio', 'BRT3' },
+ { 'America/Maceio', '<-03>3' },
{ 'America/Managua', 'CST6' },
- { 'America/Manaus', 'AMT4' },
+ { 'America/Manaus', '<-04>4' },
{ 'America/Marigot', 'AST4' },
{ 'America/Martinique', 'AST4' },
{ 'America/Matamoros', 'CST6CDT,M3.2.0,M11.1.0' },
@@ -149,39 +149,40 @@ TZ = {
{ 'America/Merida', 'CST6CDT,M4.1.0,M10.5.0' },
{ 'America/Metlakatla', 'AKST9AKDT,M3.2.0,M11.1.0' },
{ 'America/Mexico City', 'CST6CDT,M4.1.0,M10.5.0' },
- { 'America/Miquelon', 'PMST3PMDT,M3.2.0,M11.1.0' },
+ { 'America/Miquelon', '<-03>3<-02>,M3.2.0,M11.1.0' },
{ 'America/Moncton', 'AST4ADT,M3.2.0,M11.1.0' },
{ 'America/Monterrey', 'CST6CDT,M4.1.0,M10.5.0' },
- { 'America/Montevideo', 'UYT3' },
+ { 'America/Montevideo', '<-03>3' },
{ 'America/Montserrat', 'AST4' },
{ 'America/Nassau', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/New York', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/Nipigon', 'EST5EDT,M3.2.0,M11.1.0' },
{ 'America/Nome', 'AKST9AKDT,M3.2.0,M11.1.0' },
- { 'America/Noronha', 'FNT2' },
+ { 'America/Noronha', '<-02>2' },
{ 'America/North Dakota/Beulah', 'CST6CDT,M3.2.0,M11.1.0' },
{ 'America/North Dakota/Center', 'CST6CDT,M3.2.0,M11.1.0' },
{ 'America/North Dakota/New Salem', 'CST6CDT,M3.2.0,M11.1.0' },
{ 'America/Ojinaga', 'MST7MDT,M3.2.0,M11.1.0' },
{ 'America/Panama', 'EST5' },
{ 'America/Pangnirtung', 'EST5EDT,M3.2.0,M11.1.0' },
- { 'America/Paramaribo', 'SRT3' },
+ { 'America/Paramaribo', '<-03>3' },
{ 'America/Phoenix', 'MST7' },
{ 'America/Port of Spain', 'AST4' },
- { 'America/Port-au-Prince', 'EST5' },
- { 'America/Porto Velho', 'AMT4' },
+ { 'America/Port-au-Prince', 'EST5EDT,M3.2.0,M11.1.0' },
+ { 'America/Porto Velho', '<-04>4' },
{ 'America/Puerto Rico', 'AST4' },
+ { 'America/Punta Arenas', '<-03>3' },
{ 'America/Rainy River', 'CST6CDT,M3.2.0,M11.1.0' },
{ 'America/Rankin Inlet', 'CST6CDT,M3.2.0,M11.1.0' },
- { 'America/Recife', 'BRT3' },
+ { 'America/Recife', '<-03>3' },
{ 'America/Regina', 'CST6' },
{ 'America/Resolute', 'CST6CDT,M3.2.0,M11.1.0' },
- { 'America/Rio Branco', 'ACT5' },
- { 'America/Santarem', 'BRT3' },
- { 'America/Santiago', 'CLT4CLST,M8.2.6/24,M5.2.6/24' },
+ { 'America/Rio Branco', '<-05>5' },
+ { 'America/Santarem', '<-03>3' },
+ { 'America/Santiago', '<-04>4<-03>,M8.2.6/24,M5.2.6/24' },
{ 'America/Santo Domingo', 'AST4' },
- { 'America/Sao Paulo', 'BRT3BRST,M10.3.0/0,M2.3.0/0' },
- { 'America/Scoresbysund', 'EGT1EGST,M3.5.0/0,M10.5.0/1' },
+ { 'America/Sao Paulo', '<-03>3<-02>,M10.3.0/0,M2.3.0/0' },
+ { 'America/Scoresbysund', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
{ 'America/Sitka', 'AKST9AKDT,M3.2.0,M11.1.0' },
{ 'America/St Barthelemy', 'AST4' },
{ 'America/St Johns', 'NST3:30NDT,M3.2.0,M11.1.0' },
@@ -204,16 +205,16 @@ TZ = {
{ 'Antarctica/Casey', '<+11>-11' },
{ 'Antarctica/Davis', '<+07>-7' },
{ 'Antarctica/DumontDUrville', '<+10>-10' },
- { 'Antarctica/Macquarie', 'MIST-11' },
+ { 'Antarctica/Macquarie', '<+11>-11' },
{ 'Antarctica/Mawson', '<+05>-5' },
{ 'Antarctica/McMurdo', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
- { 'Antarctica/Palmer', 'CLT4CLST,M8.2.6/24,M5.2.6/24' },
+ { 'Antarctica/Palmer', '<-03>3' },
{ 'Antarctica/Rothera', '<-03>3' },
{ 'Antarctica/Syowa', '<+03>-3' },
{ 'Antarctica/Troll', '<+00>0<+02>-2,M3.5.0/1,M10.5.0/3' },
{ 'Antarctica/Vostok', '<+06>-6' },
{ 'Arctic/Longyearbyen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
- { 'Asia/Aden', 'AST-3' },
+ { 'Asia/Aden', '<+03>-3' },
{ 'Asia/Almaty', '<+06>-6' },
{ 'Asia/Amman', 'EET-2EEST,M3.5.4/24,M10.5.5/1' },
{ 'Asia/Anadyr', '<+12>-12' },
@@ -221,102 +222,129 @@ TZ = {
{ 'Asia/Aqtobe', '<+05>-5' },
{ 'Asia/Ashgabat', '<+05>-5' },
{ 'Asia/Atyrau', '<+05>-5' },
- { 'Asia/Baghdad', 'AST-3' },
- { 'Asia/Bahrain', 'AST-3' },
+ { 'Asia/Baghdad', '<+03>-3' },
+ { 'Asia/Bahrain', '<+03>-3' },
{ 'Asia/Baku', '<+04>-4' },
- { 'Asia/Bangkok', 'ICT-7' },
+ { 'Asia/Bangkok', '<+07>-7' },
{ 'Asia/Barnaul', '<+07>-7' },
{ 'Asia/Beirut', 'EET-2EEST,M3.5.0/0,M10.5.0/0' },
{ 'Asia/Bishkek', '<+06>-6' },
- { 'Asia/Brunei', 'BNT-8' },
+ { 'Asia/Brunei', '<+08>-8' },
{ 'Asia/Chita', '<+09>-9' },
- { 'Asia/Choibalsan', 'CHOT-8CHOST,M3.5.6,M9.5.6/0' },
+ { 'Asia/Choibalsan', '<+08>-8' },
{ 'Asia/Colombo', '<+0530>-5:30' },
{ 'Asia/Damascus', 'EET-2EEST,M3.5.5/0,M10.5.5/0' },
- { 'Asia/Dhaka', 'BDT-6' },
- { 'Asia/Dili', 'TLT-9' },
- { 'Asia/Dubai', 'GST-4' },
+ { 'Asia/Dhaka', '<+06>-6' },
+ { 'Asia/Dili', '<+09>-9' },
+ { 'Asia/Dubai', '<+04>-4' },
{ 'Asia/Dushanbe', '<+05>-5' },
{ 'Asia/Famagusta', '<+03>-3' },
{ 'Asia/Gaza', 'EET-2EEST,M3.5.6/1,M10.5.6/1' },
{ 'Asia/Hebron', 'EET-2EEST,M3.5.6/1,M10.5.6/1' },
- { 'Asia/Ho Chi Minh', 'ICT-7' },
+ { 'Asia/Ho Chi Minh', '<+07>-7' },
{ 'Asia/Hong Kong', 'HKT-8' },
- { 'Asia/Hovd', 'HOVT-7HOVST,M3.5.6,M9.5.6/0' },
+ { 'Asia/Hovd', '<+07>-7' },
{ 'Asia/Irkutsk', '<+08>-8' },
{ 'Asia/Jakarta', 'WIB-7' },
{ 'Asia/Jayapura', 'WIT-9' },
{ 'Asia/Jerusalem', 'IST-2IDT,M3.4.4/26,M10.5.0' },
- { 'Asia/Kabul', 'AFT-4:30' },
+ { 'Asia/Kabul', '<+0430>-4:30' },
{ 'Asia/Kamchatka', '<+12>-12' },
{ 'Asia/Karachi', 'PKT-5' },
- { 'Asia/Kathmandu', 'NPT-5:45' },
+ { 'Asia/Kathmandu', '<+0545>-5:45' },
{ 'Asia/Khandyga', '<+09>-9' },
{ 'Asia/Kolkata', 'IST-5:30' },
{ 'Asia/Krasnoyarsk', '<+07>-7' },
- { 'Asia/Kuala Lumpur', 'MYT-8' },
- { 'Asia/Kuching', 'MYT-8' },
- { 'Asia/Kuwait', 'AST-3' },
+ { 'Asia/Kuala Lumpur', '<+08>-8' },
+ { 'Asia/Kuching', '<+08>-8' },
+ { 'Asia/Kuwait', '<+03>-3' },
{ 'Asia/Macau', 'CST-8' },
{ 'Asia/Magadan', '<+11>-11' },
{ 'Asia/Makassar', 'WITA-8' },
- { 'Asia/Manila', 'PHT-8' },
- { 'Asia/Muscat', 'GST-4' },
+ { 'Asia/Manila', '<+08>-8' },
+ { 'Asia/Muscat', '<+04>-4' },
{ 'Asia/Nicosia', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
{ 'Asia/Novokuznetsk', '<+07>-7' },
{ 'Asia/Novosibirsk', '<+07>-7' },
{ 'Asia/Omsk', '<+06>-6' },
{ 'Asia/Oral', '<+05>-5' },
- { 'Asia/Phnom Penh', 'ICT-7' },
+ { 'Asia/Phnom Penh', '<+07>-7' },
{ 'Asia/Pontianak', 'WIB-7' },
{ 'Asia/Pyongyang', 'KST-8:30' },
- { 'Asia/Qatar', 'AST-3' },
+ { 'Asia/Qatar', '<+03>-3' },
{ 'Asia/Qyzylorda', '<+06>-6' },
- { 'Asia/Riyadh', 'AST-3' },
+ { 'Asia/Riyadh', '<+03>-3' },
{ 'Asia/Sakhalin', '<+11>-11' },
{ 'Asia/Samarkand', '<+05>-5' },
{ 'Asia/Seoul', 'KST-9' },
{ 'Asia/Shanghai', 'CST-8' },
- { 'Asia/Singapore', 'SGT-8' },
+ { 'Asia/Singapore', '<+08>-8' },
{ 'Asia/Srednekolymsk', '<+11>-11' },
{ 'Asia/Taipei', 'CST-8' },
{ 'Asia/Tashkent', '<+05>-5' },
{ 'Asia/Tbilisi', '<+04>-4' },
- { 'Asia/Tehran', 'IRST-3:30IRDT,J80/0,J264/0' },
- { 'Asia/Thimphu', 'BTT-6' },
+ { 'Asia/Tehran', '<+0330>-3:30<+0430>,J80/0,J264/0' },
+ { 'Asia/Thimphu', '<+06>-6' },
{ 'Asia/Tokyo', 'JST-9' },
{ 'Asia/Tomsk', '<+07>-7' },
- { 'Asia/Ulaanbaatar', 'ULAT-8ULAST,M3.5.6,M9.5.6/0' },
- { 'Asia/Urumqi', 'XJT-6' },
+ { 'Asia/Ulaanbaatar', '<+08>-8' },
+ { 'Asia/Urumqi', '<+06>-6' },
{ 'Asia/Ust-Nera', '<+10>-10' },
- { 'Asia/Vientiane', 'ICT-7' },
+ { 'Asia/Vientiane', '<+07>-7' },
{ 'Asia/Vladivostok', '<+10>-10' },
{ 'Asia/Yakutsk', '<+09>-9' },
- { 'Asia/Yangon', 'MMT-6:30' },
+ { 'Asia/Yangon', '<+0630>-6:30' },
{ 'Asia/Yekaterinburg', '<+05>-5' },
{ 'Asia/Yerevan', '<+04>-4' },
- { 'Atlantic/Azores', 'AZOT1AZOST,M3.5.0/0,M10.5.0/1' },
+ { 'Atlantic/Azores', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
{ 'Atlantic/Bermuda', 'AST4ADT,M3.2.0,M11.1.0' },
{ 'Atlantic/Canary', 'WET0WEST,M3.5.0/1,M10.5.0' },
- { 'Atlantic/Cape Verde', 'CVT1' },
+ { 'Atlantic/Cape Verde', '<-01>1' },
{ 'Atlantic/Faroe', 'WET0WEST,M3.5.0/1,M10.5.0' },
{ 'Atlantic/Madeira', 'WET0WEST,M3.5.0/1,M10.5.0' },
{ 'Atlantic/Reykjavik', 'GMT0' },
- { 'Atlantic/South Georgia', 'GST2' },
+ { 'Atlantic/South Georgia', '<-02>2' },
{ 'Atlantic/St Helena', 'GMT0' },
- { 'Atlantic/Stanley', 'FKST3' },
+ { 'Atlantic/Stanley', '<-03>3' },
{ 'Australia/Adelaide', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
{ 'Australia/Brisbane', 'AEST-10' },
{ 'Australia/Broken Hill', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
{ 'Australia/Currie', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
{ 'Australia/Darwin', 'ACST-9:30' },
- { 'Australia/Eucla', 'ACWST-8:45' },
+ { 'Australia/Eucla', '<+0845>-8:45' },
{ 'Australia/Hobart', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
{ 'Australia/Lindeman', 'AEST-10' },
- { 'Australia/Lord Howe', 'LHST-10:30LHDT-11,M10.1.0,M4.1.0' },
+ { 'Australia/Lord Howe', '<+1030>-10:30<+11>-11,M10.1.0,M4.1.0' },
{ 'Australia/Melbourne', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
{ 'Australia/Perth', 'AWST-8' },
{ 'Australia/Sydney', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
+ { 'Etc/GMT', 'GMT0' },
+ { 'Etc/GMT+1', '<-01>1' },
+ { 'Etc/GMT+10', '<-10>10' },
+ { 'Etc/GMT+11', '<-11>11' },
+ { 'Etc/GMT+12', '<-12>12' },
+ { 'Etc/GMT+2', '<-02>2' },
+ { 'Etc/GMT+3', '<-03>3' },
+ { 'Etc/GMT+4', '<-04>4' },
+ { 'Etc/GMT+5', '<-05>5' },
+ { 'Etc/GMT+6', '<-06>6' },
+ { 'Etc/GMT+7', '<-07>7' },
+ { 'Etc/GMT+8', '<-08>8' },
+ { 'Etc/GMT+9', '<-09>9' },
+ { 'Etc/GMT-1', '<+01>-1' },
+ { 'Etc/GMT-10', '<+10>-10' },
+ { 'Etc/GMT-11', '<+11>-11' },
+ { 'Etc/GMT-12', '<+12>-12' },
+ { 'Etc/GMT-13', '<+13>-13' },
+ { 'Etc/GMT-14', '<+14>-14' },
+ { 'Etc/GMT-2', '<+02>-2' },
+ { 'Etc/GMT-3', '<+03>-3' },
+ { 'Etc/GMT-4', '<+04>-4' },
+ { 'Etc/GMT-5', '<+05>-5' },
+ { 'Etc/GMT-6', '<+06>-6' },
+ { 'Etc/GMT-7', '<+07>-7' },
+ { 'Etc/GMT-8', '<+08>-8' },
+ { 'Etc/GMT-9', '<+09>-9' },
{ 'Europe/Amsterdam', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Andorra', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Astrakhan', '<+04>-4' },
@@ -378,53 +406,52 @@ TZ = {
{ 'Europe/Zaporozhye', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
{ 'Europe/Zurich', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Indian/Antananarivo', 'EAT-3' },
- { 'Indian/Chagos', 'IOT-6' },
- { 'Indian/Christmas', 'CXT-7' },
- { 'Indian/Cocos', 'CCT-6:30' },
+ { 'Indian/Chagos', '<+06>-6' },
+ { 'Indian/Christmas', '<+07>-7' },
+ { 'Indian/Cocos', '<+0630>-6:30' },
{ 'Indian/Comoro', 'EAT-3' },
{ 'Indian/Kerguelen', '<+05>-5' },
- { 'Indian/Mahe', 'SCT-4' },
- { 'Indian/Maldives', 'MVT-5' },
- { 'Indian/Mauritius', 'MUT-4' },
+ { 'Indian/Mahe', '<+04>-4' },
+ { 'Indian/Maldives', '<+05>-5' },
+ { 'Indian/Mauritius', '<+04>-4' },
{ 'Indian/Mayotte', 'EAT-3' },
- { 'Indian/Reunion', 'RET-4' },
- { 'Pacific/Apia', 'WSST-13WSDT,M9.5.0/3,M4.1.0/4' },
+ { 'Indian/Reunion', '<+04>-4' },
+ { 'Pacific/Apia', '<+13>-13<+14>,M9.5.0/3,M4.1.0/4' },
{ 'Pacific/Auckland', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
- { 'Pacific/Bougainville', 'BST-11' },
- { 'Pacific/Chatham', 'CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45' },
- { 'Pacific/Chuuk', 'CHUT-10' },
- { 'Pacific/Easter', 'EAST6EASST,M8.2.6/22,M5.2.6/22' },
- { 'Pacific/Efate', 'VUT-11' },
- { 'Pacific/Enderbury', 'PHOT-13' },
- { 'Pacific/Fakaofo', 'TKT-13' },
- { 'Pacific/Fiji', 'FJT-12FJST,M11.1.0,M1.3.0/3' },
- { 'Pacific/Funafuti', 'TVT-12' },
- { 'Pacific/Galapagos', 'GALT6' },
- { 'Pacific/Gambier', 'GAMT9' },
- { 'Pacific/Guadalcanal', 'SBT-11' },
+ { 'Pacific/Bougainville', '<+11>-11' },
+ { 'Pacific/Chatham', '<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45' },
+ { 'Pacific/Chuuk', '<+10>-10' },
+ { 'Pacific/Easter', '<-06>6<-05>,M8.2.6/22,M5.2.6/22' },
+ { 'Pacific/Efate', '<+11>-11' },
+ { 'Pacific/Enderbury', '<+13>-13' },
+ { 'Pacific/Fakaofo', '<+13>-13' },
+ { 'Pacific/Fiji', '<+12>-12<+13>,M11.1.0,M1.3.0/3' },
+ { 'Pacific/Funafuti', '<+12>-12' },
+ { 'Pacific/Galapagos', '<-06>6' },
+ { 'Pacific/Gambier', '<-09>9' },
+ { 'Pacific/Guadalcanal', '<+11>-11' },
{ 'Pacific/Guam', 'ChST-10' },
{ 'Pacific/Honolulu', 'HST10' },
- { 'Pacific/Johnston', 'HST10' },
- { 'Pacific/Kiritimati', 'LINT-14' },
- { 'Pacific/Kosrae', 'KOST-11' },
- { 'Pacific/Kwajalein', 'MHT-12' },
- { 'Pacific/Majuro', 'MHT-12' },
- { 'Pacific/Marquesas', 'MART9:30' },
+ { 'Pacific/Kiritimati', '<+14>-14' },
+ { 'Pacific/Kosrae', '<+11>-11' },
+ { 'Pacific/Kwajalein', '<+12>-12' },
+ { 'Pacific/Majuro', '<+12>-12' },
+ { 'Pacific/Marquesas', '<-0930>9:30' },
{ 'Pacific/Midway', 'SST11' },
- { 'Pacific/Nauru', 'NRT-12' },
- { 'Pacific/Niue', 'NUT11' },
- { 'Pacific/Norfolk', 'NFT-11' },
- { 'Pacific/Noumea', 'NCT-11' },
+ { 'Pacific/Nauru', '<+12>-12' },
+ { 'Pacific/Niue', '<-11>11' },
+ { 'Pacific/Norfolk', '<+11>-11' },
+ { 'Pacific/Noumea', '<+11>-11' },
{ 'Pacific/Pago Pago', 'SST11' },
- { 'Pacific/Palau', 'PWT-9' },
- { 'Pacific/Pitcairn', 'PST8' },
- { 'Pacific/Pohnpei', 'PONT-11' },
- { 'Pacific/Port Moresby', 'PGT-10' },
- { 'Pacific/Rarotonga', 'CKT10' },
+ { 'Pacific/Palau', '<+09>-9' },
+ { 'Pacific/Pitcairn', '<-08>8' },
+ { 'Pacific/Pohnpei', '<+11>-11' },
+ { 'Pacific/Port Moresby', '<+10>-10' },
+ { 'Pacific/Rarotonga', '<-10>10' },
{ 'Pacific/Saipan', 'ChST-10' },
- { 'Pacific/Tahiti', 'TAHT10' },
- { 'Pacific/Tarawa', 'GILT-12' },
+ { 'Pacific/Tahiti', '<-10>10' },
+ { 'Pacific/Tarawa', '<+12>-12' },
{ 'Pacific/Tongatapu', '<+13>-13<+14>,M11.1.0,M1.3.0/3' },
- { 'Pacific/Wake', 'WAKT-12' },
- { 'Pacific/Wallis', 'WFT-12' },
+ { 'Pacific/Wake', '<+12>-12' },
+ { 'Pacific/Wallis', '<+12>-12' },
}
diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
index e5da7c6442..cf5afeb9d8 100644
--- a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
+++ b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
@@ -16,123 +16,30 @@ OFFSET = {
akst = -32400, -- AKST
akdt = -28800, -- AKDT
ast = -14400, -- AST
- brt = -10800, -- BRT
- art = -10800, -- ART
- pyt = -14400, -- PYT
- pyst = -10800, -- PYST
est = -18000, -- EST
cst = -21600, -- CST
cdt = -18000, -- CDT
- amt = -14400, -- AMT
- cot = -18000, -- COT
mst = -25200, -- MST
mdt = -21600, -- MDT
- vet = -14400, -- VET
- gft = -10800, -- GFT
pst = -28800, -- PST
pdt = -25200, -- PDT
- act = -18000, -- ACT
- wgt = -10800, -- WGT
- wgst = -7200, -- WGST
- ect = -18000, -- ECT
- gyt = -14400, -- GYT
- bot = -14400, -- BOT
- pet = -18000, -- PET
- pmst = -10800, -- PMST
- pmdt = -7200, -- PMDT
- uyt = -10800, -- UYT
- fnt = -7200, -- FNT
- srt = -10800, -- SRT
- clt = -14400, -- CLT
- clst = -10800, -- CLST
- egt = -3600, -- EGT
- egst = 0, -- EGST
nst = -12600, -- NST
ndt = -9000, -- NDT
- mist = 39600, -- MIST
nzst = 43200, -- NZST
nzdt = 46800, -- NZDT
- ict = 25200, -- ICT
- bnt = 28800, -- BNT
- chot = 28800, -- CHOT
- chost = 32400, -- CHOST
- bdt = 21600, -- BDT
- tlt = 32400, -- TLT
- gst = 14400, -- GST
hkt = 28800, -- HKT
- hovt = 25200, -- HOVT
- hovst = 28800, -- HOVST
wib = 25200, -- WIB
wit = 32400, -- WIT
ist = 7200, -- IST
idt = 10800, -- IDT
- aft = 16200, -- AFT
pkt = 18000, -- PKT
- npt = 20700, -- NPT
- myt = 28800, -- MYT
wita = 28800, -- WITA
- pht = 28800, -- PHT
kst = 30600, -- KST
- sgt = 28800, -- SGT
- irst = 12600, -- IRST
- irdt = 16200, -- IRDT
- btt = 21600, -- BTT
jst = 32400, -- JST
- ulat = 28800, -- ULAT
- ulast = 32400, -- ULAST
- xjt = 21600, -- XJT
- mmt = 23400, -- MMT
- azot = -3600, -- AZOT
- azost = 0, -- AZOST
- cvt = -3600, -- CVT
- fkst = -10800, -- FKST
acst = 34200, -- ACST
acdt = 37800, -- ACDT
aest = 36000, -- AEST
- acwst = 31500, -- ACWST
- lhst = 37800, -- LHST
- lhdt = 39600, -- LHDT
awst = 28800, -- AWST
msk = 10800, -- MSK
- iot = 21600, -- IOT
- cxt = 25200, -- CXT
- cct = 23400, -- CCT
- sct = 14400, -- SCT
- mvt = 18000, -- MVT
- mut = 14400, -- MUT
- ret = 14400, -- RET
- wsst = 46800, -- WSST
- wsdt = 50400, -- WSDT
- bst = 39600, -- BST
- chast = 45900, -- CHAST
- chadt = 49500, -- CHADT
- chut = 36000, -- CHUT
- east = -21600, -- EAST
- easst = -18000, -- EASST
- vut = 39600, -- VUT
- phot = 46800, -- PHOT
- tkt = 46800, -- TKT
- fjt = 43200, -- FJT
- fjst = 46800, -- FJST
- tvt = 43200, -- TVT
- galt = -21600, -- GALT
- gamt = -32400, -- GAMT
- sbt = 39600, -- SBT
- lint = 50400, -- LINT
- kost = 39600, -- KOST
- mht = 43200, -- MHT
- mart = -34200, -- MART
sst = -39600, -- SST
- nrt = 43200, -- NRT
- nut = -39600, -- NUT
- nft = 39600, -- NFT
- nct = 39600, -- NCT
- pwt = 32400, -- PWT
- pont = 39600, -- PONT
- pgt = 36000, -- PGT
- ckt = -36000, -- CKT
- taht = -36000, -- TAHT
- gilt = 43200, -- GILT
- wakt = 43200, -- WAKT
- wft = 43200, -- WFT
}
diff --git a/modules/luci-base/luasrc/tools/status.lua b/modules/luci-base/luasrc/tools/status.lua
index b531393d0f..95ff46df15 100644
--- a/modules/luci-base/luasrc/tools/status.lua
+++ b/modules/luci-base/luasrc/tools/status.lua
@@ -74,9 +74,19 @@ local function dhcp_leases_common(family)
hostname = (name ~= "-") and name
}
elseif ip and iaid == "ipv4" and family == 4 then
+ local mac, mac1, mac2, mac3, mac4, mac5, mac6
+ if duid and type(duid) == "string" then
+ mac1, mac2, mac3, mac4, mac5, mac6 = duid:match("^(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)$")
+ end
+ if not (mac1 and mac2 and mac3 and mac4 and mac5 and mac6) then
+ mac = "FF:FF:FF:FF:FF:FF"
+ else
+ mac = mac1..":"..mac2..":"..mac3..":"..mac4..":"..mac5..":"..mac6
+ end
rv[#rv+1] = {
expires = (expire >= 0) and os.difftime(expire, os.time()),
macaddr = duid,
+ macaddr = mac:lower(),
ipaddr = ip,
hostname = (name ~= "-") and name
}
diff --git a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
index 2a433b5696..546fd8e85a 100644
--- a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
+++ b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
@@ -43,11 +43,12 @@
⇒
<% for _, fwd in ipairs(zone:get_forwardings_by("src")) do
fz = fwd:dest_zone()
- empty = false %>
+ if fz then
+ empty = false %>
<%=fz:name()%>
- <% end %>
+ <% end end %>
<% if empty then %>
<%=zone:forward():upper()%>
diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po
index d1b3045b6b..d5b2321272 100644
--- a/modules/luci-base/po/ca/base.po
+++ b/modules/luci-base/po/ca/base.po
@@ -52,12 +52,36 @@ msgstr "CÃ rrega d'1 minut:"
msgid "15 Minute Load:"
msgstr "CÃ rrega de 15 minuts:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "CÃ rrega de 5 minuts:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -100,7 +124,7 @@ msgid "IPv6 -Suffix (hex)"
msgstr ""
msgid "LED Configuration"
-msgstr "Configuració LED "
+msgstr "Configuració dels LED s"
msgid "LED Name"
msgstr "Nom LED "
@@ -128,6 +152,13 @@ msgstr "Consultes concurrents max. "
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+"AvÃs: cal reiniciar manualment el servei cron si el fitxer crontab estava "
+"buit abans d'editar-lo."
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -146,9 +177,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Suport AR"
-
msgid "ARP retry threshold"
msgstr "Llindar de reintent ARP"
@@ -259,7 +287,8 @@ msgstr ""
msgid "Allow SSH password authentication"
msgstr ""
-"Permet autenticació SSH per contrasenya"
+"Permetre l'autenticació SSH amb "
+"contrasenya"
msgid "Allow all except listed"
msgstr "Permet-les totes menys les llistades"
@@ -272,13 +301,14 @@ msgstr "Permetre el localhost"
msgid "Allow remote hosts to connect to local SSH forwarded ports"
msgstr ""
-"Permetre a mà quines remotes de connectar als ports reenviats de l'SSH local"
+"Permetre a mà quines remotes de connectar-se als ports reenviats de l'SSH "
+"local"
msgid "Allow root logins with password"
-msgstr "Permetre l'accés del l'administrador amb paraula clau"
+msgstr "Accés d'administrador amb contrasenya"
msgid "Allow the root user to login with password"
-msgstr "Permetre l'accés de l'usurari root amb paraula clau"
+msgstr "Permetre l'accés de l'usurari root amb contrasenya"
msgid ""
"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
@@ -390,15 +420,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Estacions associades"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador sense fils d'Atheros 802.11%s"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autenticació"
@@ -472,14 +496,11 @@ msgstr "Enrere al resum"
msgid "Back to scan results"
msgstr "Enrere als resultats de l'escaneig"
-msgid "Background Scan"
-msgstr "Escaneig de fons"
-
msgid "Backup / Flash Firmware"
-msgstr "Còpia de seguretat / Recà rrega de programari"
+msgstr "Còpia de seguretat i microprogramari"
msgid "Backup / Restore"
-msgstr "Còpia de seguretat / Restauració"
+msgstr "Còpia de seguretat i restauració de la configuració"
msgid "Backup file list"
msgstr "Llista de còpies de seguretat"
@@ -542,6 +563,8 @@ msgid ""
"Build/distribution specific feed definitions. This file will NOT be "
"preserved in any sysupgrade."
msgstr ""
+"Repositoris especÃfics de la distribució/compilació. Aquest fitxer NO es "
+"preservarà durant les actualitzacions del microprogramari del sistema."
msgid "Buttons"
msgstr "Botons"
@@ -614,6 +637,10 @@ msgid ""
"configuration files. To reset the firmware to its initial state, click "
"\"Perform reset\" (only possible with squashfs images)."
msgstr ""
+"Fes clic a \"Genera l'arxiu\" per obtenir un fitxer .tar.gz amb els fitxers "
+"de configuració actuals. Per restablir el microprogramari al seu estat "
+"inicial, fes clic a \"Restableix la configuració\" (només funciona amb "
+"imatges squashfs)."
msgid "Client"
msgstr "Client"
@@ -638,8 +665,12 @@ msgstr "Ordre"
msgid "Common Configuration"
msgstr "Configuració comuna"
-msgid "Compression"
-msgstr "Compressió"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuració"
@@ -714,7 +745,7 @@ msgid ""
"\">LEDs if possible."
msgstr ""
"Personalitza el comportament dels LED"
-"abbr>s del dispositiu si és possible."
+"abbr>s del dispositiu, si és possible."
msgid "DHCP Leases"
msgstr "Arrendaments DHCP"
@@ -858,12 +889,12 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Inhabilita el temporitzador HW-Beacon"
-
msgid "Disabled"
msgstr "Inhabilitat"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "Descarta les respostes RFC1918 des de dalt"
@@ -877,7 +908,7 @@ msgid "Distance to farthest network member in meters."
msgstr "Distà ncia al membre de la xarxa més allunyat en metres."
msgid "Distribution feeds"
-msgstr ""
+msgstr "Repositoris de la distribució"
msgid "Diversity"
msgstr "Diversitat"
@@ -902,9 +933,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr "No enviïs les respostes de prova"
-
msgid "Domain required"
msgstr "Es requereix un domini"
@@ -925,7 +953,7 @@ msgid "Download and install package"
msgstr "Descarrega i instal·la el paquet"
msgid "Download backup"
-msgstr "Descarrega còpia de seguritat"
+msgstr "Descarrega còpia de seguretat"
msgid "Dropbear Instance"
msgstr "Instà ncia de Dropbear"
@@ -934,8 +962,8 @@ msgid ""
"Dropbear offers SSH network shell access "
"and an integrated SCP server"
msgstr ""
-"El Dropbear ofereix accés per la xarxa a consola SSH i un servidor SCP integrat"
+"El Dropbear ofereix accés a una consola SSH"
+"abbr> per xarxa i un servidor SCP integrat"
msgid "Dual-Stack Lite (RFC6333)"
msgstr ""
@@ -1008,6 +1036,9 @@ msgstr "Habilita la funcionalitat VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Habilita l'aprenentatge i l'envelliment"
@@ -1032,6 +1063,11 @@ msgstr "Activa/Desactiva"
msgid "Enabled"
msgstr "Habilitat"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Habilita l'Spanning Tree Protocol a aquest pont"
@@ -1078,21 +1114,24 @@ msgstr ""
msgid "External"
msgstr ""
-msgid "External system log server"
+msgid "External R0 Key Holder List"
msgstr ""
-msgid "External system log server port"
+msgid "External R1 Key Holder List"
msgstr ""
+msgid "External system log server"
+msgstr "Servidor de registre del sistema extern"
+
+msgid "External system log server port"
+msgstr "Port del servidor de registre del sistema extern"
+
msgid "External system log server protocol"
-msgstr ""
+msgstr "Protocol del servidor de registre del sistema extern"
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
msgid "File"
msgstr "Fitxer"
@@ -1128,6 +1167,9 @@ msgstr "Acaba"
msgid "Firewall"
msgstr "Tallafocs"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Ajusts de tallafocs"
@@ -1144,19 +1186,19 @@ msgid "Fixed source port for outbound DNS queries"
msgstr ""
msgid "Flash Firmware"
-msgstr "Reescriu el microprogramari"
+msgstr "Escriptura del microprogramari a la memòria flaix"
msgid "Flash image..."
-msgstr "Escriu una imatge..."
+msgstr "Puja una imatge..."
msgid "Flash new firmware image"
-msgstr "Escriu una imatge nova"
+msgstr "Escriu una imatge nova a la memòria flaix"
msgid "Flash operations"
-msgstr "Operacions d'escriptura"
+msgstr "Operacions a la memòria flaix"
msgid "Flashing..."
-msgstr "Escrivent..."
+msgstr "Escrivint a la memòria flaix..."
msgid "Force"
msgstr "Força"
@@ -1173,6 +1215,9 @@ msgstr "Força el TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Força el TKIP i el CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1180,13 +1225,13 @@ msgid "Form token mismatch"
msgstr ""
msgid "Forward DHCP traffic"
-msgstr "Reenvia el trà fic DHCP"
+msgstr "Reenvia el trà nsit DHCP"
msgid "Forward Error Correction Seconds (FECS)"
msgstr ""
msgid "Forward broadcast traffic"
-msgstr "Reenvia el trà fic difós"
+msgstr "Reenvia el trà nsit difós"
msgid "Forwarding mode"
msgstr "Mode de reenviament"
@@ -1198,7 +1243,7 @@ msgid "Frame Bursting"
msgstr ""
msgid "Free"
-msgstr "Lliures"
+msgstr "Lliure"
msgid "Free space"
msgstr "Espai lliure"
@@ -1227,16 +1272,16 @@ msgid "General Setup"
msgstr ""
msgid "General options for opkg"
-msgstr ""
+msgstr "Opcions generals d'opkg"
msgid "Generate Config"
msgstr ""
msgid "Generate archive"
-msgstr ""
+msgstr "Genera l'arxiu"
msgid "Generic 802.11%s Wireless Controller"
-msgstr "Controlador sense fil 802.11%s genèric"
+msgstr "Controlador sense fils 802.11%s genèric"
msgid "Given password confirmation did not match, password not changed!"
msgstr ""
@@ -1293,6 +1338,8 @@ msgid ""
"Here you can paste public SSH-Keys (one per line) for SSH public-key "
"authentication."
msgstr ""
+"Aquà pots afegir-hi les claus SSH públiques (una per lÃnia) per entrar per "
+"SSH amb autenticació per clau."
msgid "Hermes 802.11b Wireless Controller"
msgstr "Controlador sense fil Hermes 802.11b"
@@ -1302,7 +1349,7 @@ msgstr ""
"No mostris l'ESSID "
msgid "Host"
-msgstr ""
+msgstr "Nom de mà quina"
msgid "Host entries"
msgstr "Entrades de noms de mà quina"
@@ -1371,7 +1418,7 @@ msgid "IPv4 prefix length"
msgstr "Longitud de prefix IPv4"
msgid "IPv4-Address"
-msgstr "Adreça IPv6"
+msgstr "Adreça IPv4"
msgid "IPv4-in-IPv4 (RFC2003)"
msgstr ""
@@ -1383,7 +1430,7 @@ msgid "IPv6 Firewall"
msgstr "Tallafocs IPv6"
msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "Veïns IPv6"
msgid "IPv6 Settings"
msgstr ""
@@ -1392,7 +1439,7 @@ msgid "IPv6 ULA-Prefix"
msgstr ""
msgid "IPv6 WAN Status"
-msgstr "Estado WAN IPv6"
+msgstr "Estat WAN IPv6"
msgid "IPv6 address"
msgstr "Adreça IPv6"
@@ -1421,9 +1468,15 @@ msgstr "Longitud de prefix IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "Adreça IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-en-IPv4 (RFC4213)"
@@ -1436,7 +1489,7 @@ msgstr "IPv6-sobre-IPv4 (6to4)"
msgid "Identity"
msgstr "Identitat"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1481,10 +1534,10 @@ msgid "Ignore resolve file"
msgstr "Ignora el fitxer de resolució"
msgid "Image"
-msgstr "Imatge"
+msgstr "Fitxer d'imatge"
msgid "In"
-msgstr "En"
+msgstr "Entr."
msgid ""
"In order to prevent unauthorized access to the system, your request has been "
@@ -1524,6 +1577,9 @@ msgstr "Paquets instal·lats"
msgid "Interface"
msgstr "InterfÃcie"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configuració d'interfÃcie"
@@ -1569,6 +1625,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Usuari i/o contrasenya invà lids! Si us plau prova-ho de nou."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1577,7 +1636,7 @@ msgstr ""
"Sembla que intentes actualitzar una imatge que no hi cap a la memòria flaix, "
"si us plau verifica el fitxer d'imatge!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "Es requereix JavaScript!"
msgid "Join Network"
@@ -1590,7 +1649,7 @@ msgid "Joining Network: %q"
msgstr ""
msgid "Keep settings"
-msgstr ""
+msgstr "Mantenir la configuració"
msgid "Kernel Log"
msgstr "Registre del nucli"
@@ -1646,11 +1705,8 @@ msgstr "Duració de validitat d'arrendament"
msgid "Leasefile"
msgstr "Fitxer d'arrendament"
-msgid "Leasetime"
-msgstr "Duració d'arrendament"
-
msgid "Leasetime remaining"
-msgstr "Duració d'arrendament restant"
+msgstr "Temps d'arrendament restant"
msgid "Leave empty to autodetect"
msgstr "Deixeu-ho en blanc per autodetectar"
@@ -1683,13 +1739,29 @@ msgid "Line Uptime"
msgstr ""
msgid "Link On"
-msgstr "Enllaç activa"
+msgstr "Enllaç actiu"
msgid ""
"List of DNS servers to forward "
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1707,15 +1779,17 @@ msgstr ""
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
+"Habilita el servei en totes les interfÃcies o, si no se n'especifica cap, en "
+"totes"
msgid "Listening port for inbound DNS queries"
msgstr ""
msgid "Load"
-msgstr "Carrega"
+msgstr "CÃ rrega"
msgid "Load Average"
-msgstr "Carrega mitjana"
+msgstr "CÃ rrega mitjana"
msgid "Loading"
msgstr "Carregant"
@@ -1822,9 +1896,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Velocitat mà xima"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1858,10 +1929,7 @@ msgid "Memory usage (%)"
msgstr "Ãs de Memòria (%)"
msgid "Metric"
-msgstr "Mètric"
-
-msgid "Minimum Rate"
-msgstr "Velocitat mÃnima"
+msgstr "Mètrica"
msgid "Minimum hold time"
msgstr ""
@@ -1875,6 +1943,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Manca l'extensió de protocol del protocol %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mode"
@@ -1933,9 +2004,6 @@ msgstr "Baixa"
msgid "Move up"
msgstr "Puja"
-msgid "Multicast Rate"
-msgstr "Velocitat de difusió selectiva"
-
msgid "Multicast address"
msgstr "Adreça de difusió selectiva"
@@ -1948,6 +2016,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -1997,13 +2068,13 @@ msgid "No NAT-T"
msgstr ""
msgid "No chains in this table"
-msgstr "No hi ha cadenes a aquesta taula"
+msgstr "No hi ha cadenes en aquesta taula"
msgid "No files found"
msgstr "Cap fitxer trobat"
msgid "No information available"
-msgstr "Cap informació disponible"
+msgstr "No hi ha informació disponible"
msgid "No negative cache"
msgstr "Sense memòria cau negativa"
@@ -2018,7 +2089,7 @@ msgid "No package lists available"
msgstr "No hi ha llistes de paquets disponibles"
msgid "No password set!"
-msgstr "Cap contrasenya establerta!"
+msgstr "No hi ha cap contrasenya establerta!"
msgid "No rules in this chain"
msgstr "No hi ha regles en aquesta cadena"
@@ -2128,18 +2199,30 @@ msgstr "Opció canviada"
msgid "Option removed"
msgstr "Opció treta"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2171,14 +2254,11 @@ msgid "Other:"
msgstr "Altres:"
msgid "Out"
-msgstr ""
+msgstr "Sort."
msgid "Outbound:"
msgstr "Sortint:"
-msgid "Outdoor Channels"
-msgstr "Canals d'exteriors"
-
msgid "Output Interface"
msgstr ""
@@ -2226,6 +2306,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2283,6 +2366,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "La contrasenya s'ha canviat amb èxit!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Ruta als Certificats CA"
@@ -2355,6 +2441,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2376,7 +2471,7 @@ msgid "Private Key"
msgstr ""
msgid "Proceed"
-msgstr "continua"
+msgstr "Procedeix"
msgid "Processes"
msgstr "Processos"
@@ -2400,7 +2495,7 @@ msgid "Protocol support is not installed"
msgstr ""
msgid "Provide NTP server"
-msgstr ""
+msgstr "Habilita el servidor NTP"
msgid "Provide new network"
msgstr ""
@@ -2420,6 +2515,12 @@ msgstr ""
msgid "Quality"
msgstr "Calidad"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2487,18 +2588,21 @@ msgid "Really switch protocol?"
msgstr ""
msgid "Realtime Connections"
-msgstr ""
+msgstr "Connexions en temps real"
msgid "Realtime Graphs"
-msgstr ""
+msgstr "Grà fiques en temps real"
msgid "Realtime Load"
-msgstr ""
+msgstr "CÃ rrega en temps real"
msgid "Realtime Traffic"
-msgstr ""
+msgstr "Trà nsit en temps real"
msgid "Realtime Wireless"
+msgstr "Dispositiu sense fils en temps real"
+
+msgid "Reassociation Deadline"
msgstr ""
msgid "Rebind protection"
@@ -2514,7 +2618,7 @@ msgid "Reboots the operating system of your device"
msgstr "Arranca de nou el sistema operatiu del teu dispositiu"
msgid "Receive"
-msgstr "Rep"
+msgstr "Recepció"
msgid "Receiver Antenna"
msgstr "Antena receptora"
@@ -2531,9 +2635,6 @@ msgstr "Reconnectant la interfÃcie"
msgid "References"
msgstr "Referències"
-msgid "Regulatory Domain"
-msgstr "Domini regulatori"
-
msgid "Relay"
msgstr "Relé"
@@ -2547,10 +2648,10 @@ msgid "Relay bridge"
msgstr "Pont de relé"
msgid "Remote IPv4 address"
-msgstr "Adreça IPv6 remota"
+msgstr "Adreça IPv4 remota"
msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "Adreça IPv4 remota o FQDN"
msgid "Remove"
msgstr "Treu"
@@ -2573,19 +2674,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Alguns ISP ho requereixen, per exemple el Charter amb DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2594,7 +2703,7 @@ msgid ""
msgstr ""
msgid "Reset"
-msgstr "Reinicia"
+msgstr "Restableix"
msgid "Reset Counters"
msgstr "Reinicia els comptadors"
@@ -2612,7 +2721,7 @@ msgid "Restart"
msgstr "Reinicia"
msgid "Restart Firewall"
-msgstr "Reinicia Tallafocs"
+msgstr "Reinicia el tallafocs"
msgid "Restore backup"
msgstr "Restaura còpia de seguretat"
@@ -2699,10 +2808,10 @@ msgid "Save"
msgstr "Desa"
msgid "Save & Apply"
-msgstr "Desa y aplica"
+msgstr "Desa i aplica"
msgid "Save & Apply"
-msgstr "Desa y aplica"
+msgstr "Desa i aplica"
msgid "Scan"
msgstr "Escaneja"
@@ -2727,9 +2836,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Clients separats"
-msgid "Separate WDS"
-msgstr "WDS separat"
-
msgid "Server Settings"
msgstr "Ajusts de servidor"
@@ -2753,9 +2859,14 @@ msgstr "Tipus de servei"
msgid "Services"
msgstr "Serveis"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
-msgstr "Sincronització de hora"
+msgstr "Configura la sincronització de l'hora"
msgid "Setup DHCP Server"
msgstr ""
@@ -2788,7 +2899,7 @@ msgid "Size"
msgstr "Mida"
msgid "Size (.ipk)"
-msgstr ""
+msgstr "Mida (.ipk)"
msgid "Skip"
msgstr "Salta"
@@ -2874,7 +2985,7 @@ msgid "Start priority"
msgstr "Prioritat d'inici"
msgid "Startup"
-msgstr "Arranca"
+msgstr "Arrencada"
msgid "Static IPv4 Routes"
msgstr "Rutes IPv4 està tiques"
@@ -2888,9 +2999,6 @@ msgstr "Leases està tics"
msgid "Static Routes"
msgstr "Rutes està tiques"
-msgid "Static WDS"
-msgstr "WDS està tic"
-
msgid "Static address"
msgstr "Adreça està tica"
@@ -2944,7 +3052,7 @@ msgid "Switch protocol"
msgstr "Protocol de commutador"
msgid "Sync with browser"
-msgstr "Sincronitza amb navegador"
+msgstr "Sincronitza amb el navegador"
msgid "Synchronizing..."
msgstr "Sincronitzant..."
@@ -2953,13 +3061,13 @@ msgid "System"
msgstr "Sistema"
msgid "System Log"
-msgstr "Registre de sistema"
+msgstr "Registre del sistema"
msgid "System Properties"
-msgstr "Propietats de sistema"
+msgstr "Propietats del sistema"
msgid "System log buffer size"
-msgstr "Mida de la memòria intermèdia del registre de sistema"
+msgstr "Mida de la memòria intermèdia per al registre del sistema"
msgid "TCP:"
msgstr "TCP:"
@@ -3047,6 +3155,10 @@ msgid ""
"compare them with the original file to ensure data integrity. Click "
"\"Proceed\" below to start the flash procedure."
msgstr ""
+"S'ha pujat la imatge per a la memòria flaix. A sota hi ha llistades la suma "
+"de verificació i la mida del fitxer per assegurar la integritat de les dades."
+" Fes clic a \"Procedeix\" a continuació per començar el procés "
+"d'escriptura a la memòria flaix."
msgid "The following changes have been committed"
msgstr "S'han comès els següents canvis"
@@ -3055,7 +3167,7 @@ msgid "The following changes have been reverted"
msgstr "S'han desfet els següents canvis"
msgid "The following rules are currently active on this system."
-msgstr "Els següents regles estan actualment actives en aquest sistema."
+msgstr "Les següents regles estan actualment actives en aquest sistema."
msgid "The given network name is not unique"
msgstr "El nom de xarxa donat no és únic"
@@ -3109,10 +3221,11 @@ msgid ""
"address of your computer to reach the device again, depending on your "
"settings."
msgstr ""
-"El sistema s'està escrivent ara. NO APAGUEU EL DISPOSITIU! Espereu "
-"uns minuts abans d'intentar connectar-vos de nou. Pot ser necessari que "
-"renoveu l'adreça del vostre ordinador per a connectar al dispositiu de nou, "
-"depenent dels vostres ajusts."
+"S'està escrivint la imatge del microprogramari a la memòria flaix. NO "
+"APAGUIS EL DISPOSITIU! Espera uns minuts abans d'intentar connectar-te "
+"de nou. Pot ser necessari que renovis l'adreça DHCP del teu ordinador per "
+"connectar-te de nou a l'encaminador, depenent de la configuració que hi "
+"tinguis."
msgid ""
"The tunnel end-point is behind NAT, defaults to disabled and only applies to "
@@ -3147,6 +3260,8 @@ msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface and enable SSH."
msgstr ""
+"No s'ha establert cap contrasenya en aquest encaminador. Si us plau, "
+"configura una contrasenya per protegir la interfÃcie web i l'accés SSH."
msgid "This IPv4 address of the relay"
msgstr ""
@@ -3172,6 +3287,9 @@ msgid ""
"This is the content of /etc/rc.local. Insert your own commands here (in "
"front of 'exit 0') to execute them at the end of the boot process."
msgstr ""
+"Aquest és el contingut de /etc/rc.local. Afegeix-hi les teves comandes "
+"(abans de la lÃnia 'exit 0') per executar-les en finalitzar el procés "
+"d'arrencada."
msgid ""
"This is the local endpoint address assigned by the tunnel broker, it usually "
@@ -3217,10 +3335,10 @@ msgstr ""
"actualment."
msgid "This section contains no values yet"
-msgstr "Aquesta secció no conté cap valor encara"
+msgstr "Aquesta secció encara no conté cap valor"
msgid "Time Synchronization"
-msgstr "Sincronització de hora"
+msgstr "Sincronització de l'hora"
msgid "Time Synchronization is not configured yet."
msgstr "La sincronització de hora encara no s'ha configurat."
@@ -3232,6 +3350,8 @@ msgid ""
"To restore configuration files, you can upload a previously generated backup "
"archive here."
msgstr ""
+"Per restaurar els fitxers de configuració, pots pujar una còpia de seguretat "
+"generada anteriorment aquÃ."
msgid "Tone"
msgstr ""
@@ -3243,7 +3363,7 @@ msgid "Traceroute"
msgstr "Rastre de ruta"
msgid "Traffic"
-msgstr "Trà fic"
+msgstr "Trà nsit"
msgid "Transfer"
msgstr "Transferència"
@@ -3252,7 +3372,7 @@ msgid "Transmission Rate"
msgstr "Taxa de transmissió"
msgid "Transmit"
-msgstr "Transmet"
+msgstr "Transmissió"
msgid "Transmit Power"
msgstr "Potència de transmissió"
@@ -3261,10 +3381,10 @@ msgid "Transmitter Antenna"
msgstr "Antena transmissora"
msgid "Trigger"
-msgstr ""
+msgstr "Activador"
msgid "Trigger Mode"
-msgstr ""
+msgstr "Mode d'activació"
msgid "Tunnel ID"
msgstr "ID del túnel"
@@ -3284,9 +3404,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
msgid "Tx-Power"
msgstr "Potència Tx"
@@ -3343,6 +3460,9 @@ msgid ""
"Check \"Keep settings\" to retain the current configuration (requires a "
"compatible firmware image)."
msgstr ""
+"Puja aquà una imatge compatible amb sysupgrade per reemplaçar el "
+"microprogramari actual. Activa \"Mantenir la configuració\" per retenir la "
+"configuració actual (requereix una imatge de microprogramari compatible)."
msgid "Upload archive..."
msgstr "Puja un arxiu..."
@@ -3351,7 +3471,7 @@ msgid "Uploaded File"
msgstr "Fitxer pujat"
msgid "Uptime"
-msgstr "Temps d'alta"
+msgstr "Temps en marxa"
msgid "Use /etc/ethers
"
msgstr "Fes servir /etc/ethers
"
@@ -3409,6 +3529,11 @@ msgstr "Usat"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3502,7 +3627,7 @@ msgid "Waiting for command to complete..."
msgstr "Esperant que s'acabi l'ordre..."
msgid "Waiting for device..."
-msgstr ""
+msgstr "Esperant el dispositiu..."
msgid "Warning"
msgstr "Advertència"
@@ -3538,10 +3663,10 @@ msgid "Wireless Security"
msgstr "Seguretat sense fils"
msgid "Wireless is disabled or not associated"
-msgstr "El sense fil està inhabilitat o sense associar"
+msgstr "El dispositiu sense fils està inhabilitat o sense associar"
msgid "Wireless is restarting..."
-msgstr "Sense fils està reiniciant..."
+msgstr "El dispositiu sense fils està reiniciant..."
msgid "Wireless network is disabled"
msgstr "La xarxa sense fil està inhabilitada"
@@ -3556,13 +3681,10 @@ msgid "Wireless shut down"
msgstr "Sense fils aturat"
msgid "Write received DNS requests to syslog"
-msgstr "Escriure les peticions DNS rebudes al syslog"
+msgstr "Escriure les peticions DNS rebudes al registre del sistema"
msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "Suport XR"
+msgstr "Escriure el registre del sistema al fitxer"
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
@@ -3575,9 +3697,9 @@ msgstr ""
"dispositiu pot resultar inaccessible!"
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Has d'activar el Java Script al teu navegador o LuCI no funcionarà "
+"Has d'activar el JavaScript al teu navegador o LuCI no funcionarà "
"correctament."
msgid ""
@@ -3592,10 +3714,6 @@ msgstr "qualsevol"
msgid "auto"
msgstr "auto"
-#, fuzzy
-msgid "automatic"
-msgstr "està tic"
-
msgid "baseT"
msgstr ""
@@ -3669,7 +3787,7 @@ msgstr "fitxer DNS local"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3705,12 +3823,6 @@ msgstr "encaminat"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3723,6 +3835,9 @@ msgstr ""
msgid "tagged"
msgstr "etiquetat"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "desconegut"
@@ -3744,6 +3859,61 @@ msgstr "sÃ"
msgid "« Back"
msgstr "« Enrere"
+#~ msgid "Leasetime"
+#~ msgstr "Duració d'arrendament"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "està tic"
+
+#~ msgid "AR Support"
+#~ msgstr "Suport AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador sense fils d'Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Escaneig de fons"
+
+#~ msgid "Compression"
+#~ msgstr "Compressió"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Inhabilita el temporitzador HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "No enviïs les respostes de prova"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Velocitat mà xima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Velocitat mÃnima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Velocitat de difusió selectiva"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canals d'exteriors"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domini regulatori"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS separat"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS està tic"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mode Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suport XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Es crearà una xarxa addicional si deixes això sense marcar."
diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po
index d9ee659fce..d914c379de 100644
--- a/modules/luci-base/po/cs/base.po
+++ b/modules/luci-base/po/cs/base.po
@@ -50,12 +50,36 @@ msgstr "ZatÞenà za 1 minutu:"
msgid "15 Minute Load:"
msgstr "ZatÞenà za 15 minut:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "ZatÞenà za 5 minut:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -125,6 +149,11 @@ msgstr "NejvyÅ¡Å¡Ã poÄet soubÄžných dotazů"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -143,9 +172,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Podpora AR"
-
msgid "ARP retry threshold"
msgstr "ARP limit opakovánÃ"
@@ -390,15 +416,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "PÅipojenà klienti"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s bezdrátový ovladaÄ"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autentizace"
@@ -471,9 +491,6 @@ msgstr "ZpÄt k pÅehledu"
msgid "Back to scan results"
msgstr "ZpÄt k výsledkům vyhledávánÃ"
-msgid "Background Scan"
-msgstr "Vyhledávat na pozadÃ"
-
msgid "Backup / Flash Firmware"
msgstr "Zálohovat / nahrát firmware"
@@ -642,8 +659,12 @@ msgstr "PÅÃkaz"
msgid "Common Configuration"
msgstr "SpoleÄná nastavenÃ"
-msgid "Compression"
-msgstr "Komprese"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "NastavenÃ"
@@ -864,12 +885,12 @@ msgstr "Zakázat nastavenà DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Zakázat HW-Beacon ÄasovaÄ"
-
msgid "Disabled"
msgstr "Zakázáno"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "VyÅadit upstream RFC1918 odpovÄdi"
@@ -910,9 +931,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "NepÅeposÃlat reverznà dotazy na mÃstnà sÃtÄ"
-msgid "Do not send probe responses"
-msgstr "NeodpovÃdat na vyhledávánÃ"
-
msgid "Domain required"
msgstr "Vyžadována doména"
@@ -1018,6 +1036,9 @@ msgstr "Povolit funkcionalitu VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Povolit ARP uÄenà a stárnutÃ"
@@ -1042,6 +1063,11 @@ msgstr "Povolit/Zakázat"
msgid "Enabled"
msgstr "Povoleno"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Na tomto sÃÅ¥ovém mostÄ povolit Spanning Tree Protocol"
@@ -1090,6 +1116,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Externà protokolovacà server"
@@ -1102,9 +1134,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Rychlé rámce"
-
msgid "File"
msgstr "Soubor"
@@ -1140,6 +1169,9 @@ msgstr "DokonÄit"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Nastavenà firewallu"
@@ -1185,6 +1217,9 @@ msgstr "Vynutit TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Vynutit TKIP a CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1432,9 +1467,15 @@ msgstr "Délka IPv6 prefixu"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6 adresa"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1447,7 +1488,7 @@ msgstr "IPv6-over-IPv4 (6to4)"
msgid "Identity"
msgstr "Identita"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1535,6 +1576,9 @@ msgstr "Nainstalovan̩ bal̀ky"
msgid "Interface"
msgstr "RozhranÃ"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Konfigurace rozhranÃ"
@@ -1582,6 +1626,9 @@ msgstr "Uvedené VLAN ID je neplatné! Každé ID musà být jedineÄné"
msgid "Invalid username and/or password! Please try again."
msgstr "Å patné uživatelské jméno a/nebo heslo! ProsÃm zkuste to znovu."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1590,7 +1637,7 @@ msgstr ""
"Zdá se, že se pokouÅ¡Ãte zapsat obraz, který se nevejde do flash pamÄti. "
"ProsÃm ovÄÅte soubor s obrazem!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "Vyžadován JavaScript!"
msgid "Join Network"
@@ -1659,9 +1706,6 @@ msgstr "Doba platnosti zápůjÄky"
msgid "Leasefile"
msgstr "Soubor zájpůjÄek"
-msgid "Leasetime"
-msgstr "Doba trvánà zápůjÄky"
-
msgid "Leasetime remaining"
msgstr "ZbývajÃcà doba trvánà zápůjÄky"
@@ -1705,6 +1749,22 @@ msgstr ""
"Seznam DNS serverů, na které "
"pÅeposÃlat požadavky"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1844,9 +1904,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "NejvyÅ¡Å¡Ã mÃra"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "NejvyÅ¡Å¡Ã povolené množstvà aktivnÃch DHCP zápůjÄek"
@@ -1882,9 +1939,6 @@ msgstr "Využità pamÄti (%)"
msgid "Metric"
msgstr "Metrika"
-msgid "Minimum Rate"
-msgstr "Nejnižšà hodnota"
-
msgid "Minimum hold time"
msgstr "Minimálnà Äas zápůjÄky"
@@ -1897,6 +1951,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "ChybÄjÃcà rozÅ¡ÃÅenà protokolu %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mód"
@@ -1955,9 +2012,6 @@ msgstr "PÅesunout dolů"
msgid "Move up"
msgstr "PÅesunout nahoru"
-msgid "Multicast Rate"
-msgstr "Hodnota vÃcesmÄrového vysÃlánÃ"
-
msgid "Multicast address"
msgstr "Adresa vÃcesmÄrového vysÃlánÃ"
@@ -1970,6 +2024,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2149,18 +2206,30 @@ msgstr "Volba zmÄnÄna"
msgid "Option removed"
msgstr "Volba odstranÄna"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2197,9 +2266,6 @@ msgstr "Ven"
msgid "Outbound:"
msgstr "OdchozÃ:"
-msgid "Outdoor Channels"
-msgstr "Venkovnà kanály"
-
msgid "Output Interface"
msgstr ""
@@ -2249,6 +2315,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2306,6 +2375,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Heslo bylo úspÄÅ¡nÄ zmÄnÄno!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Cesta k certifikátu CA"
@@ -2378,6 +2450,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2445,6 +2526,12 @@ msgstr ""
msgid "Quality"
msgstr "Kvalita"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2539,6 +2626,9 @@ msgstr "Provoz v reálném Äase"
msgid "Realtime Wireless"
msgstr "Wireless v reálném Äase"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "OpÄtovné nastavenà ochrany"
@@ -2569,9 +2659,6 @@ msgstr "PÅepojuji rozhranÃ"
msgid "References"
msgstr "Reference"
-msgid "Regulatory Domain"
-msgstr "Doména regulátora"
-
msgid "Relay"
msgstr "PÅenos"
@@ -2611,6 +2698,9 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
# Charter je poskytovate
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Vyžadováno u nÄkterých ISP, napÅ. Charter s DocSIS 3"
@@ -2618,13 +2708,18 @@ msgstr "Vyžadováno u nÄkterých ISP, napÅ. Charter s DocSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2767,9 +2862,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "OddÄlovat klienty"
-msgid "Separate WDS"
-msgstr "OddÄlovat WDS"
-
msgid "Server Settings"
msgstr "Nastavenà serveru"
@@ -2793,6 +2885,11 @@ msgstr "Typ služby"
msgid "Services"
msgstr "Služby"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Nastavit synchronizaci Äasu"
@@ -2933,9 +3030,6 @@ msgstr "Statické zápůjÄky"
msgid "Static Routes"
msgstr "Statické trasy"
-msgid "Static WDS"
-msgstr "Statický WDS"
-
msgid "Static address"
msgstr "Statická adresa"
@@ -3350,9 +3444,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Turbo mód"
-
msgid "Tx-Power"
msgstr "Tx-Power"
@@ -3481,6 +3572,11 @@ msgstr "Použit"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3633,9 +3729,6 @@ msgstr "Zapisovat pÅijaté požadavky DNS do systemového logu"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Podpora XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3646,9 +3739,9 @@ msgstr ""
"\"network\", vaÅ¡e zaÅÃzenà se může stát nepÅÃstupným! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Aby LuCI fungoval správnÄ, musÃte mÃt v prohlÞeÄi povolený Javascript."
+"Aby LuCI fungoval správnÄ, musÃte mÃt v prohlÞeÄi povolený JavaScript."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3662,9 +3755,6 @@ msgstr "libovolný"
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3738,7 +3828,7 @@ msgstr "mÃstnà DNS soubor"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3774,12 +3864,6 @@ msgstr "smÄrované"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3792,6 +3876,9 @@ msgstr ""
msgid "tagged"
msgstr "oznaÄený"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "neznámý"
@@ -3813,6 +3900,57 @@ msgstr "ano"
msgid "« Back"
msgstr "« ZpÄt"
+#~ msgid "Leasetime"
+#~ msgstr "Doba trvánà zápůjÄky"
+
+#~ msgid "AR Support"
+#~ msgstr "Podpora AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s bezdrátový ovladaÄ"
+
+#~ msgid "Background Scan"
+#~ msgstr "Vyhledávat na pozadÃ"
+
+#~ msgid "Compression"
+#~ msgstr "Komprese"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Zakázat HW-Beacon ÄasovaÄ"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "NeodpovÃdat na vyhledávánÃ"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Rychlé rámce"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "NejvyÅ¡Å¡Ã mÃra"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Nejnižšà hodnota"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Hodnota vÃcesmÄrového vysÃlánÃ"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Venkovnà kanály"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Doména regulátora"
+
+#~ msgid "Separate WDS"
+#~ msgstr "OddÄlovat WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statický WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo mód"
+
+#~ msgid "XR Support"
+#~ msgstr "Podpora XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Pokud nenà zaÅ¡krtnuto, bude vytvoÅena dodateÄná sÃÅ¥."
diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po
index 1587e8f441..9b469d6606 100644
--- a/modules/luci-base/po/de/base.po
+++ b/modules/luci-base/po/de/base.po
@@ -1,17 +1,17 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2013-03-29 12:13+0200\n"
+"PO-Revision-Date: 2017-10-17 22:46+0200\n"
"Last-Translator: JoeSemler \n"
-"Language-Team: LANGUAGE \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 2.0.4\n"
+"Language-Team: \n"
msgid "%s is untagged in multiple VLANs!"
msgstr ""
@@ -38,13 +38,13 @@ msgid "-- custom --"
msgstr "-- benutzerdefiniert --"
msgid "-- match by device --"
-msgstr ""
+msgstr "-- anhand Gerätedatei selektieren --"
msgid "-- match by label --"
-msgstr ""
+msgstr "-- anhand Label selektieren --"
msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- UUID vergleichen --"
msgid "1 Minute Load:"
msgstr "Systemlast (1 Minute):"
@@ -52,12 +52,36 @@ msgstr "Systemlast (1 Minute):"
msgid "15 Minute Load:"
msgstr "Systemlast (15 Minuten):"
+msgid "4-character hexadecimal ID"
+msgstr "vierstellige hexadezimale ID"
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Systemlast (5 Minuten):"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr "sechstellige hexadezimale ID (ohne Doppelpunkte)"
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "Maximales Timeout für Quelladressprüfungen (SA Query)"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr "Wiederholungsintervall für Quelladressprüfungen (SA Query)"
+
+msgid "802.11w Management Frame Protection"
+msgstr "802.11w: Schutz von Management-Frames aktivieren"
+
+msgid "802.11w maximum timeout"
+msgstr "802.11w: Maximales Timeout"
+
+msgid "802.11w retry timeout"
+msgstr "802.11w: Wiederholungsintervall"
+
msgid "BSSID "
msgstr "BSSID "
@@ -95,7 +119,7 @@ msgid "IPv6 -Gateway"
msgstr "IPv6-Gateway"
msgid "IPv6 -Suffix (hex)"
-msgstr ""
+msgstr "IPv6-Suffix (hexadezimal)"
msgid "LED Configuration"
msgstr "LED Konfiguration"
@@ -126,6 +150,11 @@ msgstr "Max. Anzahl gleichzeitiger Abfragen"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -144,9 +173,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "AR-Unterstützung"
-
msgid "ARP retry threshold"
msgstr "Grenzwert für ARP-Auflösungsversuche"
@@ -250,9 +276,11 @@ msgid ""
"Allocate IP addresses sequentially, starting from the lowest available "
"address"
msgstr ""
+"IP-Adressen sequenziell vergeben, beginnend mit der kleinsten verfügbaren "
+"Adresse"
msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "IPs sequenziell vergeben"
msgid "Allow SSH password authentication"
msgstr "Erlaube Anmeldung per Passwort"
@@ -284,7 +312,7 @@ msgstr ""
"genutzt wird"
msgid "Allowed IPs"
-msgstr ""
+msgstr "Erlaubte IP-Adressen"
msgid ""
"Also see unspecified to remove the interface from the associated zone or "
"fill out the create field to define a new zone and attach the "
"interface to it."
-msgstr "Diese Schnittstelle gehört bis jetzt zu keiner Firewallzone."
+msgstr ""
+"Ordnet dieser Schnittstelle eine Firewallzone zu. Den Wert "
+"unspezifiziert wählen um die Schnittstelle von der Zone zu lösen "
+"oder das erstellen Feld ausfüllen um eine neue Zone direkt "
+"anzulegen und zuzuweisen."
msgid ""
"Choose the network(s) you want to attach to this wireless interface or fill "
@@ -602,7 +638,7 @@ msgid "Cipher"
msgstr "Verschlüsselungsalgorithmus"
msgid "Cisco UDP encapsulation"
-msgstr ""
+msgstr "Cisco UDP-Kapselung"
msgid ""
"Click \"Generate archive\" to download a tar archive of the current "
@@ -639,8 +675,16 @@ msgstr "Befehl"
msgid "Common Configuration"
msgstr "Allgemeine Konfiguration"
-msgid "Compression"
-msgstr "Kompression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
+"Deaktiviert bestimmte EAPOL-Key-Retransmissionen um Key-Reinstallation "
+"(KRACK) Angriffe auf Client-Seite zu erschweren. Diese AbhilfemaÃnahme kann "
+"Kompatibilitätsprobleme verursachen und die Zuverlässigkeit von "
+"Schlüsselerneuerungen in ausgelasteten Umgebungen verringern."
msgid "Configuration"
msgstr "Konfiguration"
@@ -664,7 +708,7 @@ msgid "Connection Limit"
msgstr "Verbindungslimit"
msgid "Connection to server fails when TLS cannot be used"
-msgstr ""
+msgstr "TLS zwingend vorraussetzen und abbrechen wenn TLS fehlschlägt."
msgid "Connections"
msgstr "Verbindungen"
@@ -700,15 +744,17 @@ msgid "Custom Interface"
msgstr "benutzerdefinierte Schnittstelle"
msgid "Custom delegated IPv6-prefix"
-msgstr ""
+msgstr "Delegierter IPv6-Präfix"
msgid ""
"Custom feed definitions, e.g. private feeds. This file can be preserved in a "
"sysupgrade."
msgstr ""
+"Selbst konfigurierte Paket-Repositories, z.B. private oder inoffizielle "
+"Quellen. Diese Konfiguration wird by Upgrades gesichert."
msgid "Custom feeds"
-msgstr ""
+msgstr "Eigene Repositories"
msgid ""
"Customizes the behaviour of the device DNS -Requests without "
@@ -958,7 +1001,7 @@ msgstr ""
"Clients mit konfigurierten statischen Leases bedient"
msgid "EA-bits length"
-msgstr ""
+msgstr "EA-Bitlänge"
msgid "EAP-Method"
msgstr "EAP-Methode"
@@ -970,6 +1013,8 @@ msgid ""
"Edit the raw configuration data above to fix any error and hit \"Save\" to "
"reload the page."
msgstr ""
+"Um die Syntaxfehler zu beheben, bitte die obige unformatierte Konfiguration "
+"anpassen und \"Speichern\" klicken um die Seite neu zu laden."
msgid "Edit this interface"
msgstr "Diese Schnittstelle bearbeiten"
@@ -990,7 +1035,7 @@ msgid "Enable HE.net dynamic endpoint update"
msgstr "Dynamisches HE.net IP-Adress-Update aktivieren"
msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "IPv6 anfordern"
msgid "Enable IPv6 negotiation on the PPP link"
msgstr "Aushandeln von IPv6-Adressen auf der PPP-Verbindung aktivieren"
@@ -1002,7 +1047,7 @@ msgid "Enable NTP client"
msgstr "Aktiviere NTP-Client"
msgid "Enable Single DES"
-msgstr ""
+msgstr "Single-DES aktivieren"
msgid "Enable TFTP server"
msgstr "TFTP-Server aktivieren"
@@ -1011,19 +1056,23 @@ msgid "Enable VLAN functionality"
msgstr "VLAN-Funktionalität aktivieren"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "WPS-via-Knopfdruck aktivieren, erfordert WPA(2)-PSK"
+
+#, fuzzy
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr "Key Reinstallation (KRACK) GegenmaÃnahmen aktivieren "
msgid "Enable learning and aging"
msgstr "Learning und Aging aktivieren"
msgid "Enable mirroring of incoming packets"
-msgstr ""
+msgstr "Port-Mirroring für eingehende Pakete aktivieren"
msgid "Enable mirroring of outgoing packets"
-msgstr ""
+msgstr "Port-Mirroring für ausgehende Pakete aktivieren"
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
+msgstr "Das DF-Bit (Nicht fragmentieren) auf gekapselten Paketen setzen."
msgid "Enable this mount"
msgstr "Diesen Mountpunkt aktivieren"
@@ -1037,6 +1086,13 @@ msgstr "Aktivieren/Deaktivieren"
msgid "Enabled"
msgstr "Aktiviert"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+"Aktiviert schnelles Roaming zwischen Access-Points des selben "
+"Mobilitätsbereiches"
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Aktiviert das Spanning Tree Protokoll auf dieser Netzwerkbrücke"
@@ -1047,10 +1103,10 @@ msgid "Encryption"
msgstr "Verschlüsselung"
msgid "Endpoint Host"
-msgstr ""
+msgstr "Entfernter Server"
msgid "Endpoint Port"
-msgstr ""
+msgstr "Entfernter Port"
msgid "Erasing..."
msgstr "Lösche..."
@@ -1059,7 +1115,7 @@ msgid "Error"
msgstr "Fehler"
msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "Fehlersekunden (ES)"
msgid "Ethernet Adapter"
msgstr "Netzwerkschnittstelle"
@@ -1068,7 +1124,7 @@ msgid "Ethernet Switch"
msgstr "Netzwerk Switch"
msgid "Exclude interfaces"
-msgstr ""
+msgstr "Schnittstellen ausschlieÃen"
msgid "Expand hosts"
msgstr "Hosts vervollständigen"
@@ -1084,7 +1140,13 @@ msgstr ""
"(2m
)."
msgid "External"
-msgstr ""
+msgstr "Extern"
+
+msgid "External R0 Key Holder List"
+msgstr "Externe R0-Key-Holder-List"
+
+msgid "External R1 Key Holder List"
+msgstr "Externe R1-Key-Holder-List"
msgid "External system log server"
msgstr "Externer Protokollserver IP"
@@ -1093,13 +1155,10 @@ msgid "External system log server port"
msgstr "Externer Protokollserver Port"
msgid "External system log server protocol"
-msgstr ""
+msgstr "Externes Protokollserver Protokoll"
msgid "Extra SSH command options"
-msgstr ""
-
-msgid "Fast Frames"
-msgstr "Schnelle Frames"
+msgstr "Zusätzliche SSH-Kommando-Optionen"
msgid "File"
msgstr "Datei"
@@ -1123,6 +1182,9 @@ msgid ""
"Find all currently attached filesystems and swap and replace configuration "
"with defaults based on what was detected"
msgstr ""
+"Findet alle angeschlossenen Dateisysteme und SWAP-Partitionen und generiert "
+"die Konfiguration mit passenden Standardwerten für alle gefundenen Geräte "
+"neu."
msgid "Find and join network"
msgstr "Suchen und Verbinden von Netzwerken"
@@ -1136,6 +1198,9 @@ msgstr "Fertigstellen"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr "Firewall-Markierung"
+
msgid "Firewall Settings"
msgstr "Firewall Einstellungen"
@@ -1143,7 +1208,7 @@ msgid "Firewall Status"
msgstr "Firewall-Status"
msgid "Firmware File"
-msgstr ""
+msgstr "Firmware-Datei"
msgid "Firmware Version"
msgstr "Firmware Version"
@@ -1183,17 +1248,20 @@ msgstr "Erzwinge TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Erzwinge TKIP und CCMP (AES)"
+msgid "Force link"
+msgstr "Erzwinge Verbindung"
+
msgid "Force use of NAT-T"
-msgstr ""
+msgstr "Benutzung von NAT-T erzwingen"
msgid "Form token mismatch"
-msgstr ""
+msgstr "Abweichendes Formular-Token"
msgid "Forward DHCP traffic"
msgstr "DHCP Traffic weiterleiten"
msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
+msgstr "Fehlerkorrektursekunden (FECS)"
msgid "Forward broadcast traffic"
msgstr "Broadcasts weiterleiten"
@@ -1217,6 +1285,8 @@ msgid ""
"Further information about WireGuard interfaces and peers at wireguard.io ."
msgstr ""
+"Weitere Informationen zu WireGuard-Schnittstellen und Peers unter wireguard.io ."
msgid "GHz"
msgstr "GHz"
@@ -1237,10 +1307,10 @@ msgid "General Setup"
msgstr "Allgemeine Einstellungen"
msgid "General options for opkg"
-msgstr ""
+msgstr "Allgemeine Optionen für Opkg."
msgid "Generate Config"
-msgstr ""
+msgstr "Konfiguration generieren"
msgid "Generate archive"
msgstr "Sicherung erstellen"
@@ -1254,10 +1324,10 @@ msgstr ""
"nicht geändert!"
msgid "Global Settings"
-msgstr ""
+msgstr "Globale Einstellungen"
msgid "Global network options"
-msgstr ""
+msgstr "Globale Netzwerkeinstellungen"
msgid "Go to password configuration..."
msgstr "Zur Passwortkonfiguration..."
@@ -1266,19 +1336,19 @@ msgid "Go to relevant configuration page"
msgstr "Gehe zur entsprechenden Konfigurationsseite"
msgid "Group Password"
-msgstr ""
+msgstr "Gruppenpasswort"
msgid "Guest"
-msgstr ""
+msgstr "Gast"
msgid "HE.net password"
msgstr "HE.net Passwort"
msgid "HE.net username"
-msgstr ""
+msgstr "HE.net Benutzername"
msgid "HT mode (802.11n)"
-msgstr ""
+msgstr "HT-Modus (802.11n)"
msgid "Handler"
msgstr "Handler"
@@ -1287,7 +1357,7 @@ msgid "Hang Up"
msgstr "Auflegen"
msgid "Header Error Code Errors (HEC)"
-msgstr ""
+msgstr "Anzahl Header-Error-Code-Fehler (HEC)"
msgid "Heartbeat"
msgstr ""
@@ -1339,7 +1409,7 @@ msgid "IKE DH Group"
msgstr ""
msgid "IP Addresses"
-msgstr ""
+msgstr "IP-Adressen"
msgid "IP address"
msgstr "IP-Adresse"
@@ -1360,7 +1430,7 @@ msgid "IPv4 and IPv6"
msgstr "IPv4 und IPv6"
msgid "IPv4 assignment length"
-msgstr ""
+msgstr "IPv4 Zuweisungslänge"
msgid "IPv4 broadcast"
msgstr "IPv4 Broadcast"
@@ -1375,7 +1445,7 @@ msgid "IPv4 only"
msgstr "nur IPv4"
msgid "IPv4 prefix"
-msgstr ""
+msgstr "IPv4 Bereich"
msgid "IPv4 prefix length"
msgstr "Länge des IPv4 Präfix"
@@ -1393,13 +1463,13 @@ msgid "IPv6 Firewall"
msgstr "IPv6 Firewall"
msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "IPv6 Nachbarn"
msgid "IPv6 Settings"
-msgstr ""
+msgstr "IPv6 Einstellungen"
msgid "IPv6 ULA-Prefix"
-msgstr ""
+msgstr "IPv6 ULA-Präfix"
msgid "IPv6 WAN Status"
msgstr "IPv6 WAN Status"
@@ -1408,13 +1478,13 @@ msgid "IPv6 address"
msgstr "IPv6 Adresse"
msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
-msgstr ""
+msgstr "Zum lokalen Tunnelendpunkt delegierte IPv6-Adresse (optional)"
msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "IPv6 Zuweisungshinweis"
msgid "IPv6 assignment length"
-msgstr ""
+msgstr "IPv6 Zuweisungslänge"
msgid "IPv6 gateway"
msgstr "IPv6 Gateway"
@@ -1429,11 +1499,17 @@ msgid "IPv6 prefix length"
msgstr "Länge des IPv6 Präfix"
msgid "IPv6 routed prefix"
-msgstr ""
+msgstr "Gerouteter IPv6-Präfix"
+
+msgid "IPv6 suffix"
+msgstr "IPv6 Endung"
msgid "IPv6-Address"
msgstr "IPv6-Adresse"
+msgid "IPv6-PD"
+msgstr "IPv6 Präfixdelegation (PD)"
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1446,11 +1522,11 @@ msgstr "IPv6-über-IPv4 (6to4)"
msgid "Identity"
msgstr "Identität"
-msgid "If checked, 1DES is enaled"
-msgstr ""
+msgid "If checked, 1DES is enabled"
+msgstr "Aktiviert die Benutzung von 1DES, wenn ausgewählt"
msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "Deaktiviert die Verschlüsselung, wenn ausgewählt"
msgid ""
"If specified, mount the device by its UUID instead of a fixed device node"
@@ -1502,6 +1578,9 @@ msgid ""
"In order to prevent unauthorized access to the system, your request has been "
"blocked. Click \"Continue »\" below to return to the previous page."
msgstr ""
+"Um unauthorisierte Zugriffe auf das System zu verhindern, wurde dieser "
+"Request blockiert. Auf \"Weiter\" klicken um zur vorherigen Seite "
+"zurückzukehren."
msgid "Inactivity timeout"
msgstr "Timeout bei Inaktivität"
@@ -1523,6 +1602,8 @@ msgstr "Installieren"
msgid "Install iputils-traceroute6 for IPv6 traceroute"
msgstr ""
+"Bitte \"iputils-traceroute6\" installieren um IPv6-Routenverfolgung nutzen "
+"zu können"
msgid "Install package %q"
msgstr "Installiere Paket %q"
@@ -1536,6 +1617,10 @@ msgstr "Installierte Pakete"
msgid "Interface"
msgstr "Schnittstelle"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+"Das Gerät der Schnittstelle %q wurde automatisch von %q auf %q geändert."
+
msgid "Interface Configuration"
msgstr "Schnittstellenkonfiguration"
@@ -1549,7 +1634,7 @@ msgid "Interface is shutting down..."
msgstr "Schnittstelle fährt herunter..."
msgid "Interface name"
-msgstr ""
+msgstr "Schnittstellenname"
msgid "Interface not present or not connected yet."
msgstr "Schnittstelle existiert nicht oder ist nicht verbunden."
@@ -1564,7 +1649,7 @@ msgid "Interfaces"
msgstr "Schnittstellen"
msgid "Internal"
-msgstr ""
+msgstr "Intern"
msgid "Internal Server Error"
msgstr "Interner Serverfehler"
@@ -1582,6 +1667,9 @@ msgid "Invalid username and/or password! Please try again."
msgstr ""
"Ungültiger Benutzername oder ungültiges Passwort! Bitte erneut versuchen. "
+msgid "Isolate Clients"
+msgstr "Clients isolieren"
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1590,8 +1678,8 @@ msgstr ""
"Das verwendete Image scheint zu groà für den internen Flash-Speicher zu "
"sein. Ãberprüfen Sie die Imagedatei!"
-msgid "Java Script required!"
-msgstr "Java-Script benötigt!"
+msgid "JavaScript required!"
+msgstr "JavaScript benötigt!"
msgid "Join Network"
msgstr "Netzwerk beitreten"
@@ -1600,7 +1688,7 @@ msgid "Join Network: Wireless Scan"
msgstr "Netzwerk beitreten: Suche nach Netzwerken"
msgid "Joining Network: %q"
-msgstr ""
+msgstr "Trete Netzwerk %q bei"
msgid "Keep settings"
msgstr "Konfiguration behalten"
@@ -1645,13 +1733,13 @@ msgid "Language and Style"
msgstr "Sprache und Aussehen"
msgid "Latency"
-msgstr ""
+msgstr "Latenz"
msgid "Leaf"
-msgstr ""
+msgstr "Zweigstelle"
msgid "Lease time"
-msgstr ""
+msgstr "Laufzeit"
msgid "Lease validity time"
msgstr "Lease-Gültigkeitsdauer"
@@ -1659,9 +1747,6 @@ msgstr "Lease-Gültigkeitsdauer"
msgid "Leasefile"
msgstr "Leasedatei"
-msgid "Leasetime"
-msgstr "Laufzeit"
-
msgid "Leasetime remaining"
msgstr "Verbleibende Gültigkeit"
@@ -1679,21 +1764,23 @@ msgstr "Limit"
msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
msgstr ""
+"DNS-Dienste auf direkte lokale Subnetze beschränken um Missbrauch durch "
+"Dritte zu verhindern."
msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "Dienste auf die angegeben Schnittstellen plus Loopback beschränken."
msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "Dämpfung (LATN)"
msgid "Line Mode"
-msgstr ""
+msgstr "Verbindungsmodus"
msgid "Line State"
-msgstr ""
+msgstr "Verbindungsstatus"
msgid "Line Uptime"
-msgstr ""
+msgstr "Verbindungsdauer"
msgid "Link On"
msgstr "Verbindung hergestellt"
@@ -1705,9 +1792,25 @@ msgstr ""
"Liste von DNS -Servern an welche "
"Requests weitergeleitet werden"
-msgid "List of SSH key files for auth"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
msgstr ""
+msgid "List of SSH key files for auth"
+msgstr "Liste der SSH Schlüssel zur Authentifikation"
+
msgid "List of domains to allow RFC1918 responses for"
msgstr "Liste von Domains für welche RFC1918-Antworten erlaubt sind"
@@ -1715,10 +1818,10 @@ msgid "List of hosts that supply bogus NX domain results"
msgstr "Liste von Servern die falsche \"NX Domain\" Antworten liefern"
msgid "Listen Interfaces"
-msgstr ""
+msgstr "Aktive Schnittstellen"
msgid "Listen Port"
-msgstr ""
+msgstr "Aktive Ports"
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
@@ -1738,7 +1841,7 @@ msgid "Loading"
msgstr "Lade"
msgid "Local IP address to assign"
-msgstr ""
+msgstr "Lokale IP-Adresse"
msgid "Local IPv4 address"
msgstr "Lokale IPv4 Adresse"
@@ -1747,7 +1850,7 @@ msgid "Local IPv6 address"
msgstr "Lokale IPv6 Adresse"
msgid "Local Service Only"
-msgstr ""
+msgstr "Nur lokale Dienste"
msgid "Local Startup"
msgstr "Lokales Startskript"
@@ -1786,7 +1889,7 @@ msgid "Localise queries"
msgstr "Lokalisiere Anfragen"
msgid "Locked to channel %s used by: %s"
-msgstr ""
+msgstr "Festgelegt auf Kanal %s, verwendet durch: %s"
msgid "Log output level"
msgstr "Protokolllevel"
@@ -1804,7 +1907,7 @@ msgid "Logout"
msgstr "Abmelden"
msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
+msgstr "Signalverlustsekunden (LOSS)"
msgid "Lowest leased address as offset from the network address."
msgstr "Kleinste vergebene Adresse (Netzwerkadresse + x)"
@@ -1839,16 +1942,13 @@ msgstr "MTU"
msgid ""
"Make sure to clone the root filesystem using something like the commands "
"below:"
-msgstr ""
+msgstr "Das Root-Dateisystem muss mit folgenden Kommandsos vorbereitet werden:"
msgid "Manual"
-msgstr ""
+msgstr "Manuell"
msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-msgid "Maximum Rate"
-msgstr "Höchstübertragungsrate"
+msgstr "Maximal erreichbare Datenrate (ATTNDR)"
msgid "Maximum allowed number of active DHCP leases"
msgstr "Maximal zulässige Anzahl von aktiven DHCP-Leases"
@@ -1869,6 +1969,9 @@ msgid ""
"Maximum length of the name is 15 characters including the automatic protocol/"
"bridge prefix (br-, 6in4-, pppoe- etc.)"
msgstr ""
+"Die maximale Länge des Names ist auf 15 Zeichen beschränkt, abzüglich des "
+"automatischen Protokoll- oder Bridge-Prefixes wie \"br-\" oder \"pppoe-\" "
+"etc."
msgid "Maximum number of leased addresses."
msgstr "Maximal zulässige Anzahl von vergeben DHCP-Adressen"
@@ -1885,26 +1988,26 @@ msgstr "Speichernutzung (%)"
msgid "Metric"
msgstr "Metrik"
-msgid "Minimum Rate"
-msgstr "Mindestübertragungsrate"
-
msgid "Minimum hold time"
msgstr "Minimalzeit zum Halten der Verbindung"
msgid "Mirror monitor port"
-msgstr ""
+msgstr "Spiegel-Monitor-Port"
msgid "Mirror source port"
-msgstr ""
+msgstr "Spiegel-Quell-Port"
msgid "Missing protocol extension for proto %q"
msgstr "Erweiterung für Protokoll %q fehlt"
+msgid "Mobility Domain"
+msgstr "Mobilitätsbereich"
+
msgid "Mode"
msgstr "Modus"
msgid "Model"
-msgstr ""
+msgstr "Modell"
msgid "Modem device"
msgstr "Modemgerät"
@@ -1947,7 +2050,7 @@ msgid "Mount point"
msgstr "Mountpunkt"
msgid "Mount swap not specifically configured"
-msgstr ""
+msgstr "Unkonfigurierte SWAP-Partitionen aktivieren"
msgid "Mounted file systems"
msgstr "Eingehängte Dateisysteme"
@@ -1958,9 +2061,6 @@ msgstr "Nach unten schieben"
msgid "Move up"
msgstr "Nach oben schieben"
-msgid "Multicast Rate"
-msgstr "Multicastrate"
-
msgid "Multicast address"
msgstr "Multicast-Adresse"
@@ -1968,9 +2068,12 @@ msgid "NAS ID"
msgstr "NAS ID"
msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T Modus"
msgid "NAT64 Prefix"
+msgstr "NAT64 Präfix"
+
+msgid "NCM"
msgstr ""
msgid "NDP-Proxy"
@@ -1983,7 +2086,7 @@ msgid "NTP server candidates"
msgstr "NTP Server Kandidaten"
msgid "NTP sync time-out"
-msgstr ""
+msgstr "NTP Synchronisierungstimeout"
msgid "Name"
msgstr "Name"
@@ -2019,7 +2122,7 @@ msgid "No DHCP Server configured for this interface"
msgstr "Kein DHCP Server auf dieser Schnittstelle eingerichtet"
msgid "No NAT-T"
-msgstr ""
+msgstr "Kein NAT-T"
msgid "No chains in this table"
msgstr "Keine Ketten in dieser Tabelle"
@@ -2056,16 +2159,16 @@ msgid "Noise"
msgstr "Rauschen"
msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "Signal-Rausch-Abstand (SNR)"
msgid "Noise:"
msgstr "Noise:"
msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
+msgstr "Nicht-präemptive CRC-Fehler (CRC_P)"
msgid "Non-wildcard"
-msgstr ""
+msgstr "An Schnittstellen binden"
msgid "None"
msgstr "keine"
@@ -2086,7 +2189,7 @@ msgid "Note: Configuration files will be erased."
msgstr "Warnung: Konfigurationsdateien werden gelöscht."
msgid "Note: interface name length"
-msgstr ""
+msgstr "Hinweis: Länge des Namens beachten"
msgid "Notice"
msgstr "Notiz"
@@ -2101,10 +2204,10 @@ msgid "OPKG-Configuration"
msgstr "OPKG-Konfiguration"
msgid "Obfuscated Group Password"
-msgstr ""
+msgstr "Chiffriertes Gruppenpasswort"
msgid "Obfuscated Password"
-msgstr ""
+msgstr "Chiffriertes Passwort"
msgid "Off-State Delay"
msgstr "Verzögerung für Ausschalt-Zustand"
@@ -2146,7 +2249,7 @@ msgid "OpenConnect (CISCO AnyConnect)"
msgstr ""
msgid "Operating frequency"
-msgstr ""
+msgstr "Betriebsfrequenz"
msgid "Option changed"
msgstr "Option geändert"
@@ -2154,41 +2257,69 @@ msgstr "Option geändert"
msgid "Option removed"
msgstr "Option entfernt"
+msgid "Optional"
+msgstr "Optional"
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
+"Optional, angeben um den Standardserver (tic.sixxs.net) zu überschreiben"
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
+"Optional, angeben wenn das SIXSS Konto mehr als einen Tunnel beinhaltet"
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
+"Optional. 32-Bit-Marke für ausgehende, verschlüsselte Pakete. Wert in "
+"hexadezimal mit führendem 0x
angeben."
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
+"Optional. Mögliche Werte: 'eui64', 'random' oder Suffixes wie '::1' oder "
+"'::1:2'. Wenn ein IPv6-Präfix (wie z.B. 'a:b:c:d::') von einem delegierendem "
+"Server empfangen wird, kombiniert das System das Suffix mit dem Präfix um "
+"eine IPv6-Adresse (z.B. 'a:b:c:d::1') für die Schnittstelle zu formen."
-msgid "Optional. Create routes for Allowed IPs for this peer."
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
+"Optional. Base64-kodierter, vorhab ausgetauschter Schlüssel um eine weitere "
+"Ebene an symmetrischer Verschlüsselung für erhöhte Sicherheit hinzuzufügen."
+
+msgid "Optional. Create routes for Allowed IPs for this peer."
+msgstr "Optional. Routen für erlaubte IP-Adressen erzeugen."
msgid ""
"Optional. Host of peer. Names are resolved prior to bringing up the "
"interface."
msgstr ""
+"Optional. Hostname oder Adresse des Verbindungspartners. Namen werden vor "
+"dem Verbindungsaufbau aufgelöst."
msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "Optional. Maximale MTU für Tunnelschnittstellen."
msgid "Optional. Port of peer."
-msgstr ""
+msgstr "Optional. Port-Nummer des Verbindungspartners."
msgid ""
"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
"Recommended value if this device is behind a NAT is 25."
msgstr ""
+"Optional. Sekunden zwischen Keep-Alive-Nachrichten. Standardwert is 0 "
+"(deaktiviert). Der empfohlene Wert für Geräte hinter einem NAT sind 25 "
+"Sekunden."
msgid "Optional. UDP port used for outgoing and incoming packets."
msgstr ""
+"Optional. Benutzte UDP-Port-Nummer für ausgehende und eingehende Pakete."
msgid "Options"
msgstr "Optionen"
@@ -2202,11 +2333,8 @@ msgstr "Aus"
msgid "Outbound:"
msgstr "Ausgehend:"
-msgid "Outdoor Channels"
-msgstr "Funkkanal für den Ausseneinsatz"
-
msgid "Output Interface"
-msgstr ""
+msgstr "Ausgehende Schnittstelle"
msgid "Override MAC address"
msgstr "MAC-Adresse überschreiben"
@@ -2215,13 +2343,13 @@ msgid "Override MTU"
msgstr "MTU-Wert überschreiben"
msgid "Override TOS"
-msgstr ""
+msgstr "TOS-Wert überschreiben"
msgid "Override TTL"
-msgstr ""
+msgstr "TTL-Wert überschreiben"
msgid "Override default interface name"
-msgstr ""
+msgstr "Standard Schnittstellennamen überschreiben"
msgid "Override the gateway in DHCP responses"
msgstr "Gateway-Adresse in DHCP-Antworten überschreiben"
@@ -2254,6 +2382,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2273,10 +2404,10 @@ msgid "PPtP"
msgstr "PPtP"
msgid "PSID offset"
-msgstr ""
+msgstr "PSID-Offset"
msgid "PSID-bits length"
-msgstr ""
+msgstr "PSID-Bitlänge"
msgid "PTM/EFM (Packet Transfer Mode)"
msgstr ""
@@ -2303,14 +2434,17 @@ msgid "Password authentication"
msgstr "Passwortanmeldung"
msgid "Password of Private Key"
-msgstr "Passwort des Privaten Schlüssels"
+msgstr "Passwort des privaten Schlüssels"
msgid "Password of inner Private Key"
-msgstr ""
+msgstr "Password des inneren, privaten Schlüssels"
msgid "Password successfully changed!"
msgstr "Passwort erfolgreich geändert!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Pfad zum CA-Zertifikat"
@@ -2324,22 +2458,22 @@ msgid "Path to executable which handles the button event"
msgstr "Ausführbare Datei welche das Schalter-Ereignis verarbeitet"
msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "Pfad zum inneren CA-Zertifikat"
msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "Pfad zum inneren Client-Zertifikat"
msgid "Path to inner Private Key"
-msgstr ""
+msgstr "Pfad zum inneren, privaten Schlüssel"
msgid "Peak:"
msgstr "Spitze:"
msgid "Peer IP address to assign"
-msgstr ""
+msgstr "Entfernte IP-Adresse"
msgid "Peers"
-msgstr ""
+msgstr "Verbindungspartner"
msgid "Perfect Forward Secrecy"
msgstr ""
@@ -2351,7 +2485,7 @@ msgid "Perform reset"
msgstr "Reset durchführen"
msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "Persistentes Keep-Alive"
msgid "Phy Rate:"
msgstr "Phy-Rate:"
@@ -2378,13 +2512,22 @@ msgid "Port status:"
msgstr "Port-Status:"
msgid "Power Management Mode"
-msgstr ""
+msgstr "Energiesparmodus"
msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
+msgstr "Präemptive CRC-Fehler (CRCP_P)"
+
+msgid "Prefer LTE"
+msgstr "LTE bevorzugen"
+
+msgid "Prefer UMTS"
+msgstr "UMTS bevorzugen"
+
+msgid "Prefix Delegated"
+msgstr "Delegiertes Präfix"
msgid "Preshared Key"
-msgstr ""
+msgstr "Gemeinsamer Schlüssel"
msgid ""
"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -2394,7 +2537,7 @@ msgstr ""
"Fehlschlägen, nutze den Wert 0 um Fehler zu ignorieren"
msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "Verhindert das Binden an diese Schnittstellen"
msgid "Prevents client-to-client communication"
msgstr "Unterbindet Client-Client-Verkehr"
@@ -2403,7 +2546,7 @@ msgid "Prism2/2.5/3 802.11b Wireless Controller"
msgstr "Prism2/2.5/3 802.11b W-LAN Adapter"
msgid "Private Key"
-msgstr ""
+msgstr "Privater Schlüssel"
msgid "Proceed"
msgstr "Fortfahren"
@@ -2412,7 +2555,7 @@ msgid "Processes"
msgstr "Prozesse"
msgid "Profile"
-msgstr ""
+msgstr "Profil"
msgid "Prot."
msgstr "Prot."
@@ -2439,10 +2582,12 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
msgstr "Pseudo Ad-Hoc (ahdemo)"
msgid "Public Key"
-msgstr ""
+msgstr "Ãffentlicher Schlüssel"
msgid "Public prefix routed to this device for distribution to clients."
msgstr ""
+"Zu diesem Gerät geroutetes öffentliches Präfix zur Weiterverteilung an "
+"Clients."
msgid "QMI Cellular"
msgstr ""
@@ -2450,6 +2595,12 @@ msgstr ""
msgid "Quality"
msgstr "Qualität"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2545,6 +2696,9 @@ msgstr "Echtzeitverkehr"
msgid "Realtime Wireless"
msgstr "Echtzeit-WLAN-Signal"
+msgid "Reassociation Deadline"
+msgstr "Reassoziierungsfrist"
+
msgid "Rebind protection"
msgstr "DNS-Rebind-Schutz"
@@ -2564,7 +2718,7 @@ msgid "Receiver Antenna"
msgstr "Empfangsantenne"
msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
+msgstr "Empfohlen. IP-Adresse der WireGuard-Schnittstelle."
msgid "Reconnect this interface"
msgstr "Diese Schnittstelle neu verbinden"
@@ -2575,9 +2729,6 @@ msgstr "Verbinde Schnittstelle neu"
msgid "References"
msgstr "Verweise"
-msgid "Regulatory Domain"
-msgstr "Geltungsbereich (Regulatory Domain)"
-
msgid "Relay"
msgstr "Relay"
@@ -2594,7 +2745,7 @@ msgid "Remote IPv4 address"
msgstr "Entfernte IPv4-Adresse"
msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "Entfernte IPv4-Adresse oder Hostname"
msgid "Remove"
msgstr "Entfernen"
@@ -2609,34 +2760,50 @@ msgid "Replace wireless configuration"
msgstr "Drahtloskonfiguration ersetzen"
msgid "Request IPv6-address"
-msgstr ""
+msgstr "IPv6-Adresse anfordern"
msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "IPv6-Präfix dieser Länge anfordern"
msgid "Require TLS"
-msgstr ""
+msgstr "TLS erfordern"
+
+msgid "Required"
+msgstr "Benötigt"
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
"Wird von bestimmten Internet-Providern benötigt, z.B. Charter mit DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
+msgstr "Benötigt. Base64-kodierter privater Schlüssel für diese Schnittstelle"
+
+msgid "Required. Base64-encoded public key of peer."
msgstr ""
+"Benötigt. Base64-kodierter öffentlicher Schlüssel für diese Schnittstelle"
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
+"Benötigt. IP-Adressen und Präfixe die der Verbindungspartner innerhalb des "
+"Tunnels nutzen darf. Entspricht üblicherweise der Tunnel-IP-Adresse des "
+"Verbindungspartners und den Netzwerken, die dieser durch den Tunnel routet."
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
+"Benötigt die \"volle\" Variante des wpad oder hostapd Paketes und "
+"Unterstützung vom WLAN-Treiber."
msgid ""
"Requires upstream supports DNSSEC; verify unsigned domain responses really "
"come from unsigned domains"
msgstr ""
+"Setzt DNSSEC-Unterstützung im DNS-Zielserver vorraus; überprüft ob "
+"unsignierte Antworten wirklich von unsignierten Domains kommen."
msgid "Reset"
msgstr "Zurücksetzen"
@@ -2675,19 +2842,19 @@ msgid "Root directory for files served via TFTP"
msgstr "Wurzelverzeichnis für über TFTP ausgelieferte Dateien "
msgid "Root preparation"
-msgstr ""
+msgstr "Wurzelverzeichnis erzeugen"
msgid "Route Allowed IPs"
-msgstr ""
+msgstr "Erlaubte IP-Addressen routen"
msgid "Route type"
-msgstr ""
+msgstr "Routen-Typ"
msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr ""
+msgstr "Geroutetes IPv6-Präfix für nachgelagerte Schnittstellen"
msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "Router-Advertisement-Dienst"
msgid "Router Password"
msgstr "Routerpasswort"
@@ -2726,13 +2893,13 @@ msgid "SSH Access"
msgstr "SSH-Zugriff"
msgid "SSH server address"
-msgstr ""
+msgstr "SSH-Server-Adresse"
msgid "SSH server port"
-msgstr ""
+msgstr "SSH-Server-Port"
msgid "SSH username"
-msgstr ""
+msgstr "SSH Benutzername"
msgid "SSH-Keys"
msgstr "SSH-Schlüssel"
@@ -2774,22 +2941,21 @@ msgstr ""
msgid "Separate Clients"
msgstr "Clients isolieren"
-msgid "Separate WDS"
-msgstr "Separates WDS"
-
msgid "Server Settings"
msgstr "Servereinstellungen"
msgid "Server password"
-msgstr ""
+msgstr "Server Passwort"
msgid ""
"Server password, enter the specific password of the tunnel when the username "
"contains the tunnel ID"
msgstr ""
+"Server Passwort bzw. das tunnelspezifische Passwort wenn der Benutzername "
+"eine Tunnel-ID beinhaltet."
msgid "Server username"
-msgstr ""
+msgstr "Server Benutzername"
msgid "Service Name"
msgstr "Service-Name"
@@ -2800,6 +2966,14 @@ msgstr "Service-Typ"
msgid "Services"
msgstr "Dienste"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+"Schnittstelleneigenschaften werden unabhängig vom Link gesetzt (ist die "
+"Option ausgewählt, so werden die Hotplug-Skripte bei Ãnderung nicht "
+"aufgerufen)"
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Zeitsynchronisierung einrichten"
@@ -2808,10 +2982,10 @@ msgid "Setup DHCP Server"
msgstr "DHCP Server einrichten"
msgid "Severely Errored Seconds (SES)"
-msgstr ""
+msgstr "schwerwiegende Fehlersekunden (SES)"
msgid "Short GI"
-msgstr ""
+msgstr "kurzes Guardintervall"
msgid "Show current backup file list"
msgstr "Zeige aktuelle Liste der gesicherten Dateien"
@@ -2826,7 +3000,7 @@ msgid "Signal"
msgstr "Signal"
msgid "Signal Attenuation (SATN)"
-msgstr ""
+msgstr "Signaldämpfung (SATN)"
msgid "Signal:"
msgstr "Signal:"
@@ -2835,7 +3009,7 @@ msgid "Size"
msgstr "GröÃe"
msgid "Size (.ipk)"
-msgstr ""
+msgstr "GröÃe (.ipk)"
msgid "Skip"
msgstr "Ãberspringen"
@@ -2881,7 +3055,7 @@ msgid "Source"
msgstr "Quelle"
msgid "Source routing"
-msgstr ""
+msgstr "Quell-Routing"
msgid "Specifies the button state to handle"
msgstr "Gibt den zu behandelnden Tastenstatus an"
@@ -2907,17 +3081,21 @@ msgstr ""
"werden"
msgid "Specify a TOS (Type of Service)."
-msgstr ""
+msgstr "Setzt einen spezifischen TOS (Type of Service) Wert"
msgid ""
"Specify a TTL (Time to Live) for the encapsulating packet other than the "
"default (64)."
msgstr ""
+"Setzt eine spezifische TTL (Time to Live) für gekapselte Pakete, anstatt der "
+"standardmäÃigen 64."
msgid ""
"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
"bytes)."
msgstr ""
+"Setzt eine spezifische MTU (Maximum Transmission Unit) abweichend von den "
+"standardmäÃigen 1280 Bytes."
msgid "Specify the secret encryption key here."
msgstr "Geben Sie hier den geheimen Netzwerkschlüssel an"
@@ -2943,9 +3121,6 @@ msgstr "Statische Einträge"
msgid "Static Routes"
msgstr "Statische Routen"
-msgid "Static WDS"
-msgstr "Statisches WDS"
-
msgid "Static address"
msgstr "Statische Adresse"
@@ -2972,10 +3147,11 @@ msgid "Submit"
msgstr "Absenden"
msgid "Suppress logging"
-msgstr ""
+msgstr "Logeinträge unterdrücken"
msgid "Suppress logging of the routine operation of these protocols"
msgstr ""
+"Logeinträge für erfolgreiche Operationen dieser Protokolle unterdrücken"
msgid "Swap"
msgstr ""
@@ -2995,6 +3171,8 @@ msgstr "Switch %q (%s)"
msgid ""
"Switch %q has an unknown topology - the VLAN settings might not be accurate."
msgstr ""
+"Der Switch %q hat eine unbekannte Struktur, die VLAN Settings könnten "
+"unpassend sein."
msgid "Switch VLAN"
msgstr ""
@@ -3073,10 +3251,13 @@ msgid ""
"The HE.net endpoint update configuration changed, you must now use the plain "
"username instead of the user ID!"
msgstr ""
+"Die Updateprozedur für HE.net Tunnel-IP-Adrerssen hat sich geändert, statt "
+"der numerischen User-ID muss nun der normale Benutzername angegeben werden."
msgid ""
"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
msgstr ""
+"Die IPv4-Adresse oder der volle Domain Name des entfernten Tunnel-Endpunktes."
msgid ""
"The IPv6 prefix assigned to the provider, usually ends with ::
"
@@ -3093,6 +3274,8 @@ msgstr ""
msgid "The configuration file could not be loaded due to the following error:"
msgstr ""
+"Die Konfigurationsdatei konnte aufgrund der folgenden Fehler nicht geladen "
+"werden:"
msgid ""
"The device file of the memory or partition (e.g."
@@ -3146,7 +3329,7 @@ msgid "The length of the IPv6 prefix in bits"
msgstr "Länge des IPv6 Präfix in Bits"
msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
+msgstr "Die lokale IPv4-Adresse über die der Tunnel aufgebaut wird (optional)."
msgid ""
"The network ports on this device can be combined to several DNS servers."
msgstr ""
+"Diese Datei beinhaltet Zeilen in der Art 'server=/domain/1.2.3.4' oder "
+"'server=1.2.3.4' für domainspezifische oder komplette Ziel-DNS-Server."
msgid ""
"This is a list of shell glob patterns for matching files and directories to "
@@ -3251,6 +3439,9 @@ msgid ""
"This is either the \"Update Key\" configured for the tunnel or the account "
"password if no update key has been configured"
msgstr ""
+"Dies ist entweder der \"Update Key\" der für diesen Tunnel eingerichtet "
+"wurde oder das normale Account-Passwort wenn kein separater Schlüssel "
+"gesetzt wurde."
msgid ""
"This is the content of /etc/rc.local. Insert your own commands here (in "
@@ -3272,11 +3463,13 @@ msgid ""
msgstr "Dies ist der einzige DHCP im lokalen Netz"
msgid "This is the plain username for logging into the account"
-msgstr ""
+msgstr "Das ist der normale Login-Name für den Account."
msgid ""
"This is the prefix routed to you by the tunnel broker for use by clients"
msgstr ""
+"Dies ist das vom Tunnel-Broker geroutete öffentliche Präfix zur Verwendung "
+"durch nachgelagerte Clients."
msgid "This is the system crontab in which scheduled tasks can be defined."
msgstr ""
@@ -3322,7 +3515,7 @@ msgstr ""
"Backup-Archiv hochgeladen werden."
msgid "Tone"
-msgstr ""
+msgstr "Ton"
msgid "Total Available"
msgstr "Gesamt verfügbar"
@@ -3362,19 +3555,16 @@ msgid "Tunnel Interface"
msgstr "Tunnelschnittstelle"
msgid "Tunnel Link"
-msgstr ""
+msgstr "Basisschnittstelle"
msgid "Tunnel broker protocol"
-msgstr ""
+msgstr "Tunnel-Boker-Protokoll"
msgid "Tunnel setup server"
-msgstr ""
+msgstr "Tunnel-Setup-Server"
msgid "Tunnel type"
-msgstr ""
-
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
+msgstr "Tunneltyp"
msgid "Tx-Power"
msgstr "Sendestärke"
@@ -3395,7 +3585,7 @@ msgid "USB Device"
msgstr "USB-Gerät"
msgid "USB Ports"
-msgstr ""
+msgstr "USB Anschlüsse"
msgid "UUID"
msgstr "UUID"
@@ -3404,7 +3594,7 @@ msgid "Unable to dispatch"
msgstr "Kann Anfrage nicht zustellen"
msgid "Unavailable Seconds (UAS)"
-msgstr ""
+msgstr "Nicht verfügbare Sekunden (UAS)"
msgid "Unknown"
msgstr "Unbekannt"
@@ -3416,7 +3606,7 @@ msgid "Unmanaged"
msgstr "Ignoriert"
msgid "Unmount"
-msgstr ""
+msgstr "Aushängen"
msgid "Unsaved Changes"
msgstr "Ungespeicherte Ãnderungen"
@@ -3464,16 +3654,16 @@ msgid "Use TTL on tunnel interface"
msgstr "Benutze TTL auf der Tunnelschnittstelle"
msgid "Use as external overlay (/overlay)"
-msgstr ""
+msgstr "Als externes Overlay benutzen (/overlay)"
msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "Als Root-Dateisystem benutzen (/)"
msgid "Use broadcast flag"
msgstr "Benutze Broadcast-Flag"
msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "Eingebautes IPv6-Management nutzen"
msgid "Use custom DNS servers"
msgstr "Benutze eigene DNS-Server"
@@ -3505,11 +3695,18 @@ msgstr "Belegt"
msgid "Used Key Slot"
msgstr "Benutzer Schlüsselindex"
-msgid "User certificate (PEM encoded)"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
msgstr ""
+"Wird als RADIUS-NAS-ID und als 802.11r R0KH-ID verwendet. Nicht benötigt für "
+"WPA(2)-PSK."
+
+msgid "User certificate (PEM encoded)"
+msgstr "PEM-kodiertes Benutzerzertifikat"
msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "PEM-kodierter Benutzerschlüssel"
msgid "Username"
msgstr "Benutzername"
@@ -3527,34 +3724,34 @@ msgid "VLANs on %q (%s)"
msgstr "VLANs auf %q (%s)"
msgid "VPN Local address"
-msgstr ""
+msgstr "Lokale VPN-Adresse"
msgid "VPN Local port"
-msgstr ""
+msgstr "Lokaler VPN-Port"
msgid "VPN Server"
msgstr "VPN-Server"
msgid "VPN Server port"
-msgstr ""
+msgstr "VPN-Server Port"
msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
+msgstr "SHA1-Hash des VPN-Server-Zertifikates"
msgid "VPNC (CISCO 3000 (and others) VPN)"
msgstr ""
msgid "Vendor"
-msgstr ""
+msgstr "Hersteller"
msgid "Vendor Class to send when requesting DHCP"
msgstr "Bei DHCP-Anfragen gesendete Vendor-Klasse"
msgid "Verbose"
-msgstr ""
+msgstr "Umfangreiche Ausgaben"
msgid "Verbose logging by aiccu daemon"
-msgstr ""
+msgstr "Aktiviert erweiterte Protokollierung durch den AICCU-Prozess"
msgid "Verify"
msgstr "Verifizieren"
@@ -3590,6 +3787,8 @@ msgstr ""
msgid ""
"Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
msgstr ""
+"Warte die angegebene Anzahl an Sekunden auf NTP-Synchronisierung, der Wert 0 "
+"deaktiviert das Warten (optional)"
msgid "Waiting for changes to be applied..."
msgstr "Ãnderungen werden angewandt..."
@@ -3598,22 +3797,25 @@ msgid "Waiting for command to complete..."
msgstr "Der Befehl wird ausgeführt..."
msgid "Waiting for device..."
-msgstr ""
+msgstr "Warte auf Gerät..."
msgid "Warning"
msgstr "Warnung"
msgid "Warning: There are unsaved changes that will get lost on reboot!"
msgstr ""
+"Achtung: Es gibt ungespeicherte Ãnderungen die bei einem Neustart verloren "
+"gehen!"
msgid "Whether to create an IPv6 default route over the tunnel"
msgstr ""
+"Gibt an, ob eine IPv6-Default-Route durch den Tunnel etabliert werden soll"
msgid "Whether to route only packets from delegated prefixes"
-msgstr ""
+msgstr "Gibt an, ob nur Pakete von delegierten Präfixen geroutet werden sollen"
msgid "Width"
-msgstr ""
+msgstr "Breite"
msgid "WireGuard VPN"
msgstr ""
@@ -3655,10 +3857,7 @@ msgid "Write received DNS requests to syslog"
msgstr "Empfangene DNS-Anfragen in das Systemprotokoll schreiben"
msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "XR-Unterstützung"
+msgstr "Systemprotokoll in Datei schreiben"
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
@@ -3671,9 +3870,9 @@ msgstr ""
"werden könnte das Gerät unerreichbar werden!"
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Im Browser muss Java-Script aktiviert sein oder LuCI wird nicht richtig "
+"Im Browser muss JavaScript aktiviert sein oder LuCI wird nicht richtig "
"funktionieren."
msgid ""
@@ -3688,9 +3887,6 @@ msgstr "beliebig"
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr "automatisch"
-
msgid "baseT"
msgstr "baseT"
@@ -3713,7 +3909,7 @@ msgid "disable"
msgstr "deaktivieren"
msgid "disabled"
-msgstr ""
+msgstr "deaktiviert"
msgid "expired"
msgstr "abgelaufen"
@@ -3739,7 +3935,7 @@ msgid "hidden"
msgstr "versteckt"
msgid "hybrid mode"
-msgstr ""
+msgstr "hybrider Modus"
msgid "if target is a network"
msgstr "falls Ziel ein Netzwerk ist"
@@ -3760,10 +3956,10 @@ msgid "local DNS file"
msgstr "Lokale DNS-Datei"
msgid "minimum 1280, maximum 1480"
-msgstr ""
+msgstr "Minimum 1280, Maximum 1480"
-msgid "navigation Navigation"
-msgstr ""
+msgid "minutes"
+msgstr "Minuten"
msgid "no"
msgstr "nein"
@@ -3775,7 +3971,7 @@ msgid "none"
msgstr "keine"
msgid "not present"
-msgstr ""
+msgstr "nicht vorhanden"
msgid "off"
msgstr "aus"
@@ -3787,35 +3983,32 @@ msgid "open"
msgstr "offen"
msgid "overlay"
-msgstr ""
+msgstr "Overlay"
msgid "relay mode"
-msgstr ""
+msgstr "Relay-Modus"
msgid "routed"
msgstr "routed"
msgid "server mode"
-msgstr ""
-
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "Server-Modus"
msgid "stateful-only"
-msgstr ""
+msgstr "nur zustandsorientiert"
msgid "stateless"
-msgstr ""
+msgstr "nur zustandlos"
msgid "stateless + stateful"
-msgstr ""
+msgstr "zustandslos + zustandsorientiert"
msgid "tagged"
msgstr "tagged"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr "Zeiteinheiten (TUs / 1024 ms) [1000-65535]"
+
msgid "unknown"
msgstr "unbekannt"
@@ -3837,6 +4030,66 @@ msgstr "ja"
msgid "« Back"
msgstr "« Zurück"
+#~ msgid "Leasetime"
+#~ msgstr "Laufzeit"
+
+#~ msgid "Optional."
+#~ msgstr "Optional"
+
+#~ msgid "AuthGroup"
+#~ msgstr "Berechtigungsgruppe"
+
+#~ msgid "automatic"
+#~ msgstr "automatisch"
+
+#~ msgid "AR Support"
+#~ msgstr "AR-Unterstützung"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s W-LAN Adapter"
+
+#~ msgid "Background Scan"
+#~ msgstr "Hintergrundscan"
+
+#~ msgid "Compression"
+#~ msgstr "Kompression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Deaktiviere Hardware-Beacon Zeitgeber"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Scan-Anforderungen nicht beantworten"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Schnelle Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Höchstübertragungsrate"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Mindestübertragungsrate"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicastrate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Funkkanal für den Ausseneinsatz"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Geltungsbereich (Regulatory Domain)"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separates WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statisches WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Modus"
+
+#~ msgid "XR Support"
+#~ msgstr "XR-Unterstützung"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr ""
#~ "Erzeugt ein zusätzliches Netzwerk wenn diese Option nicht ausgewählt ist"
diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po
index 712b0247d1..331d969055 100644
--- a/modules/luci-base/po/el/base.po
+++ b/modules/luci-base/po/el/base.po
@@ -52,12 +52,36 @@ msgstr "ΦοÏÏίο 1 λεÏÏοÏ:"
msgid "15 Minute Load:"
msgstr "ΦοÏÏίο 15 λεÏÏÏν:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "ΦοÏÏίο 5 λεÏÏÏν:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -128,6 +152,11 @@ msgstr "Îεγ. ÏÎ»Î®Î¸Î¿Ï ÏαÏ
ÏÏÏ
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -146,9 +175,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Î¥ÏοÏÏήÏιξη AR"
-
msgid "ARP retry threshold"
msgstr "ÎÏιο εÏαναδοκιμÏν ARP"
@@ -397,15 +423,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "ΣÏ
νδεδεμÎνοι ΣÏαθμοί"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "ÎξοÏ
ÏιοδÏÏηÏη"
@@ -478,9 +498,6 @@ msgstr "ΠίÏÏ ÏÏÎ¿Ï ÎµÏιÏκÏÏηÏη"
msgid "Back to scan results"
msgstr "ΠίÏÏ ÏÏα αÏοÏελÎÏμαÏα ÏάÏÏÏηÏ"
-msgid "Background Scan"
-msgstr "ΣάÏÏÏη ΠαÏαÏκηνίοÏ
"
-
msgid "Backup / Flash Firmware"
msgstr "ÎνÏίγÏαÏο αÏÏÎ±Î»ÎµÎ¯Î±Ï / ÎγγÏαÏή FLASH ΥλικολογιÏμικÏ"
@@ -651,8 +668,12 @@ msgstr "ÎνÏολή"
msgid "Common Configuration"
msgstr "Îοινή ΠαÏαμεÏÏοÏοίηÏη"
-msgid "Compression"
-msgstr "ΣÏ
μÏίεÏη"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "ΠαÏαμεÏÏοÏοίηÏη"
@@ -873,12 +894,12 @@ msgstr "ÎÏενεÏγοÏοίηÏη ÏÏ
θμίÏεÏν DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "ÎÏενεÏγοÏοίηÏη ÏÏονιÏÏή HW-Beacon"
-
msgid "Disabled"
msgstr "ÎÏενεÏγοÏοιημÎνο"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "ÎγνÏηÏε ÏÎ¹Ï Î±ÏανÏήÏÎµÎ¹Ï Î±Î½Î¿Î´Î¹ÎºÎ®Ï ÏÎ¿Î®Ï RFC1918"
@@ -921,9 +942,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr "Îα μην ÏÏÎλνονÏαι αÏανÏήÏÎµÎ¹Ï Ïε probes"
-
msgid "Domain required"
msgstr "ÎÏαίÏηÏη για Ïνομα ÏομÎα"
@@ -1030,6 +1048,9 @@ msgstr "ÎνεÏγοÏοίηÏη λειÏοÏ
ÏÎ³Î¯Î±Ï VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "ÎνεÏγοÏοίηÏη learning and aging"
@@ -1054,6 +1075,11 @@ msgstr "ÎνεÏγοÏοίηÏη/ÎÏενεÏγοÏοίηÏη"
msgid "Enabled"
msgstr "ÎνεÏγοÏοιημÎνο"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1103,6 +1129,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "ÎξÏÏεÏικÏÏ ÎµÎ¾Ï
ÏηÏεÏηÏÎ®Ï ÎºÎ±ÏαγÏαÏÎ®Ï ÏÏ
ÏÏήμαÏοÏ"
@@ -1115,9 +1147,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "ÎÏήγοÏα ΠλαίÏια"
-
msgid "File"
msgstr "ÎÏÏείο"
@@ -1153,6 +1182,9 @@ msgstr "ΤÎλοÏ"
msgid "Firewall"
msgstr "ΤείÏÎ¿Ï Î ÏοÏÏαÏίαÏ"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "ΡÏ
θμίÏÎµÎ¹Ï Î¤ÎµÎ¯ÏοÏ
Ï Î ÏοÏÏαÏίαÏ"
@@ -1199,6 +1231,9 @@ msgstr "ÎÏιβολή TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "ÎÏιβολή TKIP και CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1445,9 +1480,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1460,7 +1501,7 @@ msgstr ""
msgid "Identity"
msgstr "ΤαÏ
ÏÏÏηÏα"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1552,6 +1593,9 @@ msgstr "ÎγκαÏεÏÏημÎνα ÏακÎÏα"
msgid "Interface"
msgstr "ÎιεÏαÏή"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ΠαÏαμεÏÏοÏοίηÏη ÎιεÏαÏήÏ"
@@ -1597,6 +1641,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "ÎκÏ
Ïο Ïνομα ÏÏήÏÏη και/ή κÏδικÏÏ ÏÏÏÏβαÏηÏ! ΠαÏÎ±ÎºÎ±Î»Ï ÏÏοÏÏαθήÏÏε ξανά."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1605,8 +1652,8 @@ msgstr ""
"ΦαίνεÏαι ÏÏÏ ÏÏοÏÏαθείÏε να ÏλαÏάÏεÏε μια εικÏνα ÏοÏ
δεν ÏÏÏάει ÏÏην μνήμη "
"flash, ÏαÏÎ±ÎºÎ±Î»Ï ÎµÏιβεβαιÏÏÏε Ïο αÏÏείο εικÏναÏ!"
-msgid "Java Script required!"
-msgstr "ÎÏαιÏείÏαι Javascript!"
+msgid "JavaScript required!"
+msgstr "ÎÏαιÏείÏαι JavaScript!"
msgid "Join Network"
msgstr ""
@@ -1674,9 +1721,6 @@ msgstr ""
msgid "Leasefile"
msgstr "ÎÏÏείο Leases"
-msgid "Leasetime"
-msgstr "ΧÏÏÎ½Î¿Ï Lease"
-
msgid "Leasetime remaining"
msgstr "Î¥ÏÏλοιÏο ÏÏÏνοÏ
Lease"
@@ -1718,6 +1762,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1850,9 +1910,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "ÎÎγιÏÏÎ¿Ï Î¡Ï
θμÏÏ"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "ÎÎγιÏÏÎ¿Ï ÎµÏιÏÏεÏÏÎ¼ÎµÎ½Î¿Ï Î±ÏιθμÏÏ ÎµÎ½ÎµÏγÏν DHCP leases"
@@ -1889,9 +1946,6 @@ msgstr "ΧÏήÏη ÎÎ½Î®Î¼Î·Ï (%)"
msgid "Metric"
msgstr "ÎÎÏÏο"
-msgid "Minimum Rate"
-msgstr "ÎλάÏιÏÏÎ¿Ï Î¡Ï
θμÏÏ"
-
msgid "Minimum hold time"
msgstr "ÎλάÏιÏÏÎ¿Ï ÏÏÏÎ½Î¿Ï ÎºÏάÏηÏηÏ"
@@ -1904,6 +1958,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "ÎειÏοÏ
Ïγία"
@@ -1963,9 +2020,6 @@ msgstr "ÎεÏακίνηÏη κάÏÏ"
msgid "Move up"
msgstr "ÎεÏακίνηÏη ÏάνÏ"
-msgid "Multicast Rate"
-msgstr "ΡÏ
θμÏÏ Multicast"
-
msgid "Multicast address"
msgstr "ÎιεÏθÏ
νÏη Multicast"
@@ -1978,6 +2032,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2158,18 +2215,30 @@ msgstr "ΠεÏιλογή άλλαξε"
msgid "Option removed"
msgstr "ΠεÏιλογή αÏαιÏÎθηκε"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2206,9 +2275,6 @@ msgstr "ÎξοδοÏ"
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr "ÎξÏÏεÏικά Îανάλια"
-
msgid "Output Interface"
msgstr ""
@@ -2256,6 +2322,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2313,6 +2382,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "ΠκÏδικÏÏ ÏÏÏÏβαÏÎ·Ï Î¬Î»Î»Î±Î¾Îµ εÏιÏÏ
ÏÏÏ!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "ÎιαδÏομή για ΠιÏÏοÏοιηÏÎ¹ÎºÏ CA"
@@ -2385,6 +2457,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2451,6 +2532,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2532,6 +2619,9 @@ msgstr "ÎίνηÏη ÏÏαγμαÏÎ¹ÎºÎ¿Ï ÏÏÏνοÏ
"
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2562,9 +2652,6 @@ msgstr "ÎÏαναÏÏνδεÏη ÏÎ·Ï Î´Î¹ÎµÏαÏήÏ"
msgid "References"
msgstr "ÎναÏοÏÎÏ"
-msgid "Regulatory Domain"
-msgstr "ΡÏ
θμιÏÏική ΠεÏιοÏή"
-
msgid "Relay"
msgstr ""
@@ -2604,19 +2691,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2760,9 +2855,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "ÎÏομÏνÏÏη ΠελαÏÏν"
-msgid "Separate WDS"
-msgstr "ÎεÏÏÏιÏÏά WDS"
-
msgid "Server Settings"
msgstr "ΡÏ
θμίÏÎµÎ¹Ï ÎξÏ
ÏηÏεÏηÏή"
@@ -2786,6 +2878,11 @@ msgstr "ÎÎ¯Î´Î¿Ï Î¥ÏηÏεÏίαÏ"
msgid "Services"
msgstr "Î¥ÏηÏεÏίεÏ"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2922,9 +3019,6 @@ msgstr "ΣÏαÏικά Leases"
msgid "Static Routes"
msgstr "ΣÏαÏικÎÏ ÎιαδÏομÎÏ"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr "ΣÏαÏική διεÏθÏ
νÏη"
@@ -3309,9 +3403,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "ÎειÏοÏ
Ïγία Turbo"
-
msgid "Tx-Power"
msgstr "ÎÏÏÏÏ ÎκÏομÏήÏ"
@@ -3434,6 +3525,11 @@ msgstr "Σε ÏÏήÏη"
msgid "Used Key Slot"
msgstr "ΧÏηÏιμοÏοιοÏμενη Î¥ÏοδοÏή ÎλειδιοÏ"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3584,9 +3680,6 @@ msgstr "ÎαÏαγÏαÏή ÏÏν ληÏθÎνÏÏν DNS αιÏήÏεÏν ÏÏο
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Î¥ÏοÏÏήÏιξη XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3598,7 +3691,7 @@ msgstr ""
"ÏÏÏÏ Ïο \"network\", η ÏÏ
ÏκεÏ
ή ÏÎ±Ï Î¼ÏοÏεί να καÏαÏÏεί μη-ÏÏοÏβάÏιμη! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3613,10 +3706,6 @@ msgstr ""
msgid "auto"
msgstr "αÏ
ÏÏμαÏα"
-#, fuzzy
-msgid "automatic"
-msgstr "ÏÏαÏικÏ"
-
msgid "baseT"
msgstr ""
@@ -3691,7 +3780,7 @@ msgstr "ÏοÏÎ¹ÎºÏ Î±ÏÏείο DNS "
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3727,12 +3816,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3745,6 +3828,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3766,6 +3852,55 @@ msgstr "ναι"
msgid "« Back"
msgstr "« ΠίÏÏ"
+#~ msgid "Leasetime"
+#~ msgstr "ΧÏÏÎ½Î¿Ï Lease"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "ÏÏαÏικÏ"
+
+#~ msgid "AR Support"
+#~ msgstr "Î¥ÏοÏÏήÏιξη AR"
+
+#~ msgid "Background Scan"
+#~ msgstr "ΣάÏÏÏη ΠαÏαÏκηνίοÏ
"
+
+#~ msgid "Compression"
+#~ msgstr "ΣÏ
μÏίεÏη"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "ÎÏενεÏγοÏοίηÏη ÏÏονιÏÏή HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Îα μην ÏÏÎλνονÏαι αÏανÏήÏÎµÎ¹Ï Ïε probes"
+
+#~ msgid "Fast Frames"
+#~ msgstr "ÎÏήγοÏα ΠλαίÏια"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "ÎÎγιÏÏÎ¿Ï Î¡Ï
θμÏÏ"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "ÎλάÏιÏÏÎ¿Ï Î¡Ï
θμÏÏ"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "ΡÏ
θμÏÏ Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "ÎξÏÏεÏικά Îανάλια"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "ΡÏ
θμιÏÏική ΠεÏιοÏή"
+
+#~ msgid "Separate WDS"
+#~ msgstr "ÎεÏÏÏιÏÏά WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "ÎειÏοÏ
Ïγία Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Î¥ÏοÏÏήÏιξη XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Îνα εÏιÏλÎον δίκÏÏ
ο θα δημιοÏ
Ïγηθεί εάν αÏ
ÏÏ Î±Ïεθεί κενÏ"
diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po
index 2d8e78653e..978f15d90a 100644
--- a/modules/luci-base/po/en/base.po
+++ b/modules/luci-base/po/en/base.po
@@ -52,12 +52,36 @@ msgstr "1 Minute Load:"
msgid "15 Minute Load:"
msgstr "15 Minute Load:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "5 Minute Load:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -128,6 +152,11 @@ msgstr "Max. concurrent queries"
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -146,9 +175,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "AR Support"
-
msgid "ARP retry threshold"
msgstr "ARP retry threshold"
@@ -388,15 +414,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Associated Stations"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Authentication"
@@ -469,9 +489,6 @@ msgstr "Back to overview"
msgid "Back to scan results"
msgstr "Back to scan results"
-msgid "Background Scan"
-msgstr "Background Scan"
-
msgid "Backup / Flash Firmware"
msgstr "Backup / Flash Firmware"
@@ -638,8 +655,12 @@ msgstr "Command"
msgid "Common Configuration"
msgstr "Common Configuration"
-msgid "Compression"
-msgstr "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuration"
@@ -859,12 +880,12 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Disable HW-Beacon timer"
-
msgid "Disabled"
msgstr "Disabled"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr ""
@@ -903,9 +924,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr "Do not send probe responses"
-
msgid "Domain required"
msgstr "Domain required"
@@ -1009,6 +1027,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1033,6 +1054,11 @@ msgstr "Enable/Disable"
msgid "Enabled"
msgstr "Enabled"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Enables the Spanning Tree Protocol on this bridge"
@@ -1079,6 +1105,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1091,9 +1123,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
msgid "File"
msgstr ""
@@ -1129,6 +1158,9 @@ msgstr ""
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Firewall Settings"
@@ -1174,6 +1206,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1419,9 +1454,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1434,7 +1475,7 @@ msgstr ""
msgid "Identity"
msgstr "Identity"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1521,6 +1562,9 @@ msgstr ""
msgid "Interface"
msgstr "Interface"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1566,6 +1610,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Invalid username and/or password! Please try again."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1574,7 +1621,7 @@ msgstr ""
"It appears that you try to flash an image that does not fit into the flash "
"memory, please verify the image file!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1643,9 +1690,6 @@ msgstr ""
msgid "Leasefile"
msgstr "Leasefile"
-msgid "Leasetime"
-msgstr "Leasetime"
-
msgid "Leasetime remaining"
msgstr "Leasetime remaining"
@@ -1687,6 +1731,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1819,9 +1879,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Maximum Rate"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1857,9 +1914,6 @@ msgstr "Memory usage (%)"
msgid "Metric"
msgstr "Metric"
-msgid "Minimum Rate"
-msgstr "Minimum Rate"
-
msgid "Minimum hold time"
msgstr "Minimum hold time"
@@ -1872,6 +1926,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mode"
@@ -1930,9 +1987,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
msgid "Multicast address"
msgstr ""
@@ -1945,6 +1999,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2125,18 +2182,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2173,9 +2242,6 @@ msgstr "Out"
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr "Outdoor Channels"
-
msgid "Output Interface"
msgstr ""
@@ -2223,6 +2289,9 @@ msgstr "PID"
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2280,6 +2349,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Path to CA-Certificate"
@@ -2352,6 +2424,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2417,6 +2498,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2498,6 +2585,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2528,9 +2618,6 @@ msgstr ""
msgid "References"
msgstr "References"
-msgid "Regulatory Domain"
-msgstr "Regulatory Domain"
-
msgid "Relay"
msgstr ""
@@ -2570,19 +2657,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2724,9 +2819,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Separate Clients"
-msgid "Separate WDS"
-msgstr "Separate WDS"
-
msgid "Server Settings"
msgstr ""
@@ -2750,6 +2842,11 @@ msgstr ""
msgid "Services"
msgstr "Services"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2884,9 +2981,6 @@ msgstr "Static Leases"
msgid "Static Routes"
msgstr "Static Routes"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3266,9 +3360,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
msgid "Tx-Power"
msgstr ""
@@ -3391,6 +3482,11 @@ msgstr "Used"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3543,9 +3639,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "XR Support"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3556,7 +3649,7 @@ msgstr ""
"scripts like \"network\", your device might become inaccessible! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3571,9 +3664,6 @@ msgstr ""
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr "automatic"
-
msgid "baseT"
msgstr ""
@@ -3647,7 +3737,7 @@ msgstr "local DNS file"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3683,12 +3773,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3701,6 +3785,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3722,6 +3809,54 @@ msgstr ""
msgid "« Back"
msgstr "« Back"
+#~ msgid "Leasetime"
+#~ msgstr "Leasetime"
+
+#~ msgid "automatic"
+#~ msgstr "automatic"
+
+#~ msgid "AR Support"
+#~ msgstr "AR Support"
+
+#~ msgid "Background Scan"
+#~ msgstr "Background Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Compression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Disable HW-Beacon timer"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Do not send probe responses"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maximum Rate"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimum Rate"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Outdoor Channels"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Regulatory Domain"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separate WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Mode"
+
+#~ msgid "XR Support"
+#~ msgstr "XR Support"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "An additional network will be created if you leave this unchecked."
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index ba2928004c..5d2fac27cd 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -52,12 +52,36 @@ msgstr "Carga a 1 minuto:"
msgid "15 Minute Load:"
msgstr "Carga a 15 minutos:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Carga a 5 minutos:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
"BSSID "
@@ -130,6 +154,11 @@ msgstr "Máximo número de consultas concurrentes"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -148,9 +177,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Soporte a AR"
-
msgid "ARP retry threshold"
msgstr "Umbral de reintento ARP"
@@ -394,15 +420,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Estaciones asociadas"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador inalámbrico 802.11%s Atheros"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autentificación"
@@ -475,9 +495,6 @@ msgstr "Volver al resumen"
msgid "Back to scan results"
msgstr "Volver a resultados de la exploración"
-msgid "Background Scan"
-msgstr "Exploración en segundo plano"
-
msgid "Backup / Flash Firmware"
msgstr "Copia de seguridad / Grabar firmware"
@@ -647,8 +664,12 @@ msgstr "Comando"
msgid "Common Configuration"
msgstr "Configuración común"
-msgid "Compression"
-msgstr "Compresión"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuración"
@@ -870,12 +891,12 @@ msgstr "Desactivar configuración de DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Desactivar el temporizador de baliza hardware"
-
msgid "Disabled"
msgstr "Desactivar"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "Descartar respuestas RFC1918 salientes"
@@ -916,9 +937,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "No retransmitir búsquedas inversas para redes locales"
-msgid "Do not send probe responses"
-msgstr "No enviar respuestas de prueba"
-
msgid "Domain required"
msgstr "Dominio requerido"
@@ -1024,6 +1042,9 @@ msgstr "Activar funcionalidad VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Activar aprendizaje y envejecimiento"
@@ -1048,6 +1069,11 @@ msgstr "Activar/Desactivar"
msgid "Enabled"
msgstr "Activado"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Activa el protocol STP en este puente"
@@ -1097,6 +1123,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Servidor externo de registro del sistema"
@@ -1109,9 +1141,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Tramas rápidas"
-
msgid "File"
msgstr "Fichero"
@@ -1147,6 +1176,9 @@ msgstr "Terminar"
msgid "Firewall"
msgstr "Cortafuegos"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Configuración del cortafuegos"
@@ -1192,6 +1224,9 @@ msgstr "Forzar TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forzar TKIP y CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1441,9 +1476,15 @@ msgstr "Longitud de prefijo IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "Dirección IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-en-IPv4 (RFC4213)"
@@ -1456,7 +1497,7 @@ msgstr "IPv6-sobre-IPv4 (6to4)"
msgid "Identity"
msgstr "Identidad"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1550,6 +1591,9 @@ msgstr "Paquetes instalados"
msgid "Interface"
msgstr "Interfaz"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configuración del interfaz"
@@ -1596,6 +1640,9 @@ msgid "Invalid username and/or password! Please try again."
msgstr ""
"¡Nombre de usuario o contraseña no válidos!. Pruebe de nuevo, por favor."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1604,7 +1651,7 @@ msgstr ""
"Parece que está intentando grabar una imagen de firmware mayor que la "
"memoria flash de su equipo. ¡Por favor, verifique el archivo!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "¡Se necesita JavaScript!"
msgid "Join Network"
@@ -1673,9 +1720,6 @@ msgstr "Tiempo de validación de cesión"
msgid "Leasefile"
msgstr "Archivo de cesiones"
-msgid "Leasetime"
-msgstr "Tiempo de cesión"
-
msgid "Leasetime remaining"
msgstr "Tiempo de cesión restante"
@@ -1719,6 +1763,22 @@ msgstr ""
"Lista de servidores DNS a los que "
"enviar solicitudes"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1858,9 +1918,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Ratio Máximo"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Número máximo de cesiones DHCP activas"
@@ -1896,9 +1953,6 @@ msgstr "Uso de memoria (%)"
msgid "Metric"
msgstr "Métrica"
-msgid "Minimum Rate"
-msgstr "Ratio mÃnimo"
-
msgid "Minimum hold time"
msgstr "Pausa mÃnima de espera"
@@ -1911,6 +1965,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Extensión de protocolo faltante para %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Modo"
@@ -1969,9 +2026,6 @@ msgstr "Bajar"
msgid "Move up"
msgstr "Subir"
-msgid "Multicast Rate"
-msgstr "Ratio multicast"
-
msgid "Multicast address"
msgstr "Dirección multicast"
@@ -1984,6 +2038,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2163,18 +2220,30 @@ msgstr "Opción cambiada"
msgid "Option removed"
msgstr "Opción eliminada"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2211,9 +2280,6 @@ msgstr "Salida"
msgid "Outbound:"
msgstr "Saliente:"
-msgid "Outdoor Channels"
-msgstr "Canales al aire libre"
-
msgid "Output Interface"
msgstr ""
@@ -2263,6 +2329,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2320,6 +2389,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "¡Contraseña cambiada!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Ruta al Certificado CA"
@@ -2392,6 +2464,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2459,6 +2540,12 @@ msgstr ""
msgid "Quality"
msgstr "Calidad"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2552,6 +2639,9 @@ msgstr "Tráfico en tiempo real"
msgid "Realtime Wireless"
msgstr "Red inalámbrica en tiempo real"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Protección contra reasociación"
@@ -2582,9 +2672,6 @@ msgstr "Reconectando la interfaz"
msgid "References"
msgstr "Referencias"
-msgid "Regulatory Domain"
-msgstr "Dominio Regulador"
-
msgid "Relay"
msgstr "Relé"
@@ -2624,19 +2711,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Necesario para ciertos ISPs, por ejemplo Charter con DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2780,9 +2875,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Aislar clientes"
-msgid "Separate WDS"
-msgstr "WDS aislado"
-
msgid "Server Settings"
msgstr "Configuración del servidor"
@@ -2806,6 +2898,11 @@ msgstr "Tipo de servicio"
msgid "Services"
msgstr "Servicios"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Sincronización horaria"
@@ -2949,9 +3046,6 @@ msgstr "Cesiones estáticas"
msgid "Static Routes"
msgstr "Rutas estáticas"
-msgid "Static WDS"
-msgstr "WDS estático"
-
msgid "Static address"
msgstr "Dirección estática"
@@ -3375,9 +3469,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
msgid "Tx-Power"
msgstr "Potencia-TX"
@@ -3507,6 +3598,11 @@ msgstr "Usado"
msgid "Used Key Slot"
msgstr "Espacio de clave usado"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3659,9 +3755,6 @@ msgstr "Escribir las peticiones de DNS recibidas en el registro del sistema"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Soporte de XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3673,9 +3766,9 @@ msgstr ""
"inaccesible!. "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Debe activar Javascript en su navegador o LuCI no funcionará correctamente."
+"Debe activar JavaScript en su navegador o LuCI no funcionará correctamente."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3689,10 +3782,6 @@ msgstr "cualquiera"
msgid "auto"
msgstr "auto"
-#, fuzzy
-msgid "automatic"
-msgstr "estático"
-
msgid "baseT"
msgstr "baseT"
@@ -3766,7 +3855,7 @@ msgstr "Archvo DNS local"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3802,12 +3891,6 @@ msgstr "enrutado"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3820,6 +3903,9 @@ msgstr ""
msgid "tagged"
msgstr "marcado"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "desconocido"
@@ -3841,6 +3927,61 @@ msgstr "sÃ"
msgid "« Back"
msgstr "« Volver"
+#~ msgid "Leasetime"
+#~ msgstr "Tiempo de cesión"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "estático"
+
+#~ msgid "AR Support"
+#~ msgstr "Soporte a AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador inalámbrico 802.11%s Atheros"
+
+#~ msgid "Background Scan"
+#~ msgstr "Exploración en segundo plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compresión"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desactivar el temporizador de baliza hardware"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "No enviar respuestas de prueba"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Tramas rápidas"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Ratio Máximo"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Ratio mÃnimo"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Ratio multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canales al aire libre"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Dominio Regulador"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS aislado"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Soporte de XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Se creará una red adicional si deja esto desmarcado."
diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po
index fa25948536..ee4f0fb8ad 100644
--- a/modules/luci-base/po/fr/base.po
+++ b/modules/luci-base/po/fr/base.po
@@ -52,12 +52,36 @@ msgstr "Charge sur 1 minute :"
msgid "15 Minute Load:"
msgstr "Charge sur 15 minutes :"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Charge sur 5 minutes :"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -129,6 +153,11 @@ msgstr "Maximum de requêtes concurrentes"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -147,9 +176,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Gestion du mode AR"
-
msgid "ARP retry threshold"
msgstr "Niveau de ré-essai ARP"
@@ -400,15 +426,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Ãquipements associés"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Contrôleur sans fil Atheros 802.11%s "
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Authentification"
@@ -481,9 +501,6 @@ msgstr "Retour à la vue générale"
msgid "Back to scan results"
msgstr "Retour aux résultats de la recherche"
-msgid "Background Scan"
-msgstr "Recherche en arrière-plan"
-
msgid "Backup / Flash Firmware"
msgstr "Sauvegarde / Mise à jour du micrologiciel"
@@ -654,8 +671,12 @@ msgstr "Commande"
msgid "Common Configuration"
msgstr "Configuration commune"
-msgid "Compression"
-msgstr "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuration"
@@ -877,12 +898,12 @@ msgstr "Désactiver la configuration DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Désactiver l'émission périodique de balises wifi (« HW-Beacon »)"
-
msgid "Disabled"
msgstr "Désactivé"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "Jeter les réponses en RFC1918 amont"
@@ -926,9 +947,6 @@ msgid "Do not forward reverse lookups for local networks"
msgstr ""
"Ne pas transmettre les requêtes de recherche inverse pour les réseaux locaux"
-msgid "Do not send probe responses"
-msgstr "Ne pas envoyer de réponses de test"
-
msgid "Domain required"
msgstr "Domaine nécessaire"
@@ -1034,6 +1052,9 @@ msgstr "Acviter la gestion des VLANs"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Activer l'apprentissage et la péremption"
@@ -1058,6 +1079,11 @@ msgstr "Activer/Désactiver"
msgid "Enabled"
msgstr "Activé"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
"Activer le protocole STP sur "
@@ -1109,6 +1135,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Serveur distant de journaux système"
@@ -1121,9 +1153,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Trames rapides"
-
msgid "File"
msgstr "Fichier"
@@ -1159,6 +1188,9 @@ msgstr "Terminer"
msgid "Firewall"
msgstr "Pare-feu"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Paramètres du pare-feu"
@@ -1204,6 +1236,9 @@ msgstr "Forcer TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forcer TKIPÂ et CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1453,9 +1488,15 @@ msgstr "longueur du préfixe IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "Adresse IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6 dans IPv4 (RFC 4213)"
@@ -1468,7 +1509,7 @@ msgstr "IPv6 sur IPv4 (6 vers 4)"
msgid "Identity"
msgstr "Identité"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1558,6 +1599,9 @@ msgstr "Paquets installés"
msgid "Interface"
msgstr "Interface"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configuration de l'interface"
@@ -1606,6 +1650,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Nom d'utilisateur et/ou mot de passe invalides ! Réessayez !"
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1615,7 +1662,7 @@ msgstr ""
"tient pas dans sa mémoire flash, vérifiez s'il vous plait votre fichier-"
"image !"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "Nécessite un Script Java !"
msgid "Join Network"
@@ -1684,9 +1731,6 @@ msgstr "Durée de validité d'un bail"
msgid "Leasefile"
msgstr "Fichier de baux"
-msgid "Leasetime"
-msgstr "Durée du bail"
-
msgid "Leasetime remaining"
msgstr "Durée de validité"
@@ -1730,6 +1774,22 @@ msgstr ""
"Liste des serveurs auquels sont transmis les requêtes DNS "
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1872,9 +1932,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Débit maximum"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Nombre maximum de baux DHCP actifs"
@@ -1910,9 +1967,6 @@ msgstr "Utilisation Mémoire (%)"
msgid "Metric"
msgstr "Metrique"
-msgid "Minimum Rate"
-msgstr "Débit minimum"
-
msgid "Minimum hold time"
msgstr "Temps de maintien mimimum"
@@ -1925,6 +1979,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Extention de protocole manquante pour le proto %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mode"
@@ -1983,9 +2040,6 @@ msgstr "Descendre"
msgid "Move up"
msgstr "Monter"
-msgid "Multicast Rate"
-msgstr "Débit multidiffusion"
-
msgid "Multicast address"
msgstr "Adresse multidiffusion"
@@ -1998,6 +2052,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2176,18 +2233,30 @@ msgstr "Option modifiée"
msgid "Option removed"
msgstr "Option retirée"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2224,9 +2293,6 @@ msgstr "Sortie"
msgid "Outbound:"
msgstr "Extérieur :"
-msgid "Outdoor Channels"
-msgstr "Canaux en extérieur"
-
msgid "Output Interface"
msgstr ""
@@ -2276,6 +2342,9 @@ msgstr "PID"
msgid "PIN"
msgstr "code PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2333,6 +2402,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Mot de passe changé avec succès !"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Chemin de la CA"
@@ -2405,6 +2477,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2472,6 +2553,12 @@ msgstr ""
msgid "Quality"
msgstr "Qualitée"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2565,6 +2652,9 @@ msgstr "Trafic temps-réel"
msgid "Realtime Wireless"
msgstr "Qualité de réception actuelle"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Protection contre l'attaque « rebind »"
@@ -2595,9 +2685,6 @@ msgstr "Reconnecte cet interface"
msgid "References"
msgstr "Références"
-msgid "Regulatory Domain"
-msgstr "Domaine de certification"
-
msgid "Relay"
msgstr "Relais"
@@ -2637,19 +2724,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Nécessaire avec certains FAIs, par ex. : Charter avec DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2794,9 +2889,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Isoler les clients"
-msgid "Separate WDS"
-msgstr "WDS séparé"
-
msgid "Server Settings"
msgstr "Paramètres du serveur"
@@ -2820,6 +2912,11 @@ msgstr "Type du service"
msgid "Services"
msgstr "Services"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Configurer la synchronisation de l'heure"
@@ -2961,9 +3058,6 @@ msgstr "Baux Statiques"
msgid "Static Routes"
msgstr "Routes statiques"
-msgid "Static WDS"
-msgstr "WDS statique"
-
msgid "Static address"
msgstr "Adresse statique"
@@ -3393,9 +3487,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
msgid "Tx-Power"
msgstr "Puissance d'émission"
@@ -3526,6 +3617,11 @@ msgstr "Utilisé"
msgid "Used Key Slot"
msgstr "Clé utilisée"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3678,9 +3774,6 @@ msgstr "Ãcrire les requêtes DNS reçues dans syslog"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Gestion du mode XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3692,10 +3785,10 @@ msgstr ""
"\", votre équipement pourrait ne plus être accessible ! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Vous devez activer Java Script dans votre navigateur pour que LuCI "
-"fonctionne correctement."
+"Vous devez activer JavaScript dans votre navigateur pour que LuCI fonctionne "
+"correctement."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3709,10 +3802,6 @@ msgstr "n'importe lequel"
msgid "auto"
msgstr "auto"
-#, fuzzy
-msgid "automatic"
-msgstr "statique"
-
msgid "baseT"
msgstr "baseT"
@@ -3784,7 +3873,7 @@ msgstr "fichier de résolution local"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3820,12 +3909,6 @@ msgstr "routé"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3838,6 +3921,9 @@ msgstr ""
msgid "tagged"
msgstr "marqué"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "inconnu"
@@ -3859,6 +3945,61 @@ msgstr "oui"
msgid "« Back"
msgstr "« Retour"
+#~ msgid "Leasetime"
+#~ msgstr "Durée du bail"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "statique"
+
+#~ msgid "AR Support"
+#~ msgstr "Gestion du mode AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Contrôleur sans fil Atheros 802.11%s "
+
+#~ msgid "Background Scan"
+#~ msgstr "Recherche en arrière-plan"
+
+#~ msgid "Compression"
+#~ msgstr "Compression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Désactiver l'émission périodique de balises wifi (« HW-Beacon »)"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ne pas envoyer de réponses de test"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Trames rapides"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Débit maximum"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Débit minimum"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Débit multidiffusion"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canaux en extérieur"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domaine de certification"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS séparé"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS statique"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mode Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Gestion du mode XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Un réseau supplémentaire sera créé si vous laissé ceci décoché."
diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po
index 3be942903b..7a0b518aeb 100644
--- a/modules/luci-base/po/he/base.po
+++ b/modules/luci-base/po/he/base.po
@@ -50,12 +50,36 @@ msgstr "×¢××ס ×××©× ×ק×:"
msgid "15 Minute Load:"
msgstr "×¢××ס ×××©× ×¨××¢ שע×:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "×¢××ס ×××©× 5 ×ק×ת:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
@@ -119,6 +143,11 @@ msgstr ""
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -137,9 +166,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr "ת×××ת AR"
-
#, fuzzy
msgid "ARP retry threshold"
msgstr "סף × ×¡××× ×ת ×©× ARP"
@@ -389,15 +415,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "ת×× ×ת קש×ר×ת"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "ש×× ×××××× Atheros 802.11%s"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "××××ת"
@@ -470,9 +490,6 @@ msgstr "×××¨× ×סק×ר×"
msgid "Back to scan results"
msgstr "×××¨× ×ת×צ××ת סר×ק×"
-msgid "Background Scan"
-msgstr "סר×קת רקע"
-
msgid "Backup / Flash Firmware"
msgstr "××××× / ק×ש×ת פ××ש"
@@ -631,8 +648,12 @@ msgstr "פק×××"
msgid "Common Configuration"
msgstr "×××ר×ת × ×¤×צ×ת"
-msgid "Compression"
-msgstr "×××ס×"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "×××ר×ת"
@@ -851,10 +872,10 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
msgstr ""
-msgid "Disabled"
+msgid "Disabled (default)"
msgstr ""
msgid "Discard upstream RFC1918 responses"
@@ -891,9 +912,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr ""
@@ -994,6 +1012,9 @@ msgstr "×פשר תפק×× VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "×פשר ××××× ×××××§× ×ת"
@@ -1018,6 +1039,11 @@ msgstr ""
msgid "Enabled"
msgstr "×פשר"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1064,6 +1090,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1076,9 +1108,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr ""
@@ -1114,6 +1143,9 @@ msgstr ""
msgid "Firewall"
msgstr ""
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr ""
@@ -1159,6 +1191,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1402,9 +1437,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1417,7 +1458,7 @@ msgstr ""
msgid "Identity"
msgstr ""
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1499,6 +1540,9 @@ msgstr ""
msgid "Interface"
msgstr ""
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1544,12 +1588,15 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "×©× ×שת×ש ×/×× ×¡×ס×× ×©×××××! ×× × × ×¡× ×©× ×ת."
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1618,9 +1665,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr ""
-
msgid "Leasetime remaining"
msgstr ""
@@ -1662,6 +1706,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1794,9 +1854,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1832,9 +1889,6 @@ msgstr ""
msgid "Metric"
msgstr ""
-msgid "Minimum Rate"
-msgstr ""
-
msgid "Minimum hold time"
msgstr ""
@@ -1847,6 +1901,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr ""
@@ -1903,9 +1960,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr ""
-
msgid "Multicast address"
msgstr ""
@@ -1918,6 +1972,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2092,18 +2149,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2140,9 +2209,6 @@ msgstr ""
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2190,6 +2256,9 @@ msgstr ""
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2247,6 +2316,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr ""
@@ -2319,6 +2391,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2384,6 +2465,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2466,6 +2553,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2496,9 +2586,6 @@ msgstr ""
msgid "References"
msgstr ""
-msgid "Regulatory Domain"
-msgstr ""
-
msgid "Relay"
msgstr ""
@@ -2538,19 +2625,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2690,9 +2785,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr ""
@@ -2716,6 +2808,11 @@ msgstr ""
msgid "Services"
msgstr "ש×ר×ת××"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "×¡× ×ר×× ×××"
@@ -2853,9 +2950,6 @@ msgstr "×קצ××ת ס××××ת"
msgid "Static Routes"
msgstr "× ×ת×××× ×¡×××××"
-msgid "Static WDS"
-msgstr "WDS ס×××"
-
msgid "Static address"
msgstr "×ת××ת ס×××ת"
@@ -3224,9 +3318,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr ""
-
msgid "Tx-Power"
msgstr "×¢×צ×ת ש×××ר"
@@ -3349,6 +3440,11 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3499,9 +3595,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr ""
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3509,8 +3602,8 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "××ª× ×××× ××פע×× ×ת Java Script ××פ××¤× ×©××; ××רת, LuCI ×× ××¤×¢× ×ר×××."
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "××ª× ×××× ××פע×× ×ת JavaScript ××פ××¤× ×©××; ××רת, LuCI ×× ××¤×¢× ×ר×××."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3524,9 +3617,6 @@ msgstr "××ש××"
msgid "auto"
msgstr "×××××××"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3598,7 +3688,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3634,12 +3724,6 @@ msgstr "×× ×ת×"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3652,6 +3736,9 @@ msgstr ""
msgid "tagged"
msgstr "×ת×××"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3673,6 +3760,21 @@ msgstr "××"
msgid "« Back"
msgstr "<< ×××ר×"
+#~ msgid "AR Support"
+#~ msgstr "ת×××ת AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "ש×× ×××××× Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "סר×קת רקע"
+
+#~ msgid "Compression"
+#~ msgstr "×××ס×"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS ס×××"
+
#, fuzzy
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "רשת × ×ספת ת××צר ×× ×ª×©××ר ×ת ×× ×× ×ס×××"
diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po
index b0c8fa179d..d74394e5bc 100644
--- a/modules/luci-base/po/hu/base.po
+++ b/modules/luci-base/po/hu/base.po
@@ -50,12 +50,36 @@ msgstr "Terhelés (utolsó 1 perc):"
msgid "15 Minute Load:"
msgstr "Terhelés (utolsó 15 perc):"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Terhelés (utolsó 5 perc):"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -126,6 +150,11 @@ msgstr "Max. párhuzamos lekérdezés"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -144,9 +173,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "AR Támogatás"
-
msgid "ARP retry threshold"
msgstr "ARP újrapróbálkozási küszöbérték"
@@ -393,15 +419,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Kapcsolódó kliensek"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s vezeték-nélküli vezérlÅ"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "HitelesÃtés"
@@ -474,9 +494,6 @@ msgstr "Vissza az áttekintéshez"
msgid "Back to scan results"
msgstr "Vissza a felderÃtési eredményekhez"
-msgid "Background Scan"
-msgstr "FelderÃtés a háttérben"
-
msgid "Backup / Flash Firmware"
msgstr "Mentés / Firmware frissÃtés"
@@ -649,8 +666,12 @@ msgstr "Parancs"
msgid "Common Configuration"
msgstr "Ãlatános beállÃtás"
-msgid "Compression"
-msgstr "TömörÃtés"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "BeállÃtás"
@@ -871,12 +892,12 @@ msgstr "DNS beállÃtás letiltása"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Hardveres beacon idÅzÃtÅ letiltása"
-
msgid "Disabled"
msgstr "Letiltva"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "BeérkezŠRFC1918 DHCP válaszok elvetése. "
@@ -917,9 +938,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Ne továbbÃtson fordÃtott keresési kéréseket a helyi hálózathoz"
-msgid "Do not send probe responses"
-msgstr "Ne válaszoljon a szondázásra"
-
msgid "Domain required"
msgstr "Tartomány szükséges"
@@ -1027,6 +1045,9 @@ msgstr "VLAN funkció engedélyezése"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Tanulás és aging engedélyezése"
@@ -1051,6 +1072,11 @@ msgstr "Engedélyezés/Letiltás"
msgid "Enabled"
msgstr "Engedélyezve"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "A Spanning Tree prokoll engedélyezése erre a hÃdra"
@@ -1098,6 +1124,12 @@ msgstr "A bérelt cÃmek lejárati ideje, a minimális érték 2 perc."
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "KülsŠrendszernapló kiszolgáló"
@@ -1110,9 +1142,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Gyors keretek"
-
msgid "File"
msgstr "Fájl"
@@ -1148,6 +1177,9 @@ msgstr "Befejezés"
msgid "Firewall"
msgstr "Tűzfal"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Tűzfal BeállÃtások"
@@ -1195,6 +1227,9 @@ msgstr "TKIP kényszerÃtése"
msgid "Force TKIP and CCMP (AES)"
msgstr "TKIP és CCMP (AES) kényszerÃtése"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1442,9 +1477,15 @@ msgstr "IPv6 prefix hossz"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-cÃm"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6 IPv4-ben (RFC4213)"
@@ -1457,7 +1498,7 @@ msgstr "IPv6 IPv4 felett (6to4)"
msgid "Identity"
msgstr "Identitás"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1548,6 +1589,9 @@ msgstr "TelepÃtett csomagok"
msgid "Interface"
msgstr "Interfész"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Interfész beállÃtások"
@@ -1596,6 +1640,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Ãrvénytelen felhasználói név és/vagy jelszó! Kérem próbálja újra!"
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1604,8 +1651,8 @@ msgstr ""
"Ãgy tűnik, hogy a flash-elendÅ kép-file nem fér el a Flash-memóriába. Kérem "
"ellenÅrizze a kép fájlt!"
-msgid "Java Script required!"
-msgstr "Javascript szükséges!"
+msgid "JavaScript required!"
+msgstr "JavaScript szükséges!"
msgid "Join Network"
msgstr "Csatlakozás a hálózathoz"
@@ -1673,9 +1720,6 @@ msgstr "Bérlet érvényességi ideje"
msgid "Leasefile"
msgstr "Bérlet fájl"
-msgid "Leasetime"
-msgstr "Bérlet idÅtartama"
-
msgid "Leasetime remaining"
msgstr "A bérletbÅl hátralévÅ idÅ"
@@ -1719,6 +1763,22 @@ msgstr ""
"DNS szerverek listája, ahová a "
"kérések továbbÃtásra kerülnek"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1861,9 +1921,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Maximális sebesség"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "AktÃv DHCP bérletek maximális száma"
@@ -1899,9 +1956,6 @@ msgstr "Memória használat (%)"
msgid "Metric"
msgstr "Metrika"
-msgid "Minimum Rate"
-msgstr "Minimális sebesség"
-
msgid "Minimum hold time"
msgstr "Minimális tartási idÅ"
@@ -1914,6 +1968,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Hiányzó protokoll kiterjesztés a %q progokoll számára"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mód"
@@ -1972,9 +2029,6 @@ msgstr "Mozgatás lefelé"
msgid "Move up"
msgstr "Mozgatás felfelé"
-msgid "Multicast Rate"
-msgstr "Multicast sebesség"
-
msgid "Multicast address"
msgstr "Multicast cÃm"
@@ -1987,6 +2041,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2166,18 +2223,30 @@ msgstr "BeállÃtás módosÃtva"
msgid "Option removed"
msgstr "BeállÃtás eltávolÃtva"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2214,9 +2283,6 @@ msgstr "Ki"
msgid "Outbound:"
msgstr "KimenÅ:"
-msgid "Outdoor Channels"
-msgstr "Kültéri csatornák"
-
msgid "Output Interface"
msgstr ""
@@ -2266,6 +2332,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2323,6 +2392,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "A jelszó megváltoztatása sikeres!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "CA tanúsÃtvány elérési útja"
@@ -2395,6 +2467,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2462,6 +2543,12 @@ msgstr ""
msgid "Quality"
msgstr "MinÅség"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2556,6 +2643,9 @@ msgstr "Valósidejű forgalom"
msgid "Realtime Wireless"
msgstr "Valósidejű vezetéknélküli adatok"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Rebind elleni védelem"
@@ -2586,9 +2676,6 @@ msgstr "Interfész újracsatlakoztatása"
msgid "References"
msgstr "Hivatkozások"
-msgid "Regulatory Domain"
-msgstr "Szabályozó tartomány"
-
msgid "Relay"
msgstr "Ãtjátszás"
@@ -2628,6 +2715,9 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
"Szükséges bizonyos internetszolgáltatók esetén, pl. Charter 'DOCSIS 3'-al"
@@ -2635,13 +2725,18 @@ msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2785,9 +2880,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Kliensek szétválasztása"
-msgid "Separate WDS"
-msgstr "WDS szétválasztása"
-
msgid "Server Settings"
msgstr "Kiszolgáló beállÃtásai"
@@ -2811,6 +2903,11 @@ msgstr "Szolgáltatás tÃpusa"
msgid "Services"
msgstr "Szolgáltatások"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "IdÅ szinkronizálás beállÃtása"
@@ -2952,9 +3049,6 @@ msgstr "Statikus bérletek"
msgid "Static Routes"
msgstr "Statikus útvonalak"
-msgid "Static WDS"
-msgstr "Statikus WDS"
-
msgid "Static address"
msgstr "Statikus cÃm"
@@ -3381,9 +3475,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Turbó mód"
-
msgid "Tx-Power"
msgstr "AdóteljesÃtmény"
@@ -3513,6 +3604,11 @@ msgstr "Használt"
msgid "Used Key Slot"
msgstr "Használt kulcsindex"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3665,9 +3761,6 @@ msgstr "A kapott DNS kéréseket Ãrja a rendszernaplóba"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "XR támogatás"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3679,7 +3772,7 @@ msgstr ""
"esetén, az eszköz elérhetetlenné válhat! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
"Engélyezze a Java Szkripteket a böngészÅjében, mert anélkül a LuCI nem fog "
"megfelelÅen működni."
@@ -3696,9 +3789,6 @@ msgstr "bármelyik"
msgid "auto"
msgstr "automatikus"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3772,7 +3862,7 @@ msgstr "helyi DNS fájl"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3808,12 +3898,6 @@ msgstr "irányÃtott"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3826,6 +3910,9 @@ msgstr ""
msgid "tagged"
msgstr "cimkézett"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "ismeretlen"
@@ -3847,6 +3934,57 @@ msgstr "igen"
msgid "« Back"
msgstr "« Vissza"
+#~ msgid "Leasetime"
+#~ msgstr "Bérlet idÅtartama"
+
+#~ msgid "AR Support"
+#~ msgstr "AR Támogatás"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s vezeték-nélküli vezérlÅ"
+
+#~ msgid "Background Scan"
+#~ msgstr "FelderÃtés a háttérben"
+
+#~ msgid "Compression"
+#~ msgstr "TömörÃtés"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Hardveres beacon idÅzÃtÅ letiltása"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ne válaszoljon a szondázásra"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Gyors keretek"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maximális sebesség"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimális sebesség"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast sebesség"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Kültéri csatornák"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Szabályozó tartomány"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS szétválasztása"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statikus WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbó mód"
+
+#~ msgid "XR Support"
+#~ msgstr "XR támogatás"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Amennyiben ezt jelöletlenül hagyja, egy további hálózat jön létre"
diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po
index 0519605454..f013489319 100644
--- a/modules/luci-base/po/it/base.po
+++ b/modules/luci-base/po/it/base.po
@@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: LuCI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2015-04-20 10:33+0100\n"
-"Last-Translator: muxator \n"
+"PO-Revision-Date: 2017-09-05 00:33+0100\n"
+"Last-Translator: bubu83 \n"
"Language-Team: LANGUAGE \n"
"Language: it\n"
"MIME-Version: 1.0\n"
@@ -52,12 +52,36 @@ msgstr "Carico in 1 minuto:"
msgid "15 Minute Load:"
msgstr "Carico in 15 minut:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Carico in 5 minuti:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
"BSSID "
@@ -131,6 +155,13 @@ msgstr "Max. Richiesta in uso"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+" Nota: devi riavviare manualmente il servizio cron se il file crontab "
+"era vuoto prima delle modifiche."
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -149,9 +180,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Supporto AR"
-
msgid "ARP retry threshold"
msgstr "riprova soglia ARP"
@@ -214,10 +242,10 @@ msgid "Active Connections"
msgstr "Connessioni attive"
msgid "Active DHCP Leases"
-msgstr "Attiva contratti DHCP"
+msgstr "Contratti attivi DHCP"
msgid "Active DHCPv6 Leases"
-msgstr "Attiva contratti DHCPv6"
+msgstr "Contratti attivi DHCPv6"
msgid "Ad-Hoc"
msgstr "Ad-Hoc"
@@ -254,7 +282,7 @@ msgid "Aggregate Transmit Power(ACTATP)"
msgstr ""
msgid "Alert"
-msgstr "Avviso"
+msgstr "Allerta"
msgid ""
"Allocate IP addresses sequentially, starting from the lowest available "
@@ -400,15 +428,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Dispositivi Wi-Fi connessi"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Dispositivo Wireless Atheros 802.11%s"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autenticazione PEAP"
@@ -425,28 +447,28 @@ msgid "Auto Refresh"
msgstr "Aggiornamento Automatico"
msgid "Automatic"
-msgstr ""
+msgstr "Automatico"
msgid "Automatic Homenet (HNCP)"
-msgstr ""
+msgstr "Homenet (HNCP) automatico"
msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
+msgstr "Controlla automaticamente il filesystem per errori prima di montare"
msgid "Automatically mount filesystems on hotplug"
-msgstr ""
+msgstr "Monta automaticamente i filesystem in hotplug"
msgid "Automatically mount swap on hotplug"
-msgstr ""
+msgstr "Monta automaticamente lo swap in hotplug"
msgid "Automount Filesystem"
-msgstr ""
+msgstr "Automonta Filesystem"
msgid "Automount Swap"
-msgstr ""
+msgstr "Automonta Swap"
msgid "Available"
-msgstr "Disponibili"
+msgstr "Disponibile"
msgid "Available packages"
msgstr "Pacchetti disponibili"
@@ -481,9 +503,6 @@ msgstr "Ritorna alla panoramica"
msgid "Back to scan results"
msgstr "Ritorno ai risultati della scansione"
-msgid "Background Scan"
-msgstr "Scansione in background"
-
msgid "Backup / Flash Firmware"
msgstr "Copia di Sicurezza / Flash Firmware"
@@ -565,7 +584,7 @@ msgid "Cancel"
msgstr "Annulla"
msgid "Category"
-msgstr ""
+msgstr "Categoria"
msgid "Chain"
msgstr "Catena"
@@ -586,10 +605,10 @@ msgid "Check"
msgstr "Verifica"
msgid "Check fileystems before mount"
-msgstr ""
+msgstr "Controlla i filesystem prima di montare"
msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
+msgstr "Marca questa opzione per cancellare le reti esistenti da questa radio."
msgid "Checksum"
msgstr "Checksum"
@@ -609,7 +628,7 @@ msgid ""
"Choose the network(s) you want to attach to this wireless interface or fill "
"out the create field to define a new network."
msgstr ""
-"Segliere la/le rete/reti a cui vuoi collegare questa interfaccia wireless o "
+"Scegliere la/le rete/reti a cui vuoi collegare questa interfaccia wireless o "
"riempire il campo crea per definire una nuova rete."
msgid "Cipher"
@@ -625,7 +644,7 @@ msgid ""
msgstr ""
"Premi su \"Genera archivio\" per scaricare un archivio tar di backup dei "
"file di configurazione attuali. Per ripristinare il firmware al suo stato "
-"iniziale premi \"Esegui RIpristino\" (solo per firmware basati su squashfs)."
+"iniziale premi \"Esegui Ripristino\" (solo per firmware basati su squashfs)."
msgid "Client"
msgstr "Cliente"
@@ -652,8 +671,12 @@ msgstr "Comando"
msgid "Common Configuration"
msgstr "Configurazioni Comuni"
-msgid "Compression"
-msgstr "Compressione"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configurazione"
@@ -701,7 +724,7 @@ msgid "Create Interface"
msgstr "Crea Interfaccia"
msgid "Create a bridge over multiple interfaces"
-msgstr "Crea un ponte tra interfaccie multiple"
+msgstr "Crea un ponte tra interfacce multiple"
msgid "Critical"
msgstr "Critico"
@@ -731,7 +754,7 @@ msgstr ""
"abbr> del sistema se possibile."
msgid "DHCP Leases"
-msgstr "Contratta DHCP"
+msgstr "Contratti DHCP"
msgid "DHCP Server"
msgstr "Server DHCP"
@@ -740,16 +763,16 @@ msgid "DHCP and DNS"
msgstr "DHCP e DNS"
msgid "DHCP client"
-msgstr "Client DHCP"
+msgstr "Cliente DHCP"
msgid "DHCP-Options"
msgstr "Opzioni DHCP"
msgid "DHCPv6 Leases"
-msgstr "Locazioni DHCPv6"
+msgstr "Contratti DHCPv6"
msgid "DHCPv6 client"
-msgstr ""
+msgstr "Cliente DHCPv6"
msgid "DHCPv6-Mode"
msgstr ""
@@ -833,7 +856,7 @@ msgid "Description"
msgstr "Descrizione"
msgid "Design"
-msgstr "Disegno"
+msgstr "Tema"
msgid "Destination"
msgstr "Destinazione"
@@ -845,10 +868,10 @@ msgid "Device Configuration"
msgstr "Configurazione del dispositivo"
msgid "Device is rebooting..."
-msgstr ""
+msgstr "Dispositivo in riavvio..."
msgid "Device unreachable"
-msgstr ""
+msgstr "Dispositivo irraggiungibile"
msgid "Diagnostics"
msgstr "Diagnostica"
@@ -873,14 +896,14 @@ msgid "Disable DNS setup"
msgstr "Disabilita il setup dei DNS"
msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr "Disabilita Timer Beacon HW"
+msgstr "Disabilita Crittografia"
msgid "Disabled"
msgstr "Disabilitato"
+msgid "Disabled (default)"
+msgstr "Disabilitato (default)"
+
msgid "Discard upstream RFC1918 responses"
msgstr "Ignora risposte RFC1918 upstream"
@@ -920,9 +943,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Non proseguire con le ricerche inverse per le reti locali."
-msgid "Do not send probe responses"
-msgstr "Disabilita Probe-Responses"
-
msgid "Domain required"
msgstr "Dominio richiesto"
@@ -930,7 +950,7 @@ msgid "Domain whitelist"
msgstr "Elenco Domini consentiti"
msgid "Don't Fragment"
-msgstr ""
+msgstr "Non Frammentare"
msgid ""
"Don't forward DNS -Requests without "
@@ -1005,7 +1025,7 @@ msgid "Enable HE.net dynamic endpoint update"
msgstr "Abilitazione aggiornamento endpoint dinamico HE.net"
msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "Abilita negoziazione IPv6"
msgid "Enable IPv6 negotiation on the PPP link"
msgstr "Attiva la negoziazione IPv6 sul collegamento PPP"
@@ -1014,10 +1034,10 @@ msgid "Enable Jumbo Frame passthrough"
msgstr "Abilita Jumbo Frame passthrough"
msgid "Enable NTP client"
-msgstr "Attiva il client NTP"
+msgstr "Attiva il cliente NTP"
msgid "Enable Single DES"
-msgstr ""
+msgstr "Abilita Single DES"
msgid "Enable TFTP server"
msgstr "Abilita il server TFTP"
@@ -1026,19 +1046,22 @@ msgid "Enable VLAN functionality"
msgstr "Abilita la funzionalità VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
+msgstr "Abilita pulsante WPS, richiede WPA(2)-PSK"
+
+msgid "Enable key reinstallation (KRACK) countermeasures"
msgstr ""
msgid "Enable learning and aging"
msgstr "Attivare l'apprendimento e l'invecchiamento"
msgid "Enable mirroring of incoming packets"
-msgstr ""
+msgstr "Abilita mirroring dei pacchetti in ingresso"
msgid "Enable mirroring of outgoing packets"
-msgstr ""
+msgstr "Abilita mirroring dei pacchetti in uscita"
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
+msgstr "Abilita l'opzione DF (non Frammentare) dei pacchetti incapsulati"
msgid "Enable this mount"
msgstr "Abilita questo mount"
@@ -1052,6 +1075,11 @@ msgstr "Abilita/Disabilita"
msgid "Enabled"
msgstr "Abilitato"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Abilita il protocollo di Spanning Tree su questo bridge"
@@ -1094,12 +1122,18 @@ msgstr "Scadenze"
msgid ""
"Expiry time of leased addresses, minimum is 2 minutes (2m
)."
msgstr ""
-"Tempo di scadenza di indirizzi localizzati, il minimo è di 2 minuti ( "
+"Tempo di scadenza di indirizzi a contratto, il minimo è di 2 minuti ( "
"2m
)."
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Server Log di Sistema esterno"
@@ -1112,9 +1146,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Frame veloci"
-
msgid "File"
msgstr "File"
@@ -1150,6 +1181,9 @@ msgstr "Fine"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Impostazioni Firewall"
@@ -1195,8 +1229,11 @@ msgstr "Forza TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forza TKIP e CCMP (AES)"
+msgid "Force link"
+msgstr "Forza collegamento"
+
msgid "Force use of NAT-T"
-msgstr ""
+msgstr "Forza uso del NAT-T"
msgid "Form token mismatch"
msgstr ""
@@ -1249,10 +1286,10 @@ msgid "General Setup"
msgstr "Impostazioni Generali"
msgid "General options for opkg"
-msgstr ""
+msgstr "Opzioni generali per opkg"
msgid "Generate Config"
-msgstr ""
+msgstr "Genera Configurazione"
msgid "Generate archive"
msgstr "Genera Archivio"
@@ -1266,7 +1303,7 @@ msgstr ""
"non è stata cambiata!"
msgid "Global Settings"
-msgstr ""
+msgstr "Impostazioni Globali"
msgid "Global network options"
msgstr "Opzioni rete globale"
@@ -1347,13 +1384,13 @@ msgid "Hostnames"
msgstr "Hostname"
msgid "Hybrid"
-msgstr ""
+msgstr "Ibrido"
msgid "IKE DH Group"
msgstr ""
msgid "IP Addresses"
-msgstr ""
+msgstr "Indirizzi IP"
msgid "IP address"
msgstr "Indirizzo IP"
@@ -1389,7 +1426,7 @@ msgid "IPv4 only"
msgstr "Solo IPv4"
msgid "IPv4 prefix"
-msgstr ""
+msgstr "Prefisso IPv4"
msgid "IPv4 prefix length"
msgstr "Lunghezza prefisso IPv4"
@@ -1410,7 +1447,7 @@ msgid "IPv6 Neighbours"
msgstr ""
msgid "IPv6 Settings"
-msgstr ""
+msgstr "Impostazioni IPv6"
msgid "IPv6 ULA-Prefix"
msgstr ""
@@ -1445,9 +1482,15 @@ msgstr "Lunghezza prefisso IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr "Suffisso IPv6"
+
msgid "IPv6-Address"
msgstr "Indirizzo-IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1460,11 +1503,11 @@ msgstr "IPv6-su-IPv4 (6to4)"
msgid "Identity"
msgstr "Identità PEAP"
-msgid "If checked, 1DES is enaled"
-msgstr ""
+msgid "If checked, 1DES is enabled"
+msgstr "Se selezionata, 1DES è abilitata"
msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "Se selezionata, crittografia è disabilitata"
msgid ""
"If specified, mount the device by its UUID instead of a fixed device node"
@@ -1553,6 +1596,9 @@ msgstr "Pacchetti installati"
msgid "Interface"
msgstr "Interfaccia"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configurazione Interfaccia"
@@ -1566,7 +1612,7 @@ msgid "Interface is shutting down..."
msgstr "L'intefaccia si sta spegnendo..."
msgid "Interface name"
-msgstr ""
+msgstr "Nome Interfaccia"
msgid "Interface not present or not connected yet."
msgstr "Interfaccia non presente o non ancora connessa."
@@ -1581,7 +1627,7 @@ msgid "Interfaces"
msgstr "Interfacce"
msgid "Internal"
-msgstr ""
+msgstr "Interno"
msgid "Internal Server Error"
msgstr "Errore del Server Interno"
@@ -1598,6 +1644,9 @@ msgstr "ID VLAN non valido! Solo gli ID unici sono consentiti"
msgid "Invalid username and/or password! Please try again."
msgstr "Username o password non validi! Per favore riprova."
+msgid "Isolate Clients"
+msgstr "Isola Clienti"
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1606,8 +1655,8 @@ msgstr ""
"Sembra tu stia provando a flashare un'immagine più grande delle dimensioni "
"della memoria flash, per favore controlla il file!"
-msgid "Java Script required!"
-msgstr "Richiesto Java Script!"
+msgid "JavaScript required!"
+msgstr "Richiesto JavaScript!"
msgid "Join Network"
msgstr "Aggiungi Rete"
@@ -1622,10 +1671,10 @@ msgid "Keep settings"
msgstr "Mantieni le Impostazioni"
msgid "Kernel Log"
-msgstr "Log del kernel"
+msgstr "Registro del Kernel"
msgid "Kernel Version"
-msgstr "Versione del kernel"
+msgstr "Versione del Kernel"
msgid "Key"
msgstr "Chiave"
@@ -1667,19 +1716,16 @@ msgid "Leaf"
msgstr ""
msgid "Lease time"
-msgstr ""
+msgstr "Tempo Contratto"
msgid "Lease validity time"
-msgstr "Periodo di Validità del Lease"
+msgstr "Periodo di Validità del Contratto"
msgid "Leasefile"
-msgstr "File di lease"
-
-msgid "Leasetime"
-msgstr "Tempo di lease"
+msgstr "File di contratti"
msgid "Leasetime remaining"
-msgstr "Tempo lease residuo"
+msgstr "Tempo contratto residuo"
msgid "Leave empty to autodetect"
msgstr "Lasciare vuoto per l'autorilevamento"
@@ -1721,6 +1767,22 @@ msgstr ""
"Elenco di Server DNS a cui "
"inoltrare le richieste in"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1825,7 +1887,7 @@ msgid "MAC-Address"
msgstr ""
msgid "MAC-Address Filter"
-msgstr "Filtro dei MAC-Address"
+msgstr "Filtro indirizzo MAC"
msgid "MAC-Filter"
msgstr "Filtro MAC"
@@ -1854,14 +1916,11 @@ msgid ""
msgstr ""
msgid "Manual"
-msgstr ""
+msgstr "Manuale"
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Velocità massima"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1875,7 +1934,7 @@ msgid "Maximum amount of seconds to wait for the modem to become ready"
msgstr ""
msgid "Maximum hold time"
-msgstr "Velocità massima"
+msgstr "Tempo massimo di attesa"
msgid ""
"Maximum length of the name is 15 characters including the automatic protocol/"
@@ -1883,7 +1942,7 @@ msgid ""
msgstr ""
msgid "Maximum number of leased addresses."
-msgstr ""
+msgstr "Numero massimo indirizzi in contratto"
msgid "Mbit/s"
msgstr ""
@@ -1892,14 +1951,11 @@ msgid "Memory"
msgstr "Memoria"
msgid "Memory usage (%)"
-msgstr "Uso Memory (%)"
+msgstr "Uso Memoria (%)"
msgid "Metric"
msgstr "Metrica"
-msgid "Minimum Rate"
-msgstr "Velocità minima"
-
msgid "Minimum hold time"
msgstr "Velocità minima"
@@ -1912,11 +1968,14 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Modalità "
msgid "Model"
-msgstr ""
+msgstr "Modello"
msgid "Modem device"
msgstr "Dispositivo modem"
@@ -1928,19 +1987,19 @@ msgid "Monitor"
msgstr "Monitor"
msgid "Mount Entry"
-msgstr ""
+msgstr "Voce di Mount"
msgid "Mount Point"
-msgstr "Punto di mount"
+msgstr "Punto di Mount"
msgid "Mount Points"
-msgstr "Punto di mount"
+msgstr "Punti di Mount"
msgid "Mount Points - Mount Entry"
-msgstr ""
+msgstr "Punti di Mount - Voce di Mount"
msgid "Mount Points - Swap Entry"
-msgstr ""
+msgstr "Punti di Mount - Voce Swap"
msgid ""
"Mount Points define at which point a memory device will be attached to the "
@@ -1959,22 +2018,19 @@ msgid "Mount point"
msgstr "Punto di mount"
msgid "Mount swap not specifically configured"
-msgstr ""
+msgstr "Monta swap non configurato specificatamente"
msgid "Mounted file systems"
msgstr "File system montati"
msgid "Move down"
-msgstr ""
+msgstr "Muovi giù"
msgid "Move up"
-msgstr ""
-
-msgid "Multicast Rate"
-msgstr "Velocità multicast"
+msgstr "Muovi su"
msgid "Multicast address"
-msgstr ""
+msgstr "Indirizzo Multicast"
msgid "NAS ID"
msgstr "ID della NAS"
@@ -1985,6 +2041,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -1992,10 +2051,10 @@ msgid "NT Domain"
msgstr ""
msgid "NTP server candidates"
-msgstr ""
+msgstr "Candidati server NTP"
msgid "NTP sync time-out"
-msgstr ""
+msgstr "Sincronizzazione NTP scaduta"
msgid "Name"
msgstr "Nome"
@@ -2028,7 +2087,7 @@ msgid "Next »"
msgstr "Prossimo »"
msgid "No DHCP Server configured for this interface"
-msgstr ""
+msgstr "Nessun Server DHCP configurato per questa interfaccia"
msgid "No NAT-T"
msgstr ""
@@ -2052,25 +2111,25 @@ msgid "No network name specified"
msgstr ""
msgid "No package lists available"
-msgstr ""
+msgstr "Nessuna lista pacchetti disponibile"
msgid "No password set!"
-msgstr ""
+msgstr "Nessuna password immessa!"
msgid "No rules in this chain"
-msgstr ""
+msgstr "Nessuna regola in questa catena"
msgid "No zone assigned"
-msgstr ""
+msgstr "Nessuna zona assegnata"
msgid "Noise"
msgstr "Rumore"
msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "Margine di Rumore (SNR)"
msgid "Noise:"
-msgstr ""
+msgstr "Rumore:"
msgid "Non Pre-emtive CRC errors (CRC_P)"
msgstr ""
@@ -2085,22 +2144,22 @@ msgid "Normal"
msgstr "Normale"
msgid "Not Found"
-msgstr ""
+msgstr "Non Trovato"
msgid "Not associated"
msgstr "Non associato"
msgid "Not connected"
-msgstr ""
+msgstr "Non connesso"
msgid "Note: Configuration files will be erased."
-msgstr ""
+msgstr "Nota: i files di Configurazione saranno eliminati"
msgid "Note: interface name length"
-msgstr ""
+msgstr "Nota: lunghezza nome interfaccia"
msgid "Notice"
-msgstr "Avviso"
+msgstr "Notifica"
msgid "Nslookup"
msgstr ""
@@ -2150,7 +2209,7 @@ msgid "One or more required fields have no value!"
msgstr "Uno o più campi obbligatori sono vuoti!"
msgid "Open list..."
-msgstr ""
+msgstr "Apri lista..."
msgid "OpenConnect (CISCO AnyConnect)"
msgstr ""
@@ -2164,18 +2223,30 @@ msgstr "Opzione cambiata"
msgid "Option removed"
msgstr "Opzione cancellata"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2207,42 +2278,41 @@ msgid "Other:"
msgstr "Altro:"
msgid "Out"
-msgstr ""
+msgstr "Uscita"
msgid "Outbound:"
msgstr "In uscita:"
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
msgid "Override MAC address"
-msgstr ""
+msgstr "Sovrascrivi indirizzo MAC"
msgid "Override MTU"
-msgstr "Sovrascivi MTU"
+msgstr "Sovrascrivi MTU"
msgid "Override TOS"
-msgstr ""
+msgstr "Sovrascrivi TOS"
msgid "Override TTL"
-msgstr ""
+msgstr "Sovrascrivi TTL"
msgid "Override default interface name"
-msgstr ""
+msgstr "Sovrascrivi nome interfaccia di default"
msgid "Override the gateway in DHCP responses"
-msgstr ""
+msgstr "Sovrascrivi il gateway nelle risposte DHCP"
msgid ""
"Override the netmask sent to clients. Normally it is calculated from the "
"subnet that is served."
msgstr ""
+"Sovrascrivi la netmask data ai clienti. Normalmente è calcolata dalla subnet "
+"servita."
msgid "Override the table used for internal routes"
-msgstr ""
+msgstr "Sovrascrivi la tabella usata per le route interne"
msgid "Overview"
msgstr "Riassunto"
@@ -2262,6 +2332,9 @@ msgstr "PID"
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2302,7 +2375,7 @@ msgid "Packets"
msgstr "Pacchetti"
msgid "Part of zone %q"
-msgstr ""
+msgstr "Parte della zona %q"
msgid "Password"
msgstr "Password"
@@ -2319,6 +2392,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Password cambiata con successo!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Percorso al certificato CA"
@@ -2383,7 +2459,7 @@ msgid "Port"
msgstr "Porta"
msgid "Port status:"
-msgstr ""
+msgstr "Status porta:"
msgid "Power Management Mode"
msgstr ""
@@ -2391,6 +2467,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2418,7 +2503,7 @@ msgid "Processes"
msgstr "Processi"
msgid "Profile"
-msgstr ""
+msgstr "Profilo"
msgid "Prot."
msgstr "Prot."
@@ -2427,25 +2512,25 @@ msgid "Protocol"
msgstr "Protocollo"
msgid "Protocol family"
-msgstr ""
+msgstr "Famiglia protocollo"
msgid "Protocol of the new interface"
-msgstr ""
+msgstr "Protocollo della nuova interfaccia"
msgid "Protocol support is not installed"
-msgstr ""
+msgstr "Supporto protocollo non installato"
msgid "Provide NTP server"
-msgstr ""
+msgstr "Fornisci server NTP"
msgid "Provide new network"
-msgstr ""
+msgstr "Fornisci nuova rete"
msgid "Pseudo Ad-Hoc (ahdemo)"
msgstr "Pseudo Ad-Hoc (ahdemo)"
msgid "Public Key"
-msgstr ""
+msgstr "Chiave Pubblica"
msgid "Public prefix routed to this device for distribution to clients."
msgstr ""
@@ -2454,6 +2539,12 @@ msgid "QMI Cellular"
msgstr ""
msgid "Quality"
+msgstr "Qualità "
+
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
msgstr ""
msgid "RFC3947 NAT-T mode"
@@ -2466,7 +2557,7 @@ msgid "RX"
msgstr ""
msgid "RX Rate"
-msgstr ""
+msgstr "Velocità RX"
msgid "RaLink 802.11%s Wireless Controller"
msgstr ""
@@ -2507,7 +2598,7 @@ msgid ""
msgstr ""
msgid "Really reset all changes?"
-msgstr ""
+msgstr "Azzerare veramente tutte le modifiche?"
#, fuzzy
msgid ""
@@ -2523,21 +2614,24 @@ msgid ""
msgstr ""
msgid "Really switch protocol?"
-msgstr ""
+msgstr "Cambiare veramente il protocollo?"
msgid "Realtime Connections"
-msgstr "Connessioni in tempo reale"
+msgstr "Connessioni in Tempo Reale"
msgid "Realtime Graphs"
-msgstr ""
+msgstr "Grafici in Tempo Reale"
msgid "Realtime Load"
-msgstr "Carico in tempo reale"
+msgstr "Carico in Tempo Reale"
msgid "Realtime Traffic"
-msgstr "Traffico in tempo reale"
+msgstr "Traffico in Tempo Reale"
msgid "Realtime Wireless"
+msgstr "Wireless in Tempo Reale"
+
+msgid "Reassociation Deadline"
msgstr ""
msgid "Rebind protection"
@@ -2547,7 +2641,7 @@ msgid "Reboot"
msgstr "Riavvia"
msgid "Rebooting..."
-msgstr ""
+msgstr "Riavviando..."
msgid "Reboots the operating system of your device"
msgstr "Riavvia il sistema operativo del tuo dispositivo"
@@ -2556,7 +2650,7 @@ msgid "Receive"
msgstr "Ricezione"
msgid "Receiver Antenna"
-msgstr "Antenna ricevente"
+msgstr "Antenna Ricevente"
msgid "Recommended. IP addresses of the WireGuard interface."
msgstr ""
@@ -2568,10 +2662,7 @@ msgid "Reconnecting interface"
msgstr "Sto ricollegando l'interfaccia"
msgid "References"
-msgstr ""
-
-msgid "Regulatory Domain"
-msgstr ""
+msgstr "Riferimenti"
msgid "Relay"
msgstr ""
@@ -2595,22 +2686,25 @@ msgid "Remove"
msgstr "Rimuovi"
msgid "Repeat scan"
-msgstr ""
+msgstr "Ripeti scan"
msgid "Replace entry"
msgstr "Sostituisci campo"
msgid "Replace wireless configuration"
-msgstr ""
+msgstr "Sostituisci configurazione wireless"
msgid "Request IPv6-address"
-msgstr ""
+msgstr "Richiede indirizzo-IPv6"
msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "Richiede prefisso-IPv6 di lunghezza"
msgid "Require TLS"
-msgstr ""
+msgstr "Richiede TLS"
+
+msgid "Required"
+msgstr "Richiesto"
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
@@ -2618,13 +2712,18 @@ msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2639,7 +2738,7 @@ msgid "Reset Counters"
msgstr "Azzera Contatori"
msgid "Reset to defaults"
-msgstr ""
+msgstr "Azzera a default"
msgid "Resolv and Hosts Files"
msgstr ""
@@ -2657,7 +2756,7 @@ msgid "Restore backup"
msgstr "Ripristina backup"
msgid "Reveal/hide password"
-msgstr ""
+msgstr "Rivela/nascondi password"
msgid "Revert"
msgstr "Ripristina"
@@ -2697,10 +2796,10 @@ msgstr ""
"rete può essere raggiunto."
msgid "Run a filesystem check before mounting the device"
-msgstr ""
+msgstr "Esegui un controllo del filesystem prima di montare il dispositivo"
msgid "Run filesystem check"
-msgstr ""
+msgstr "Esegui controllo del filesystem"
msgid "SHA256"
msgstr ""
@@ -2741,7 +2840,7 @@ msgid "Save & Apply"
msgstr "Salva & applica"
msgid "Save & Apply"
-msgstr ""
+msgstr "Salva & Applica"
msgid "Scan"
msgstr "Scan"
@@ -2750,13 +2849,13 @@ msgid "Scheduled Tasks"
msgstr "Operazioni programmate"
msgid "Section added"
-msgstr ""
+msgstr "Sezione aggiunta"
msgid "Section removed"
-msgstr ""
+msgstr "Sezione rimossa"
msgid "See \"mount\" manpage for details"
-msgstr ""
+msgstr "Vedi \"mount\" manpage per dettagli"
msgid ""
"Send LCP echo requests at the given interval in seconds, only effective in "
@@ -2766,11 +2865,8 @@ msgstr ""
msgid "Separate Clients"
msgstr "Isola utenti"
-msgid "Separate WDS"
-msgstr "WDS separati"
-
msgid "Server Settings"
-msgstr ""
+msgstr "Impostazioni Server"
msgid "Server password"
msgstr ""
@@ -2792,6 +2888,11 @@ msgstr ""
msgid "Services"
msgstr "Servizi"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2866,7 +2967,7 @@ msgstr ""
"specifici."
msgid "Sort"
-msgstr "Elenca"
+msgstr "Ordina"
msgid "Source"
msgstr "Origine"
@@ -2929,14 +3030,11 @@ msgid "Static IPv6 Routes"
msgstr "Instradamento statico IPv6"
msgid "Static Leases"
-msgstr "Leases statici"
+msgstr "Contratti statici"
msgid "Static Routes"
msgstr "Instradamenti Statici"
-msgid "Static WDS"
-msgstr "WDS statico"
-
msgid "Static address"
msgstr "Indirizzo Statico"
@@ -2945,10 +3043,10 @@ msgid ""
"to DHCP clients. They are also required for non-dynamic interface "
"configurations where only hosts with a corresponding lease are served."
msgstr ""
-"Leasing statici vengono utilizzati per assegnare indirizzi IP fissi e nomi "
-"host simbolici ai client DHCP. Essi sono necessari anche per interfacce di "
-"configurazione non dinamici, dove solo gli host con lease corrispondente "
-"servito vengono serviti."
+"I contratti statici vengono utilizzati per assegnare indirizzi IP fissi e "
+"nomi host simbolici ai client DHCP. Essi sono necessari anche per interfacce "
+"di configurazione non dinamici, dove solo gli host col contratto "
+"corrispondente vengono serviti."
msgid "Status"
msgstr "Stato"
@@ -3003,7 +3101,7 @@ msgid "System"
msgstr "Sistema"
msgid "System Log"
-msgstr "Log di sistema"
+msgstr "Registro di Sistema"
msgid "System Properties"
msgstr "Proprietà di Sistema"
@@ -3024,7 +3122,7 @@ msgid "TX"
msgstr "TX"
msgid "TX Rate"
-msgstr "Velocità di TX"
+msgstr "Velocità TX"
msgid "Table"
msgstr "Tabella"
@@ -3177,16 +3275,16 @@ msgstr ""
"you choose the generic image format for your platform."
msgid "There are no active leases."
-msgstr ""
+msgstr "Non ci sono contratti attivi."
msgid "There are no pending changes to apply!"
-msgstr ""
+msgstr "Non ci sono cambiamenti pendenti da applicare!"
msgid "There are no pending changes to revert!"
-msgstr ""
+msgstr "Non ci sono cambiamenti pendenti da regredire"
msgid "There are no pending changes!"
-msgstr ""
+msgstr "Non ci sono cambiamenti pendenti!"
msgid ""
"There is no device assigned yet, please attach a network device in the "
@@ -3268,10 +3366,10 @@ msgid "This section contains no values yet"
msgstr "Questa sezione non contiene ancora valori"
msgid "Time Synchronization"
-msgstr ""
+msgstr "Sincronizzazione Orario"
msgid "Time Synchronization is not configured yet."
-msgstr ""
+msgstr "Sincronizzazione Orario non ancora configurata"
msgid "Timezone"
msgstr "Fuso orario"
@@ -3280,6 +3378,8 @@ msgid ""
"To restore configuration files, you can upload a previously generated backup "
"archive here."
msgstr ""
+"Per ripristinare i file configurazione, puoi inviare un archivio di backup "
+"generato precedentemente qui."
msgid "Tone"
msgstr ""
@@ -3332,9 +3432,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Modalità turbo"
-
msgid "Tx-Power"
msgstr ""
@@ -3351,10 +3448,10 @@ msgid "UMTS/GPRS/EV-DO"
msgstr ""
msgid "USB Device"
-msgstr ""
+msgstr "Periferica USB"
msgid "USB Ports"
-msgstr ""
+msgstr "Porte USB"
msgid "UUID"
msgstr ""
@@ -3366,25 +3463,25 @@ msgid "Unavailable Seconds (UAS)"
msgstr ""
msgid "Unknown"
-msgstr ""
+msgstr "Sconosciuto"
msgid "Unknown Error, password not changed!"
-msgstr ""
+msgstr "Errore sconosciuto, password non cambiata!"
msgid "Unmanaged"
-msgstr ""
+msgstr "Non gestito"
msgid "Unmount"
-msgstr ""
+msgstr "Smonta"
msgid "Unsaved Changes"
msgstr "Modifiche non salvate"
msgid "Unsupported protocol type."
-msgstr ""
+msgstr "Tipo protocollo non supportato."
msgid "Update lists"
-msgstr ""
+msgstr "Aggiorna liste"
msgid ""
"Upload a sysupgrade-compatible image here to replace the running firmware. "
@@ -3399,7 +3496,7 @@ msgid "Upload archive..."
msgstr "Carica archivio..."
msgid "Uploaded File"
-msgstr "Invia file"
+msgstr "File Inviato"
msgid "Uptime"
msgstr "Tempo di attività "
@@ -3454,9 +3551,11 @@ msgid ""
"standard host-specific lease time, e.g. 12h, 3d or infinite."
msgstr ""
"Utilizzare il pulsante Aggiungi per aggiungere una nuova voce di "
-"locazione. L'Indirizzo-MAC identifica l'host, l'Indirizzo-IPv4"
-"em> specifica l'indirizzo fisso da utilizzare e il Nome Host è "
-"assegnato come nome simbolico alla richiesta dell'host."
+"contratto. L'Indirizzo-MAC identifica l'host, l'Indirizzo-IPv4"
+"em> specifica l'indirizzo fisso da utilizzare e il Nome Host è "
+"assegnato come nome simbolico alla richiesta dell'host. L'opzionale "
+"tempo di Contratto può essere usato per impostare un tempo di "
+"contratto non-standard a uno specifico host, p.e. 12h, 3d o infinito."
msgid "Used"
msgstr "Usato"
@@ -3464,6 +3563,11 @@ msgstr "Usato"
msgid "Used Key Slot"
msgstr "Slot Chiave Usata"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3549,6 +3653,8 @@ msgstr ""
msgid ""
"Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
msgstr ""
+"Attendi sincro NTP quei dati secondi, immetti 0 per disabilitare l'attesa "
+"(opzionale)"
msgid "Waiting for changes to be applied..."
msgstr "In attesa delle modifiche da applicare ..."
@@ -3614,10 +3720,7 @@ msgid "Write received DNS requests to syslog"
msgstr "Scrittura delle richiesta DNS ricevute nel syslog"
msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "Supporto XR"
+msgstr "Scrivi registro di sistema su file"
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
@@ -3631,9 +3734,9 @@ msgstr ""
"potrebbe diventare inaccessibile!
"
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"à necessario attivare Java Script nel tuo browser o LuCI non funzionerà "
+"à necessario attivare JavaScript nel tuo browser o LuCI non funzionerà "
"correttamente."
msgid ""
@@ -3648,10 +3751,6 @@ msgstr "qualsiasi"
msgid "auto"
msgstr "auto"
-#, fuzzy
-msgid "automatic"
-msgstr "statico"
-
msgid "baseT"
msgstr "baseT"
@@ -3674,7 +3773,7 @@ msgid "disable"
msgstr "disabilita"
msgid "disabled"
-msgstr ""
+msgstr "disabilitato"
msgid "expired"
msgstr "scaduto"
@@ -3683,8 +3782,8 @@ msgid ""
"file where given DHCP"
"abbr>-leases will be stored"
msgstr ""
-"file dove vengono salvati le richieste DHCP assegnate"
+"file dove vengono salvati i contratti DHCP dati"
msgid "forward"
msgstr "inoltro"
@@ -3702,7 +3801,7 @@ msgid "hidden"
msgstr "nascosto"
msgid "hybrid mode"
-msgstr ""
+msgstr "modo ibrido"
msgid "if target is a network"
msgstr "se la destinazione è una rete"
@@ -3725,7 +3824,7 @@ msgstr "File DNS locale"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3761,12 +3860,6 @@ msgstr "instradato"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3779,6 +3872,9 @@ msgstr ""
msgid "tagged"
msgstr "etichettato"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "sconosciuto"
@@ -3800,6 +3896,55 @@ msgstr "Sì"
msgid "« Back"
msgstr "« Indietro"
+#~ msgid "Leasetime"
+#~ msgstr "Tempo di contratto"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "statico"
+
+#~ msgid "AR Support"
+#~ msgstr "Supporto AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Dispositivo Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Scansione in background"
+
+#~ msgid "Compression"
+#~ msgstr "Compressione"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Disabilita Timer Beacon HW"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Disabilita Probe-Responses"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frame veloci"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Velocità massima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Velocità minima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Velocità multicast"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS separati"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS statico"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modalità turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Supporto XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Sarà creata una rete aggiuntiva se lasci questo senza spunta."
diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po
index 1b28cff343..af4721c88b 100644
--- a/modules/luci-base/po/ja/base.po
+++ b/modules/luci-base/po/ja/base.po
@@ -3,14 +3,14 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2017-01-26 18:49+0900\n"
+"PO-Revision-Date: 2017-10-20 13:54+0900\n"
"Last-Translator: INAGAKI Hiroshi \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.4\n"
"Language-Team: \n"
msgid "%s is untagged in multiple VLANs!"
@@ -38,13 +38,13 @@ msgid "-- custom --"
msgstr "-- æåè¨å® --"
msgid "-- match by device --"
-msgstr "-- ããã¤ã¹ã§è¨å® --"
+msgstr "-- ããã¤ã¹ãæå® --"
msgid "-- match by label --"
-msgstr "-- ã©ãã«ã§è¨å® --"
+msgstr "-- ã©ãã«ãæå® --"
msgid "-- match by uuid --"
-msgstr "-- UUIDã§è¨å® --"
+msgstr "-- UUID ãæå® --"
msgid "1 Minute Load:"
msgstr "éå»1åã®è² è·:"
@@ -52,12 +52,36 @@ msgstr "éå»1åã®è² è·:"
msgid "15 Minute Load:"
msgstr "éå»15åã®è² è·:"
-msgid "464XLAT (CLAT)"
+msgid "4-character hexadecimal ID"
msgstr ""
+msgid "464XLAT (CLAT)"
+msgstr "464XLAT (CLAT)"
+
msgid "5 Minute Load:"
msgstr "éå»5åã®è² è·:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r é«éãã¼ãã³ã°"
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "802.11w ã¢ã½ã·ã¨ã¼ã·ã§ã³SAã¯ã¨ãªã®æ大ã¿ã¤ã ã¢ã¦ãæéã§ãã"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr "802.11w ã¢ã½ã·ã¨ã¼ã·ã§ã³SAã¯ã¨ãªã®å試è¡ã¿ã¤ã ã¢ã¦ãæéã§ãã"
+
+msgid "802.11w Management Frame Protection"
+msgstr "802.11w 管çãã¬ã¼ã ä¿è·"
+
+msgid "802.11w maximum timeout"
+msgstr "802.11w æ大ã¿ã¤ã ã¢ã¦ã"
+
+msgid "802.11w retry timeout"
+msgstr "802.11w å試è¡ã¿ã¤ã ã¢ã¦ã"
+
msgid "BSSID "
msgstr "BSSID "
@@ -129,27 +153,31 @@ msgstr "æ大 並åå¦çã¯ã¨ãª"
msgid "%s - %s "
msgstr ""
-msgid "A43C + J43 + A43"
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
msgstr ""
+" 注æ: ç·¨éåã® crontab ãã¡ã¤ã«ã空ã®å ´åãæå㧠cron ãµã¼ãã¹ã®åèµ·å"
+"ãè¡ãå¿
è¦ãããã¾ãã"
+
+msgid "A43C + J43 + A43"
+msgstr "A43C + J43 + A43"
msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
msgid "ADSL"
msgstr "ADSL"
msgid "AICCU (SIXXS)"
-msgstr ""
+msgstr "AICCU (SIXXS)"
msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "ARãµãã¼ã"
-
msgid "ARP retry threshold"
msgstr "ARPå試è¡ãããå¤"
@@ -204,7 +232,7 @@ msgstr ""
"稼åä¸ã® IPv6 -çµè·¯æ
å ±"
msgid "Active Connections"
-msgstr "ã¢ã¯ãã£ãã³ãã¯ã·ã§ã³"
+msgstr "ã¢ã¯ãã£ã ã³ãã¯ã·ã§ã³"
msgid "Active DHCP Leases"
msgstr "ã¢ã¯ãã£ããªDHCPãªã¼ã¹"
@@ -228,13 +256,13 @@ msgid "Additional Hosts files"
msgstr "追å ã®ãã¹ããã¡ã¤ã«"
msgid "Additional servers file"
-msgstr ""
+msgstr "追å ã®ãµã¼ãã¼ ãã¡ã¤ã«"
msgid "Address"
msgstr "ã¢ãã¬ã¹"
msgid "Address to access local relay bridge"
-msgstr "ãã¼ã«ã«ã»ãªã¬ã¼ããªãã¸ã«ã¢ã¯ã»ã¹ããããã®IPã¢ãã¬ã¹"
+msgstr "ãã¼ã«ã« ãªã¬ã¼ããªãã¸ã«ã¢ã¯ã»ã¹ããããã®IPã¢ãã¬ã¹"
msgid "Administration"
msgstr "管çç»é¢"
@@ -257,7 +285,7 @@ msgid "Allocate IP sequentially"
msgstr ""
msgid "Allow SSH password authentication"
-msgstr "SSH ãã¹ã¯ã¼ãèªè¨¼ã許å¯ãã¾ã"
+msgstr "SSH ãã¹ã¯ã¼ãèªè¨¼ã許å¯ãã¾ãã"
msgid "Allow all except listed"
msgstr "ãªã¹ãå
ã®ç«¯æ«ããã®ã¢ã¯ã»ã¹ãç¦æ¢"
@@ -270,20 +298,20 @@ msgstr "ãã¼ã«ã«ãã¹ãã許å¯ãã"
msgid "Allow remote hosts to connect to local SSH forwarded ports"
msgstr ""
-"ãªã¢ã¼ããã¹ããSSH転éããããã¼ã«ã«ã®ãã¼ãã«æ¥ç¶ãããã¨ã許å¯ãã¾ã"
+"ãªã¢ã¼ããã¹ããSSH転éããããã¼ã«ã«ã®ãã¼ãã«æ¥ç¶ãããã¨ã許å¯ãã¾ãã"
msgid "Allow root logins with password"
-msgstr "ãã¹ã¯ã¼ãã使ç¨ããroot権éã§ã®ãã°ã¤ã³ã許å¯ãã"
+msgstr "ãã¹ã¯ã¼ãã§ã® root ãã°ã¤ã³ã許å¯"
msgid "Allow the root user to login with password"
-msgstr "ãã¹ã¯ã¼ãã使ç¨ããroot 権éã§ã®ãã°ã¤ã³ã許å¯ãã"
+msgstr "ãã¹ã¯ã¼ãã使ç¨ãã root 権éã§ã®ãã°ã¤ã³ã許å¯ãã¾ãã"
msgid ""
"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
msgstr ""
msgid "Allowed IPs"
-msgstr ""
+msgstr "許å¯ãããIP"
msgid ""
"Also see create field to define a new zone and attach the "
"interface to it."
msgstr ""
-"ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«è¨å®ãããã¡ã¤ã¦ã©ã¼ã«ã»ã¾ã¼ã³ãé¸æãã¦ãã ããã"
-"è¨å®ããªã ãé¸æããã¨ãè¨å®æ¸ã¿ã®ã¾ã¼ã³ãåé¤ãã¾ããã¾ããä½æ"
-"em>ãã£ã¼ã«ãã«ã¾ã¼ã³åãå
¥åããã¨ãæ°ããã¾ã¼ã³ãä½æãããã®ã¤ã³ã¿ã¼ãã§ã¼"
-"ã¹ã«è¨å®ãã¾ãã"
+"ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«è¨å®ãããã¡ã¤ã¦ã©ã¼ã« ã¾ã¼ã³ãé¸æãã¦ãã ãããè¨"
+"å®ããªã ãé¸æããã¨ãè¨å®æ¸ã¿ã®ã¾ã¼ã³ãåé¤ãã¾ããã¾ããä½æ "
+"ãã£ã¼ã«ãã«ã¾ã¼ã³åãå
¥åããã¨ãæ°ããã¾ã¼ã³ãä½æãããã®ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+"ã«è¨å®ãã¾ãã"
msgid ""
"Choose the network(s) you want to attach to this wireless interface or fill "
@@ -616,10 +636,10 @@ msgid ""
"configuration files. To reset the firmware to its initial state, click "
"\"Perform reset\" (only possible with squashfs images)."
msgstr ""
-"\"ããã¯ã¢ããã¢ã¼ã«ã¤ãã®ä½æ\"ãã¯ãªãã¯ããã¨ãç¾å¨ã®è¨å®ãã¡ã¤ã«ãtarå½¢å¼"
-"ã®ã¢ã¼ã«ã¤ããã¡ã¤ã«ã¨ãã¦ãã¦ã³ãã¼ããã¾ããè¨å®ã®ãªã»ãããè¡ãå ´åã\"è¨"
-"å®ãªã»ãã\"ãã¯ãªãã¯ãã¦ãã ããã(ãã ããsquashfsãã使ãã®å ´åã®ã¿ä½¿ç¨å¯"
-"è½ã§ã)"
+"\"ããã¯ã¢ãã ã¢ã¼ã«ã¤ãã®ä½æ\"ãã¯ãªãã¯ããã¨ãç¾å¨ã®è¨å®ãã¡ã¤ã«ãtarå½¢"
+"å¼ã®ã¢ã¼ã«ã¤ããã¡ã¤ã«ã¨ãã¦ãã¦ã³ãã¼ããã¾ããè¨å®ã®ãªã»ãããè¡ãå ´"
+"åã\"è¨å®ãªã»ãã\"ãã¯ãªãã¯ãã¦ãã ããã(ãã ããsquashfsãã使ãã®å ´åã®"
+"ã¿ä½¿ç¨å¯è½ã§ã)"
msgid "Client"
msgstr "ã¯ã©ã¤ã¢ã³ã"
@@ -646,8 +666,16 @@ msgstr "ã³ãã³ã"
msgid "Common Configuration"
msgstr "ä¸è¬è¨å®"
-msgid "Compression"
-msgstr "å§ç¸®"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
+"ãã¼ã®ã¤ã³ã¹ãã¼ã«ã«ä½¿ç¨ããã EAPOL ãã¼ãã¬ã¼ã ã®åéä¿¡ãç¡å¹ã«ãããã¨ã«ã"
+"ããã¯ã©ã¤ã¢ã³ã ãµã¤ãã® Key Reinstallation Attacks (KRACK) ãå°é£ã«ãã¾ãã"
+"ãã®åé¿çã¯ãç¸äºéç¨æ§ã®åé¡ããç¹ã«é«è² è·ã®ãã©ãã£ãã¯ç°å¢ä¸ã«ããããã¼ "
+"ãã´ã·ã¨ã¼ã·ã§ã³ã®ä¿¡é ¼æ§ä½ä¸ã®åå ã¨ãªããã¨ãããã¾ãã"
msgid "Configuration"
msgstr "è¨å®"
@@ -689,7 +717,7 @@ msgid "Cover the following interfaces"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®æå®"
msgid "Create / Assign firewall-zone"
-msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã«ã¾ã¼ã³ã®ä½æ / å²ãå½ã¦"
+msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã« ã¾ã¼ã³ã®ä½æ / å²ãå½ã¦"
msgid "Create Interface"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä½æ"
@@ -763,7 +791,7 @@ msgid "DNS-Label / FQDN"
msgstr ""
msgid "DNSSEC"
-msgstr ""
+msgstr "DNSSEC"
msgid "DNSSEC check unsigned"
msgstr ""
@@ -778,7 +806,7 @@ msgid "DSL"
msgstr "DSL"
msgid "DSL Status"
-msgstr ""
+msgstr "DSL ã¹ãã¼ã¿ã¹"
msgid "DSL line mode"
msgstr ""
@@ -796,13 +824,13 @@ msgid "Default %d"
msgstr "æ¨æºè¨å® %d"
msgid "Default gateway"
-msgstr "ããã©ã«ãã²ã¼ãã¦ã§ã¤"
+msgstr "ããã©ã«ã ã²ã¼ãã¦ã§ã¤"
msgid "Default is stateless + stateful"
msgstr "ããã©ã«ã㯠ã¹ãã¼ãã¬ã¹ + ã¹ãã¼ããã« ã§ãã"
msgid "Default route"
-msgstr ""
+msgstr "ããã©ã«ã ã«ã¼ã"
msgid "Default state"
msgstr "æ¨æºç¶æ
"
@@ -843,7 +871,7 @@ msgid "Device is rebooting..."
msgstr "ããã¤ã¹ãåèµ·åä¸ã§ã..."
msgid "Device unreachable"
-msgstr ""
+msgstr "ããã¤ã¹ã«å°éã§ãã¾ãã"
msgid "Diagnostics"
msgstr "診ææ©è½"
@@ -868,19 +896,19 @@ msgid "Disable DNS setup"
msgstr "DNSã»ããã¢ãããç¡å¹ã«ãã"
msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr "HWãã¼ã³ã³ã¿ã¤ãã¼ãç¡å¹ã«ãã"
+msgstr "æå·åãç¡å¹ã«ãã"
msgid "Disabled"
msgstr "ç¡å¹"
+msgid "Disabled (default)"
+msgstr "ç¡å¹ï¼ããã©ã«ãï¼"
+
msgid "Discard upstream RFC1918 responses"
msgstr "RFC1918ã®å¿çãç ´æ£ãã¾ã"
msgid "Displaying only packages containing"
-msgstr "å³è¨ã®è¡¨ç¤ºãå«ãã ããã±ã¼ã¸ã®ã¿ã表示ä¸"
+msgstr "å³è¨ã®æååãå«ãã ããã±ã¼ã¸ã®ã¿ã表示ä¸"
msgid "Distance Optimization"
msgstr "è·é¢ã®æé©å"
@@ -910,19 +938,16 @@ msgstr ""
"ç¡å¹ãªãªãã©ã¤ããã£ãã·ã¥ãã¾ãã (ä¾ï¼åå¨ããªããã¡ã¤ã³ããã®è¿çãªã©)"
msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr "ãããªãã¯DNSãµã¼ãã¼ãè¿çã§ããªãã£ããªã¯ã¨ã¹ãã転éãã¾ãã"
+msgstr "ãããªã㯠DNSãµã¼ãã¼ãè¿çã§ããªãã£ããªã¯ã¨ã¹ãã転éãã¾ãã"
msgid "Do not forward reverse lookups for local networks"
-msgstr "ãã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®éå¼ãã転éãã¾ãã"
-
-msgid "Do not send probe responses"
-msgstr "ããã¼ãã¬ã¹ãã³ã¹ãéä¿¡ããªã"
+msgstr "ãã¼ã«ã« ãããã¯ã¼ã¯ã¸ã®éå¼ãã転éãã¾ãã"
msgid "Domain required"
msgstr "ãã¡ã¤ã³å¿
é "
msgid "Domain whitelist"
-msgstr "ãã¡ã¤ã³ã»ãã¯ã¤ããªã¹ã"
+msgstr "ãã¡ã¤ã³ ãã¯ã¤ããªã¹ã"
msgid "Don't Fragment"
msgstr ""
@@ -938,7 +963,7 @@ msgid "Download and install package"
msgstr "ããã±ã¼ã¸ã®ãã¦ã³ãã¼ãã¨ã¤ã³ã¹ãã¼ã«"
msgid "Download backup"
-msgstr "ããã¯ã¢ããã¢ã¼ã«ã¤ãã®ãã¦ã³ãã¼ã"
+msgstr "ããã¯ã¢ãã ã¢ã¼ã«ã¤ãã®ãã¦ã³ãã¼ã"
msgid "Dropbear Instance"
msgstr "Dropbearè¨å®"
@@ -955,8 +980,7 @@ msgid "Dual-Stack Lite (RFC6333)"
msgstr "Dual-Stack Lite (RFC6333)"
msgid "Dynamic DHCP "
-msgstr ""
-"ãã¤ããã㯠DHCP "
+msgstr "åç DHCP "
msgid "Dynamic tunnel"
msgstr "åçãã³ãã«æ©è½"
@@ -1001,19 +1025,19 @@ msgid "Enable HE.net dynamic endpoint update"
msgstr "HE.netã®åçendpointæ´æ°ãæå¹ã«ãã¾ã"
msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "IPv6 ãã´ã·ã¨ã¼ã·ã§ã³ã®æå¹å"
msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "PPPãªã³ã¯ã®IPv6ãã´ã·ã¨ã¼ã·ã§ã³ãæå¹ã«ãã"
+msgstr "PPPãªã³ã¯ã®IPv6 ãã´ã·ã¨ã¼ã·ã§ã³ãæå¹ã«ãã"
msgid "Enable Jumbo Frame passthrough"
-msgstr "ã¸ã£ã³ããã¬ã¼ã ã»ãã¹ã¹ã«ã¼ãæå¹ã«ãã"
+msgstr "ã¸ã£ã³ããã¬ã¼ã ãã¹ã¹ã«ã¼ãæå¹ã«ãã"
msgid "Enable NTP client"
msgstr "NTPã¯ã©ã¤ã¢ã³ãæ©è½ãæå¹ã«ãã"
msgid "Enable Single DES"
-msgstr ""
+msgstr "ã·ã³ã°ã«DESã®æå¹å"
msgid "Enable TFTP server"
msgstr "TFTPãµã¼ãã¼ãæå¹ã«ãã"
@@ -1022,16 +1046,19 @@ msgid "Enable VLAN functionality"
msgstr "VLANæ©è½ãæå¹ã«ãã"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "WPS ããã·ã¥ãã¿ã³ãæå¹åããã«ã¯ãWPA(2)-PSKãå¿
è¦ã§ãã"
+
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr "Key Reinstallation (KRACK) 対çã®æå¹å"
msgid "Enable learning and aging"
-msgstr "ã©ã¼ãã³ã°ã»ã¨ã¤ã¸ã³ã°æ©è½ãæå¹ã«ãã"
+msgstr "ã©ã¼ãã³ã° ã¨ã¤ã¸ã³ã°æ©è½ãæå¹ã«ãã"
msgid "Enable mirroring of incoming packets"
-msgstr ""
+msgstr "åä¿¡ãã±ããã®ãã©ã¼ãªã³ã°ãæå¹å"
msgid "Enable mirroring of outgoing packets"
-msgstr ""
+msgstr "éä¿¡ãã±ããã®ãã©ã¼ãªã³ã°ãæå¹å"
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
msgstr ""
@@ -1048,8 +1075,13 @@ msgstr "æå¹/ç¡å¹"
msgid "Enabled"
msgstr "æå¹"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "ã¹ããã³ã°ããªã¼ã»ãããã³ã«ãæå¹ã«ãã"
+msgstr "ã¹ããã³ã°ããªã¼ ãããã³ã«ãæå¹ã«ãã"
msgid "Encapsulation mode"
msgstr "ã«ãã»ã«åã¢ã¼ã"
@@ -1058,10 +1090,10 @@ msgid "Encryption"
msgstr "æå·åã¢ã¼ã"
msgid "Endpoint Host"
-msgstr ""
+msgstr "ã¨ã³ããã¤ã³ã ãã¹ã"
msgid "Endpoint Port"
-msgstr ""
+msgstr "ã¨ã³ããã¤ã³ã ãã¼ã"
msgid "Erasing..."
msgstr "æ¶å»ä¸..."
@@ -1096,11 +1128,17 @@ msgstr ""
msgid "External"
msgstr "å¤é¨"
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
-msgstr "å¤é¨ã·ã¹ãã ãã°ã»ãµã¼ãã¼"
+msgstr "å¤é¨ã·ã¹ãã ãã° ãµã¼ãã¼"
msgid "External system log server port"
-msgstr "å¤é¨ã·ã¹ãã ãã°ã»ãµã¼ãã¼ãã¼ã"
+msgstr "å¤é¨ã·ã¹ãã ãã°ã»ãµã¼ãã¼ ãã¼ã"
msgid "External system log server protocol"
msgstr "å¤é¨ã·ã¹ãã ãã°ã»ãµã¼ãã¼ ãããã³ã«"
@@ -1108,9 +1146,6 @@ msgstr "å¤é¨ã·ã¹ãã ãã°ã»ãµã¼ãã¼ ãããã³ã«"
msgid "Extra SSH command options"
msgstr "æ¡å¼µ SSHã³ãã³ããªãã·ã§ã³"
-msgid "Fast Frames"
-msgstr "ãã¡ã¹ãã»ãã¬ã¼ã "
-
msgid "File"
msgstr "ãã¡ã¤ã«"
@@ -1127,7 +1162,7 @@ msgid "Filter private"
msgstr "ãã©ã¤ãã¼ããã£ã«ã¿ã¼"
msgid "Filter useless"
-msgstr "Filter useless"
+msgstr ""
msgid ""
"Find all currently attached filesystems and swap and replace configuration "
@@ -1137,7 +1172,7 @@ msgstr ""
"ã¥ãã¦ããã©ã«ãè¨å®ãç½®ãæãã¾ãã"
msgid "Find and join network"
-msgstr "ãããã¯ã¼ã¯ãæ¤ç´¢ãã¦åå "
+msgstr "ãããã¯ã¼ã¯ã®æ¤ç´¢ã¨åå "
msgid "Find package"
msgstr "ããã±ã¼ã¸ãæ¤ç´¢"
@@ -1148,17 +1183,20 @@ msgstr "çµäº"
msgid "Firewall"
msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã«"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã«è¨å®"
msgid "Firewall Status"
-msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã«ã»ã¹ãã¼ã¿ã¹"
+msgstr "ãã¡ã¤ã¢ã¦ã©ã¼ã« ã¹ãã¼ã¿ã¹"
msgid "Firmware File"
msgstr "ãã¡ã¼ã ã¦ã§ã¢ ãã¡ã¤ã«"
msgid "Firmware Version"
-msgstr "ãã¡ã¼ã ã¦ã§ã¢ã»ãã¼ã¸ã§ã³"
+msgstr "ãã¡ã¼ã ã¦ã§ã¢ ãã¼ã¸ã§ã³"
msgid "Fixed source port for outbound DNS queries"
msgstr "DNSã¯ã¨ãªãéä¿¡ããéä¿¡å
ãã¼ããåºå®ãã¾ã"
@@ -1194,8 +1232,11 @@ msgstr "TKIP ã使ç¨"
msgid "Force TKIP and CCMP (AES)"
msgstr "TKIP åã³CCMP (AES) ã使ç¨"
+msgid "Force link"
+msgstr "å¼·å¶ãªã³ã¯"
+
msgid "Force use of NAT-T"
-msgstr ""
+msgstr "NAT-Tã®å¼·å¶ä½¿ç¨"
msgid "Form token mismatch"
msgstr ""
@@ -1207,13 +1248,13 @@ msgid "Forward Error Correction Seconds (FECS)"
msgstr ""
msgid "Forward broadcast traffic"
-msgstr "ããã¼ããã£ã¹ãã»ãã©ãã£ãã¯ã転éãã"
+msgstr "ããã¼ããã£ã¹ã ãã©ãã£ãã¯ã転éãã"
msgid "Forwarding mode"
msgstr "転éã¢ã¼ã"
msgid "Fragmentation Threshold"
-msgstr "ãã©ã°ã¡ã³ãã¼ã·ã§ã³é¾å¤"
+msgstr "ãã©ã°ã¡ã³ãã¼ã·ã§ã³ãããå¤"
msgid "Frame Bursting"
msgstr "ãã¬ã¼ã ãã¼ã¹ã"
@@ -1228,6 +1269,8 @@ msgid ""
"Further information about WireGuard interfaces and peers at wireguard.io ."
msgstr ""
+"WireGuard ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¨ãã¢ã«ã¤ãã¦ã®è©³ç´°æ
å ±: wireguard.io "
msgid "GHz"
msgstr "GHz"
@@ -1239,7 +1282,7 @@ msgid "Gateway"
msgstr "ã²ã¼ãã¦ã§ã¤"
msgid "Gateway ports"
-msgstr "ã²ã¼ãã¦ã§ã¤ã»ãã¼ã"
+msgstr "ã²ã¼ãã¦ã§ã¤ ãã¼ã"
msgid "General Settings"
msgstr "ä¸è¬è¨å®"
@@ -1254,7 +1297,7 @@ msgid "Generate Config"
msgstr "ã³ã³ãã£ã°çæ"
msgid "Generate archive"
-msgstr "ããã¯ã¢ããã¢ã¼ã«ã¤ãã®ä½æ"
+msgstr "ããã¯ã¢ãã ã¢ã¼ã«ã¤ãã®ä½æ"
msgid "Generic 802.11%s Wireless Controller"
msgstr "802.11%s ç¡ç·LANã³ã³ããã¼ã©"
@@ -1275,7 +1318,7 @@ msgid "Go to relevant configuration page"
msgstr "é¢é£ããè¨å®ãã¼ã¸ã¸ç§»å"
msgid "Group Password"
-msgstr ""
+msgstr "ã°ã«ã¼ã ãã¹ã¯ã¼ã"
msgid "Guest"
msgstr "ã²ã¹ã"
@@ -1284,7 +1327,7 @@ msgid "HE.net password"
msgstr "HE.net ãã¹ã¯ã¼ã"
msgid "HE.net username"
-msgstr ""
+msgstr "HE.net ã¦ã¼ã¶ã¼å"
msgid "HT mode (802.11n)"
msgstr "HT ã¢ã¼ã (802.11n)"
@@ -1322,7 +1365,7 @@ msgid "Host"
msgstr "ãã¹ã"
msgid "Host entries"
-msgstr "ãã¹ãã¨ã³ããªã¼"
+msgstr "ãã¹ã ã¨ã³ããªã¼"
msgid "Host expiry timeout"
msgstr ""
@@ -1344,7 +1387,7 @@ msgid "Hybrid"
msgstr "ãã¤ããªãã"
msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DHã°ã«ã¼ã"
msgid "IP Addresses"
msgstr "IPã¢ãã¬ã¹"
@@ -1439,9 +1482,15 @@ msgstr "IPv6 ãã¬ãã£ã¯ã¹é·"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr "IPv6 ãµãã£ãã¯ã¹"
+
msgid "IPv6-Address"
msgstr "IPv6-ã¢ãã¬ã¹"
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1454,28 +1503,29 @@ msgstr "IPv6-over-IPv4 (6to4)"
msgid "Identity"
msgstr "èå¥å"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "ãã§ãã¯ããå ´åãæå·åã¯ç¡å¹ã«ãªãã¾ãã"
msgid ""
"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "åºå®ã®ããã¤ã¹ãã¼ãåã®ãããã«ãè¨å®ããUUIDã使ç¨ãã¦ãã¦ã³ããã¾ã"
+msgstr ""
+"åºå®ã®ããã¤ã¹ ãã¼ãåã®ãããã«ãè¨å®ãããUUIDã使ç¨ãã¦ãã¦ã³ããã¾ã"
msgid ""
"If specified, mount the device by the partition label instead of a fixed "
"device node"
msgstr ""
-"åºå®ã®ããã¤ã¹ãã¼ãåã®ãããã«ãè¨å®ãããã¼ãã£ã·ã§ã³ã©ãã«ã使ç¨ãã¦ãã¦"
-"ã³ããã¾ãã"
+"åºå®ã®ããã¤ã¹ ãã¼ãåã®ãããã«ãè¨å®ããããã¼ãã£ã·ã§ã³ ã©ãã«ã使ç¨ãã¦"
+"ãã¦ã³ããã¾ãã"
msgid "If unchecked, no default route is configured"
-msgstr "ãã§ãã¯ããã¦ããªãå ´åãããã©ã«ãã«ã¼ããè¨å®ãã¾ãã"
+msgstr "ãã§ãã¯ããã¦ããªãå ´åãããã©ã«ã ã«ã¼ããè¨å®ãã¾ãã"
msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "ãã§ãã¯ããã¦ããªãå ´åãéç¥ãããDNSãµã¼ãã¼ã¢ãã¬ã¹ãç¡è¦ãã¾ã"
+msgstr "ãã§ãã¯ããã¦ããªãå ´åãéç¥ãããDNSãµã¼ãã¼ ã¢ãã¬ã¹ãç¡è¦ãã¾ã"
msgid ""
"If your physical memory is insufficient unused data can be temporarily "
@@ -1484,11 +1534,11 @@ msgid ""
"slow process as the swap-device cannot be accessed with the high datarates "
"of the RAM ."
msgstr ""
-"ç©çã¡ã¢ãªãä¸è¶³ããå ´åãä¸æçã«ãã¼ã¿ããã大容éãªRAM ããã¤ã¹ã«ã¹ã¯ãããããã¨ãåºæ¥ã¾ãããã ãããã¼"
-"ã¿ã®ã¹ã¯ããã¯é常ã«é
ãå¦çã§ãããããã¹ã¯ããããããã¤ã¹ã«ã¯é«éã«RAM ã«ã¢ã¯ã»ã¹ãããã¨ãã§ããªããªãæã"
-"ãããã¾ãã"
+"ç©çã¡ã¢ãªãä¸è¶³ããå ´åã使ç¨ããã¦ããªããã¼ã¿ãä¸æçã«ã¹ã¯ãã ããã¤ã¹ã«"
+"ã¹ã¯ããããRAM ã®ä½¿ç¨å¯è½é åãå¢"
+"ãããã¨ãã§ãã¾ãããã ããã¹ã¯ãã ããã¤ã¹ã¯RAM ããé«éã«ã¢ã¯ã»ã¹ãããã¨ãã§ããªãããããã¼ã¿ã®ã¹ã¯ãã"
+"ã¯é常ã«é
ãå¦çã§ãããã¨ã«æ³¨æãã¾ãã"
msgid "Ignore /etc/hosts
"
msgstr "/etc/hosts
ãç¡è¦"
@@ -1497,7 +1547,7 @@ msgid "Ignore interface"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ãç¡è¦ãã"
msgid "Ignore resolve file"
-msgstr "ãªã¾ã«ããã¡ã¤ã«ãç¡è¦ãã"
+msgstr "ãªã¾ã«ã ãã¡ã¤ã«ãç¡è¦ãã"
msgid "Image"
msgstr "ã¤ã¡ã¼ã¸"
@@ -1543,6 +1593,9 @@ msgstr "ã¤ã³ã¹ãã¼ã«æ¸ã¿ããã±ã¼ã¸"
msgid "Interface"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹è¨å®"
@@ -1574,7 +1627,7 @@ msgid "Internal"
msgstr "å
é¨"
msgid "Internal Server Error"
-msgstr "å
é¨ãµã¼ãã¼ã¨ã©ã¼"
+msgstr "å
é¨ãµã¼ãã¼ ã¨ã©ã¼"
msgid "Invalid"
msgstr "å
¥åå¤ãä¸æ£ã§ã"
@@ -1586,7 +1639,11 @@ msgid "Invalid VLAN ID given! Only unique IDs are allowed"
msgstr "ç¡å¹ãªVLAN IDã§ã! ã¦ãã¼ã¯ãªIDãå
¥åãã¦ãã ããã"
msgid "Invalid username and/or password! Please try again."
-msgstr "ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ããä¸æ£ã§ã! ããä¸åº¦å
¥åãã¦ãã ããã"
+msgstr ""
+"ã¦ã¼ã¶ã¼åããã¹ã¯ã¼ãããããã¯ä¸¡æ¹ãä¸æ£ã§ãï¼ããä¸åº¦å
¥åãã¦ãã ããã"
+
+msgid "Isolate Clients"
+msgstr ""
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1595,7 +1652,7 @@ msgstr ""
"æ´æ°ãããã¨ããã¤ã¡ã¼ã¸ãã¡ã¤ã«ã¯ãã®ãã©ãã·ã¥ã¡ã¢ãªã«é©åãã¾ãããã¤ã¡ã¼"
"ã¸ãã¡ã¤ã«ã確èªãã¦ãã ãã!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "JavaScriptãæå¹ã«ãã¦ãã ãã!"
msgid "Join Network"
@@ -1605,16 +1662,16 @@ msgid "Join Network: Wireless Scan"
msgstr "ãããã¯ã¼ã¯ã«æ¥ç¶ãã: ç¡ç·LANã¹ãã£ã³"
msgid "Joining Network: %q"
-msgstr "次ã®ãããã¯ã¼ã¯ã«åå : %q"
+msgstr "ãããã¯ã¼ã¯ã«æ¥ç¶: %q"
msgid "Keep settings"
msgstr "è¨å®ãä¿æãã"
msgid "Kernel Log"
-msgstr "ã«ã¼ãã«ãã°"
+msgstr "ã«ã¼ãã« ãã°"
msgid "Kernel Version"
-msgstr "ã«ã¼ãã«ãã¼ã¸ã§ã³"
+msgstr "ã«ã¼ãã« ãã¼ã¸ã§ã³"
msgid "Key"
msgstr "æå·ãã¼"
@@ -1664,9 +1721,6 @@ msgstr "ãªã¼ã¹æå¹æé"
msgid "Leasefile"
msgstr "ãªã¼ã¹ãã¡ã¤ã«"
-msgid "Leasetime"
-msgstr "ãªã¼ã¹æé"
-
msgid "Leasetime remaining"
msgstr "æ®ããªã¼ã¹æé"
@@ -1710,6 +1764,22 @@ msgstr ""
"åãåããã転éããDNS ãµã¼ãã¼ã®"
"ãªã¹ããè¨å®ãã¾ã"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr "èªè¨¼ç¨ SSHæå·ãã¼ ãã¡ã¤ã«ã®ãªã¹ã"
@@ -1755,13 +1825,13 @@ msgid "Local Service Only"
msgstr ""
msgid "Local Startup"
-msgstr "ãã¼ã«ã« Startup"
+msgstr "ãã¼ã«ã« ã¹ã¿ã¼ãã¢ãã"
msgid "Local Time"
msgstr "æå»"
msgid "Local domain"
-msgstr "ãã¼ã«ã«ãã¡ã¤ã³"
+msgstr "ãã¼ã«ã« ãã¡ã¤ã³"
msgid ""
"Local domain specification. Names matching this domain are never forwarded "
@@ -1770,11 +1840,11 @@ msgstr ""
msgid "Local domain suffix appended to DHCP names and hosts file entries"
msgstr ""
-"DHCPåã¨hostsãã¡ã¤ã«ã®ã¨ã³ããªã¼ã«ä»ãããããã¼ã«ã«ãã¡ã¤ã³ãµãã£ãã¯ã¹ã§"
+"DHCPåã¨hostsãã¡ã¤ã«ã®ã¨ã³ããªã¼ã«ä»ãããããã¼ã«ã«ãã¡ã¤ã³ ãµãã£ãã¯ã¹ã§"
"ãã"
msgid "Local server"
-msgstr "ãã¼ã«ã«ãµã¼ãã¼"
+msgstr "ãã¼ã«ã« ãµã¼ãã¼"
msgid ""
"Localise hostname depending on the requesting subnet if multiple IPs are "
@@ -1791,7 +1861,7 @@ msgid "Log output level"
msgstr "ãã°åºåã¬ãã«"
msgid "Log queries"
-msgstr "ãã°ã¯ã¨ãªã¼"
+msgstr "ãã° ã¯ã¨ãª"
msgid "Logging"
msgstr "ãã°"
@@ -1813,7 +1883,7 @@ msgid "MAC-Address"
msgstr "MAC-ã¢ãã¬ã¹"
msgid "MAC-Address Filter"
-msgstr "MAC-ã¢ãã¬ã¹ãã£ã«ã¿"
+msgstr "MAC-ã¢ãã¬ã¹ ãã£ã«ã¿"
msgid "MAC-Filter"
msgstr "MAC-ãã£ã«ã¿"
@@ -1822,13 +1892,13 @@ msgid "MAC-List"
msgstr "MAC-ãªã¹ã"
msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
msgid "MB/s"
msgstr "MB/s"
msgid "MD5"
-msgstr ""
+msgstr "MD5"
msgid "MHz"
msgstr "MHz"
@@ -1848,9 +1918,6 @@ msgstr "æå"
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "æ大ã¬ã¼ã"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "DHCPãªã¼ã¹ã®è¨±å¯ãããæ大æ°"
@@ -1888,21 +1955,21 @@ msgstr "ã¡ã¢ãªä½¿ç¨ç (%)"
msgid "Metric"
msgstr "ã¡ããªãã¯"
-msgid "Minimum Rate"
-msgstr "æå°ã¬ã¼ã"
-
msgid "Minimum hold time"
msgstr "æçä¿ææé"
msgid "Mirror monitor port"
-msgstr ""
+msgstr "ãã©ã¼ç£è¦ãã¼ã"
msgid "Mirror source port"
-msgstr ""
+msgstr "ãã©ã¼å
ãã¼ã"
msgid "Missing protocol extension for proto %q"
msgstr "ãããã³ã« %qã®ãããã³ã«æ¡å¼µãè¦ã¤ããã¾ãã"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "ã¢ã¼ã"
@@ -1910,7 +1977,7 @@ msgid "Model"
msgstr "ã¢ãã«"
msgid "Modem device"
-msgstr "ã¢ãã ããã¤ã¹"
+msgstr "ã¢ãã ããã¤ã¹"
msgid "Modem init timeout"
msgstr "ã¢ãã åæåã¿ã¤ã ã¢ã¦ã"
@@ -1961,26 +2028,26 @@ msgstr "ä¸ã¸"
msgid "Move up"
msgstr "ä¸ã¸"
-msgid "Multicast Rate"
-msgstr "ãã«ããã£ã¹ãã¬ã¼ã"
-
msgid "Multicast address"
-msgstr "ãã«ããã£ã¹ãã¢ãã¬ã¹"
+msgstr "ãã«ããã£ã¹ã ã¢ãã¬ã¹"
msgid "NAS ID"
msgstr "NAS ID"
msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T ã¢ã¼ã"
msgid "NAT64 Prefix"
msgstr "NAT64 ãã¬ãã£ã¯ã¹"
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr "NDP-ãããã·"
msgid "NT Domain"
-msgstr ""
+msgstr "NT ãã¡ã¤ã³"
msgid "NTP server candidates"
msgstr "NTPãµã¼ãã¼åè£"
@@ -2007,13 +2074,13 @@ msgid "Network"
msgstr "ãããã¯ã¼ã¯"
msgid "Network Utilities"
-msgstr "ãããã¯ã¼ã¯ã»ã¦ã¼ãã£ãªãã£"
+msgstr "ãããã¯ã¼ã¯ ã¦ã¼ãã£ãªãã£"
msgid "Network boot image"
-msgstr "ãããã¯ã¼ã¯ã»ãã¼ãç¨ã¤ã¡ã¼ã¸"
+msgstr "ãããã¯ã¼ã¯ãã¼ãç¨ã¤ã¡ã¼ã¸"
msgid "Network without interfaces."
-msgstr ""
+msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ç¡ããããã¯ã¼ã¯ã§ãã"
msgid "Next »"
msgstr "次 »"
@@ -2022,7 +2089,7 @@ msgid "No DHCP Server configured for this interface"
msgstr "ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ã¯DHCPãµã¼ãã¼ãè¨å®ããã¦ãã¾ãã"
msgid "No NAT-T"
-msgstr ""
+msgstr "NAT-Tã使ç¨ããªã"
msgid "No chains in this table"
msgstr "ãã§ã¤ã³å
ã«ã«ã¼ã«ãããã¾ãã"
@@ -2043,7 +2110,7 @@ msgid "No network name specified"
msgstr "ãããã¯ã¼ã¯åãè¨å®ããã¦ãã¾ãã"
msgid "No package lists available"
-msgstr "ããã±ã¼ã¸ãªã¹ããããã¾ãã"
+msgstr "ããã±ã¼ã¸ ãªã¹ããããã¾ãã"
msgid "No password set!"
msgstr "ãã¹ã¯ã¼ããè¨å®ããã¦ãã¾ãã!"
@@ -2076,7 +2143,7 @@ msgid "Normal"
msgstr "æ¨æº"
msgid "Not Found"
-msgstr ""
+msgstr "è¦ã¤ããã¾ãã"
msgid "Not associated"
msgstr "ã¢ã½ã·ã¨ã¼ã·ã§ã³ããã¦ãã¾ãã"
@@ -2119,18 +2186,18 @@ msgid ""
"INTERFACE.VLANNR (e.g. : "
"eth0.1 )."
msgstr ""
-"ãã®ãã¼ã¸ã§ã¯ãããã¯ã¼ã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®è¨å®ãè¡ããã¨ãåºæ¥ã¾ãã\"ã"
-"ãªãã¸ã¤ã³ã¿ã¼ãã§ã¼ã¹\"ãã£ã¼ã«ãããã§ãã¯ããè¤æ°ã®ãããã¯ã¼ã¯ã¤ã³ã¿ã¼"
-"ãã§ã¼ã¹åãã¹ãã¼ã¹ã§åºåãã§å
¥åãããã¨ã§è¤æ°ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãããªãã¸"
-"ãããã¨ãåºæ¥ã¾ããã¾ããINTERFACE.VLANNR ã¨ãã表è¨ã«ããVLAN ã使ç¨ãããã¨ãåºæ¥ã¾ãã"
-"(ä¾ : eth0.1 )"
+"ãã®ãã¼ã¸ã§ã¯ãããã¯ã¼ã¯ ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®è¨å®ãè¡ããã¨ãåºæ¥ã¾ãã\"ã"
+"ãªãã¸ã¤ã³ã¿ã¼ãã§ã¼ã¹\"ãã£ã¼ã«ãã«ãã§ãã¯ãä»ããè¤æ°ã®ãããã¯ã¼ã¯ ã¤ã³"
+"ã¿ã¼ãã§ã¼ã¹ããªã¹ãããé¸æãããã¨ã§è¤æ°ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãããªãã¸ããã"
+"ã¨ãåºæ¥ã¾ããã¾ããINTERFACE.VLANNR ã¨ãã表è¨ã«ããVLAN ã使ç¨ãããã¨ãåºæ¥ã¾ãã(ä¾ : eth0.1 )"
msgid "On-State Delay"
msgstr "ç¹ç¯æé"
msgid "One of hostname or mac address must be specified!"
-msgstr "1ã¤ä»¥ä¸ã®ãã¹ãåã¾ãã¯macã¢ãã¬ã¹ãè¨å®ãã¦ãã ãã!"
+msgstr "1ã¤ä»¥ä¸ã®ãã¹ãåã¾ãã¯MACã¢ãã¬ã¹ãè¨å®ãã¦ãã ãã!"
msgid "One or more fields contain invalid values!"
msgstr "1ã¤ä»¥ä¸ã®ãã£ã¼ã«ãã«ç¡å¹ãªå¤ãè¨å®ããã¦ãã¾ãï¼"
@@ -2156,18 +2223,30 @@ msgstr "å¤æ´ããããªãã·ã§ã³"
msgid "Option removed"
msgstr "åé¤ããããªãã·ã§ã³"
+msgid "Optional"
+msgstr "ãªãã·ã§ã³"
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2177,20 +2256,24 @@ msgid ""
"Optional. Host of peer. Names are resolved prior to bringing up the "
"interface."
msgstr ""
+"ãã¢ã®ãã¹ãã§ããååã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®èµ·ååã«è§£æ±ºããã¾ããï¼ãªãã·ã§"
+"ã³ï¼"
msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "ãã³ãã« ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®Maximum Transmission Unitï¼ãªãã·ã§ã³ï¼"
msgid "Optional. Port of peer."
-msgstr ""
+msgstr "ãã¢ã®ãã¼ãï¼ãªãã·ã§ã³ï¼"
msgid ""
"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
"Recommended value if this device is behind a NAT is 25."
msgstr ""
+"ãã¼ãã¢ã©ã¤ã ã¡ãã»ã¼ã¸ã®éä¿¡ééï¼ç§ï¼ã§ããæ¢å®å¤: ï¼ããã®ããã¤ã¹ãNAT"
+"以ä¸ã«åå¨ããå ´åã®æ¨å¥¨å¤ã¯25ã§ããï¼ãªãã·ã§ã³ï¼"
msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
+msgstr "çºä¿¡ãã±ããã¨åä¿¡ãã±ããã«ä½¿ç¨ãããUDPãã¼ãï¼ãªãã·ã§ã³ï¼"
msgid "Options"
msgstr "ãªãã·ã§ã³"
@@ -2204,9 +2287,6 @@ msgstr "ã¢ã¦ã"
msgid "Outbound:"
msgstr "éä¿¡:"
-msgid "Outdoor Channels"
-msgstr "å±å¤ç¨å¨æ³¢æ°"
-
msgid "Output Interface"
msgstr "åºåã¤ã³ã¿ã¼ãã§ã¼ã¹"
@@ -2236,7 +2316,7 @@ msgstr ""
"ãããããè¨ç®ããã¾ãã"
msgid "Override the table used for internal routes"
-msgstr ""
+msgstr "å
é¨ã«ã¼ãã«ä½¿ç¨ããããã¼ãã«ãä¸æ¸ããã¾ãã"
msgid "Overview"
msgstr "æ¦è¦"
@@ -2256,6 +2336,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2287,7 +2370,7 @@ msgid "Package libiwinfo required!"
msgstr "libiwinfo ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ãã¦ãã ããï¼"
msgid "Package lists are older than 24 hours"
-msgstr "ããã±ã¼ã¸ãªã¹ãã¯24æé以ä¸åã®ãã®ã§ã"
+msgstr "ããã±ã¼ã¸ ãªã¹ãã¯24æé以ä¸åã®ãã®ã§ã"
msgid "Package name"
msgstr "ããã±ã¼ã¸å"
@@ -2308,11 +2391,14 @@ msgid "Password of Private Key"
msgstr "ç§å¯éµã®ãã¹ã¯ã¼ã"
msgid "Password of inner Private Key"
-msgstr ""
+msgstr "ç§å¯éµã®ãã¹ã¯ã¼ã"
msgid "Password successfully changed!"
msgstr "ãã¹ã¯ã¼ããå¤æ´ãã¾ãã"
+msgid "Password2"
+msgstr "ãã¹ã¯ã¼ã2"
+
msgid "Path to CA-Certificate"
msgstr "CA証ææ¸ã®ãã¹"
@@ -2326,13 +2412,13 @@ msgid "Path to executable which handles the button event"
msgstr "ãã¿ã³ã¤ãã³ãããã³ãã«ããå®è¡ãã¡ã¤ã«ã®ãã¹"
msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "CA 証ææ¸ã®ãã¹"
msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "ã¯ã©ã¤ã¢ã³ã証ææ¸ã®ãã¹"
msgid "Path to inner Private Key"
-msgstr ""
+msgstr "ç§å¯éµã®ãã¹"
msgid "Peak:"
msgstr "ãã¼ã¯:"
@@ -2341,7 +2427,7 @@ msgid "Peer IP address to assign"
msgstr ""
msgid "Peers"
-msgstr ""
+msgstr "ãã¢"
msgid "Perfect Forward Secrecy"
msgstr ""
@@ -2353,7 +2439,7 @@ msgid "Perform reset"
msgstr "è¨å®ãªã»ãããå®è¡"
msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "æ°¸ç¶çãªãã¼ãã¢ã©ã¤ã"
msgid "Phy Rate:"
msgstr "ç©çã¬ã¼ã:"
@@ -2385,6 +2471,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr "å§ä»»ããããã¬ãã£ã¯ã¹ (PD)"
+
msgid "Preshared Key"
msgstr "äºåå
±æéµ"
@@ -2429,7 +2524,7 @@ msgid "Protocol of the new interface"
msgstr "æ°ããã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ãããã³ã«"
msgid "Protocol support is not installed"
-msgstr "ãããã³ã«ãµãã¼ããã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãã"
+msgstr "ãããã³ã« ãµãã¼ããã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãã"
msgid "Provide NTP server"
msgstr "NTPãµã¼ãã¼æ©è½ãæå¹ã«ãã"
@@ -2452,11 +2547,17 @@ msgstr ""
msgid "Quality"
msgstr "ã¯ãªãªãã£"
-msgid "RFC3947 NAT-T mode"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
msgstr ""
+msgid "RFC3947 NAT-T mode"
+msgstr "RFC3947 NAT-Tã¢ã¼ã"
+
msgid "RTS/CTS Threshold"
-msgstr "RTS/CTSé¾å¤"
+msgstr "RTS/CTSãããå¤"
msgid "RX"
msgstr "RX"
@@ -2468,7 +2569,7 @@ msgid "RaLink 802.11%s Wireless Controller"
msgstr "RaLink 802.11%s ç¡ç·LANã³ã³ããã¼ã©"
msgid "Radius-Accounting-Port"
-msgstr "Radiusã¢ã«ã¦ã³ããµã¼ãã¼ã»ãã¼ãçªå·"
+msgstr "Radiusã¢ã«ã¦ã³ããµã¼ãã¼ ãã¼ãçªå·"
msgid "Radius-Accounting-Secret"
msgstr "Radiusã¢ã«ã¦ã³ãç§å¯éµ"
@@ -2477,7 +2578,7 @@ msgid "Radius-Accounting-Server"
msgstr "Radiusã¢ã«ã¦ã³ããµã¼ãã¼"
msgid "Radius-Authentication-Port"
-msgstr "Radiusèªè¨¼ãµã¼ãã¼ã»ãã¼ãçªå·"
+msgstr "Radiusèªè¨¼ãµã¼ãã¼ ãã¼ãçªå·"
msgid "Radius-Authentication-Secret"
msgstr "Radiusèªè¨¼ç§å¯éµ"
@@ -2536,7 +2637,7 @@ msgid "Realtime Connections"
msgstr "ãªã¢ã«ã¿ã¤ã ã»ã³ãã¯ã·ã§ã³"
msgid "Realtime Graphs"
-msgstr "ãªã¢ã«ã¿ã¤ã ã»ã°ã©ã"
+msgstr "ãªã¢ã«ã¿ã¤ã ã°ã©ã"
msgid "Realtime Load"
msgstr "ãªã¢ã«ã¿ã¤ã ã»ãã¼ã"
@@ -2547,6 +2648,9 @@ msgstr "ãªã¢ã«ã¿ã¤ã ã»ãã©ãã£ãã¯"
msgid "Realtime Wireless"
msgstr "ãªã¢ã«ã¿ã¤ã ã»ç¡ç·LAN"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "DNSãªãã¤ã³ãã£ã³ã°ã»ãããã¯ã·ã§ã³"
@@ -2566,7 +2670,7 @@ msgid "Receiver Antenna"
msgstr "åä¿¡ã¢ã³ãã"
msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "æ¨å¥¨ãWireGuard ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®IPã¢ãã¬ã¹ã§ãã"
+msgstr "WireGuard ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®IPã¢ãã¬ã¹ã§ããï¼æ¨å¥¨ï¼"
msgid "Reconnect this interface"
msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®åæ¥ç¶"
@@ -2577,9 +2681,6 @@ msgstr "ã¤ã³ã¿ã¼ãã§ã¼ã¹åæ¥ç¶ä¸"
msgid "References"
msgstr "åç
§ã«ã¦ã³ã¿"
-msgid "Regulatory Domain"
-msgstr "è¦å¶ãã¡ã¤ã³"
-
msgid "Relay"
msgstr "ãªã¬ã¼"
@@ -2593,10 +2694,10 @@ msgid "Relay bridge"
msgstr "ãªã¬ã¼ããªãã¸"
msgid "Remote IPv4 address"
-msgstr "ãªã¢ã¼ãIPv4ã¢ãã¬ã¹"
+msgstr "ãªã¢ã¼ã IPv4ã¢ãã¬ã¹"
msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "ãªã¢ã¼ã IPv4ã¢ãã¬ã¹ ã¾ã㯠FQDN"
msgid "Remove"
msgstr "åé¤"
@@ -2614,15 +2715,21 @@ msgid "Request IPv6-address"
msgstr "IPv6-ã¢ãã¬ã¹ã®ãªã¯ã¨ã¹ã"
msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "ãªã¯ã¨ã¹ãããIPv6-ãã¬ãã£ã¯ã¹é·"
msgid "Require TLS"
msgstr "TLSãå¿
è¦"
+msgid "Required"
+msgstr "å¿
é "
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "DOCSIS 3.0ã使ç¨ããããã¤ãã®ISPã§ã¯å¿
è¦ã«ãªãã¾ã"
msgid "Required. Base64-encoded private key for this interface."
+msgstr "ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ä½¿ç¨ããBase64-ã¨ã³ã³ã¼ã ç§å¯éµï¼å¿
é ï¼"
+
+msgid "Required. Base64-encoded public key of peer."
msgstr ""
msgid ""
@@ -2631,8 +2738,12 @@ msgid ""
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
+"'ãã«' ãã¼ã¸ã§ã³ã® wpad/hostapd ã¨ãç¡ç·LANãã©ã¤ãã¼ã«ãããµãã¼ããå¿
è¦ã§"
+"ãã ï¼2017å¹´2æç¾å¨: ath9k åã³ ath10kãLEDEå
ã§ã¯ mwlwifi åã³ mt76ï¼"
msgid ""
"Requires upstream supports DNSSEC; verify unsigned domain responses really "
@@ -2691,7 +2802,7 @@ msgid "Router Advertisement-Service"
msgstr "ã«ã¼ã¿ã¼ ã¢ããã¿ã¤ãºã¡ã³ã-ãµã¼ãã¹"
msgid "Router Password"
-msgstr "ã«ã¼ã¿ã¼ã»ãã¹ã¯ã¼ã"
+msgstr "ã«ã¼ã¿ã¼ ãã¹ã¯ã¼ã"
msgid "Routes"
msgstr "çµè·¯æ
å ±"
@@ -2775,9 +2886,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "ã¯ã©ã¤ã¢ã³ãã®åé¢"
-msgid "Separate WDS"
-msgstr "WDSãåé¢ãã"
-
msgid "Server Settings"
msgstr "ãµã¼ãã¼è¨å®"
@@ -2801,6 +2909,11 @@ msgstr "ãµã¼ãã¹ã¿ã¤ã"
msgid "Services"
msgstr "ãµã¼ãã¹"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr "æå»åæè¨å®"
@@ -2811,7 +2924,7 @@ msgid "Severely Errored Seconds (SES)"
msgstr ""
msgid "Short GI"
-msgstr ""
+msgstr "Short GI"
msgid "Show current backup file list"
msgstr "ç¾å¨ã®ããã¯ã¢ãããã¡ã¤ã«ã®ãªã¹ãã表示ãã"
@@ -2938,9 +3051,6 @@ msgstr "éçãªã¼ã¹"
msgid "Static Routes"
msgstr "éçã«ã¼ãã£ã³ã°"
-msgid "Static WDS"
-msgstr "éçWDS"
-
msgid "Static address"
msgstr "éçã¢ãã¬ã¹"
@@ -3009,10 +3119,10 @@ msgid "System Log"
msgstr "ã·ã¹ãã ãã°"
msgid "System Properties"
-msgstr "ã·ã¹ãã ã»ããããã£"
+msgstr "ã·ã¹ãã ããããã£"
msgid "System log buffer size"
-msgstr "ã·ã¹ãã ãã°ã»ãããã¡ãµã¤ãº"
+msgstr "ã·ã¹ãã ãã° ãããã¡ãµã¤ãº"
msgid "TCP:"
msgstr "TCP:"
@@ -3082,7 +3192,7 @@ msgstr ""
"0-9
, _
"
msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
+msgstr "è¨å®ãã¡ã¤ã«ã¯ä»¥ä¸ã®ã¨ã©ã¼ã«ããèªã¿è¾¼ãã¾ããã§ãã:"
msgid ""
"The device file of the memory or partition (e.g."
@@ -3134,7 +3244,7 @@ msgid ""
msgstr ""
msgid "The length of the IPv6 prefix in bits"
-msgstr ""
+msgstr "IPv6 ãã¬ãã£ã¯ã¹ã®é·ã (bit) ã§ãã"
msgid "The local IPv4 address over which the tunnel is created (optional)."
msgstr ""
@@ -3147,12 +3257,18 @@ msgid ""
"segments. Often there is by default one Uplink port for a connection to the "
"next greater network like the internet and other ports for a local network."
msgstr ""
+"ãããã¯ã¼ã¯ ãã¼ãã¯ãã³ã³ãã¥ã¼ã¿ãä»ã¨ç´æ¥éä¿¡ãããã¨ãã§ããè¤æ°ã® "
+"VLAN ã«ã¾ã¨ãããã¨ãã§ãã¾"
+"ãã VLAN ã¯ãç°ãªãããã"
+"ã¯ã¼ã¯ ã»ã°ã¡ã³ãã®åé¢ã«ãã°ãã°ç¨ãããã¾ããé常ãã¤ã³ã¿ã¼ããããªã©ããä¸"
+"ä½ã®ãããã¯ã¼ã¯ã¸ã®æ¥ç¶ã«ä½¿ç¨ããã¢ãããªã³ã¯ ãã¼ãã¨ããã¼ã«ã« ãããã¯ã¼"
+"ã¯ç¨ã®ãã®ä»ã®ãã¼ããåå¨ãã¾ãã"
msgid "The selected protocol needs a device assigned"
msgstr "é¸æä¸ã®ãããã³ã«ã使ç¨ããå ´åãããã¤ã¹ãè¨å®ããå¿
è¦ãããã¾ã"
msgid "The submitted security token is invalid or already expired!"
-msgstr ""
+msgstr "éä¿¡ãããã»ãã¥ãªã㣠ãã¼ã¯ã³ã¯ç¡å¹ãããã¯æéåãã§ãï¼"
msgid ""
"The system is erasing the configuration partition now and will reboot itself "
@@ -3236,21 +3352,21 @@ msgid ""
"This is the content of /etc/rc.local. Insert your own commands here (in "
"front of 'exit 0') to execute them at the end of the boot process."
msgstr ""
-"/etc/rc.localã表示ãã¦ãã¾ããããªãã®å®è¡ãããã³ãã³ãã'exit 0'è¡ããä¸ã«"
-"å
¥åãã¦ãã ããããããã®ã³ãã³ãã¯ãã¼ãããã»ã¹ã®æå¾ã«å®è¡ããã¾ãã"
+"/etc/rc.localã表示ãã¦ãã¾ããå®è¡ãããã³ãã³ãã'exit 0'è¡ããä¸ã«å
¥åãã¦"
+"ãã ããããããã®ã³ãã³ãã¯ãã¼ãããã»ã¹ã®æå¾ã«å®è¡ããã¾ãã"
msgid ""
"This is the local endpoint address assigned by the tunnel broker, it usually "
"ends with :2
"
msgstr ""
-"ãããã¤ãããã¢ãµã¤ã³ãããããã¼ã«ã«ã®ã¨ã³ããã¤ã³ãã»ã¢ãã¬ã¹ã§ããé常ã"
+"ãããã¤ãããã¢ãµã¤ã³ãããããã¼ã«ã«ã®ã¨ã³ããã¤ã³ã ã¢ãã¬ã¹ã§ããé常ã"
":2
ãçµç«¯ã«è¨å®ããã¾ãã"
msgid ""
"This is the only DHCP"
"abbr> in the local network"
msgstr ""
-"ãã¼ã«ã«ãããã¯ã¼ã¯å
ã®ã¿ã® DHCP ã¨ãã¦ä½¿ç¨ãã"
msgid "This is the plain username for logging into the account"
@@ -3262,7 +3378,7 @@ msgstr ""
msgid "This is the system crontab in which scheduled tasks can be defined."
msgstr ""
-"ã¹ã±ã¸ã¥ã¼ã«ã¿ã¹ã¯ã·ã¹ãã ã使ç¨ãããã¨ã§ãå®æçã«ç¹å®ã®ã¿ã¹ã¯ã®å®è¡ãè¡ã"
+"ã¹ã±ã¸ã¥ã¼ã«ã¿ã¹ã¯ ã·ã¹ãã ã使ç¨ãããã¨ã§ãå®æçã«ç¹å®ã®ã¿ã¹ã¯ã®å®è¡ãè¡ã"
"ãã¨ãå¯è½ã§ãã"
msgid ""
@@ -3298,7 +3414,7 @@ msgid ""
"To restore configuration files, you can upload a previously generated backup "
"archive here."
msgstr ""
-"è¨å®ã復å
ããã«ã¯ãä½æãã¦ãããããã¯ã¢ããã¢ã¼ã«ã¤ããã¢ãããã¼ããã¦ã"
+"è¨å®ã復å
ããã«ã¯ãä½æãã¦ãããããã¯ã¢ãã ã¢ã¼ã«ã¤ããã¢ãããã¼ããã¦ã"
"ã ããã"
msgid "Tone"
@@ -3352,9 +3468,6 @@ msgstr "ãã³ãã«ã»ããã¢ãã ãµã¼ãã¼"
msgid "Tunnel type"
msgstr "ãã³ãã«ã¿ã¤ã"
-msgid "Turbo Mode"
-msgstr "ã¿ã¼ãã¢ã¼ã"
-
msgid "Tx-Power"
msgstr "éä¿¡é»å"
@@ -3380,7 +3493,7 @@ msgid "UUID"
msgstr "UUID"
msgid "Unable to dispatch"
-msgstr ""
+msgstr "ãã£ã¹ãããã§ãã¾ãã"
msgid "Unavailable Seconds (UAS)"
msgstr ""
@@ -3411,13 +3524,13 @@ msgid ""
"Check \"Keep settings\" to retain the current configuration (requires a "
"compatible firmware image)."
msgstr ""
-"ã·ã¹ãã ãã¢ãããã¼ãããå ´åãsysupgradeæ©è½ã«äºææ§ã®ãããã¡ã¼ã ã¦ã§ã¢ã¤"
-"ã¡ã¼ã¸ãã¢ãããã¼ããã¦ãã ããã\"è¨å®ã®ä¿æ\"ãæå¹ã«ããã¨ãç¾å¨ã®è¨å®ã"
-"ç¶æãã¦ã¢ãããã¼ããè¡ãã¾ãããã ããOpenWrt/LEDEäºæã®ãã¡ã¼ã ã¦ã§ã¢ã¤"
-"ã¡ã¼ã¸ãã¢ãããã¼ããããå ´åã®ã¿ãè¨å®ã¯ä¿æããã¾ãã"
+"ã·ã¹ãã ãã¢ãããã¼ãããå ´åãsysupgradeæ©è½ã«äºææ§ã®ãããã¡ã¼ã ã¦ã§ã¢ ã¤"
+"ã¡ã¼ã¸ãããã«ã¢ãããã¼ããã¦ãã ããã\"è¨å®ã®ä¿æ\"ãæå¹ã«ããã¨ãç¾å¨ã®"
+"è¨å®ãç¶æãã¦ã¢ãããã¼ããè¡ãã¾ãï¼äºææ§ã®ãããã¡ã¼ã ã¦ã§ã¢ ã¤ã¡ã¼ã¸ãå¿
"
+"è¦ï¼ã"
msgid "Upload archive..."
-msgstr "ã¢ã¼ã«ã¤ããã¢ãããã¼ã"
+msgstr "ã¢ã¼ã«ã¤ããã¢ãããã¼ã..."
msgid "Uploaded File"
msgstr "ã¢ãããã¼ãå®äº"
@@ -3438,10 +3551,10 @@ msgid "Use ISO/IEC 3166 alpha2 country codes."
msgstr "ISO/IEC 3166 alpha2ã®å½ã³ã¼ãã使ç¨ãã¾ãã"
msgid "Use MTU on tunnel interface"
-msgstr "ãã³ãã«ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®MTUãè¨å®"
+msgstr "ãã³ãã« ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®MTUãè¨å®"
msgid "Use TTL on tunnel interface"
-msgstr "ãã³ãã«ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®TTLãè¨å®"
+msgstr "ãã³ãã« ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®TTLãè¨å®"
msgid "Use as external overlay (/overlay)"
msgstr "å¤é¨ãªã¼ãã¼ã¬ã¤ã¨ãã¦ä½¿ç¨ãã (/overlay)"
@@ -3450,7 +3563,7 @@ msgid "Use as root filesystem (/)"
msgstr "ã«ã¼ã ãã¡ã¤ã«ã·ã¹ãã ã¨ãã¦ä½¿ç¨ãã (/)"
msgid "Use broadcast flag"
-msgstr "ããã¼ããã£ã¹ãã»ãã©ã°ã使ç¨ãã"
+msgstr "ããã¼ããã£ã¹ã ãã©ã°ã使ç¨ãã"
msgid "Use builtin IPv6-management"
msgstr "ãã«ãã¤ã³ã®IPv6-ããã¸ã¡ã³ãã使ç¨ãã"
@@ -3459,13 +3572,13 @@ msgid "Use custom DNS servers"
msgstr "DNSãµã¼ãã¼ãæåã§è¨å®"
msgid "Use default gateway"
-msgstr "ããã©ã«ãã²ã¼ãã¦ã§ã¤ã使ç¨ãã"
+msgstr "ããã©ã«ã ã²ã¼ãã¦ã§ã¤ã使ç¨ãã"
msgid "Use gateway metric"
-msgstr "ã²ã¼ãã¦ã§ã¤ã»ã¡ããªãã¯ã使ç¨ãã"
+msgstr "ã²ã¼ãã¦ã§ã¤ ã¡ããªãã¯ã使ç¨ãã"
msgid "Use routing table"
-msgstr ""
+msgstr "ã«ã¼ãã£ã³ã° ãã¼ãã«ã®ä½¿ç¨"
msgid ""
"Use the Add Button to add a new lease entry. The MAC-Address"
@@ -3485,11 +3598,16 @@ msgstr "使ç¨"
msgid "Used Key Slot"
msgstr "使ç¨ãããã¼ã¹ããã"
-msgid "User certificate (PEM encoded)"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
msgstr ""
+msgid "User certificate (PEM encoded)"
+msgstr "ã¦ã¼ã¶ã¼è¨¼ææ¸ï¼PEM ã¨ã³ã³ã¼ãï¼"
+
msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "ã¦ã¼ã¶ã¼ç§å¯éµï¼PEM ã¨ã³ã³ã¼ãï¼"
msgid "Username"
msgstr "ã¦ã¼ã¶ã¼å"
@@ -3501,7 +3619,7 @@ msgid "VDSL"
msgstr "VDSL"
msgid "VLANs on %q"
-msgstr "%qä¸ã®VLANs"
+msgstr "%qä¸ã®VLAN"
msgid "VLANs on %q (%s)"
msgstr "%qä¸ã®VLAN (%s)"
@@ -3522,7 +3640,7 @@ msgid "VPN Server's certificate SHA1 hash"
msgstr "VPN ãµã¼ãã¼è¨¼ææ¸ SHA1ããã·ã¥"
msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (CISCO 3000 (ã¾ãã¯ãã®ä»ã®) VPN)"
msgid "Vendor"
msgstr "ãã³ãã¼"
@@ -3531,7 +3649,7 @@ msgid "Vendor Class to send when requesting DHCP"
msgstr "DHCPãªã¯ã¨ã¹ãéä¿¡æã®ãã³ãã¼ã¯ã©ã¹ãè¨å®"
msgid "Verbose"
-msgstr ""
+msgstr "詳細"
msgid "Verbose logging by aiccu daemon"
msgstr ""
@@ -3579,7 +3697,7 @@ msgid "Waiting for command to complete..."
msgstr "ã³ãã³ãå®è¡ä¸ã§ã..."
msgid "Waiting for device..."
-msgstr "ããã¤ã¹ã®èµ·åããå¾
ã¡ãã ãã..."
+msgstr "ããã¤ã¹ãèµ·åä¸ã§ã..."
msgid "Warning"
msgstr "è¦å"
@@ -3638,9 +3756,6 @@ msgstr "åä¿¡ããDNSãªã¯ã¨ã¹ããsyslogã¸è¨é²ãã¾ã"
msgid "Write system log to file"
msgstr "ã·ã¹ãã ãã°ããã¡ã¤ã«ã«æ¸ãè¾¼ã"
-msgid "XR Support"
-msgstr "XRãµãã¼ã"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3652,8 +3767,8 @@ msgstr ""
" "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "Java Scriptãæå¹ã«ããªãå ´åãLuCIã¯æ£ããåä½ãã¾ããã"
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "JavaScriptãæå¹ã«ããªãå ´åãLuCIã¯æ£ããåä½ãã¾ããã"
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3670,9 +3785,6 @@ msgstr "å
¨ã¦"
msgid "auto"
msgstr "èªå"
-msgid "automatic"
-msgstr "èªå"
-
msgid "baseT"
msgstr "baseT"
@@ -3746,8 +3858,8 @@ msgstr "ãã¼ã«ã« DNS ãã¡ã¤ã«"
msgid "minimum 1280, maximum 1480"
msgstr "æå°å¤ 1280ãæå¤§å¤ 1480"
-msgid "navigation Navigation"
-msgstr ""
+msgid "minutes"
+msgstr "å"
msgid "no"
msgstr "ããã"
@@ -3782,12 +3894,6 @@ msgstr "routed"
msgid "server mode"
msgstr "ãµã¼ãã¼ ã¢ã¼ã"
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr "ã¹ãã¼ããã«ã®ã¿"
@@ -3800,6 +3906,9 @@ msgstr "ã¹ãã¼ãã¬ã¹ + ã¹ãã¼ããã«"
msgid "tagged"
msgstr "tagged"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "ä¸æ"
@@ -3820,18 +3929,3 @@ msgstr "ã¯ã"
msgid "« Back"
msgstr "« æ»ã"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "ãã§ãã¯ããã¯ã¹ããªãã®å ´åã追å ã®ãããã¯ã¼ã¯ãä½æããã¾ãã"
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "ãããã¯ã¼ã¯ã«æ¥ç¶ãã: è¨å®"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "ãã¼ã %d"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "VLANã¤ã³ã¿ã¼ãã§ã¼ã¹"
diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po
index 8053b1a449..2e8d20939f 100644
--- a/modules/luci-base/po/ko/base.po
+++ b/modules/luci-base/po/ko/base.po
@@ -52,12 +52,36 @@ msgstr "1 ë¶ ë¶í:"
msgid "15 Minute Load:"
msgstr "15 ë¶ ë¶í:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "5 ë¶ ë¶í:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
@@ -124,6 +148,11 @@ msgstr "ìµë ëì ì²ë¦¬ query ì"
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -142,9 +171,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr ""
-
msgid "ARP retry threshold"
msgstr ""
@@ -382,15 +408,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "ì°ê²°ë station ë¤"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr ""
@@ -463,9 +483,6 @@ msgstr ""
msgid "Back to scan results"
msgstr ""
-msgid "Background Scan"
-msgstr ""
-
msgid "Backup / Flash Firmware"
msgstr "Firmware ë°±ì
/ Flash"
@@ -634,7 +651,11 @@ msgstr "ëª
ë ¹ì´"
msgid "Common Configuration"
msgstr "ê³µíµ ì¤ì "
-msgid "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
msgstr ""
msgid "Configuration"
@@ -859,10 +880,10 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
msgstr ""
-msgid "Disabled"
+msgid "Disabled (default)"
msgstr ""
msgid "Discard upstream RFC1918 responses"
@@ -902,9 +923,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr ""
@@ -1007,6 +1025,9 @@ msgstr "VLAN ê¸°ë¥ íì±í"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1031,6 +1052,11 @@ msgstr "íì±/ë¹íì±"
msgid "Enabled"
msgstr "íì±íë¨"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "ì´ bridge ì Spanning Tree Protocol íì±íí©ëë¤"
@@ -1077,6 +1103,12 @@ msgstr "ìëí 주ìì ì í¨ ìê°. ìµìê°ì 2 ë¶ (2m
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "ì¸ë¶ system log ìë²"
@@ -1089,9 +1121,6 @@ msgstr "ì¸ë¶ system log ìë² íë¡í ì½"
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr ""
@@ -1127,6 +1156,9 @@ msgstr ""
msgid "Firewall"
msgstr "ë°©íë²½"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "ë°©íë²½ ì¤ì "
@@ -1172,6 +1204,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1418,9 +1453,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-주ì"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1433,7 +1474,7 @@ msgstr ""
msgid "Identity"
msgstr ""
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1515,6 +1556,9 @@ msgstr "ì¤ì¹ë í¨í¤ì§"
msgid "Interface"
msgstr "ì¸í°íì´ì¤"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ì¸í°íì´ì¤ ì¤ì "
@@ -1560,12 +1604,15 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr ""
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1634,9 +1681,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr "ìë ìê°"
-
msgid "Leasetime remaining"
msgstr "ë¨ììë ìë ìê°"
@@ -1679,6 +1723,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1812,9 +1872,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Active DHCP lease ê±´ì ìµë íì© ì«ì"
@@ -1850,9 +1907,6 @@ msgstr "ë©ëª¨ë¦¬ ì¬ì©ë (%)"
msgid "Metric"
msgstr ""
-msgid "Minimum Rate"
-msgstr ""
-
msgid "Minimum hold time"
msgstr ""
@@ -1865,6 +1919,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr ""
@@ -1921,9 +1978,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr ""
-
msgid "Multicast address"
msgstr ""
@@ -1936,6 +1990,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2116,18 +2173,30 @@ msgstr "ë³ê²½ë option"
msgid "Option removed"
msgstr "ìì ë option"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2164,9 +2233,6 @@ msgstr ""
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2216,6 +2282,9 @@ msgstr ""
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2273,6 +2342,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr ""
@@ -2345,6 +2417,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2410,6 +2491,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2493,6 +2580,9 @@ msgstr "ì¤ìê° í¸ëí½"
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2523,9 +2613,6 @@ msgstr "ì¸í°íì´ì¤ ì¬ì°ê²°ì¤ì
ëë¤"
msgid "References"
msgstr ""
-msgid "Regulatory Domain"
-msgstr ""
-
msgid "Relay"
msgstr ""
@@ -2565,19 +2652,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "í¹ì ISP ë¤ì ì구ë¨. ì: Charter (DOCSIS 3 기ë°)"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2719,9 +2814,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr "ìë² ì¤ì "
@@ -2745,6 +2837,11 @@ msgstr ""
msgid "Services"
msgstr "ìë¹ì¤"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2879,9 +2976,6 @@ msgstr "Static Lease ë¤"
msgid "Static Routes"
msgstr "Static Route ê²½ë¡"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3268,9 +3362,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr ""
-
msgid "Tx-Power"
msgstr ""
@@ -3401,6 +3492,11 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3551,9 +3647,6 @@ msgstr "ë°ì DNS ìì² ë´ì©ì systlog ì 기ë¡í©ëë¤"
msgid "Write system log to file"
msgstr "System log ì¶ë ¥ íì¼ ê²½ë¡"
-msgid "XR Support"
-msgstr ""
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3565,7 +3658,7 @@ msgstr ""
"ë¤! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3580,9 +3673,6 @@ msgstr ""
msgid "auto"
msgstr ""
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3656,7 +3746,7 @@ msgstr "local DNS íì¼"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3692,12 +3782,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3710,6 +3794,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3730,3 +3817,6 @@ msgstr ""
msgid "« Back"
msgstr ""
+
+#~ msgid "Leasetime"
+#~ msgstr "ìë ìê°"
diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po
index 923089696b..c907bf35e4 100644
--- a/modules/luci-base/po/ms/base.po
+++ b/modules/luci-base/po/ms/base.po
@@ -52,12 +52,36 @@ msgstr ""
msgid "15 Minute Load:"
msgstr ""
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr ""
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -121,6 +145,11 @@ msgstr ""
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -139,9 +168,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr "AR-Penyokong"
-
msgid "ARP retry threshold"
msgstr ""
@@ -377,15 +403,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Associated Stesen"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Authentifizierung"
@@ -458,9 +478,6 @@ msgstr "Kembali ke ikhtisar"
msgid "Back to scan results"
msgstr "Kembali ke keputusan scan"
-msgid "Background Scan"
-msgstr "Latar Belakang Scan"
-
msgid "Backup / Flash Firmware"
msgstr ""
@@ -616,8 +633,12 @@ msgstr "Perintah"
msgid "Common Configuration"
msgstr ""
-msgid "Compression"
-msgstr "Mampatan"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Konfigurasi"
@@ -832,12 +853,12 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Mematikan pemasa HW-Beacon"
-
msgid "Disabled"
msgstr ""
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr ""
@@ -877,9 +898,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr "Jangan menghantar jawapan penyelidikan"
-
msgid "Domain required"
msgstr "Domain diperlukan"
@@ -979,6 +997,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1003,6 +1024,11 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Aktifkan spanning Tree Protokol di jambatan ini"
@@ -1049,6 +1075,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1061,9 +1093,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Frame Cepat"
-
msgid "File"
msgstr ""
@@ -1099,6 +1128,9 @@ msgstr "Selesai"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Tetapan Firewall"
@@ -1144,6 +1176,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1389,9 +1424,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1404,7 +1445,7 @@ msgstr ""
msgid "Identity"
msgstr "Identiti"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1491,6 +1532,9 @@ msgstr ""
msgid "Interface"
msgstr "Interface"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1536,6 +1580,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Username dan / atau password tak sah! Sila cuba lagi."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1544,7 +1591,7 @@ msgstr ""
"Tampak bahawa anda cuba untuk flash fail gambar yang tidak sesuai dengan "
"memori flash, sila buat pengesahan pada fail gambar!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
#, fuzzy
@@ -1614,9 +1661,6 @@ msgstr ""
msgid "Leasefile"
msgstr "Sewa fail"
-msgid "Leasetime"
-msgstr "Masa penyewaan"
-
msgid "Leasetime remaining"
msgstr "Sisa masa penyewaan"
@@ -1658,6 +1702,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1790,9 +1850,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Rate Maksimum"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1829,9 +1886,6 @@ msgstr "Penggunaan Memori (%)"
msgid "Metric"
msgstr "Metrik"
-msgid "Minimum Rate"
-msgstr "Rate Minimum"
-
#, fuzzy
msgid "Minimum hold time"
msgstr "Memegang masa minimum"
@@ -1845,6 +1899,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mode"
@@ -1903,9 +1960,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
msgid "Multicast address"
msgstr ""
@@ -1918,6 +1972,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2097,18 +2154,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2145,9 +2214,6 @@ msgstr "Keluar"
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr "Saluran Outdoor"
-
msgid "Output Interface"
msgstr ""
@@ -2195,6 +2261,9 @@ msgstr "PID"
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2252,6 +2321,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Path ke CA-Sijil"
@@ -2324,6 +2396,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2389,6 +2470,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2469,6 +2556,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2499,9 +2589,6 @@ msgstr ""
msgid "References"
msgstr "Rujukan"
-msgid "Regulatory Domain"
-msgstr "Peraturan Domain"
-
msgid "Relay"
msgstr ""
@@ -2541,19 +2628,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2695,9 +2790,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Pisahkan Pelanggan"
-msgid "Separate WDS"
-msgstr "Pisahkan WDS"
-
msgid "Server Settings"
msgstr ""
@@ -2721,6 +2813,11 @@ msgstr ""
msgid "Services"
msgstr "Perkhidmatan"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2856,9 +2953,6 @@ msgstr "Statische Einträge"
msgid "Static Routes"
msgstr "Laluan Statik"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3242,9 +3336,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Mod Turbo"
-
msgid "Tx-Power"
msgstr ""
@@ -3367,6 +3458,11 @@ msgstr "Diguna"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3519,9 +3615,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Sokongan XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3529,7 +3622,7 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3544,9 +3637,6 @@ msgstr ""
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr "automatik"
-
msgid "baseT"
msgstr ""
@@ -3618,7 +3708,7 @@ msgstr "Fail DNS tempatan"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3654,12 +3744,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3672,6 +3756,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3692,3 +3779,51 @@ msgstr ""
msgid "« Back"
msgstr "« Kembali"
+
+#~ msgid "Leasetime"
+#~ msgstr "Masa penyewaan"
+
+#~ msgid "automatic"
+#~ msgstr "automatik"
+
+#~ msgid "AR Support"
+#~ msgstr "AR-Penyokong"
+
+#~ msgid "Background Scan"
+#~ msgstr "Latar Belakang Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Mampatan"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Mematikan pemasa HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Jangan menghantar jawapan penyelidikan"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frame Cepat"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Rate Maksimum"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Rate Minimum"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Saluran Outdoor"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Peraturan Domain"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Pisahkan WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mod Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Sokongan XR"
diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po
index 5afca4f8e0..4c67d5d11b 100644
--- a/modules/luci-base/po/no/base.po
+++ b/modules/luci-base/po/no/base.po
@@ -47,12 +47,36 @@ msgstr "1 minutts belastning:"
msgid "15 Minute Load:"
msgstr "15 minutters belastning:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "5 minutters belastning:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -123,6 +147,11 @@ msgstr "Maks. samtidige spørringer"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -141,9 +170,6 @@ msgstr ""
msgid "APN"
msgstr "APN "
-msgid "AR Support"
-msgstr "AR Støtte"
-
msgid "ARP retry threshold"
msgstr "APR terskel for nytt forsøk"
@@ -386,15 +412,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Tilkoblede Klienter"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Trådløs Kontroller"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Godkjenning"
@@ -467,9 +487,6 @@ msgstr "Tilbake til oversikt"
msgid "Back to scan results"
msgstr "Tilbake til skanne resultat"
-msgid "Background Scan"
-msgstr "Bakgrunns Skanning"
-
msgid "Backup / Flash Firmware"
msgstr "Sikkerhetskopiering/Firmware oppgradering"
@@ -638,8 +655,12 @@ msgstr "Kommando"
msgid "Common Configuration"
msgstr "Vanlige Innstillinger"
-msgid "Compression"
-msgstr "Komprimering"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Konfigurasjon"
@@ -860,12 +881,12 @@ msgstr "Deaktiver DNS oppsett"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Deaktiver HW-Beacon timer"
-
msgid "Disabled"
msgstr "Deaktivert"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "Forkast oppstrøms RFC1918 svar"
@@ -906,9 +927,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Ikke videresend reverserte oppslag for lokale nettverk"
-msgid "Do not send probe responses"
-msgstr "Ikke send probe svar"
-
msgid "Domain required"
msgstr "Domene kreves"
@@ -1014,6 +1032,9 @@ msgstr "Aktiver VLAN funksjonalitet"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Aktiver 'læring' og 'aldring'"
@@ -1038,6 +1059,11 @@ msgstr "Aktiver/Deaktiver"
msgid "Enabled"
msgstr "Aktivert"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Aktiverer Spanning Tree Protocol på denne broen"
@@ -1085,6 +1111,12 @@ msgstr "Utløpstid på leide adresser, minimum er 2 minutter (2m
)."
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Ekstern systemlogg server"
@@ -1097,9 +1129,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
msgid "File"
msgstr "Fil"
@@ -1135,6 +1164,9 @@ msgstr "Fullfør"
msgid "Firewall"
msgstr "Brannmur"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Brannmur Innstillinger"
@@ -1181,6 +1213,9 @@ msgstr "Bruk TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Bruk TKIP og CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1428,9 +1463,15 @@ msgstr "IPv6 prefikslengde"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-Adresse"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-i-IPv4 (RFC4213)"
@@ -1443,7 +1484,7 @@ msgstr "IPv6-over-IPv4 (6til4)"
msgid "Identity"
msgstr "Identitet"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1529,6 +1570,9 @@ msgstr "Installerte pakker"
msgid "Interface"
msgstr "Grensesnitt"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Grensesnitt Konfigurasjon"
@@ -1574,6 +1618,9 @@ msgstr "Ugyldig VLAN ID gitt! Bare unike ID'er er tillatt"
msgid "Invalid username and/or password! Please try again."
msgstr "Ugyldig brukernavn og/eller passord! Vennligst prøv igjen."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1582,8 +1629,8 @@ msgstr ""
"Det virker som du prøver å flashe med en firmware som ikke passer inn i "
"flash-minnet, vennligst kontroller firmware filen!"
-msgid "Java Script required!"
-msgstr "Java Script kreves!"
+msgid "JavaScript required!"
+msgstr "JavaScript kreves!"
msgid "Join Network"
msgstr "Koble til nettverket"
@@ -1651,9 +1698,6 @@ msgstr "Gyldig leietid"
msgid "Leasefile"
msgstr "Leie-fil "
-msgid "Leasetime"
-msgstr "Leietid "
-
msgid "Leasetime remaining"
msgstr "Gjenværende leietid"
@@ -1697,6 +1741,22 @@ msgstr ""
"Liste med DNS servere som "
"forespørsler blir videresendt til"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1835,9 +1895,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Maksimal hastighet"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Maksimalt antall aktive DHCP leieavtaler"
@@ -1873,9 +1930,6 @@ msgstr "Minne forbruk (%)"
msgid "Metric"
msgstr "Metrisk"
-msgid "Minimum Rate"
-msgstr "Minimum hastighet"
-
msgid "Minimum hold time"
msgstr "Minimum holde tid"
@@ -1888,6 +1942,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Mangler protokoll utvidelse for proto %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Modus"
@@ -1946,9 +2003,6 @@ msgstr "Flytt ned"
msgid "Move up"
msgstr "Flytt opp"
-msgid "Multicast Rate"
-msgstr "Multicast hastighet"
-
msgid "Multicast address"
msgstr "Multicast adresse"
@@ -1961,6 +2015,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2141,18 +2198,30 @@ msgstr "Innstilling endret"
msgid "Option removed"
msgstr "Innstilling fjernet"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2189,9 +2258,6 @@ msgstr "Ut"
msgid "Outbound:"
msgstr "Ugående:"
-msgid "Outdoor Channels"
-msgstr "Utendørs Kanaler"
-
msgid "Output Interface"
msgstr ""
@@ -2241,6 +2307,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2298,6 +2367,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Passordet er endret!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Sti til CA-sertifikat"
@@ -2370,6 +2442,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2437,6 +2518,12 @@ msgstr ""
msgid "Quality"
msgstr "Kvalitet"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2530,6 +2617,9 @@ msgstr "Trafikk Sanntid"
msgid "Realtime Wireless"
msgstr "Trådløst i sanntid"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Binde beskyttelse"
@@ -2560,9 +2650,6 @@ msgstr "Kobler til igjen"
msgid "References"
msgstr "Referanser"
-msgid "Regulatory Domain"
-msgstr "Regulerende Domene"
-
msgid "Relay"
msgstr "Relay"
@@ -2602,19 +2689,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Er nødvendig for noen nettleverandører, f.eks Charter med DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2758,9 +2853,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Separerte Klienter"
-msgid "Separate WDS"
-msgstr "Separert WDS"
-
msgid "Server Settings"
msgstr "Server Innstillinger"
@@ -2784,6 +2876,11 @@ msgstr "Tjeneste type"
msgid "Services"
msgstr "Tjenester"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Oppsett tidssynkronisering"
@@ -2923,9 +3020,6 @@ msgstr "Statiske Leier"
msgid "Static Routes"
msgstr "Statiske Ruter"
-msgid "Static WDS"
-msgstr "Statisk WDS"
-
msgid "Static address"
msgstr "Statisk adresse"
@@ -3347,9 +3441,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
-
msgid "Tx-Power"
msgstr "Tx-Styrke"
@@ -3479,6 +3570,11 @@ msgstr "Brukt"
msgid "Used Key Slot"
msgstr "Brukte Nøkler"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3631,9 +3727,6 @@ msgstr "Skriv mottatte DNS forespørsler til syslog"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "XR Støtte"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3645,9 +3738,9 @@ msgstr ""
"utilgjengelig! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Du må aktivere Java Script i nettleseren din ellers vil ikke LuCI fungere "
+"Du må aktivere JavaScript i nettleseren din ellers vil ikke LuCI fungere "
"skikkelig."
msgid ""
@@ -3662,9 +3755,6 @@ msgstr "enhver"
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3738,7 +3828,7 @@ msgstr "lokal DNS -fil"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3774,12 +3864,6 @@ msgstr "rutet"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3792,6 +3876,9 @@ msgstr ""
msgid "tagged"
msgstr "tagget"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "ukjent"
@@ -3813,6 +3900,57 @@ msgstr "ja"
msgid "« Back"
msgstr "« Tilbake"
+#~ msgid "Leasetime"
+#~ msgstr "Leietid "
+
+#~ msgid "AR Support"
+#~ msgstr "AR Støtte"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Trådløs Kontroller"
+
+#~ msgid "Background Scan"
+#~ msgstr "Bakgrunns Skanning"
+
+#~ msgid "Compression"
+#~ msgstr "Komprimering"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Deaktiver HW-Beacon timer"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ikke send probe svar"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maksimal hastighet"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimum hastighet"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast hastighet"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Utendørs Kanaler"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Regulerende Domene"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separert WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statisk WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Modus"
+
+#~ msgid "XR Support"
+#~ msgstr "XR Støtte"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken."
diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po
index 30302ce12b..5a2d86b6ee 100644
--- a/modules/luci-base/po/pl/base.po
+++ b/modules/luci-base/po/pl/base.po
@@ -53,12 +53,36 @@ msgstr "ObciÄ
żenie 1 min.:"
msgid "15 Minute Load:"
msgstr "ObciÄ
żenie 15 min.:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "ObciÄ
żenie 5 min.:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -128,6 +152,11 @@ msgstr "Maks. zapytaŠrównoczesnych"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -146,10 +175,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-# Wydaje mi siÄ Å¼e brakuje litery R...
-msgid "AR Support"
-msgstr "Wsparcie dla ARP"
-
msgid "ARP retry threshold"
msgstr "Próg powtórzeŠARP"
@@ -401,15 +426,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "PoÅÄ
czone stacje"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Bezprzewodowy kontroler Atheros 802.11%s"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Uwierzytelnianie"
@@ -483,9 +502,6 @@ msgstr "WrÃ³Ä do przeglÄ
du"
msgid "Back to scan results"
msgstr "WrÃ³Ä do wyników skanowania"
-msgid "Background Scan"
-msgstr "Skanowanie w tle"
-
msgid "Backup / Flash Firmware"
msgstr "Kopia zapasowa/aktualizacja firmware"
@@ -657,8 +673,12 @@ msgstr "Polecenie"
msgid "Common Configuration"
msgstr "Konfiguracja podstawowa"
-msgid "Compression"
-msgstr "Kompresja"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Konfiguracja"
@@ -882,12 +902,12 @@ msgstr "WyÅÄ
cz konfigurowanie DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "WyÅÄ
cz zegar HW-Beacon"
-
msgid "Disabled"
msgstr "WyÅÄ
czony"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "OdrzuÄ wychodzÄ
ce odpowiedzi RFC1918"
@@ -930,9 +950,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Nie przekazuj odwrotnych lookup`ów do sieci lokalnych"
-msgid "Do not send probe responses"
-msgstr "Nie wysyÅaj ramek probe response"
-
msgid "Domain required"
msgstr "Wymagana domena"
@@ -1041,6 +1058,9 @@ msgstr "WÅÄ
cz funkcjonalnoÅÄ VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "WÅÄ
cz uczenie siÄ i starzenie"
@@ -1065,6 +1085,11 @@ msgstr "WlÄ
cz/WyÅÄ
cz"
msgid "Enabled"
msgstr "WÅÄ
czony"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
"WÅÄ
cz protokóŠSTP na tym "
@@ -1116,6 +1141,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "ZewnÄtrzny serwer dla loga systemowego"
@@ -1128,9 +1159,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Szybkie ramki (Fast Frames)"
-
msgid "File"
msgstr "Plik"
@@ -1166,6 +1194,9 @@ msgstr "ZakoÅcz"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
# Nie ma potrzeby pisania z dużej litery
msgid "Firewall Settings"
msgstr "Ustawienia firewalla"
@@ -1213,6 +1244,9 @@ msgstr "WymuÅ TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "WymuÅ TKIP i CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1465,9 +1499,15 @@ msgstr "DÅugoÅÄ prefiksu IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "Adres IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-w-IPv4 (RFC4213)"
@@ -1481,7 +1521,7 @@ msgstr "IPv6-przez-IPv4 (6to4)"
msgid "Identity"
msgstr "TożsamoÅÄ"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1572,6 +1612,9 @@ msgstr "Zainstalowane pakiety"
msgid "Interface"
msgstr "Interfejs"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Konfiguracja Interfejsu"
@@ -1619,6 +1662,9 @@ msgstr "Podano niewÅaÅciwy ID VLAN`u! Dozwolone sÄ
tylko unikalne ID."
msgid "Invalid username and/or password! Please try again."
msgstr "NiewÅaÅciwy login i/lub hasÅo! Spróbuj ponownie."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1627,8 +1673,8 @@ msgstr ""
"WyglÄ
da na to, że próbujesz wgraÄ obraz wiÄkszy niż twoja pamiÄÄ flash, "
"proszÄ sprawdź czy to wÅaÅciwy obraz!"
-msgid "Java Script required!"
-msgstr "Java Script jest wymagany!"
+msgid "JavaScript required!"
+msgstr "JavaScript jest wymagany!"
msgid "Join Network"
msgstr "PoÅÄ
cz z sieciÄ
"
@@ -1696,9 +1742,6 @@ msgstr "Czas ważnoÅci dzierżawy"
msgid "Leasefile"
msgstr "Plik dzierżaw"
-msgid "Leasetime"
-msgstr "Czas dzierżawy"
-
msgid "Leasetime remaining"
msgstr "PozostaÅy czas dzierżawy"
@@ -1742,6 +1785,22 @@ msgstr ""
"Lista serwerów DNS do których bÄdÄ
"
"przekazywane zapytania"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1881,9 +1940,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Maksymalna SzybkoÅÄ"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Maksymalna dozwolona liczba aktywnych dzierżaw DHCP"
@@ -1919,9 +1975,6 @@ msgstr "Użycie pamiÄci (%)"
msgid "Metric"
msgstr "Metryka"
-msgid "Minimum Rate"
-msgstr "Minimalna SzybkoÅÄ"
-
msgid "Minimum hold time"
msgstr "Minimalny czas podtrzymania"
@@ -1934,6 +1987,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "BrakujÄ
ce rozszerzenie protokoÅu dla protokoÅu %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Tryb"
@@ -1992,9 +2048,6 @@ msgstr "PrzesuÅ w dóÅ"
msgid "Move up"
msgstr "PrzesuÅ w górÄ"
-msgid "Multicast Rate"
-msgstr "SzybkoÅÄ Multicast`u"
-
msgid "Multicast address"
msgstr "Adres Multicast`u"
@@ -2007,6 +2060,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2186,18 +2242,30 @@ msgstr "WartoÅÄ zmieniona"
msgid "Option removed"
msgstr "UsuniÄto wartoÅÄ"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2234,9 +2302,6 @@ msgstr "WychodzÄ
ce"
msgid "Outbound:"
msgstr "WychodzÄ
cy:"
-msgid "Outdoor Channels"
-msgstr "KanaÅy zewnÄtrzne"
-
msgid "Output Interface"
msgstr ""
@@ -2286,6 +2351,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2343,6 +2411,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "PomyÅlnie zmieniono hasÅo!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Åcieżka do certyfikatu CA"
@@ -2417,6 +2488,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2485,6 +2565,12 @@ msgstr ""
msgid "Quality"
msgstr "JakoÅÄ"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2579,6 +2665,9 @@ msgstr "Ruch w czasie rzeczywistym"
msgid "Realtime Wireless"
msgstr "WiFi w czasie rzeczywistym"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Przypisz ochronÄ"
@@ -2609,9 +2698,6 @@ msgstr "ÅÄ
czÄ ponownie interfejs"
msgid "References"
msgstr "Referencje"
-msgid "Regulatory Domain"
-msgstr "Domena regulacji"
-
msgid "Relay"
msgstr "Przekaźnik"
@@ -2651,19 +2737,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Wymagany dla niektórych dostawców internetu, np. Charter z DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2809,9 +2903,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Rozdziel klientów"
-msgid "Separate WDS"
-msgstr "Rozdziel WDS"
-
msgid "Server Settings"
msgstr "Ustawienia serwera"
@@ -2835,6 +2926,11 @@ msgstr "Typ serwisu"
msgid "Services"
msgstr "Serwisy"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Ustawienia synchronizacji czasu"
@@ -2976,9 +3072,6 @@ msgstr "Dzierżawy statyczne"
msgid "Static Routes"
msgstr "Statyczne Åcieżki routingu"
-msgid "Static WDS"
-msgstr "Statyczny WDS"
-
msgid "Static address"
msgstr "StaÅy adres"
@@ -3410,9 +3503,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Tryb Turbo"
-
msgid "Tx-Power"
msgstr "Moc nadawania"
@@ -3543,6 +3633,11 @@ msgstr "Użyte"
msgid "Used Key Slot"
msgstr "Użyte gniazdo klucza"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3696,9 +3791,6 @@ msgstr "Zapisz otrzymane żÄ
dania DNS do syslog'a"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Wsparcie XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3710,9 +3802,9 @@ msgstr ""
"siÄ nieosiÄ
galne! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Musisz wÅÄ
czyÄ obsÅugÄ Java Script w swojej przeglÄ
darce, inaczej LuCI nie "
+"Musisz wÅÄ
czyÄ obsÅugÄ JavaScript w swojej przeglÄ
darce, inaczej LuCI nie "
"bÄdzie dziaÅaÄ poprawnie."
msgid ""
@@ -3727,9 +3819,6 @@ msgstr "dowolny"
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3803,7 +3892,7 @@ msgstr "lokalny plik DNS "
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3840,12 +3929,6 @@ msgstr "routowane"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3858,6 +3941,9 @@ msgstr ""
msgid "tagged"
msgstr "tagowane"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "nieznane"
@@ -3879,6 +3965,58 @@ msgstr "tak"
msgid "« Back"
msgstr "« WróÄ"
+#~ msgid "Leasetime"
+#~ msgstr "Czas dzierżawy"
+
+# Wydaje mi siÄ Å¼e brakuje litery R...
+#~ msgid "AR Support"
+#~ msgstr "Wsparcie dla ARP"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Bezprzewodowy kontroler Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Skanowanie w tle"
+
+#~ msgid "Compression"
+#~ msgstr "Kompresja"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "WyÅÄ
cz zegar HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Nie wysyÅaj ramek probe response"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Szybkie ramki (Fast Frames)"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maksymalna SzybkoÅÄ"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimalna SzybkoÅÄ"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "SzybkoÅÄ Multicast`u"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "KanaÅy zewnÄtrzne"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domena regulacji"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Rozdziel WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statyczny WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Tryb Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Wsparcie XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr ""
#~ "Zostanie utworzona dodatkowa sieÄ jeÅli zostawisz tÄ
opcjÄ niezaznaczonÄ
."
diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po
index 3ce99b6c06..64ab9048e4 100644
--- a/modules/luci-base/po/pt-br/base.po
+++ b/modules/luci-base/po/pt-br/base.po
@@ -1,20 +1,20 @@
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-29 23:31+0200\n"
-"Last-Translator: Luiz Angelo \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2017-02-22 20:30-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s está sem etiqueta em múltiplas VLANs!"
msgid "(%d minute window, %d second interval)"
msgstr "(janela de %d minutos, intervalo de %d segundos)"
@@ -38,13 +38,15 @@ msgid "-- custom --"
msgstr "-- personalizado --"
msgid "-- match by device --"
-msgstr ""
+msgstr "-- casar por dispositivo --"
msgid "-- match by label --"
-msgstr ""
+msgstr "-- casar por rótulo --"
msgid "-- match by uuid --"
msgstr ""
+"-- casar por UUID --"
msgid "1 Minute Load:"
msgstr "Carga 1 Minuto:"
@@ -52,12 +54,38 @@ msgstr "Carga 1 Minuto:"
msgid "15 Minute Load:"
msgstr "Carga 15 Minutos:"
+msgid "4-character hexadecimal ID"
+msgstr "Identificador hexadecimal de 4 caracteres"
+
msgid "464XLAT (CLAT)"
-msgstr ""
+msgstr "464XLAT (CLAT)"
msgid "5 Minute Load:"
msgstr "Carga 5 Minutos:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+"Identificador de 6 octetos como uma cadeia hexadecimal - sem dois pontos"
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r Fast Transition"
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "Tempo de expiração máximo da consulta da Associação SA do 802.11w"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+"Tempo de expiração de tentativa de consulta da Associação SA do 802.11w"
+
+msgid "802.11w Management Frame Protection"
+msgstr "Proteção do Quadro de Gerenciamento do 802.11w"
+
+msgid "802.11w maximum timeout"
+msgstr "Estouro de tempo máximo do 802.11w"
+
+msgid "802.11w retry timeout"
+msgstr "Estouro de tempo da nova tentativa do 802.11w"
+
msgid "BSSID "
msgstr ""
"BSSID "
@@ -103,6 +131,8 @@ msgstr "Roteador IPv6 "
msgid "IPv6 -Suffix (hex)"
msgstr ""
+"IPv6 -Suffix (hex)"
msgid "LED Configuration"
msgstr "Configuração do LED "
@@ -133,43 +163,53 @@ msgstr "Número máximo de consultas concorrentes"
msgid "%s - %s "
msgstr "%s - %s "
-msgid "A43C + J43 + A43"
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
msgstr ""
+msgid "A43C + J43 + A43"
+msgstr "A43C + J43 + A43"
+
msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
msgid "ADSL"
msgstr ""
+"ADSL "
msgid "AICCU (SIXXS)"
msgstr ""
+"AICCU (SIXXS) "
msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
msgid "APN"
msgstr "APN "
-msgid "AR Support"
-msgstr "Suporte AR"
-
msgid "ARP retry threshold"
msgstr ""
"Limite de retentativas do ARP"
"abbr>"
msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM (Asynchronous Transfer Mode)"
msgid "ATM Bridges"
msgstr "Ponte ATM"
msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificador de Canal Virtual ATM (VCI)"
+msgstr ""
+"Identificador de Canal Virtual ATM (VCI )"
msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificador de Caminho Virtual ATM (VPI)"
+msgstr ""
+"Identificador de Caminho Virtual ATM (VPI )"
msgid ""
"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
@@ -184,10 +224,10 @@ msgid "ATM device number"
msgstr "Número do dispositivo ATM"
msgid "ATU-C System Vendor ID"
-msgstr ""
+msgstr "Identificador de"
msgid "AYIYA"
-msgstr ""
+msgstr "AYIYA"
msgid "Access Concentrator"
msgstr "Concentrador de Acesso"
@@ -237,7 +277,7 @@ msgid "Additional Hosts files"
msgstr "Arquivos adicionais de equipamentos conhecidos (hosts)"
msgid "Additional servers file"
-msgstr ""
+msgstr "Arquivo de servidores adicionais"
msgid "Address"
msgstr "Endereço"
@@ -253,6 +293,8 @@ msgstr "Opções Avançadas"
msgid "Aggregate Transmit Power(ACTATP)"
msgstr ""
+"Potência de Transmissão Agregada (ACTATP )"
msgid "Alert"
msgstr "Alerta"
@@ -261,9 +303,11 @@ msgid ""
"Allocate IP addresses sequentially, starting from the lowest available "
"address"
msgstr ""
+"Alocar endereços IP sequencialmente, iniciando a partir do endereço mais "
+"baixo disponÃvel"
msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "Alocar endereços IP sequencialmente"
msgid "Allow SSH password authentication"
msgstr ""
@@ -296,78 +340,81 @@ msgstr ""
"exemplo, para os serviços RBL"
msgid "Allowed IPs"
-msgstr ""
+msgstr "Endereços IP autorizados"
msgid ""
"Also see Tunneling Comparison on SIXXS"
msgstr ""
+"Veja também a Comparação de Tunelamentos em SIXXS"
msgid "Always announce default router"
-msgstr ""
+msgstr "Sempre anuncie o roteador padrão"
msgid "Annex"
-msgstr ""
+msgstr "Anexo"
msgid "Annex A + L + M (all)"
-msgstr ""
+msgstr "Anexos A + L + M (todo)"
msgid "Annex A G.992.1"
-msgstr ""
+msgstr "Anexo A G.992.1"
msgid "Annex A G.992.2"
-msgstr ""
+msgstr "Anexo A G.992.2"
msgid "Annex A G.992.3"
-msgstr ""
+msgstr "Anexo A G.992.3"
msgid "Annex A G.992.5"
-msgstr ""
+msgstr "Anexo A G.992.5"
msgid "Annex B (all)"
-msgstr ""
+msgstr "Anexo B (todo)"
msgid "Annex B G.992.1"
-msgstr ""
+msgstr "Anexo B G.992.1"
msgid "Annex B G.992.3"
-msgstr ""
+msgstr "Anexo B G.992.3"
msgid "Annex B G.992.5"
-msgstr ""
+msgstr "Anexo B G.992.5"
msgid "Annex J (all)"
-msgstr ""
+msgstr "Anexo J (todo)"
msgid "Annex L G.992.3 POTS 1"
-msgstr ""
+msgstr "Anexo L G.992.3 POTS 1"
msgid "Annex M (all)"
-msgstr ""
+msgstr "Anexo M (todo)"
msgid "Annex M G.992.3"
-msgstr ""
+msgstr "Anexo M G.992.3"
msgid "Annex M G.992.5"
-msgstr ""
+msgstr "Anexo M G.992.5"
msgid "Announce as default router even if no public prefix is available."
msgstr ""
+"Anuncie-se como rotador padrão mesmo se não existir um prefixo público."
msgid "Announced DNS domains"
-msgstr ""
+msgstr "DomÃnios DNS anunciados"
msgid "Announced DNS servers"
-msgstr ""
+msgstr "Servidores DNS anunciados"
msgid "Anonymous Identity"
-msgstr ""
+msgstr "Identidade Anônima"
msgid "Anonymous Mount"
-msgstr ""
+msgstr "Montagem Anônima"
msgid "Anonymous Swap"
-msgstr ""
+msgstr "Espaço de Troca (swap) Anônimo"
msgid "Antenna 1"
msgstr "Antena 1"
@@ -390,6 +437,8 @@ msgstr "Aplicar as alterações"
msgid ""
"Assign a part of given length of every public IPv6-prefix to this interface"
msgstr ""
+"Atribua uma parte do comprimento de cada prefixo IPv6 público para esta "
+"interface"
msgid "Assign interfaces..."
msgstr "atribuir as interfaces"
@@ -397,24 +446,20 @@ msgstr "atribuir as interfaces"
msgid ""
"Assign prefix parts using this hexadecimal subprefix ID for this interface."
msgstr ""
+"Atribua partes do prefixo usando este identificador hexadecimal do "
+"subprefixo para esta interface"
msgid "Associated Stations"
msgstr "Estações associadas"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Atheros 802.11%s"
-
msgid "Auth Group"
-msgstr ""
-
-msgid "AuthGroup"
-msgstr ""
+msgstr "Grupo de Autenticação"
msgid "Authentication"
msgstr "Autenticação"
msgid "Authentication Type"
-msgstr ""
+msgstr "Tipo de Autenticação"
msgid "Authoritative"
msgstr "Autoritário"
@@ -426,25 +471,29 @@ msgid "Auto Refresh"
msgstr "Atualização Automática"
msgid "Automatic"
-msgstr ""
+msgstr "Automático"
msgid "Automatic Homenet (HNCP)"
msgstr ""
+"Rede Doméstica Automática (HNCP"
+"abbr>)"
msgid "Automatically check filesystem for errors before mounting"
msgstr ""
+"Execute automaticamente a verificação do sistema de arquivos antes da "
+"montagem do dispositivo"
msgid "Automatically mount filesystems on hotplug"
-msgstr ""
+msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
msgid "Automatically mount swap on hotplug"
-msgstr ""
+msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
msgid "Automount Filesystem"
-msgstr ""
+msgstr "Montagem Automática de Sistema de Arquivo"
msgid "Automount Swap"
-msgstr ""
+msgstr "Montagem Automática do Espaço de Troca (swap) "
msgid "Available"
msgstr "DisponÃvel"
@@ -456,13 +505,13 @@ msgid "Average:"
msgstr "Média:"
msgid "B43 + B43C"
-msgstr ""
+msgstr "B43 + B43C"
msgid "B43 + B43C + V43"
-msgstr ""
+msgstr "B43 + B43C + V43"
msgid "BR / DMR / AFTR"
-msgstr ""
+msgstr "BR / DMR / AFTR"
msgid "BSSID"
msgstr "BSSID"
@@ -482,9 +531,6 @@ msgstr "Voltar para visão geral"
msgid "Back to scan results"
msgstr "Voltar para os resultados da busca"
-msgid "Background Scan"
-msgstr "Busca em Segundo Plano"
-
msgid "Backup / Flash Firmware"
msgstr "Cópia de Segurança / Gravar Firmware"
@@ -498,10 +544,10 @@ msgid "Bad address specified!"
msgstr "Endereço especificado está incorreto!"
msgid "Band"
-msgstr ""
+msgstr "Banda"
msgid "Behind NAT"
-msgstr ""
+msgstr "Atrás da NAT"
msgid ""
"Below is the determined list of files to backup. It consists of changed "
@@ -513,13 +559,15 @@ msgstr ""
"padrões para a cópia de segurança definidos pelo usuário."
msgid "Bind interface"
-msgstr ""
+msgstr "Interface Vinculada"
msgid "Bind only to specific interfaces rather than wildcard address."
msgstr ""
+"Vincule somente para as explicitamenteinterfaces ao invés do endereço "
+"coringa."
msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
+msgstr "Vincule o túnel a esta interface (opcional)"
msgid "Bitrate"
msgstr "Taxa de bits"
@@ -552,12 +600,15 @@ msgid ""
"Build/distribution specific feed definitions. This file will NOT be "
"preserved in any sysupgrade."
msgstr ""
+"Fonte de pacotes especÃfico da compilação/distribuição. Esta NÃO será "
+"preservada em qualquer atualização do sistema."
msgid "Buttons"
msgstr "Botões"
msgid "CA certificate; if empty it will be saved after the first connection."
msgstr ""
+"Certificado da CA; se em branco, será salvo depois da primeira conexão."
msgid "CPU usage (%)"
msgstr "Uso da CPU (%)"
@@ -566,7 +617,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgid "Category"
-msgstr ""
+msgstr "Categoria"
msgid "Chain"
msgstr "Cadeia"
@@ -588,9 +639,10 @@ msgstr "Verificar"
msgid "Check fileystems before mount"
msgstr ""
+"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
+msgstr "Marque esta opção para remover as redes existentes neste rádio."
msgid "Checksum"
msgstr "Soma de verificação"
@@ -617,7 +669,7 @@ msgid "Cipher"
msgstr "Cifra"
msgid "Cisco UDP encapsulation"
-msgstr ""
+msgstr "Encapsulamento UDP da Cisco"
msgid ""
"Click \"Generate archive\" to download a tar archive of the current "
@@ -654,8 +706,12 @@ msgstr "Comando"
msgid "Common Configuration"
msgstr "Configuração Comum"
-msgid "Compression"
-msgstr "Compressão"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuração"
@@ -679,7 +735,7 @@ msgid "Connection Limit"
msgstr "Limite de conexão"
msgid "Connection to server fails when TLS cannot be used"
-msgstr ""
+msgstr "A conexão para este servidor falhará quando o TLS não puder ser usado"
msgid "Connections"
msgstr "Conexões"
@@ -715,15 +771,17 @@ msgid "Custom Interface"
msgstr "Interface Personalizada"
msgid "Custom delegated IPv6-prefix"
-msgstr ""
+msgstr "Prefixo IPv6 delegado personalizado"
msgid ""
"Custom feed definitions, e.g. private feeds. This file can be preserved in a "
"sysupgrade."
msgstr ""
+"Definições de fonte de pacotes personalizadas, ex: fontes privadas. Este "
+"arquivo será preservado em uma atualização do sistema."
msgid "Custom feeds"
-msgstr ""
+msgstr "Fontes de pacotes customizadas"
msgid ""
"Customizes the behaviour of the device DNS -Requests without "
@@ -964,7 +1019,7 @@ msgstr ""
"integrado"
msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
+msgstr "Duas Pilhas Leve (RFC6333)"
msgid "Dynamic DHCP "
msgstr ""
@@ -982,7 +1037,7 @@ msgstr ""
"somente os clientes com atribuições estáticas serão servidos. "
msgid "EA-bits length"
-msgstr ""
+msgstr "Comprimento dos bits EA"
msgid "EAP-Method"
msgstr "Método EAP"
@@ -994,6 +1049,8 @@ msgid ""
"Edit the raw configuration data above to fix any error and hit \"Save\" to "
"reload the page."
msgstr ""
+"Edite os dados de configuração brutos abaixo para arrumar qualquer erro e "
+"clique em \"Salvar\" para recarregar a página."
msgid "Edit this interface"
msgstr "Editar esta interface"
@@ -1014,7 +1071,7 @@ msgid "Enable HE.net dynamic endpoint update"
msgstr "Ativar a atualização de ponto final dinâmico HE.net"
msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "Ativar a negociação de IPv6"
msgid "Enable IPv6 negotiation on the PPP link"
msgstr "Ativar a negociação de IPv6 no enlace PPP"
@@ -1026,7 +1083,7 @@ msgid "Enable NTP client"
msgstr "Ativar o cliente NTP "
msgid "Enable Single DES"
-msgstr ""
+msgstr "Habilitar DES Simples"
msgid "Enable TFTP server"
msgstr "Ativar servidor TFTP"
@@ -1035,19 +1092,22 @@ msgid "Enable VLAN functionality"
msgstr "Ativar funcionalidade de VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
+msgstr "Habilite o botão WPS. requer WPA(2)-PSK"
+
+msgid "Enable key reinstallation (KRACK) countermeasures"
msgstr ""
msgid "Enable learning and aging"
msgstr "Ativar o aprendizado e obsolescência"
msgid "Enable mirroring of incoming packets"
-msgstr ""
+msgstr "Habilitar espelhamento dos pacotes entrantes"
msgid "Enable mirroring of outgoing packets"
-msgstr ""
+msgstr "Habilitar espelhamento dos pacotes saintes"
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
+msgstr "Habilita o campo DF (Não Fragmentar) dos pacotes encapsulados."
msgid "Enable this mount"
msgstr "Ativar esta montagem"
@@ -1061,6 +1121,13 @@ msgstr "Ativar/Desativar"
msgid "Enabled"
msgstr "Ativado"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+"Ativa a troca rápida entre pontos de acesso que pertencem ao mesmo DomÃnio "
+"de Mobilidade"
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Ativa o protocolo STP nesta ponte"
@@ -1071,10 +1138,10 @@ msgid "Encryption"
msgstr "Cifragem"
msgid "Endpoint Host"
-msgstr ""
+msgstr "Equipamento do ponto final"
msgid "Endpoint Port"
-msgstr ""
+msgstr "Porta do ponto final"
msgid "Erasing..."
msgstr "Apagando..."
@@ -1083,7 +1150,7 @@ msgid "Error"
msgstr "Erro"
msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "Segundos com erro (ES)"
msgid "Ethernet Adapter"
msgstr "Adaptador Ethernet"
@@ -1092,7 +1159,7 @@ msgid "Ethernet Switch"
msgstr "Switch Ethernet"
msgid "Exclude interfaces"
-msgstr ""
+msgstr "Excluir interfaces"
msgid "Expand hosts"
msgstr "Expandir arquivos de equipamentos conhecidos (hosts)"
@@ -1100,7 +1167,6 @@ msgstr "Expandir arquivos de equipamentos conhecidos (hosts)"
msgid "Expires"
msgstr "Expira"
-#, fuzzy
msgid ""
"Expiry time of leased addresses, minimum is 2 minutes (2m
)."
msgstr ""
@@ -1108,7 +1174,13 @@ msgstr ""
"code>)."
msgid "External"
-msgstr ""
+msgstr "Externo"
+
+msgid "External R0 Key Holder List"
+msgstr "Lista dos Detentor de Chave R0 Externa"
+
+msgid "External R1 Key Holder List"
+msgstr "Lista dos Detentor de Chave R1 Externa"
msgid "External system log server"
msgstr "Servidor externo de registros do sistema (syslog)"
@@ -1117,13 +1189,10 @@ msgid "External system log server port"
msgstr "Porta do servidor externo de registro do sistema (syslog)"
msgid "External system log server protocol"
-msgstr ""
+msgstr "Protocolo do servidor externo de registro do sistema (syslog)"
msgid "Extra SSH command options"
-msgstr ""
-
-msgid "Fast Frames"
-msgstr "Quadros Rápidos"
+msgstr "Opções adicionais do comando SSH"
msgid "File"
msgstr "Arquivo"
@@ -1147,6 +1216,9 @@ msgid ""
"Find all currently attached filesystems and swap and replace configuration "
"with defaults based on what was detected"
msgstr ""
+"Encontre todos os sistemas de arquivos e espaços de troca (swap) atualmente "
+"conectados e substitua a configuração com valores padrão baseados no que foi "
+"detectado"
msgid "Find and join network"
msgstr "Procurar e conectar à rede"
@@ -1160,6 +1232,9 @@ msgstr "Terminar"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Configurações do Firewall"
@@ -1167,7 +1242,7 @@ msgid "Firewall Status"
msgstr "Estado do Firewall"
msgid "Firmware File"
-msgstr ""
+msgstr "Arquivo da Firmware"
msgid "Firmware Version"
msgstr "Versão do Firmware"
@@ -1205,17 +1280,22 @@ msgstr "Forçar TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forçar TKIP e CCMP (AES)"
-msgid "Force use of NAT-T"
+msgid "Force link"
msgstr ""
+msgid "Force use of NAT-T"
+msgstr "Force o uso do NAT-T"
+
msgid "Form token mismatch"
-msgstr ""
+msgstr "Chave eletrônica do formulário não casa"
msgid "Forward DHCP traffic"
msgstr "Encaminhar tráfego DHCP"
msgid "Forward Error Correction Seconds (FECS)"
msgstr ""
+"Segundos a frente de correção de erros ( FECS )"
msgid "Forward broadcast traffic"
msgstr "Encaminhar tráfego broadcast"
@@ -1239,6 +1319,8 @@ msgid ""
"Further information about WireGuard interfaces and peers at wireguard.io ."
msgstr ""
+"Mais informações sobre interfaces e parceiros WireGuard em wireguard.io ."
msgid "GHz"
msgstr "GHz"
@@ -1259,10 +1341,10 @@ msgid "General Setup"
msgstr "Configurações Gerais"
msgid "General options for opkg"
-msgstr ""
+msgstr "Opções gerais para o opkg"
msgid "Generate Config"
-msgstr ""
+msgstr "Gerar Configuração"
msgid "Generate archive"
msgstr "Gerar arquivo"
@@ -1274,10 +1356,10 @@ msgid "Given password confirmation did not match, password not changed!"
msgstr "A senha de confirmação informada não casa. Senha não alterada!"
msgid "Global Settings"
-msgstr ""
+msgstr "Configurações Globais"
msgid "Global network options"
-msgstr ""
+msgstr "Opções de rede globais"
msgid "Go to password configuration..."
msgstr "Ir para a configuração de senha..."
@@ -1286,19 +1368,21 @@ msgid "Go to relevant configuration page"
msgstr "Ir para a página de configuração pertinente"
msgid "Group Password"
-msgstr ""
+msgstr "Senha do Grupo"
msgid "Guest"
-msgstr ""
+msgstr "Convidado\t"
msgid "HE.net password"
msgstr "Senha HE.net"
msgid "HE.net username"
-msgstr ""
+msgstr "Usuário do HE.net"
msgid "HT mode (802.11n)"
msgstr ""
+"Modo HT "
+"(802.11n)"
# Não sei que contexto isto está sendo usado
msgid "Handler"
@@ -1309,9 +1393,11 @@ msgstr "Suspender"
msgid "Header Error Code Errors (HEC)"
msgstr ""
+"Erros de Código de Erro de Cabeçalho (HEC"
+"abbr>)"
msgid "Heartbeat"
-msgstr ""
+msgstr "Pulso de vida"
msgid ""
"Here you can configure the basic aspects of your device like its hostname or "
@@ -1336,7 +1422,7 @@ msgstr ""
"\">ESSID "
msgid "Host"
-msgstr ""
+msgstr "Equipamento"
msgid "Host entries"
msgstr "Entradas de Equipamentos"
@@ -1359,13 +1445,15 @@ msgid "Hostnames"
msgstr "Nome dos equipamentos"
msgid "Hybrid"
-msgstr ""
+msgstr "HÃbrido"
msgid "IKE DH Group"
msgstr ""
+"Grupo DH do IKE "
msgid "IP Addresses"
-msgstr ""
+msgstr "Endereços IP"
msgid "IP address"
msgstr "Endereço IP"
@@ -1386,7 +1474,7 @@ msgid "IPv4 and IPv6"
msgstr "IPv4 e IPv6"
msgid "IPv4 assignment length"
-msgstr ""
+msgstr "Tamanho da atribuição IPv4"
msgid "IPv4 broadcast"
msgstr "Broadcast IPv4"
@@ -1401,7 +1489,7 @@ msgid "IPv4 only"
msgstr "Somente IPv4"
msgid "IPv4 prefix"
-msgstr ""
+msgstr "Prefixo IPv4"
msgid "IPv4 prefix length"
msgstr "Tamanho do prefixo IPv4"
@@ -1410,7 +1498,7 @@ msgid "IPv4-Address"
msgstr "Endereço IPv4"
msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
+msgstr "IPv4-in-IPv4 (RFC2003)"
msgid "IPv6"
msgstr "IPv6"
@@ -1419,13 +1507,15 @@ msgid "IPv6 Firewall"
msgstr "Firewall para IPv6"
msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "Vizinhos IPv6"
msgid "IPv6 Settings"
-msgstr ""
+msgstr "Configurações IPv6"
msgid "IPv6 ULA-Prefix"
msgstr ""
+"Prefixo ULA "
+"IPv6"
msgid "IPv6 WAN Status"
msgstr "Estado IPv6 da WAN"
@@ -1434,13 +1524,13 @@ msgid "IPv6 address"
msgstr "Endereço IPv6"
msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
-msgstr ""
+msgstr "Endereços IPv6 delegados para o ponta local do túnel (opcional)"
msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "Sugestão de atribuição IPv6"
msgid "IPv6 assignment length"
-msgstr ""
+msgstr "Tamanho da atribuição IPv6"
msgid "IPv6 gateway"
msgstr "Roteador padrão do IPv6"
@@ -1455,11 +1545,17 @@ msgid "IPv6 prefix length"
msgstr "Tamanho Prefixo IPv6"
msgid "IPv6 routed prefix"
+msgstr "Prefixo roteável IPv6"
+
+msgid "IPv6 suffix"
msgstr ""
msgid "IPv6-Address"
msgstr "Endereço IPv6"
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1472,11 +1568,11 @@ msgstr "IPv6-sobre-IPv4 (6to4)"
msgid "Identity"
msgstr "Identidade PEAP"
-msgid "If checked, 1DES is enaled"
-msgstr ""
+msgid "If checked, 1DES is enabled"
+msgstr "Se marcado, a cifragem 1DES será habilitada"
msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "Se marcado, a cifragem estará desabilitada"
msgid ""
"If specified, mount the device by its UUID instead of a fixed device node"
@@ -1532,6 +1628,8 @@ msgid ""
"In order to prevent unauthorized access to the system, your request has been "
"blocked. Click \"Continue »\" below to return to the previous page."
msgstr ""
+"Para prevenir acesso não autorizado neste sistema, sua requisição foi "
+"bloqueada. Clique abaixo em \"Continuar »\" para retornar à página anterior."
msgid "Inactivity timeout"
msgstr "Tempo limite de inatividade"
@@ -1552,7 +1650,7 @@ msgid "Install"
msgstr "Instalar"
msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
+msgstr "Instale iputils-traceroute6 para rastrear rotas IPv6"
msgid "Install package %q"
msgstr "Instalar pacote %q"
@@ -1566,6 +1664,9 @@ msgstr "Pacotes instalados"
msgid "Interface"
msgstr "Interface"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configuração da Interface"
@@ -1579,7 +1680,7 @@ msgid "Interface is shutting down..."
msgstr "A interface está desligando..."
msgid "Interface name"
-msgstr ""
+msgstr "Nome da Interface"
msgid "Interface not present or not connected yet."
msgstr "A interface não está presente ou não está conectada ainda."
@@ -1594,7 +1695,7 @@ msgid "Interfaces"
msgstr "Interfaces"
msgid "Internal"
-msgstr ""
+msgstr "Interno"
msgid "Internal Server Error"
msgstr "erro no servidor interno"
@@ -1615,7 +1716,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Usuário e/ou senha inválida! Por favor, tente novamente."
-#, fuzzy
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
@@ -1623,8 +1726,8 @@ msgstr ""
"A imagem que está a tentar carregar aparenta nao caber na flash do "
"equipamento. Por favor verifique o arquivo da imagem!"
-msgid "Java Script required!"
-msgstr "à necessário Java Script!"
+msgid "JavaScript required!"
+msgstr "à necessário JavaScript!"
msgid "Join Network"
msgstr "Conectar à Rede"
@@ -1633,7 +1736,7 @@ msgid "Join Network: Wireless Scan"
msgstr "Conectar à Rede: Busca por Rede Sem Fio"
msgid "Joining Network: %q"
-msgstr ""
+msgstr "Juntando-se à rede %q"
msgid "Keep settings"
msgstr "Manter configurações"
@@ -1678,13 +1781,13 @@ msgid "Language and Style"
msgstr "Idioma e Estilo"
msgid "Latency"
-msgstr ""
+msgstr "Latência"
msgid "Leaf"
-msgstr ""
+msgstr "Folha"
msgid "Lease time"
-msgstr ""
+msgstr "Tempo de concessão"
msgid "Lease validity time"
msgstr "Tempo de validade da atribuição"
@@ -1692,9 +1795,6 @@ msgstr "Tempo de validade da atribuição"
msgid "Leasefile"
msgstr "Arquivo de atribuições"
-msgid "Leasetime"
-msgstr "Tempo de atribuição do DHCP"
-
msgid "Leasetime remaining"
msgstr "Tempo restante da atribuição"
@@ -1712,21 +1812,23 @@ msgstr "Limite"
msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
msgstr ""
+"Limite o serviço DNS para subredes das interfaces nas quais estamos servindo "
+"DNS."
msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "Escute somente nestas interfaces e na interface local (loopback) "
msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "Atenuação de Linha (LATN )"
msgid "Line Mode"
-msgstr ""
+msgstr "Modo da Linha"
msgid "Line State"
-msgstr ""
+msgstr "Estado da Linha"
msgid "Line Uptime"
-msgstr ""
+msgstr "Tempo de Atividade da Linha"
msgid "Link On"
msgstr "Enlace Ativo"
@@ -1738,8 +1840,34 @@ msgstr ""
"Lista dos servidores DNS para "
"encaminhar as requisições"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+"Lista dos R0KHs no mesmo DomÃnio de Mobilidade. Formato: Endereço "
+"MAC, Identificador NAS, chave de 128 bits como cadeia hexadecimal. "
+"Esta lista é usada para mapear o Identificador R0KH (Identificador NAS) para "
+"um endereço MAC de destino ao solicitar a chave PMK-R1 a partir do R0KH que "
+"o STA usado durante a Associação de DomÃnio de Mobilidade Inicial."
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+"Lista dos R1KHs no mesmo DomÃnio de Mobilidade. Formato: Endereço "
+"MAC, R1KH-ID como 6 octetos com dois pontos, chave de 128 bits como cadeia "
+"hexadecimal. Esta lista é usada para mapear o identificador R1KH para "
+"um endereço MAC de destino ao enviar a chave PMK-R1 a partir do R0KH. Esta é "
+"também a lista de R1KHs autorizados no MD que podem solicitar chaves PMK-R1."
+
msgid "List of SSH key files for auth"
-msgstr ""
+msgstr "Lista de arquivos de chaves SSH para autenticação"
msgid "List of domains to allow RFC1918 responses for"
msgstr ""
@@ -1752,10 +1880,10 @@ msgstr ""
"fornecem resultados errados para consultas a domÃnios inexistentes (NX)"
msgid "Listen Interfaces"
-msgstr ""
+msgstr "Interfaces de Escuta"
msgid "Listen Port"
-msgstr ""
+msgstr "Porta de Escuta"
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
@@ -1774,7 +1902,7 @@ msgid "Loading"
msgstr "Carregando"
msgid "Local IP address to assign"
-msgstr ""
+msgstr "Endereço IP local para atribuir"
msgid "Local IPv4 address"
msgstr "Endereço IPv4 local"
@@ -1783,7 +1911,7 @@ msgid "Local IPv6 address"
msgstr "Endereço IPv6 local"
msgid "Local Service Only"
-msgstr ""
+msgstr "Somente Serviço Local"
msgid "Local Startup"
msgstr "Iniciação Local"
@@ -1794,7 +1922,6 @@ msgstr "Hora Local"
msgid "Local domain"
msgstr "DomÃnio Local"
-#, fuzzy
msgid ""
"Local domain specification. Names matching this domain are never forwarded "
"and are resolved from DHCP or hosts files only"
@@ -1822,7 +1949,7 @@ msgid "Localise queries"
msgstr "Localizar consultas"
msgid "Locked to channel %s used by: %s"
-msgstr ""
+msgstr "Travado no canal %s usado por: %s"
msgid "Log output level"
msgstr "NÃvel de detalhamento de saÃda dos registros"
@@ -1841,6 +1968,8 @@ msgstr "Sair"
msgid "Loss of Signal Seconds (LOSS)"
msgstr ""
+"Segundos de Perda de Sinal (LOSS"
+"abbr>)"
msgid "Lowest leased address as offset from the network address."
msgstr "O endereço mais baixo concedido como deslocamento do endereço da rede."
@@ -1858,13 +1987,13 @@ msgid "MAC-List"
msgstr "Lista de MAC"
msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
msgid "MB/s"
msgstr "MB/s"
msgid "MD5"
-msgstr ""
+msgstr "MD5"
msgid "MHz"
msgstr "MHz"
@@ -1878,15 +2007,16 @@ msgid ""
"Make sure to clone the root filesystem using something like the commands "
"below:"
msgstr ""
+"Certifique-se que clonou o sistema de arquivos raiz com algo como o comando "
+"abaixo:"
msgid "Manual"
-msgstr ""
+msgstr "Manual"
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-
-msgid "Maximum Rate"
-msgstr "Taxa Máxima"
+"Taxa de Dados AtingÃvel Máxima (ATTNDR )"
msgid "Maximum allowed number of active DHCP leases"
msgstr "Número máximo permitido de alocações DHCP ativas"
@@ -1908,6 +2038,8 @@ msgid ""
"Maximum length of the name is 15 characters including the automatic protocol/"
"bridge prefix (br-, 6in4-, pppoe- etc.)"
msgstr ""
+"Comprimento máximo do nome é de 15 caracteres, incluindo o prefixo "
+"automático do protocolo/ponte (br-, 6in4- pppoe-, etc.)"
msgid "Maximum number of leased addresses."
msgstr "Número máximo de endereços atribuÃdos."
@@ -1924,26 +2056,26 @@ msgstr "Uso da memória (%)"
msgid "Metric"
msgstr "Métrica"
-msgid "Minimum Rate"
-msgstr "Taxa MÃnima"
-
msgid "Minimum hold time"
msgstr "Tempo mÃnimo de espera"
msgid "Mirror monitor port"
-msgstr ""
+msgstr "Porta de monitoramento do espelho"
msgid "Mirror source port"
-msgstr ""
+msgstr "Porta de origem do espelho"
msgid "Missing protocol extension for proto %q"
msgstr "Extensão para o protocolo %q está ausente"
+msgid "Mobility Domain"
+msgstr "DomÃnio da Mobilidade"
+
msgid "Mode"
msgstr "Modo"
msgid "Model"
-msgstr ""
+msgstr "Modelo"
msgid "Modem device"
msgstr "Dispositivo do Modem"
@@ -1977,7 +2109,7 @@ msgstr ""
"anexado ao sistema de arquivos"
msgid "Mount filesystems not specifically configured"
-msgstr ""
+msgstr "Monte sistemas de arquivos não especificamente configurados"
msgid "Mount options"
msgstr "Opções de montagem"
@@ -1986,7 +2118,7 @@ msgid "Mount point"
msgstr "Ponto de montagem"
msgid "Mount swap not specifically configured"
-msgstr ""
+msgstr "Montar espalho de troca (swap) não especificamente configurado"
msgid "Mounted file systems"
msgstr "Sistemas de arquivos montados"
@@ -1997,9 +2129,6 @@ msgstr "Mover para baixo"
msgid "Move up"
msgstr "Mover para cima"
-msgid "Multicast Rate"
-msgstr "Taxa de Multicast"
-
msgid "Multicast address"
msgstr "Endereço de Multicast"
@@ -2007,22 +2136,25 @@ msgid "NAS ID"
msgstr "NAS ID"
msgid "NAT-T Mode"
-msgstr ""
+msgstr "Modo NAT-T"
msgid "NAT64 Prefix"
+msgstr "Prefixo NAT64"
+
+msgid "NCM"
msgstr ""
msgid "NDP-Proxy"
-msgstr ""
+msgstr "Proxy NDP"
msgid "NT Domain"
-msgstr ""
+msgstr "DomÃnio NT"
msgid "NTP server candidates"
msgstr "Candidatos a servidor NTP"
msgid "NTP sync time-out"
-msgstr ""
+msgstr "Tempo limite da sincronia do NTP"
msgid "Name"
msgstr "Nome"
@@ -2058,7 +2190,7 @@ msgid "No DHCP Server configured for this interface"
msgstr "Nenhum Servidor DHCP configurado para esta interface"
msgid "No NAT-T"
-msgstr ""
+msgstr "Sem NAT-T"
msgid "No chains in this table"
msgstr "Nenhuma cadeira nesta tabela"
@@ -2094,16 +2226,18 @@ msgid "Noise"
msgstr "RuÃdo"
msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "Margem de RuÃdo (SNR )"
msgid "Noise:"
msgstr "RuÃdo:"
msgid "Non Pre-emtive CRC errors (CRC_P)"
msgstr ""
+"Erros CRC Não PreemptivosCRC_P"
+"abbr>"
msgid "Non-wildcard"
-msgstr ""
+msgstr "Sem caracter curinga"
msgid "None"
msgstr "Nenhum"
@@ -2124,7 +2258,7 @@ msgid "Note: Configuration files will be erased."
msgstr "Nota: Os arquivos de configuração serão apagados."
msgid "Note: interface name length"
-msgstr ""
+msgstr "Aviso: tamanho do nome da interface"
msgid "Notice"
msgstr "Aviso"
@@ -2139,10 +2273,10 @@ msgid "OPKG-Configuration"
msgstr "Configuração-OPKG"
msgid "Obfuscated Group Password"
-msgstr ""
+msgstr "Senha Ofuscada do Grupo"
msgid "Obfuscated Password"
-msgstr ""
+msgstr "Senha Ofuscada"
msgid "Off-State Delay"
msgstr "Atraso no estado de desligado"
@@ -2173,7 +2307,7 @@ msgid "One or more fields contain invalid values!"
msgstr "Um ou mais campos contém valores inválidos!"
msgid "One or more invalid/required values on tab"
-msgstr ""
+msgstr "Um ou mais valores inválidos/obrigatórios na aba"
msgid "One or more required fields have no value!"
msgstr "Um ou mais campos obrigatórios não tem valor!"
@@ -2182,10 +2316,10 @@ msgid "Open list..."
msgstr "Abrir lista..."
msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "OpenConnect (CISCO AnyConnect)"
msgid "Operating frequency"
-msgstr ""
+msgstr "Frequência de Operação"
msgid "Option changed"
msgstr "Opção alterada"
@@ -2193,41 +2327,61 @@ msgstr "Opção alterada"
msgid "Option removed"
msgstr "Opção removida"
+msgid "Optional"
+msgstr "Opcional"
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
+"Opcional, especifique para sobrescrever o servidor padrão (tic.sixxs.net)"
msgid "Optional, use when the SIXXS account has more than one tunnel"
+msgstr "Opcional, para usar quando a conta SIXXS tem mais de um túnel"
+
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
+"Opcional. Adiciona uma camada extra de cifragem simétrica para resistência "
+"pós quântica."
msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
+msgstr "Opcional. Cria rotas para endereços IP Autorizados para este parceiro."
msgid ""
"Optional. Host of peer. Names are resolved prior to bringing up the "
"interface."
msgstr ""
+"Opcional. Equipamento do parceiro. Nomes serão resolvido antes de levantar a "
+"interface."
msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "Opcional. Unidade Máxima de Transmissão da interface do túnel."
msgid "Optional. Port of peer."
-msgstr ""
+msgstr "Opcional. Porta do parceiro."
msgid ""
"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
"Recommended value if this device is behind a NAT is 25."
msgstr ""
+"Opcional. Segundos entre mensagens para manutenção da conexão. O padrão é 0 "
+"(desabilitado). O valor recomendado caso este dispositivo esteja atrás de "
+"uma NAT é 25."
msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
+msgstr "opcional. Porta UDP usada para pacotes saintes ou entrantes."
msgid "Options"
msgstr "Opções"
@@ -2241,26 +2395,25 @@ msgstr "SaÃda"
msgid "Outbound:"
msgstr "Saindo:"
-msgid "Outdoor Channels"
-msgstr "Canais para externo"
-
msgid "Output Interface"
-msgstr ""
+msgstr "Interface de SaÃda"
msgid "Override MAC address"
msgstr "Sobrescrever o endereço MAC"
msgid "Override MTU"
-msgstr "Sobrescrever o MTU"
+msgstr ""
+"Sobrescrever o MTU "
msgid "Override TOS"
-msgstr ""
+msgstr "Sobrescrever o TOS"
msgid "Override TTL"
-msgstr ""
+msgstr "Sobrescrever o TTL"
msgid "Override default interface name"
-msgstr ""
+msgstr "Sobrescrever o nome da nova interface"
msgid "Override the gateway in DHCP responses"
msgstr "Sobrescrever o roteador padrão nas respostas do DHCP"
@@ -2294,6 +2447,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr "PMK R1 Push"
+
msgid "PPP"
msgstr "PPP"
@@ -2307,19 +2463,19 @@ msgid "PPPoE"
msgstr "PPPoE"
msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
msgid "PPtP"
msgstr "PPtP"
msgid "PSID offset"
-msgstr ""
+msgstr "Deslocamento PSID"
msgid "PSID-bits length"
-msgstr ""
+msgstr "Comprimento dos bits PSID"
msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
+msgstr "PTM/EFM (Modo de Transferência de Pacotes)"
msgid "Package libiwinfo required!"
msgstr "O pacote libiwinfo é necessário!"
@@ -2346,11 +2502,14 @@ msgid "Password of Private Key"
msgstr "Senha da Chave Privada"
msgid "Password of inner Private Key"
-msgstr ""
+msgstr "Senha da Chave Privada interna"
msgid "Password successfully changed!"
msgstr "A senha foi alterada com sucesso!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Caminho para o Certificado da AC"
@@ -2364,25 +2523,25 @@ msgid "Path to executable which handles the button event"
msgstr "Caminho para o executável que trata o evento do botão"
msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "Caminho para os certificados CA interno"
msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "Caminho para o Certificado do Cliente interno"
msgid "Path to inner Private Key"
-msgstr ""
+msgstr "Caminho para a Chave Privada interna"
msgid "Peak:"
msgstr "Pico:"
msgid "Peer IP address to assign"
-msgstr ""
+msgstr "Endereço IP do parceiro para atribuir"
msgid "Peers"
-msgstr ""
+msgstr "Parceiros"
msgid "Perfect Forward Secrecy"
-msgstr ""
+msgstr "Sigilo Encaminhado Perfeito"
msgid "Perform reboot"
msgstr "Reiniciar o sistema"
@@ -2391,7 +2550,7 @@ msgid "Perform reset"
msgstr "Zerar configuração"
msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "Manutenção da Conexão Persistente"
msgid "Phy Rate:"
msgstr "Taxa fÃsica:"
@@ -2418,14 +2577,24 @@ msgid "Port status:"
msgstr "Status da porta"
msgid "Power Management Mode"
-msgstr ""
+msgstr "Modo de Gerenciamento de Energia"
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+"Erros CRC PreemptivosCRCP_P "
-msgid "Preshared Key"
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
msgstr ""
+msgid "Prefix Delegated"
+msgstr "Prefixo Delegado"
+
+msgid "Preshared Key"
+msgstr "Chave Compartilhada"
+
msgid ""
"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
"ignore failures"
@@ -2434,7 +2603,7 @@ msgstr ""
"echo do LCP. Use 0 para ignorar as falhas"
msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "Evite escutar nestas Interfaces."
msgid "Prevents client-to-client communication"
msgstr "Impede a comunicação de cliente para cliente"
@@ -2443,7 +2612,7 @@ msgid "Prism2/2.5/3 802.11b Wireless Controller"
msgstr "Prism2/2.5/3 802.11b Wireless Controlador"
msgid "Private Key"
-msgstr ""
+msgstr "Chave Privada"
msgid "Proceed"
msgstr "Proceder"
@@ -2452,7 +2621,7 @@ msgid "Processes"
msgstr "Processos"
msgid "Profile"
-msgstr ""
+msgstr "Perfil"
msgid "Prot."
msgstr "Protocolo"
@@ -2479,19 +2648,27 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
msgstr "Ad-Hoc falso (ahdemo)"
msgid "Public Key"
-msgstr ""
+msgstr "Chave Pública"
msgid "Public prefix routed to this device for distribution to clients."
msgstr ""
+"Prefixo público roteado para este dispositivo para distribuição a seus "
+"clientes."
msgid "QMI Cellular"
-msgstr ""
+msgstr "Celular QMI"
msgid "Quality"
msgstr "Qualidade"
+msgid "R0 Key Lifetime"
+msgstr "Validade da Chave R0"
+
+msgid "R1 Key Holder"
+msgstr "Detentor da Chave R1"
+
msgid "RFC3947 NAT-T mode"
-msgstr ""
+msgstr "Modo NAT-T (RFC3947)"
msgid "RTS/CTS Threshold"
msgstr "Limiar RTS/CTS"
@@ -2550,7 +2727,6 @@ msgstr ""
msgid "Really reset all changes?"
msgstr "Realmente limpar todas as mudanças?"
-#, fuzzy
msgid ""
"Really shut down network?\\nYou might lose access to this device if you are "
"connected via this interface."
@@ -2585,6 +2761,9 @@ msgstr "Tráfego em Tempo Real"
msgid "Realtime Wireless"
msgstr "Rede sem fio em Tempo Real"
+msgid "Reassociation Deadline"
+msgstr "Limite para Reassociação"
+
msgid "Rebind protection"
msgstr "Proteção contra \"Rebind\""
@@ -2604,7 +2783,7 @@ msgid "Receiver Antenna"
msgstr "Antena de Recepção"
msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
+msgstr "Recomendado. Endereços IP da interface do WireGuard."
msgid "Reconnect this interface"
msgstr "Reconectar esta interface"
@@ -2615,9 +2794,6 @@ msgstr "Reconectando interface"
msgid "References"
msgstr "Referências"
-msgid "Regulatory Domain"
-msgstr "DomÃnio Regulatório"
-
msgid "Relay"
msgstr "Retransmissor"
@@ -2634,7 +2810,7 @@ msgid "Remote IPv4 address"
msgstr "Endereço IPv4 remoto"
msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "Endereço IPv4 remoto ou FQDN"
msgid "Remove"
msgstr "Remover"
@@ -2649,33 +2825,47 @@ msgid "Replace wireless configuration"
msgstr "Substituir a configuração da rede sem fio"
msgid "Request IPv6-address"
-msgstr ""
+msgstr "Solicita endereço IPv6"
msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "Solicita prefixo IPv6 de tamanho"
msgid "Require TLS"
-msgstr ""
+msgstr "Requer TLS"
+
+msgid "Required"
+msgstr "Necessário"
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Requerido para alguns provedores de internet, ex. Charter com DOCSIS 3"
+msgstr ""
+"Obrigatório para alguns provedores de internet, ex. Charter com DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
+msgstr "Obrigatório. Chave privada codificada em Base64 para esta interface."
+
+msgid "Required. Base64-encoded public key of peer."
+msgstr "Necessário. Chave Pública do parceiro codificada como Base64."
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
+"Obrigatório. Endereços IP e prefixos que este parceiro está autorizado a "
+"usar dentro do túnel. Normalmente é o endereço IP do parceiro no túnel e as "
+"redes que o parceiro roteia através do túnel."
-msgid "Required. Public key of peer."
-msgstr ""
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
+msgstr "Obrigatório. Chave Pública do parceiro."
msgid ""
"Requires upstream supports DNSSEC; verify unsigned domain responses really "
"come from unsigned domains"
msgstr ""
+"Exige o suporte DNSSEC do servidor superior; verifica se resposta não "
+"assinadas realmente vẽm de domÃnios não assinados."
msgid "Reset"
msgstr "Limpar"
@@ -2714,19 +2904,19 @@ msgid "Root directory for files served via TFTP"
msgstr "Diretório raiz para arquivos disponibilizados pelo TFTP"
msgid "Root preparation"
-msgstr ""
+msgstr "Prepação da raiz (/)"
msgid "Route Allowed IPs"
-msgstr ""
+msgstr "Roteie Andereços IP Autorizados"
msgid "Route type"
-msgstr ""
+msgstr "Tipo de rota"
msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr ""
+msgstr "Prefixo roteável IPv6 para interfaces internas"
msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "Serviço de Anúncio de Roteador"
msgid "Router Password"
msgstr "Senha do Roteador"
@@ -2749,30 +2939,32 @@ msgid "Run filesystem check"
msgstr "Execute a verificação do sistema de arquivos "
msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
msgid ""
"SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
"use 6in4 instead"
msgstr ""
+"O SIXXS suporta somente TIC. Use o 6in4 para túneis estáticos usando o "
+"protocolo IP 41 (RFC4213)"
msgid "SIXXS-handle[/Tunnel-ID]"
-msgstr ""
+msgstr "Identificador do SIXXS[/Identificador do Túnel]"
msgid "SNR"
-msgstr ""
+msgstr "SNR"
msgid "SSH Access"
msgstr "Acesso SSH"
msgid "SSH server address"
-msgstr ""
+msgstr "Endereço do servidor SSH"
msgid "SSH server port"
-msgstr ""
+msgstr "Porta do servidor SSH"
msgid "SSH username"
-msgstr ""
+msgstr "Usuário do SSH"
msgid "SSH-Keys"
msgstr "Chaves SSH"
@@ -2814,22 +3006,21 @@ msgstr ""
msgid "Separate Clients"
msgstr "Isolar Clientes"
-msgid "Separate WDS"
-msgstr "Separar WDS"
-
msgid "Server Settings"
msgstr "Configurações do Servidor"
msgid "Server password"
-msgstr ""
+msgstr "Senha do servidor"
msgid ""
"Server password, enter the specific password of the tunnel when the username "
"contains the tunnel ID"
msgstr ""
+"Senha do servidor. Informe a senha para este túnel quando o nome do usuário "
+"contiver o identificador do túnel"
msgid "Server username"
-msgstr ""
+msgstr "Usuário do servidor"
msgid "Service Name"
msgstr "Nome do Serviço"
@@ -2840,7 +3031,11 @@ msgstr "Tipo do Serviço"
msgid "Services"
msgstr "Serviços"
-#, fuzzy
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr "Configurar a Sincronização do Horário"
@@ -2849,9 +3044,11 @@ msgstr "Configurar Servidor DHCP"
msgid "Severely Errored Seconds (SES)"
msgstr ""
+"Segundos com erro severos (SES"
+"abbr>)"
msgid "Short GI"
-msgstr ""
+msgstr "Intervalo de guarda curto"
msgid "Show current backup file list"
msgstr "Mostra a lista atual de arquivos para a cópia de segurança"
@@ -2866,7 +3063,7 @@ msgid "Signal"
msgstr "Sinal"
msgid "Signal Attenuation (SATN)"
-msgstr ""
+msgstr "Atenuação do Sinal (SATN )"
msgid "Signal:"
msgstr "Sinal:"
@@ -2875,7 +3072,7 @@ msgid "Size"
msgstr "Tamanho"
msgid "Size (.ipk)"
-msgstr ""
+msgstr "Tamanho (.ipk)"
msgid "Skip"
msgstr "Pular"
@@ -2893,7 +3090,7 @@ msgid "Software"
msgstr "Software"
msgid "Software VLAN"
-msgstr ""
+msgstr "VLAN em Software"
msgid "Some fields are invalid, cannot save values!"
msgstr "Alguns campos estão inválidos e os valores não podem ser salvos!"
@@ -2920,7 +3117,7 @@ msgid "Source"
msgstr "Origem"
msgid "Source routing"
-msgstr ""
+msgstr "Roteamento pela origem"
msgid "Specifies the button state to handle"
msgstr "Especifica o estado do botão para ser tratado"
@@ -2946,17 +3143,21 @@ msgstr ""
"equipamento está morto"
msgid "Specify a TOS (Type of Service)."
-msgstr ""
+msgstr "Especifique um Tipo de Serviço (TOS)"
msgid ""
"Specify a TTL (Time to Live) for the encapsulating packet other than the "
"default (64)."
msgstr ""
+"Especifica o tempo de vida (TTL ) para os "
+"pacotes encapsulados ao invés do padrão (64)."
msgid ""
"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
"bytes)."
msgstr ""
+"Especifica a unidade máxima de transmissão (MTU ) ao invés do valor padrão (1280 bytes)"
msgid "Specify the secret encryption key here."
msgstr "Especifique a chave de cifragem secreta aqui."
@@ -2982,9 +3183,6 @@ msgstr "Alocações Estáticas"
msgid "Static Routes"
msgstr "Rotas Estáticas"
-msgid "Static WDS"
-msgstr "WDS Estático"
-
msgid "Static address"
msgstr "Endereço Estático"
@@ -3011,13 +3209,13 @@ msgid "Submit"
msgstr "Enviar"
msgid "Suppress logging"
-msgstr ""
+msgstr "Suprimir registros (log)"
msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
+msgstr "Suprimir registros (log) de operações rotineiras destes protocolos"
msgid "Swap"
-msgstr ""
+msgstr "Espaço de Troca (swap)"
msgid "Swap Entry"
msgstr "Entrada do espaço de troca (Swap)"
@@ -3034,9 +3232,11 @@ msgstr "Switch %q (%s)"
msgid ""
"Switch %q has an unknown topology - the VLAN settings might not be accurate."
msgstr ""
+"O Switch %q tem uma topologia desconhecida - as configurações de VLAN podem "
+"não ser precisas."
msgid "Switch VLAN"
-msgstr ""
+msgstr "Switch VLAN"
msgid "Switch protocol"
msgstr "Trocar o protocolo"
@@ -3081,12 +3281,11 @@ msgid "Target"
msgstr "Destino"
msgid "Target network"
-msgstr ""
+msgstr "Rede de destino"
msgid "Terminate"
msgstr "Terminar"
-#, fuzzy
msgid ""
"The Device Configuration section covers physical settings of the "
"radio hardware such as channel, transmit power or antenna selection which "
@@ -3112,10 +3311,12 @@ msgid ""
"The HE.net endpoint update configuration changed, you must now use the plain "
"username instead of the user ID!"
msgstr ""
+"A configuração da atualização de pontas HE.net mudou. Você deve agora usar o "
+"nome do usuário ao invés do identificador do usuário!"
msgid ""
"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
+msgstr "O endereço IPv4 ou o nome completo (FQDN) da ponta remota do túnel."
msgid ""
"The IPv6 prefix assigned to the provider, usually ends with ::
"
@@ -3131,13 +3332,14 @@ msgstr ""
msgid "The configuration file could not be loaded due to the following error:"
msgstr ""
+"O arquivo de configuração não pode ser carregado devido ao seguinte erro:"
msgid ""
"The device file of the memory or partition (e.g."
" /dev/sda1
)"
msgstr ""
-"O arquivo do dispositivo de armazenamento ou da partição (ex. /dev/sda1
)"
+"O arquivo do dispositivo de armazenamento ou da partição (ex: /dev/"
+"sda1
)"
msgid ""
"The filesystem that was used to format the memory ( DO NOT POWER OFF THE DEVICE! Wait a "
"few minutes before you try to reconnect. It might be necessary to renew the "
@@ -3235,6 +3435,8 @@ msgid ""
"The tunnel end-point is behind NAT, defaults to disabled and only applies to "
"AYIYA"
msgstr ""
+"O final do túnel está atrás de um NAT. Por padrão será desabilitado e "
+"somente se aplica a AYIYA"
msgid ""
"The uploaded image file does not contain a supported format. Make sure that "
@@ -3277,6 +3479,9 @@ msgid ""
"'server=1.2.3.4' fordomain-specific or full upstream DNS servers."
msgstr ""
+"Este arquivo deve conter linhas como 'server=/domain/1.2.3.4' ou "
+"'server=1.2.3.4' para servidores DNS por domÃnio ou completos."
msgid ""
"This is a list of shell glob patterns for matching files and directories to "
@@ -3292,6 +3497,8 @@ msgid ""
"This is either the \"Update Key\" configured for the tunnel or the account "
"password if no update key has been configured"
msgstr ""
+"Isto é a \"Update Key\" configurada para o túnel ou a senha da cpnta se não "
+"tem uma \"Update Keu\" configurada"
msgid ""
"This is the content of /etc/rc.local. Insert your own commands here (in "
@@ -3315,11 +3522,13 @@ msgstr ""
"\">DHCP na rede local"
msgid "This is the plain username for logging into the account"
-msgstr ""
+msgstr "Este é o nome do usuário em para se autenticar na sua conta"
msgid ""
"This is the prefix routed to you by the tunnel broker for use by clients"
msgstr ""
+"Este é o prefixo roteado pelo agente do tunel para você usar com seus "
+"clientes"
msgid "This is the system crontab in which scheduled tasks can be defined."
msgstr "Este é o sistema de agendamento de tarefas."
@@ -3363,7 +3572,7 @@ msgstr ""
"de segurança anterior."
msgid "Tone"
-msgstr ""
+msgstr "Tom"
msgid "Total Available"
msgstr "Total DisponÃvel"
@@ -3402,19 +3611,16 @@ msgid "Tunnel Interface"
msgstr "Interface de Tunelamento"
msgid "Tunnel Link"
-msgstr ""
+msgstr "Enlace do túnel"
msgid "Tunnel broker protocol"
-msgstr ""
+msgstr "Protocolo do agente do túnel"
msgid "Tunnel setup server"
-msgstr ""
+msgstr "Servidor de configuração do túnel"
msgid "Tunnel type"
-msgstr ""
-
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
+msgstr "Tipo de túnel"
msgid "Tx-Power"
msgstr "Potência de transmissão"
@@ -3435,7 +3641,7 @@ msgid "USB Device"
msgstr "Dispositivo USB"
msgid "USB Ports"
-msgstr ""
+msgstr "Portas USB"
msgid "UUID"
msgstr "UUID"
@@ -3445,6 +3651,8 @@ msgstr "Não é possÃvel a expedição"
msgid "Unavailable Seconds (UAS)"
msgstr ""
+"Segundos de indisponibilidade (UAS"
+"abbr>)"
msgid "Unknown"
msgstr "Desconhecido"
@@ -3456,7 +3664,7 @@ msgid "Unmanaged"
msgstr "Não gerenciado"
msgid "Unmount"
-msgstr ""
+msgstr "Desmontar"
msgid "Unsaved Changes"
msgstr "Alterações Não Salvas"
@@ -3498,22 +3706,24 @@ msgid "Use ISO/IEC 3166 alpha2 country codes."
msgstr "Usar códigos de paÃses ISO/IEC 3166 alpha2."
msgid "Use MTU on tunnel interface"
-msgstr "Use MTU na interface do túnel"
+msgstr ""
+"Use o MTU na interface do túnel"
msgid "Use TTL on tunnel interface"
msgstr "Use TTL na interface do túnel"
msgid "Use as external overlay (/overlay)"
-msgstr ""
+msgstr "Use como uma sobreposição externa (/overlay)"
msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "Usar como o sistema de arquivos raiz (/)"
msgid "Use broadcast flag"
msgstr "Use a marcação de broadcast"
msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "Use o gerenciamento do IPv6 embarcado"
msgid "Use custom DNS servers"
msgstr "Use servidores DNS personalizados"
@@ -3546,11 +3756,18 @@ msgstr "Usado"
msgid "Used Key Slot"
msgstr "Posição da Chave Usada"
-msgid "User certificate (PEM encoded)"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
msgstr ""
+"Usado para dois diferentes propósitos: identificador do RADIUS NAS e do "
+"802.11r R0KH. Não necessário com o WPA(2)-PSK normal."
+
+msgid "User certificate (PEM encoded)"
+msgstr "Certificado do usuário (codificado em formato PEM)"
msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "Chave do usuário (codificada em formato PEM)"
msgid "Username"
msgstr "Usuário"
@@ -3559,7 +3776,7 @@ msgid "VC-Mux"
msgstr "VC-Mux"
msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
msgid "VLANs on %q"
msgstr "VLANs em %q"
@@ -3568,34 +3785,34 @@ msgid "VLANs on %q (%s)"
msgstr "VLANs em %q (%s)"
msgid "VPN Local address"
-msgstr ""
+msgstr "Endereço Local da VPN"
msgid "VPN Local port"
-msgstr ""
+msgstr "Porta Local da VPN"
msgid "VPN Server"
msgstr "Servidor VPN"
msgid "VPN Server port"
-msgstr ""
+msgstr "Porta do Servidor VPN"
msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
+msgstr "Resumo digital SHA1 do certificado do servidor VPN"
msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (VPN do CISCO 3000 (e outros))"
msgid "Vendor"
-msgstr ""
+msgstr "Fabricante"
msgid "Vendor Class to send when requesting DHCP"
msgstr "Classe do fabricante para enviar quando requisitar o DHCP"
msgid "Verbose"
-msgstr ""
+msgstr "Detalhado"
msgid "Verbose logging by aiccu daemon"
-msgstr ""
+msgstr "Habilite registros detalhados do serviço AICCU"
msgid "Verify"
msgstr "Verificar"
@@ -3631,6 +3848,8 @@ msgstr ""
msgid ""
"Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
msgstr ""
+"Espere esta quantidade de segundos pela sincronia do NTP. Definindo como 0 "
+"desabilita a espera (opcional)"
msgid "Waiting for changes to be applied..."
msgstr "Esperando a aplicação das mudanças..."
@@ -3639,25 +3858,25 @@ msgid "Waiting for command to complete..."
msgstr "Esperando o término do comando..."
msgid "Waiting for device..."
-msgstr ""
+msgstr "Esperando pelo dispositivo..."
msgid "Warning"
msgstr "Atenção"
msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
+msgstr "Atenção: Existem mudanças não salvas que serão perdidas ao reiniciar!"
msgid "Whether to create an IPv6 default route over the tunnel"
-msgstr ""
+msgstr "Se deve criar uma rota padrão IPv6 sobre o túnel"
msgid "Whether to route only packets from delegated prefixes"
-msgstr ""
+msgstr "Se deve rotear somente pacotes de prefixos delegados"
msgid "Width"
-msgstr ""
+msgstr "Largura"
msgid "WireGuard VPN"
-msgstr ""
+msgstr "VPN WireGuard"
msgid "Wireless"
msgstr "Rede sem fio"
@@ -3696,10 +3915,7 @@ msgid "Write received DNS requests to syslog"
msgstr "Escreva as requisições DNS para o servidor de registro (syslog)"
msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "Suporte a XR"
+msgstr "Escrever registo do sistema (log) no arquivo"
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
@@ -3713,7 +3929,7 @@ msgstr ""
"inacessÃvel! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
"Você precisa habilitar o JavaScript no seu navegador ou o LuCI não irá "
"funcionar corretamente."
@@ -3723,6 +3939,9 @@ msgid ""
"upgrade it to at least version 7 or use another browser like Firefox, Opera "
"or Safari."
msgstr ""
+"Seu Internet Explorer é muito velho para mostrar esta página corretamente. "
+"Por favor, atualiza para, ao menos, a versão 7 ou use outro navegador como o "
+"Firefox, Opera ou Safari."
msgid "any"
msgstr "qualquer"
@@ -3730,10 +3949,6 @@ msgstr "qualquer"
msgid "auto"
msgstr "automático"
-#, fuzzy
-msgid "automatic"
-msgstr "estático"
-
msgid "baseT"
msgstr "baseT"
@@ -3756,7 +3971,7 @@ msgid "disable"
msgstr "desativar"
msgid "disabled"
-msgstr ""
+msgstr "desabilitado"
msgid "expired"
msgstr "expirado"
@@ -3784,7 +3999,7 @@ msgid "hidden"
msgstr "ocultar"
msgid "hybrid mode"
-msgstr ""
+msgstr "Modo HÃbrido"
msgid "if target is a network"
msgstr "se o destino for uma rede"
@@ -3806,10 +4021,10 @@ msgstr ""
"Arquivo local de DNS "
msgid "minimum 1280, maximum 1480"
-msgstr ""
+msgstr "mÃnimo 1280, máximo 1480"
-msgid "navigation Navigation"
-msgstr ""
+msgid "minutes"
+msgstr "minutos"
# Is this yes/no or no like in no one?
msgid "no"
@@ -3822,7 +4037,7 @@ msgid "none"
msgstr "nenhum"
msgid "not present"
-msgstr ""
+msgstr "não presente "
msgid "off"
msgstr "desligado"
@@ -3834,35 +4049,32 @@ msgid "open"
msgstr "aberto"
msgid "overlay"
-msgstr ""
+msgstr "sobreposição"
msgid "relay mode"
-msgstr ""
+msgstr "modo retransmissor"
msgid "routed"
msgstr "roteado"
msgid "server mode"
-msgstr ""
-
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "modo servidor"
msgid "stateful-only"
-msgstr ""
+msgstr "somente com estado"
msgid "stateless"
-msgstr ""
+msgstr "sem estado"
msgid "stateless + stateful"
-msgstr ""
+msgstr "sem estado + com estado"
msgid "tagged"
msgstr "etiquetado"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr "unidades de tempo (TUs / 1.024 ms) [1000-65535]"
+
msgid "unknown"
msgstr "desconhecido"
@@ -3884,6 +4096,75 @@ msgstr "sim"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "Leasetime"
+#~ msgstr "Tempo de atribuição do DHCP"
+
+#~ msgid "Optional."
+#~ msgstr "Opcional."
+
+#~ msgid "navigation Navigation"
+#~ msgstr "navegação Navegação"
+
+#~ msgid "skiplink1 Skip to navigation"
+#~ msgstr "skiplink1 Pular para a navegação"
+
+#~ msgid "skiplink2 Skip to content"
+#~ msgstr "skiplink2 Pular para o conteúdo"
+
+#~ msgid "AuthGroup"
+#~ msgstr "Grupo de Autenticação"
+
+#~ msgid "automatic"
+#~ msgstr "automático"
+
+#~ msgid "AR Support"
+#~ msgstr "Suporte AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Busca em Segundo Plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compressão"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desativar temporizador de Beacon de Hardware"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Não enviar respostas de exames"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Quadros Rápidos"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Taxa Máxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Taxa MÃnima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Taxa de Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canais para externo"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "DomÃnio Regulatório"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separar WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS Estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suporte a XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Uma rede adicional será criada se você deixar isto desmarcado."
diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po
index 137d02a351..7034d2392f 100644
--- a/modules/luci-base/po/pt/base.po
+++ b/modules/luci-base/po/pt/base.po
@@ -52,12 +52,36 @@ msgstr "Carga de 1 Minuto:"
msgid "15 Minute Load:"
msgstr "Carga de 15 minutos:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Carga 5 Minutos:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
"BSSID "
@@ -133,6 +157,11 @@ msgstr "Max. consultas concorrentes"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -151,9 +180,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Suporte AR"
-
msgid "ARP retry threshold"
msgstr "Limiar de tentativas ARP"
@@ -399,15 +425,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Estações Associadas"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Atheros 802.11%s"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autenticação"
@@ -480,9 +500,6 @@ msgstr "Voltar à vista global"
msgid "Back to scan results"
msgstr "Voltar aos resultados do scan"
-msgid "Background Scan"
-msgstr "Procurar em Segundo Plano"
-
msgid "Backup / Flash Firmware"
msgstr "Backup / Flashar Firmware"
@@ -651,8 +668,12 @@ msgstr "Comando"
msgid "Common Configuration"
msgstr "Configuração comum"
-msgid "Compression"
-msgstr "Compressão"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configuração"
@@ -874,12 +895,12 @@ msgstr "Desativar configuração de DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Desativar temporizador de HW-Beacon"
-
msgid "Disabled"
msgstr "Desativado"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "Descartar respostas RFC1918 a montante"
@@ -921,9 +942,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Não encaminhar lookups reversos para as redes locais"
-msgid "Do not send probe responses"
-msgstr "Não enviar respostas a sondas"
-
msgid "Domain required"
msgstr "Requerer domÃnio"
@@ -1030,6 +1048,9 @@ msgstr "Ativar a funcionalidade VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "Ativar aprendizagem e envelhecimento"
@@ -1054,6 +1075,11 @@ msgstr "Ativar/Desativar"
msgid "Enabled"
msgstr "Ativado"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "Ativa o Spanning Tree nesta bridge"
@@ -1103,6 +1129,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Servidor externo de logs de sistema"
@@ -1115,9 +1147,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Frames Rápidas"
-
msgid "File"
msgstr "Ficheiro"
@@ -1153,6 +1182,9 @@ msgstr "Terminar"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Definições da Firewall"
@@ -1198,6 +1230,9 @@ msgstr "Forçar TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forçar TKIP e CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1449,9 +1484,15 @@ msgstr "Comprimento do prefixo IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "Endereço-IPv6"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-em-IPv4 (RFC4213)"
@@ -1464,7 +1505,7 @@ msgstr "IPv6-sobre-IPv4 (6to4)"
msgid "Identity"
msgstr "Identidade"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1552,6 +1593,9 @@ msgstr "Instalar pacotes"
msgid "Interface"
msgstr "Interface"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configuração da Interface"
@@ -1598,6 +1642,9 @@ msgstr "O ID de VLAN fornecido é inválido! Só os IDs únicos são permitidos.
msgid "Invalid username and/or password! Please try again."
msgstr "Username inválido e/ou a password! Por favor, tente novamente."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1606,8 +1653,8 @@ msgstr ""
"A imagem que está a tentar carregar aparenta não caber na flash do "
"equipamento. Por favor verifique o ficheiro de imagem."
-msgid "Java Script required!"
-msgstr "à necessário Javascript!"
+msgid "JavaScript required!"
+msgstr "à necessário JavaScript!"
msgid "Join Network"
msgstr "Associar Rede"
@@ -1675,9 +1722,6 @@ msgstr "Tempo de validade da concessão"
msgid "Leasefile"
msgstr "Ficheiro de concessões"
-msgid "Leasetime"
-msgstr "Tempo de concessão"
-
msgid "Leasetime remaining"
msgstr "Tempo de atribuição restante"
@@ -1721,6 +1765,22 @@ msgstr ""
"Lista de servidores DNS para "
"onde encaminhar os pedidos"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1859,9 +1919,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Taxa Máxima"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "Número máximo permitido de concessões DHCP ativas"
@@ -1897,9 +1954,6 @@ msgstr "Uso de memória (%)"
msgid "Metric"
msgstr "Métrica"
-msgid "Minimum Rate"
-msgstr "Taxa MÃnima"
-
msgid "Minimum hold time"
msgstr "Tempo de retenção mÃnimo"
@@ -1912,6 +1966,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "Falta a extensão de protocolo para o protocolo %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Modo"
@@ -1970,9 +2027,6 @@ msgstr "Subir"
msgid "Move up"
msgstr "Descer"
-msgid "Multicast Rate"
-msgstr "Taxa de Multicast"
-
msgid "Multicast address"
msgstr "Endereço de multicast"
@@ -1985,6 +2039,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2165,18 +2222,30 @@ msgstr "Opção alterada"
msgid "Option removed"
msgstr "Opção removida"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2213,9 +2282,6 @@ msgstr "SaÃda"
msgid "Outbound:"
msgstr "SaÃda:"
-msgid "Outdoor Channels"
-msgstr "Canais de Outdoor"
-
msgid "Output Interface"
msgstr ""
@@ -2263,6 +2329,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2320,6 +2389,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Password alterada com sucesso!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Directorio do Certificado CA"
@@ -2392,6 +2464,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2457,6 +2538,12 @@ msgstr ""
msgid "Quality"
msgstr "Qualidade"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2549,6 +2636,9 @@ msgstr "Tráfego em Tempo Real"
msgid "Realtime Wireless"
msgstr "Wireless em Tempo Real"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "Religar protecção"
@@ -2579,9 +2669,6 @@ msgstr "A reconectar interface"
msgid "References"
msgstr "Referências"
-msgid "Regulatory Domain"
-msgstr "DomÃnio Regulatório"
-
msgid "Relay"
msgstr ""
@@ -2621,19 +2708,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "Necessário para certos ISPs, p.ex. Charter with DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2776,9 +2871,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Isolar Clientes"
-msgid "Separate WDS"
-msgstr "Separar WDS"
-
msgid "Server Settings"
msgstr ""
@@ -2802,6 +2894,11 @@ msgstr "Tipo de Serviço"
msgid "Services"
msgstr "Serviços"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Configurar Sincronização Horária"
@@ -2937,9 +3034,6 @@ msgstr "Atribuições Estáticas"
msgid "Static Routes"
msgstr "Rotas Estáticas"
-msgid "Static WDS"
-msgstr "WDS Estático"
-
msgid "Static address"
msgstr "Endereço estático"
@@ -3348,9 +3442,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
msgid "Tx-Power"
msgstr "Potência de Tx"
@@ -3473,6 +3564,11 @@ msgstr "Usado"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3625,9 +3721,6 @@ msgstr "Escrever os pedidos de DNS para o syslog"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Suporte XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3640,9 +3733,9 @@ msgstr ""
"inacessÃvel! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Tem de activar o Java Script no seu browser ou a LuCI não funcionará "
+"Tem de activar o JavaScript no seu browser ou a LuCI não funcionará "
"corretamente."
msgid ""
@@ -3657,10 +3750,6 @@ msgstr "qualquer"
msgid "auto"
msgstr "automático"
-#, fuzzy
-msgid "automatic"
-msgstr "estático"
-
msgid "baseT"
msgstr "baseT"
@@ -3735,7 +3824,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3771,12 +3860,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3789,6 +3872,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "desconhecido"
@@ -3810,6 +3896,61 @@ msgstr "sim"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "Leasetime"
+#~ msgstr "Tempo de concessão"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "estático"
+
+#~ msgid "AR Support"
+#~ msgstr "Suporte AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Procurar em Segundo Plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compressão"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desativar temporizador de HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Não enviar respostas a sondas"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frames Rápidas"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Taxa Máxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Taxa MÃnima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Taxa de Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canais de Outdoor"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "DomÃnio Regulatório"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separar WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS Estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suporte XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "Uma rede adicional será criada se deixar isto desmarcado."
diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po
index 724f3939b0..9587e4c55a 100644
--- a/modules/luci-base/po/ro/base.po
+++ b/modules/luci-base/po/ro/base.po
@@ -51,12 +51,36 @@ msgstr "Incarcarea in ultimul minut"
msgid "15 Minute Load:"
msgstr "Incarcarea in ultimele 15 minute"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Incarcarea in ultimele 5 minute"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -124,6 +148,11 @@ msgstr "Max. interogari simultane"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -142,9 +171,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "Suport AR"
-
msgid "ARP retry threshold"
msgstr "ARP prag reincercare"
@@ -385,15 +411,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "Statiile asociate"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Controler Fara Fir"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Autentificare"
@@ -466,9 +486,6 @@ msgstr "Inapoi la vedere generala"
msgid "Back to scan results"
msgstr "Inapoi la rezultatele scanarii"
-msgid "Background Scan"
-msgstr "Scanare in fundal"
-
msgid "Backup / Flash Firmware"
msgstr "Salveaza / Scrie Firmware"
@@ -626,8 +643,12 @@ msgstr "Comanda"
msgid "Common Configuration"
msgstr "Configurarea obisnuita"
-msgid "Compression"
-msgstr "Comprimare"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Configurare"
@@ -844,12 +865,12 @@ msgstr "Dezactiveaza configuratia DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr ""
-
msgid "Disabled"
msgstr "Dezactivat"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr ""
@@ -884,9 +905,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr "Domeniul necesar"
@@ -985,6 +1003,9 @@ msgstr "Activeaza VLAN-urile"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1009,6 +1030,11 @@ msgstr "Activeaza/Dezactiveaza"
msgid "Enabled"
msgstr "Activat"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1055,6 +1081,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "Server de log-uri extern"
@@ -1067,9 +1099,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr "Fisier"
@@ -1105,6 +1134,9 @@ msgstr "Termina"
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "Setarile firewall-ului"
@@ -1151,6 +1183,9 @@ msgstr "Forteaza TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "Forteaza TKIP si CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1396,9 +1431,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1411,7 +1452,7 @@ msgstr ""
msgid "Identity"
msgstr "Identitate"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1493,6 +1534,9 @@ msgstr "Pachete instalate"
msgid "Interface"
msgstr "Interfata"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "Configurarea interfetei"
@@ -1538,6 +1582,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Utilizator si/sau parola invalide! Incearcati din nou."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1546,8 +1593,8 @@ msgstr ""
"Se pare ca ai incercat sa rescrii o imagine care nu are loc in memoria "
"flash, verifica fisierul din nou!"
-msgid "Java Script required!"
-msgstr "Ai nevoie de Java Script !"
+msgid "JavaScript required!"
+msgstr "Ai nevoie de JavaScript !"
msgid "Join Network"
msgstr ""
@@ -1615,9 +1662,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr ""
-
msgid "Leasetime remaining"
msgstr ""
@@ -1659,6 +1703,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1791,9 +1851,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Rata maxima"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1829,9 +1886,6 @@ msgstr "Utilizarea memoriei (%)"
msgid "Metric"
msgstr "Metrica"
-msgid "Minimum Rate"
-msgstr "Rata minima"
-
msgid "Minimum hold time"
msgstr ""
@@ -1844,6 +1898,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Mod"
@@ -1900,9 +1957,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr "Rata de multicast"
-
msgid "Multicast address"
msgstr ""
@@ -1915,6 +1969,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2089,18 +2146,30 @@ msgstr "Optiunea schimbata"
msgid "Option removed"
msgstr "Optiunea eliminata"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2137,9 +2206,6 @@ msgstr "Iesire"
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2187,6 +2253,9 @@ msgstr "PID"
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2244,6 +2313,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "Parola schimbata cu succes !"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "Calea catre certificatul CA"
@@ -2316,6 +2388,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2381,6 +2462,12 @@ msgstr ""
msgid "Quality"
msgstr "Calitate"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2462,6 +2549,9 @@ msgstr "Traficul in timp real"
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2492,9 +2582,6 @@ msgstr "Interfata se reconecteaza chiar acum"
msgid "References"
msgstr "Referinte"
-msgid "Regulatory Domain"
-msgstr "Domeniu regulatoriu"
-
msgid "Relay"
msgstr ""
@@ -2534,19 +2621,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2686,9 +2781,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr "Setarile serverului"
@@ -2712,6 +2804,11 @@ msgstr "Tip de serviciu"
msgid "Services"
msgstr "Servicii"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "Configurare sincronizare timp"
@@ -2847,9 +2944,6 @@ msgstr ""
msgid "Static Routes"
msgstr "Rute statice"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3215,9 +3309,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Mod turbo"
-
msgid "Tx-Power"
msgstr "Puterea TX"
@@ -3340,6 +3431,11 @@ msgstr "Folosit"
msgid "Used Key Slot"
msgstr "Slot de cheie folosit"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3492,9 +3588,6 @@ msgstr "Scrie cererile DNS primite in syslog"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "Suport XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3502,7 +3595,7 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3517,9 +3610,6 @@ msgstr "oricare"
msgid "auto"
msgstr "auto"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3591,7 +3681,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3627,12 +3717,6 @@ msgstr "rutat"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3645,6 +3729,9 @@ msgstr ""
msgid "tagged"
msgstr "etichetat"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "necunoscut"
@@ -3666,6 +3753,36 @@ msgstr "da"
msgid "« Back"
msgstr "« Inapoi"
+#~ msgid "AR Support"
+#~ msgstr "Suport AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Controler Fara Fir"
+
+#~ msgid "Background Scan"
+#~ msgstr "Scanare in fundal"
+
+#~ msgid "Compression"
+#~ msgstr "Comprimare"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Rata maxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Rata minima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Rata de multicast"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domeniu regulatoriu"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mod turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suport XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr ""
#~ "Daca lasati aceasta optiune neselectata va fi creata o retea aditionala"
diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po
index 039ef14b9c..f52e618423 100644
--- a/modules/luci-base/po/ru/base.po
+++ b/modules/luci-base/po/ru/base.po
@@ -54,12 +54,36 @@ msgstr "ÐагÑÑзка за 1 минÑÑÑ:"
msgid "15 Minute Load:"
msgstr "ÐагÑÑзка за 15 минÑÑ:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "ÐагÑÑзка за 5 минÑÑ:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -131,6 +155,11 @@ msgstr ""
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -149,9 +178,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "ÐоддеÑжка AR"
-
msgid "ARP retry threshold"
msgstr "ÐоÑог повÑоÑа ARP"
@@ -398,15 +424,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "ÐодклÑÑеннÑе клиенÑÑ"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "ÐеÑпÑоводной 802.11%s конÑÑÐ¾Ð»Ð»ÐµÑ Atheros"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "ÐÑÑенÑиÑикаÑиÑ"
@@ -479,9 +499,6 @@ msgstr "Ðазад к обзоÑÑ"
msgid "Back to scan results"
msgstr "Ðазад к ÑезÑлÑÑаÑам ÑканиÑованиÑ"
-msgid "Background Scan"
-msgstr "Фоновое ÑканиÑование"
-
msgid "Backup / Flash Firmware"
msgstr "РезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ / пÑоÑивка"
@@ -651,8 +668,12 @@ msgstr "Ðоманда"
msgid "Common Configuration"
msgstr "ÐбÑÐ°Ñ ÐºÐ¾Ð½ÑигÑÑаÑиÑ"
-msgid "Compression"
-msgstr "СжаÑие"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "ÐонÑигÑÑаÑиÑ"
@@ -873,12 +894,12 @@ msgstr "ÐÑклÑÑиÑÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "ÐÑклÑÑиÑÑ ÑÐ°Ð¹Ð¼ÐµÑ HW-Beacon"
-
msgid "Disabled"
msgstr "ÐÑклÑÑено"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "ÐÑбÑаÑÑваÑÑ Ð¾ÑвеÑÑ RFC1918"
@@ -919,9 +940,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Ðе пеÑенапÑавлÑÑÑ Ð¾Ð±ÑаÑнÑе DNS-запÑоÑÑ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ
ÑеÑей"
-msgid "Do not send probe responses"
-msgstr "Ðе поÑÑлаÑÑ ÑеÑÑовÑе оÑвеÑÑ"
-
msgid "Domain required"
msgstr "ТÑебÑеÑÑÑ Ð´Ð¾Ð¼ÐµÐ½"
@@ -1031,6 +1049,9 @@ msgstr "ÐклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "ÐклÑÑиÑÑ Ð¸Ð·ÑÑение и ÑÑÑаÑевание (learning/aging)"
@@ -1055,6 +1076,11 @@ msgstr "ÐклÑÑиÑÑ/вÑклÑÑиÑÑ"
msgid "Enabled"
msgstr "ÐклÑÑено"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "ÐклÑÑÐ°ÐµÑ Spanning Tree Protocol на ÑÑом моÑÑÑ"
@@ -1104,6 +1130,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "СеÑÐ²ÐµÑ ÑиÑÑемного жÑÑнала"
@@ -1116,9 +1148,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "ÐÑÑÑÑÑе кадÑÑ"
-
msgid "File"
msgstr "Файл"
@@ -1154,6 +1183,9 @@ msgstr "ÐавеÑÑиÑÑ"
msgid "Firewall"
msgstr "ÐежÑеÑевой ÑкÑан"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "ÐаÑÑÑойки межÑеÑевого ÑкÑана"
@@ -1200,6 +1232,9 @@ msgstr "ТÑебоваÑÑ TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "TKIP или CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1448,9 +1483,15 @@ msgstr "Ðлина пÑеÑикÑа IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-адÑеÑ"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6 в IPv4 (RFC4213)"
@@ -1463,7 +1504,7 @@ msgstr "IPv6 ÑеÑез IPv4 (6to4)"
msgid "Identity"
msgstr "ÐденÑиÑикаÑÐ¸Ñ EAP"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1555,6 +1596,9 @@ msgstr "УÑÑановленнÑе пакеÑÑ"
msgid "Interface"
msgstr "ÐнÑеÑÑейÑ"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ÐонÑигÑÑаÑÐ¸Ñ Ð¸Ð½ÑеÑÑейÑа"
@@ -1602,6 +1646,9 @@ msgstr "Указан невеÑнÑй VLAN ID! ÐоÑÑÑÐ¿Ð½Ñ ÑолÑко Ñ
msgid "Invalid username and/or password! Please try again."
msgstr "ÐевеÑнÑй логин и/или паÑолÑ! ÐожалÑйÑÑа попÑобÑйÑе Ñнова."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1610,8 +1657,8 @@ msgstr ""
"ÐÑ Ð¿ÑÑаеÑеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ Ð¿ÑоÑÐ¸Ð²ÐºÑ Ñайлом, коÑоÑÑй не помеÑаеÑÑÑ Ð² памÑÑÑ "
"ÑÑÑÑойÑÑва! ÐожалÑйÑÑа, пÑовеÑÑÑе Ñайл обÑаза."
-msgid "Java Script required!"
-msgstr "ТÑебÑеÑÑÑ Java Script!"
+msgid "JavaScript required!"
+msgstr "ТÑебÑеÑÑÑ JavaScript!"
msgid "Join Network"
msgstr "ÐодклÑÑение к ÑеÑи"
@@ -1679,9 +1726,6 @@ msgstr "СÑок дейÑÑÐ²Ð¸Ñ Ð°ÑендÑ"
msgid "Leasefile"
msgstr "Файл аÑенд"
-msgid "Leasetime"
-msgstr "ÐÑÐµÐ¼Ñ Ð°ÑендÑ"
-
msgid "Leasetime remaining"
msgstr "ÐÑÑавÑееÑÑ Ð²ÑÐµÐ¼Ñ Ð°ÑендÑ"
@@ -1725,6 +1769,22 @@ msgstr ""
"СпиÑок DNS -ÑеÑвеÑов Ð´Ð»Ñ "
"пеÑенапÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1864,9 +1924,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "ÐакÑималÑÐ½Ð°Ñ ÑкоÑоÑÑÑ"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "ÐакÑималÑное колиÑеÑÑво акÑивнÑÑ
аÑендованнÑÑ
DHCP-адÑеÑов"
@@ -1902,9 +1959,6 @@ msgstr "ÐÑполÑзование памÑÑи (%)"
msgid "Metric"
msgstr "ÐеÑÑика"
-msgid "Minimum Rate"
-msgstr "ÐинималÑÐ½Ð°Ñ ÑкоÑоÑÑÑ"
-
msgid "Minimum hold time"
msgstr "ÐинималÑное вÑÐµÐ¼Ñ ÑдеÑжаниÑ"
@@ -1917,6 +1971,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "ÐÑÑÑÑÑÑвÑÐµÑ ÑаÑÑиÑение пÑоÑокола %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Режим"
@@ -1976,9 +2033,6 @@ msgstr "ÐеÑемеÑÑиÑÑ Ð²Ð½Ð¸Ð·"
msgid "Move up"
msgstr "ÐеÑемеÑÑиÑÑ Ð²Ð²ÐµÑÑ
"
-msgid "Multicast Rate"
-msgstr "СкоÑоÑÑÑ Ð³ÑÑпповой пеÑедаÑи"
-
msgid "Multicast address"
msgstr "ÐдÑÐµÑ Ð³ÑÑпповой пеÑедаÑи"
@@ -1991,6 +2045,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2171,18 +2228,30 @@ msgstr "ÐпÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°"
msgid "Option removed"
msgstr "ÐпÑÐ¸Ñ Ñдалена"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2219,9 +2288,6 @@ msgstr "Ðне"
msgid "Outbound:"
msgstr "ÐÑÑ
одÑÑий:"
-msgid "Outdoor Channels"
-msgstr "ÐнеÑние каналÑ"
-
msgid "Output Interface"
msgstr ""
@@ -2271,6 +2337,9 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2328,6 +2397,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "ÐаÑÐ¾Ð»Ñ ÑÑпеÑно изменÑн!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "ÐÑÑÑ Ðº ÑенÑÑÑ ÑеÑÑиÑикаÑии"
@@ -2400,6 +2472,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2467,6 +2548,12 @@ msgstr ""
msgid "Quality"
msgstr "ÐаÑеÑÑво"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2559,6 +2646,9 @@ msgstr "ТÑаÑик в ÑеалÑном вÑемени"
msgid "Realtime Wireless"
msgstr "ÐеÑпÑÐ¾Ð²Ð¾Ð´Ð½Ð°Ñ ÑеÑÑ Ð² ÑеалÑном вÑемени"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "ÐаÑиÑа Ð¾Ñ DNS Rebinding"
@@ -2590,9 +2680,6 @@ msgstr "ÐнÑеÑÑÐµÐ¹Ñ Ð¿ÐµÑеподклÑÑаеÑÑÑ"
msgid "References"
msgstr "СÑÑлки"
-msgid "Regulatory Domain"
-msgstr "ÐоÑмаÑÐ¸Ð²Ð½Ð°Ñ Ð·Ð¾Ð½Ð°"
-
msgid "Relay"
msgstr "РеÑÑанÑлÑÑоÑ"
@@ -2632,19 +2719,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "ТÑебÑеÑÑÑ Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
инÑеÑнеÑ-пÑовайдеÑов"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2788,9 +2883,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "РазделÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов"
-msgid "Separate WDS"
-msgstr "ÐÑделÑнÑй WDS"
-
msgid "Server Settings"
msgstr "ÐаÑÑÑойки ÑеÑвеÑа"
@@ -2814,6 +2906,11 @@ msgstr "Тип ÑлÑжбÑ"
msgid "Services"
msgstr "СеÑвиÑÑ"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "ÐаÑÑÑоиÑÑ ÑинÑ
ÑонизаÑÐ¸Ñ Ð²Ñемени"
@@ -2955,9 +3052,6 @@ msgstr "ÐоÑÑоÑннÑе аÑендÑ"
msgid "Static Routes"
msgstr "СÑаÑиÑеÑкие маÑÑÑÑÑÑ"
-msgid "Static WDS"
-msgstr "СÑаÑиÑеÑкий WDS"
-
msgid "Static address"
msgstr "СÑаÑиÑеÑкий адÑеÑ"
@@ -3382,9 +3476,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "ТÑÑбо-Ñежим"
-
msgid "Tx-Power"
msgstr "ÐоÑноÑÑÑ Ð¿ÐµÑедаÑÑика"
@@ -3514,6 +3605,11 @@ msgstr "ÐÑполÑзовано"
msgid "Used Key Slot"
msgstr "ÐÑполÑзÑемÑй ÑÐ»Ð¾Ñ ÐºÐ»ÑÑа"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3667,9 +3763,6 @@ msgstr "ÐапиÑÑваÑÑ Ð¿Ð¾Ð»ÑÑеннÑе DNS-запÑоÑÑ Ð² ÑиÑÑ
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "ÐоддеÑжка XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3681,9 +3774,9 @@ msgstr ""
"(напÑÐ¸Ð¼ÐµÑ \"network\"), ваÑе ÑÑÑÑойÑÑво Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑм! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Ðам необÑ
одимо вклÑÑиÑÑ Java Script в ваÑем бÑаÑзеÑе Ð´Ð»Ñ ÐºÐ¾ÑÑекÑной ÑабоÑÑ "
+"Ðам необÑ
одимо вклÑÑиÑÑ JavaScript в ваÑем бÑаÑзеÑе Ð´Ð»Ñ ÐºÐ¾ÑÑекÑной ÑабоÑÑ "
"LuCI."
msgid ""
@@ -3698,10 +3791,6 @@ msgstr "лÑбой"
msgid "auto"
msgstr "авÑо"
-#, fuzzy
-msgid "automatic"
-msgstr "ÑÑаÑиÑеÑкий"
-
msgid "baseT"
msgstr "baseT"
@@ -3776,7 +3865,7 @@ msgstr "локалÑнÑй BSSID "
msgstr ""
@@ -115,6 +139,11 @@ msgstr ""
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -133,9 +162,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr ""
-
msgid "ARP retry threshold"
msgstr ""
@@ -371,15 +397,9 @@ msgstr ""
msgid "Associated Stations"
msgstr ""
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr ""
@@ -452,9 +472,6 @@ msgstr ""
msgid "Back to scan results"
msgstr ""
-msgid "Background Scan"
-msgstr ""
-
msgid "Backup / Flash Firmware"
msgstr ""
@@ -609,7 +626,11 @@ msgstr ""
msgid "Common Configuration"
msgstr ""
-msgid "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
msgstr ""
msgid "Configuration"
@@ -825,10 +846,10 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
msgstr ""
-msgid "Disabled"
+msgid "Disabled (default)"
msgstr ""
msgid "Discard upstream RFC1918 responses"
@@ -865,9 +886,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr ""
@@ -966,6 +984,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -990,6 +1011,11 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1036,6 +1062,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1048,9 +1080,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr ""
@@ -1086,6 +1115,9 @@ msgstr ""
msgid "Firewall"
msgstr ""
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr ""
@@ -1131,6 +1163,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1374,9 +1409,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1389,7 +1430,7 @@ msgstr ""
msgid "Identity"
msgstr ""
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1471,6 +1512,9 @@ msgstr ""
msgid "Interface"
msgstr ""
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1516,12 +1560,15 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr ""
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1590,9 +1637,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr ""
-
msgid "Leasetime remaining"
msgstr ""
@@ -1634,6 +1678,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1766,9 +1826,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1804,9 +1861,6 @@ msgstr ""
msgid "Metric"
msgstr ""
-msgid "Minimum Rate"
-msgstr ""
-
msgid "Minimum hold time"
msgstr ""
@@ -1819,6 +1873,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr ""
@@ -1875,9 +1932,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr ""
-
msgid "Multicast address"
msgstr ""
@@ -1890,6 +1944,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2064,18 +2121,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2112,9 +2181,6 @@ msgstr ""
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2162,6 +2228,9 @@ msgstr ""
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2219,6 +2288,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr ""
@@ -2291,6 +2363,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2356,6 +2437,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2435,6 +2522,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2465,9 +2555,6 @@ msgstr ""
msgid "References"
msgstr ""
-msgid "Regulatory Domain"
-msgstr ""
-
msgid "Relay"
msgstr ""
@@ -2507,19 +2594,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2659,9 +2754,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr ""
@@ -2685,6 +2777,11 @@ msgstr ""
msgid "Services"
msgstr ""
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2819,9 +2916,6 @@ msgstr ""
msgid "Static Routes"
msgstr ""
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3185,9 +3279,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr ""
-
msgid "Tx-Power"
msgstr ""
@@ -3310,6 +3401,11 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3460,9 +3556,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr ""
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3470,7 +3563,7 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3485,9 +3578,6 @@ msgstr ""
msgid "auto"
msgstr ""
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3559,7 +3649,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3595,12 +3685,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3613,6 +3697,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po
index f671dbfa9b..cd604917ab 100644
--- a/modules/luci-base/po/sv/base.po
+++ b/modules/luci-base/po/sv/base.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2014-04-28 09:22+0200\n"
-"Last-Translator: EricJ \n"
+"Last-Translator: Kristoffer Grundström \n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -12,10 +12,10 @@ msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s är inte taggad i flera VLAN!"
msgid "(%d minute window, %d second interval)"
-msgstr ""
+msgstr "(%d minut-fönster, %d sekundintervall)"
msgid "(%s available)"
msgstr "(%s tillgängligt)"
@@ -27,22 +27,22 @@ msgid "(no interfaces attached)"
msgstr "(inga gränssnitt har bifogats)"
msgid "-- Additional Field --"
-msgstr ""
+msgstr "-- Ytterligare fält --"
msgid "-- Please choose --"
-msgstr ""
+msgstr "-- Vänligen välj --"
msgid "-- custom --"
msgstr "-- anpassad --"
msgid "-- match by device --"
-msgstr ""
+msgstr "-- matcha enligt enhet --"
msgid "-- match by label --"
-msgstr ""
+msgstr "-- matcha enligt märke --"
msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- matcha enligt uuid --"
msgid "1 Minute Load:"
msgstr "Belastning senaste minuten:"
@@ -50,12 +50,36 @@ msgstr "Belastning senaste minuten:"
msgid "15 Minute Load:"
msgstr "Belastning senaste 15 minutrarna:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "Belastning senaste 5 minutrarna:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r Snabb förvandling"
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -119,28 +143,32 @@ msgid "Max. concurrent queries"
msgstr ""
msgid "%s - %s "
+msgstr "%s - %s "
+
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
msgstr ""
+" Notera att: du måste starta om cron-tjänsten om crontab-filen var tom "
+"innan den ändrades."
msgid "A43C + J43 + A43"
-msgstr ""
+msgstr "A43C + J43 + A43"
msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
msgid "ADSL"
-msgstr ""
+msgstr "ADSL"
msgid "AICCU (SIXXS)"
-msgstr ""
+msgstr "AICCU (SIXXS)"
msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
msgid "APN"
-msgstr ""
-
-msgid "AR Support"
-msgstr ""
+msgstr "APN"
msgid "ARP retry threshold"
msgstr ""
@@ -149,7 +177,7 @@ msgid "ATM (Asynchronous Transfer Mode)"
msgstr ""
msgid "ATM Bridges"
-msgstr ""
+msgstr "ATM-bryggor"
msgid "ATM Virtual Channel Identifier (VCI)"
msgstr ""
@@ -170,109 +198,112 @@ msgid "ATU-C System Vendor ID"
msgstr ""
msgid "AYIYA"
-msgstr ""
+msgstr "AYIYA"
msgid "Access Concentrator"
msgstr ""
msgid "Access Point"
-msgstr ""
+msgstr "Accesspunkt"
msgid "Action"
-msgstr ""
+msgstr "Ã
tgärd"
msgid "Actions"
-msgstr ""
+msgstr "Ã
tgärder"
msgid "Activate this network"
-msgstr ""
+msgstr "Aktivera det här nätverket"
msgid "Active IPv4 -Routes"
-msgstr ""
+msgstr "Aktiva IPv4 -rutter"
msgid "Active IPv6 -Routes"
-msgstr ""
+msgstr "Aktiva IPv6 -rutter"
msgid "Active Connections"
-msgstr ""
+msgstr "Aktiva anslutningar"
msgid "Active DHCP Leases"
-msgstr ""
+msgstr "Aktiva DHCP-kontrakt"
msgid "Active DHCPv6 Leases"
-msgstr ""
+msgstr "Aktiva DHCPv6-kontrakt"
msgid "Ad-Hoc"
-msgstr ""
+msgstr "Ad-Hoc"
msgid "Add"
-msgstr ""
+msgstr "Lägg till"
msgid "Add local domain suffix to names served from hosts files"
msgstr ""
msgid "Add new interface..."
-msgstr ""
+msgstr "Lägg till ett nytt gränssnitt"
msgid "Additional Hosts files"
-msgstr ""
+msgstr "Ytterligare värdfiler"
msgid "Additional servers file"
-msgstr ""
+msgstr "Ytterligare server-filer"
msgid "Address"
-msgstr ""
+msgstr "Adress"
msgid "Address to access local relay bridge"
-msgstr ""
+msgstr "Adress för att komma åt lokal reläbrygga"
msgid "Administration"
-msgstr ""
+msgstr "Administration"
msgid "Advanced Settings"
-msgstr ""
+msgstr "Avancerade inställningar"
msgid "Aggregate Transmit Power(ACTATP)"
msgstr ""
msgid "Alert"
-msgstr ""
+msgstr "Varning"
msgid ""
"Allocate IP addresses sequentially, starting from the lowest available "
"address"
msgstr ""
+"Allokera IP-adresser sekventiellt med start från den lägsta möjliga adressen"
msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "Allokera IP sekventiellt"
msgid "Allow SSH password authentication"
-msgstr ""
+msgstr "Tillåt SSH lösenordsautentisering"
msgid "Allow all except listed"
-msgstr ""
+msgstr "Tillåt alla utom listade"
msgid "Allow listed only"
-msgstr ""
+msgstr "Tillåt enbart listade"
msgid "Allow localhost"
-msgstr ""
+msgstr "Tillåt localhost"
msgid "Allow remote hosts to connect to local SSH forwarded ports"
msgstr ""
+"Tillåt fjärrstyrda värdar att ansluta via SSH till lokalt vidarebefordrade "
+"portar"
msgid "Allow root logins with password"
-msgstr ""
+msgstr "Tillåt root-inloggningar med lösenord"
msgid "Allow the root user to login with password"
-msgstr ""
+msgstr "Tillåt root -användaren att logga in med lösenord"
msgid ""
"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
msgstr ""
msgid "Allowed IPs"
-msgstr ""
+msgstr "Tillåtna IP-adresser"
msgid ""
"Also see DHCP for "
"this interface."
msgstr ""
+"Inaktivera DHCP "
+"för det här gränssnittet."
msgid "Disable DNS setup"
msgstr ""
msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr ""
+msgstr "Inaktivera kryptering"
msgid "Disabled"
-msgstr ""
+msgstr "Inaktiverad"
+
+msgid "Disabled (default)"
+msgstr "Inaktiverad (standard)"
msgid "Discard upstream RFC1918 responses"
msgstr ""
@@ -844,16 +875,16 @@ msgid "Displaying only packages containing"
msgstr ""
msgid "Distance Optimization"
-msgstr ""
+msgstr "Avståndsoptimering"
msgid "Distance to farthest network member in meters."
-msgstr ""
+msgstr "Avstånd till nätverksmledlemmen längst bort i metrar."
msgid "Distribution feeds"
msgstr ""
msgid "Diversity"
-msgstr ""
+msgstr "MÃ¥ngfald"
msgid ""
"Dnsmasq is a combined DNS -Requests without "
"DNS -Name"
msgstr ""
+"Vidarebefordra inte DNS -"
+"förfrågningar utan DNS -namn"
msgid "Download and install package"
-msgstr ""
+msgstr "Ladda ner och installera paket"
msgid "Download backup"
-msgstr ""
+msgstr "Ladda ner säkerhetskopia"
msgid "Dropbear Instance"
-msgstr ""
+msgstr "Dropbear-instans"
msgid ""
"Dropbear offers SSH network shell access "
@@ -909,7 +941,7 @@ msgid "Dynamic DHCP "
msgstr ""
msgid "Dynamic tunnel"
-msgstr ""
+msgstr "Dynamisk tunnel"
msgid ""
"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
@@ -920,10 +952,10 @@ msgid "EA-bits length"
msgstr ""
msgid "EAP-Method"
-msgstr ""
+msgstr "EAP-metod"
msgid "Edit"
-msgstr ""
+msgstr "Redigera"
msgid ""
"Edit the raw configuration data above to fix any error and hit \"Save\" to "
@@ -931,19 +963,19 @@ msgid ""
msgstr ""
msgid "Edit this interface"
-msgstr ""
+msgstr "Redigera det här gränssnittet"
msgid "Edit this network"
-msgstr ""
+msgstr "Redigera det här nätverket"
msgid "Emergency"
-msgstr ""
+msgstr "Nödsituation"
msgid "Enable"
-msgstr ""
+msgstr "Aktivera"
msgid "Enable STP "
-msgstr ""
+msgstr "Aktivera STP "
msgid "Enable HE.net dynamic endpoint update"
msgstr ""
@@ -958,19 +990,22 @@ msgid "Enable Jumbo Frame passthrough"
msgstr ""
msgid "Enable NTP client"
-msgstr ""
+msgstr "Aktivera NTP-klient"
msgid "Enable Single DES"
msgstr ""
msgid "Enable TFTP server"
-msgstr ""
+msgstr "Aktivera TFTP-server"
msgid "Enable VLAN functionality"
-msgstr ""
+msgstr "Aktivera VLAN-funktionalitet"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "Aktivera WPS-tryckknapp, kräver WPA(2)-PSK"
+
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr "Kräver ominstallation av nyckel (KRACK) motåtgärder"
msgid "Enable learning and aging"
msgstr ""
@@ -985,15 +1020,20 @@ msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
msgstr ""
msgid "Enable this mount"
-msgstr ""
+msgstr "Aktivera den här monteringen"
msgid "Enable this swap"
-msgstr ""
+msgstr "Aktivera den här swap"
msgid "Enable/Disable"
-msgstr ""
+msgstr "Aktivera/Inaktivera"
msgid "Enabled"
+msgstr "Aktiverad"
+
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
msgstr ""
msgid "Enables the Spanning Tree Protocol on this bridge"
@@ -1003,7 +1043,7 @@ msgid "Encapsulation mode"
msgstr ""
msgid "Encryption"
-msgstr ""
+msgstr "Kryptering"
msgid "Endpoint Host"
msgstr ""
@@ -1012,34 +1052,40 @@ msgid "Endpoint Port"
msgstr ""
msgid "Erasing..."
-msgstr ""
+msgstr "Raderar..."
msgid "Error"
-msgstr ""
+msgstr "Fel"
msgid "Errored seconds (ES)"
msgstr ""
msgid "Ethernet Adapter"
-msgstr ""
+msgstr "Ethernet-adapter"
msgid "Ethernet Switch"
msgstr ""
msgid "Exclude interfaces"
-msgstr ""
+msgstr "Inkludera inte dessa gränssnitt"
msgid "Expand hosts"
-msgstr ""
+msgstr "Expandera värdar"
msgid "Expires"
-msgstr ""
+msgstr "Löper ut"
msgid ""
"Expiry time of leased addresses, minimum is 2 minutes (2m
)."
msgstr ""
msgid "External"
+msgstr "Externt"
+
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
msgstr ""
msgid "External system log server"
@@ -1052,28 +1098,25 @@ msgid "External system log server protocol"
msgstr ""
msgid "Extra SSH command options"
-msgstr ""
-
-msgid "Fast Frames"
-msgstr ""
+msgstr "Extra alternativ för SSH-kommandot"
msgid "File"
-msgstr ""
+msgstr "Fil"
msgid "Filename of the boot image advertised to clients"
msgstr ""
msgid "Filesystem"
-msgstr ""
+msgstr "Filsystem"
msgid "Filter"
-msgstr ""
+msgstr "Filtrera"
msgid "Filter private"
-msgstr ""
+msgstr "Filtrera privata"
msgid "Filter useless"
-msgstr ""
+msgstr "Filtrera icke-användbara"
msgid ""
"Find all currently attached filesystems and swap and replace configuration "
@@ -1081,28 +1124,31 @@ msgid ""
msgstr ""
msgid "Find and join network"
-msgstr ""
+msgstr "Hitta och anslut till nätverk"
msgid "Find package"
-msgstr ""
+msgstr "Hitta paket"
msgid "Finish"
-msgstr ""
+msgstr "Avsluta"
msgid "Firewall"
+msgstr "Brandvägg"
+
+msgid "Firewall Mark"
msgstr ""
msgid "Firewall Settings"
-msgstr ""
+msgstr "Inställningar för brandvägg"
msgid "Firewall Status"
-msgstr ""
+msgstr "Status för brandvägg"
msgid "Firmware File"
msgstr ""
msgid "Firmware Version"
-msgstr ""
+msgstr "Version för inre mjukvara"
msgid "Fixed source port for outbound DNS queries"
msgstr ""
@@ -1120,31 +1166,34 @@ msgid "Flash operations"
msgstr ""
msgid "Flashing..."
-msgstr ""
+msgstr "Skriver..."
msgid "Force"
-msgstr ""
+msgstr "Tvinga"
msgid "Force CCMP (AES)"
-msgstr ""
+msgstr "Tvinga CCMP (AES)"
msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
+msgstr "Tvinga DHCP på det här nätverket även om en annan server är upptäckt."
msgid "Force TKIP"
-msgstr ""
+msgstr "Tvinga TKIP"
msgid "Force TKIP and CCMP (AES)"
-msgstr ""
+msgstr "Tvinga TKIP och CCMP (AES)"
+
+msgid "Force link"
+msgstr "Tvinga länk"
msgid "Force use of NAT-T"
-msgstr ""
+msgstr "Tvinga användning av NAT-T"
msgid "Form token mismatch"
msgstr ""
msgid "Forward DHCP traffic"
-msgstr ""
+msgstr "Vidarebefordra DHCP-trafik"
msgid "Forward Error Correction Seconds (FECS)"
msgstr ""
@@ -1153,7 +1202,7 @@ msgid "Forward broadcast traffic"
msgstr ""
msgid "Forwarding mode"
-msgstr ""
+msgstr "Vidarebefordringsläge"
msgid "Fragmentation Threshold"
msgstr ""
@@ -1162,10 +1211,10 @@ msgid "Frame Bursting"
msgstr ""
msgid "Free"
-msgstr ""
+msgstr "Fritt"
msgid "Free space"
-msgstr ""
+msgstr "Fritt utrymme"
msgid ""
"Further information about WireGuard interfaces and peers at ESSID "
-msgstr ""
+msgstr "Göm ESSID "
msgid "Host"
-msgstr ""
+msgstr "Värd"
msgid "Host entries"
msgstr ""
@@ -1270,43 +1319,43 @@ msgid "Host expiry timeout"
msgstr ""
msgid "Host-IP or Network"
-msgstr ""
+msgstr "Host-IP eller Nätverk"
msgid "Hostname"
-msgstr ""
+msgstr "Värdnamn"
msgid "Hostname to send when requesting DHCP"
-msgstr ""
+msgstr "Värdnamn att skicka vid DHCP-förfrågningar"
msgid "Hostnames"
-msgstr ""
+msgstr "Värdnamn"
msgid "Hybrid"
-msgstr ""
+msgstr "Hybrid"
msgid "IKE DH Group"
msgstr ""
msgid "IP Addresses"
-msgstr ""
+msgstr "IP-adresser"
msgid "IP address"
-msgstr ""
+msgstr "IP-adress"
msgid "IPv4"
-msgstr ""
+msgstr "IPv4"
msgid "IPv4 Firewall"
-msgstr ""
+msgstr "IPv4-brandvägg"
msgid "IPv4 WAN Status"
msgstr ""
msgid "IPv4 address"
-msgstr ""
+msgstr "IPv4-adress"
msgid "IPv4 and IPv6"
-msgstr ""
+msgstr "IPv4 och IPv6"
msgid "IPv4 assignment length"
msgstr ""
@@ -1315,13 +1364,13 @@ msgid "IPv4 broadcast"
msgstr ""
msgid "IPv4 gateway"
-msgstr ""
+msgstr "IPv4-gateway"
msgid "IPv4 netmask"
-msgstr ""
+msgstr "IPv4-nätmask"
msgid "IPv4 only"
-msgstr ""
+msgstr "Endast IPv4"
msgid "IPv4 prefix"
msgstr ""
@@ -1330,22 +1379,22 @@ msgid "IPv4 prefix length"
msgstr ""
msgid "IPv4-Address"
-msgstr ""
+msgstr "IPv4-Adress"
msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
+msgstr "IPv4-i-IPv4 (RFC2003)"
msgid "IPv6"
-msgstr ""
+msgstr "IPv6"
msgid "IPv6 Firewall"
-msgstr ""
+msgstr "IPv6-brandvägg"
msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "IPV6-grannar"
msgid "IPv6 Settings"
-msgstr ""
+msgstr "IPv6-inställningar"
msgid "IPv6 ULA-Prefix"
msgstr ""
@@ -1354,7 +1403,7 @@ msgid "IPv6 WAN Status"
msgstr ""
msgid "IPv6 address"
-msgstr ""
+msgstr "IPv6-adress"
msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
msgstr ""
@@ -1366,10 +1415,10 @@ msgid "IPv6 assignment length"
msgstr ""
msgid "IPv6 gateway"
-msgstr ""
+msgstr "IPv6-gateway"
msgid "IPv6 only"
-msgstr ""
+msgstr "Endast IPv6"
msgid "IPv6 prefix"
msgstr ""
@@ -1380,22 +1429,28 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
+msgstr "IPv6-adress"
+
+msgid "IPv6-PD"
msgstr ""
msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
+msgstr "IPv6-i-IPv4 (RFC4213)"
msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
+msgstr "IPv6-över-IPv4 (6rd)"
msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
+msgstr "IPv6-över-IPv4 (6till4)"
msgid "Identity"
-msgstr ""
+msgstr "Identitet"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1425,19 +1480,19 @@ msgid ""
msgstr ""
msgid "Ignore /etc/hosts
"
-msgstr ""
+msgstr "Ignorera /etc/hosts
"
msgid "Ignore interface"
-msgstr ""
+msgstr "Ignorera gränssnitt"
msgid "Ignore resolve file"
-msgstr ""
+msgstr "Ignorera resolv-fil"
msgid "Image"
-msgstr ""
+msgstr "Bild"
msgid "In"
-msgstr ""
+msgstr "I"
msgid ""
"In order to prevent unauthorized access to the system, your request has been "
@@ -1448,70 +1503,73 @@ msgid "Inactivity timeout"
msgstr ""
msgid "Inbound:"
-msgstr ""
+msgstr "Ankommande"
msgid "Info"
-msgstr ""
+msgstr "Info"
msgid "Initscript"
-msgstr ""
+msgstr "Initskript"
msgid "Initscripts"
-msgstr ""
+msgstr "Initskripten"
msgid "Install"
-msgstr ""
+msgstr "Installera"
msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
+msgstr "Installera iputils-traceroute6 för IPv6-traceroute"
msgid "Install package %q"
-msgstr ""
+msgstr "Installera paketet %q"
msgid "Install protocol extensions..."
-msgstr ""
+msgstr "Installera protokoll-förlängningar..."
msgid "Installed packages"
-msgstr ""
+msgstr "Installerade paket"
msgid "Interface"
+msgstr "Gränssnitt"
+
+msgid "Interface %q device auto-migrated from %q to %q."
msgstr ""
msgid "Interface Configuration"
-msgstr ""
+msgstr "Konfiguration av gränssnitt"
msgid "Interface Overview"
-msgstr ""
+msgstr "Ãverblick av gränssnitt"
msgid "Interface is reconnecting..."
-msgstr ""
+msgstr "Gränssnittet återansluter..."
msgid "Interface is shutting down..."
-msgstr ""
+msgstr "Gränssnittet stänger ner..."
msgid "Interface name"
-msgstr ""
+msgstr "Gränssnittets namn"
msgid "Interface not present or not connected yet."
-msgstr ""
+msgstr "Gränssnittet är inte närvarande eller är inte anslutet än."
msgid "Interface reconnected"
-msgstr ""
+msgstr "Gränssnittet återanslöt"
msgid "Interface shut down"
-msgstr ""
+msgstr "Gränssnittet stängdes ner"
msgid "Interfaces"
-msgstr ""
+msgstr "Gränssnitten"
msgid "Internal"
-msgstr ""
+msgstr "Interna"
msgid "Internal Server Error"
-msgstr ""
+msgstr "Internt server-fel"
msgid "Invalid"
-msgstr ""
+msgstr "Ogiltig"
msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
msgstr ""
@@ -1520,48 +1578,51 @@ msgid "Invalid VLAN ID given! Only unique IDs are allowed"
msgstr ""
msgid "Invalid username and/or password! Please try again."
-msgstr ""
+msgstr "Ogiltigt användarnamn och/eller lösenord! Vänligen försök igen."
+
+msgid "Isolate Clients"
+msgstr "Isolera klienter"
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
-msgstr ""
+msgid "JavaScript required!"
+msgstr "JavaScript krävs!"
msgid "Join Network"
-msgstr ""
+msgstr "Anslut till nätverk"
msgid "Join Network: Wireless Scan"
-msgstr ""
+msgstr "Anslut till nätverk: Trådlös skanning"
msgid "Joining Network: %q"
-msgstr ""
+msgstr "Ansluter till nätverk: %q"
msgid "Keep settings"
-msgstr ""
+msgstr "Behåll inställningar"
msgid "Kernel Log"
-msgstr ""
+msgstr "Kernel-logg"
msgid "Kernel Version"
-msgstr ""
+msgstr "Kernel-version"
msgid "Key"
-msgstr ""
+msgstr "Nyckel"
msgid "Key #%d"
-msgstr ""
+msgstr "Nyckel #%d"
msgid "Kill"
-msgstr ""
+msgstr "Döda"
msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
msgid "L2TP Server"
-msgstr ""
+msgstr "L2TP-server"
msgid "LCP echo failure threshold"
msgstr ""
@@ -1570,49 +1631,46 @@ msgid "LCP echo interval"
msgstr ""
msgid "LLC"
-msgstr ""
+msgstr "LLC"
msgid "Label"
-msgstr ""
+msgstr "Märke"
msgid "Language"
-msgstr ""
+msgstr "Språk"
msgid "Language and Style"
-msgstr ""
+msgstr "Språk och Stil"
msgid "Latency"
-msgstr ""
+msgstr "Latens"
msgid "Leaf"
-msgstr ""
+msgstr "Löv"
msgid "Lease time"
-msgstr ""
+msgstr "Kontraktstid"
msgid "Lease validity time"
-msgstr ""
+msgstr "Giltighetstid för kontrakt"
msgid "Leasefile"
-msgstr ""
-
-msgid "Leasetime"
-msgstr ""
+msgstr "Kontraktsfil"
msgid "Leasetime remaining"
-msgstr ""
+msgstr "Ã
terstående kontraktstid"
msgid "Leave empty to autodetect"
-msgstr ""
+msgstr "Lämna tom för att upptäcka automatiskt"
msgid "Leave empty to use the current WAN address"
-msgstr ""
+msgstr "Lämna tom för att använda den nuvarande WAN-adressen"
msgid "Legend:"
msgstr ""
msgid "Limit"
-msgstr ""
+msgstr "Begränsa"
msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
msgstr ""
@@ -1633,16 +1691,32 @@ msgid "Line Uptime"
msgstr ""
msgid "Link On"
-msgstr ""
+msgstr "Länk På"
msgid ""
"List of DNS servers to forward "
"requests to"
msgstr ""
-msgid "List of SSH key files for auth"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
msgstr ""
+msgid "List of SSH key files for auth"
+msgstr "Lista över SSH-nyckelfiler för auth"
+
msgid "List of domains to allow RFC1918 responses for"
msgstr ""
@@ -1653,43 +1727,44 @@ msgid "Listen Interfaces"
msgstr ""
msgid "Listen Port"
-msgstr ""
+msgstr "Lyssningsportar"
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
+"Lyssna endast på det angivna gränssnittet eller, om o-specificerat på alla"
msgid "Listening port for inbound DNS queries"
-msgstr ""
+msgstr "Lyssningsportar för ankommande DNS-förfrågningar"
msgid "Load"
-msgstr ""
+msgstr "Belastning"
msgid "Load Average"
-msgstr ""
+msgstr "Snitt-belastning"
msgid "Loading"
-msgstr ""
+msgstr "Laddar"
msgid "Local IP address to assign"
msgstr ""
msgid "Local IPv4 address"
-msgstr ""
+msgstr "Lokal IPv4-adress"
msgid "Local IPv6 address"
-msgstr ""
+msgstr "Lokal IPv6-adress"
msgid "Local Service Only"
-msgstr ""
+msgstr "Enbart lokal tjänst"
msgid "Local Startup"
-msgstr ""
+msgstr "Lokal uppstart"
msgid "Local Time"
-msgstr ""
+msgstr "Lokal tid"
msgid "Local domain"
-msgstr ""
+msgstr "Lokal domän"
msgid ""
"Local domain specification. Names matching this domain are never forwarded "
@@ -1700,7 +1775,7 @@ msgid "Local domain suffix appended to DHCP names and hosts file entries"
msgstr ""
msgid "Local server"
-msgstr ""
+msgstr "Lokal server"
msgid ""
"Localise hostname depending on the requesting subnet if multiple IPs are "
@@ -1708,10 +1783,10 @@ msgid ""
msgstr ""
msgid "Localise queries"
-msgstr ""
+msgstr "Lokalisera förfrågningar"
msgid "Locked to channel %s used by: %s"
-msgstr ""
+msgstr "Låst till kanalen %s som används av: %s"
msgid "Log output level"
msgstr ""
@@ -1723,10 +1798,10 @@ msgid "Logging"
msgstr ""
msgid "Login"
-msgstr ""
+msgstr "Logga in"
msgid "Logout"
-msgstr ""
+msgstr "Logga ut"
msgid "Loss of Signal Seconds (LOSS)"
msgstr ""
@@ -1735,31 +1810,31 @@ msgid "Lowest leased address as offset from the network address."
msgstr ""
msgid "MAC-Address"
-msgstr ""
+msgstr "MAC-adress"
msgid "MAC-Address Filter"
-msgstr ""
+msgstr "Filter för MAC-adress"
msgid "MAC-Filter"
-msgstr ""
+msgstr "MAC-filter"
msgid "MAC-List"
-msgstr ""
+msgstr "MAC-lista"
msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4över6"
msgid "MB/s"
-msgstr ""
+msgstr "MB/s"
msgid "MD5"
-msgstr ""
+msgstr "MD5"
msgid "MHz"
-msgstr ""
+msgstr "MHz"
msgid "MTU"
-msgstr ""
+msgstr "MTU"
msgid ""
"Make sure to clone the root filesystem using something like the commands "
@@ -1767,14 +1842,11 @@ msgid ""
msgstr ""
msgid "Manual"
-msgstr ""
+msgstr "Manuell"
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1799,19 +1871,16 @@ msgid "Maximum number of leased addresses."
msgstr ""
msgid "Mbit/s"
-msgstr ""
+msgstr "Mbit/s"
msgid "Memory"
-msgstr ""
+msgstr "Minne"
msgid "Memory usage (%)"
-msgstr ""
+msgstr "Minnesanvändning (%)"
msgid "Metric"
-msgstr ""
-
-msgid "Minimum Rate"
-msgstr ""
+msgstr "Metrisk"
msgid "Minimum hold time"
msgstr ""
@@ -1825,29 +1894,32 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
-msgid "Mode"
+msgid "Mobility Domain"
msgstr ""
+msgid "Mode"
+msgstr "Läge"
+
msgid "Model"
-msgstr ""
+msgstr "Modell"
msgid "Modem device"
-msgstr ""
+msgstr "Modem-enhet"
msgid "Modem init timeout"
msgstr ""
msgid "Monitor"
-msgstr ""
+msgstr "Ãvervaka"
msgid "Mount Entry"
msgstr ""
msgid "Mount Point"
-msgstr ""
+msgstr "Monteringspunkt"
msgid "Mount Points"
-msgstr ""
+msgstr "Monteringspunkter"
msgid "Mount Points - Mount Entry"
msgstr ""
@@ -1864,124 +1936,124 @@ msgid "Mount filesystems not specifically configured"
msgstr ""
msgid "Mount options"
-msgstr ""
+msgstr "Monteringsalternativ"
msgid "Mount point"
-msgstr ""
+msgstr "Monteringspunkt"
msgid "Mount swap not specifically configured"
msgstr ""
msgid "Mounted file systems"
-msgstr ""
+msgstr "Monterade filsystem"
msgid "Move down"
-msgstr ""
+msgstr "Flytta ner"
msgid "Move up"
-msgstr ""
-
-msgid "Multicast Rate"
-msgstr ""
+msgstr "Flytta upp"
msgid "Multicast address"
msgstr ""
msgid "NAS ID"
-msgstr ""
+msgstr "NAS-ID"
msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T-läge"
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr "NCM"
+
msgid "NDP-Proxy"
msgstr ""
msgid "NT Domain"
-msgstr ""
+msgstr "NT-domän"
msgid "NTP server candidates"
-msgstr ""
+msgstr "NTP-serverkandidater"
msgid "NTP sync time-out"
msgstr ""
msgid "Name"
-msgstr ""
+msgstr "Namn"
msgid "Name of the new interface"
-msgstr ""
+msgstr "Namn på det nya gränssnittet"
msgid "Name of the new network"
-msgstr ""
+msgstr "Namnet på det nya nätverket"
msgid "Navigation"
-msgstr ""
+msgstr "Navigering"
msgid "Netmask"
-msgstr ""
+msgstr "Nätmask"
msgid "Network"
-msgstr ""
+msgstr "Nätverk"
msgid "Network Utilities"
-msgstr ""
+msgstr "Nätverksverktyg"
msgid "Network boot image"
-msgstr ""
+msgstr "Uppstartsbild för nätverket"
msgid "Network without interfaces."
-msgstr ""
+msgstr "Nätverk utan gränssnitt"
msgid "Next »"
-msgstr ""
+msgstr "Nästa »"
msgid "No DHCP Server configured for this interface"
-msgstr ""
+msgstr "Det finns ingen DHCP-server inställd för det här gränssnittet"
msgid "No NAT-T"
-msgstr ""
+msgstr "Ingen NAT-T"
msgid "No chains in this table"
-msgstr ""
+msgstr "Inga kedjor i den här tabellen"
msgid "No files found"
-msgstr ""
+msgstr "Inga filer hittades"
msgid "No information available"
-msgstr ""
+msgstr "Ingen information tillgänglig"
msgid "No negative cache"
-msgstr ""
+msgstr "Ingen negativ cache"
msgid "No network configured on this device"
-msgstr ""
+msgstr "Det finns inget nätverk inställt på den här enheten"
msgid "No network name specified"
-msgstr ""
+msgstr "Inget nätverksnamn angavs"
msgid "No package lists available"
-msgstr ""
+msgstr "Ingen paketlista tillgänglig"
msgid "No password set!"
-msgstr ""
+msgstr "Inget lösenord inställt!"
msgid "No rules in this chain"
-msgstr ""
+msgstr "Inga regler i den här kedjan"
msgid "No zone assigned"
msgstr ""
msgid "Noise"
-msgstr ""
+msgstr "Buller"
msgid "Noise Margin (SNR)"
msgstr ""
msgid "Noise:"
-msgstr ""
+msgstr "Buller:"
msgid "Non Pre-emtive CRC errors (CRC_P)"
msgstr ""
@@ -1990,34 +2062,34 @@ msgid "Non-wildcard"
msgstr ""
msgid "None"
-msgstr ""
+msgstr "Ingen"
msgid "Normal"
-msgstr ""
+msgstr "Normal"
msgid "Not Found"
-msgstr ""
+msgstr "Hittades inte"
msgid "Not associated"
-msgstr ""
+msgstr "Inte associerad"
msgid "Not connected"
-msgstr ""
+msgstr "Inte ansluten"
msgid "Note: Configuration files will be erased."
-msgstr ""
+msgstr "Notera: Konfigurationsfiler kommer att raderas."
msgid "Note: interface name length"
-msgstr ""
+msgstr "Notera: längden på gränssnittets namn"
msgid "Notice"
-msgstr ""
+msgstr "Avisering"
msgid "Nslookup"
-msgstr ""
+msgstr "Nslookup"
msgid "OK"
-msgstr ""
+msgstr "OK"
msgid "OPKG-Configuration"
msgstr ""
@@ -2044,31 +2116,34 @@ msgid "On-State Delay"
msgstr ""
msgid "One of hostname or mac address must be specified!"
-msgstr ""
+msgstr "En utav värdnamn eller MAC-adress måste anges!"
msgid "One or more fields contain invalid values!"
-msgstr ""
+msgstr "En eller fler fält innehåller ogiltiga värden!"
msgid "One or more invalid/required values on tab"
msgstr ""
msgid "One or more required fields have no value!"
-msgstr ""
+msgstr "En eller fler fält som krävs har inget värde!"
msgid "Open list..."
-msgstr ""
+msgstr "Ãppna lista..."
msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "OpenConnect (CISCO AnyConnect)"
msgid "Operating frequency"
msgstr ""
msgid "Option changed"
-msgstr ""
+msgstr "Alternativet ändrades"
msgid "Option removed"
-msgstr ""
+msgstr "Alternativet togs bort"
+
+msgid "Optional"
+msgstr "Valfri"
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
@@ -2076,12 +2151,21 @@ msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2107,19 +2191,16 @@ msgid "Optional. UDP port used for outgoing and incoming packets."
msgstr ""
msgid "Options"
-msgstr ""
+msgstr "Alternativ"
msgid "Other:"
-msgstr ""
+msgstr "Andra:"
msgid "Out"
-msgstr ""
+msgstr "Ut"
msgid "Outbound:"
-msgstr ""
-
-msgid "Outdoor Channels"
-msgstr ""
+msgstr "Utgående"
msgid "Output Interface"
msgstr ""
@@ -2151,40 +2232,43 @@ msgid "Override the table used for internal routes"
msgstr ""
msgid "Overview"
-msgstr ""
+msgstr "Ãverblick"
msgid "Owner"
-msgstr ""
+msgstr "Ãgare"
msgid "PAP/CHAP password"
-msgstr ""
+msgstr "PAP/CHAP-lösenord"
msgid "PAP/CHAP username"
-msgstr ""
+msgstr "PAP/CHAP-användarnamn"
msgid "PID"
-msgstr ""
+msgstr "PID"
msgid "PIN"
+msgstr "PIN-kod"
+
+msgid "PMK R1 Push"
msgstr ""
msgid "PPP"
-msgstr ""
+msgstr "PPP"
msgid "PPPoA Encapsulation"
msgstr ""
msgid "PPPoATM"
-msgstr ""
+msgstr "PPPoATM"
msgid "PPPoE"
-msgstr ""
+msgstr "PPPoE"
msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
msgid "PPtP"
-msgstr ""
+msgstr "PPtP"
msgid "PSID offset"
msgstr ""
@@ -2196,55 +2280,58 @@ msgid "PTM/EFM (Packet Transfer Mode)"
msgstr ""
msgid "Package libiwinfo required!"
-msgstr ""
+msgstr "Paketet libiwinfo krävs!"
msgid "Package lists are older than 24 hours"
-msgstr ""
+msgstr "Paket-listor är äldre än 24 timmar"
msgid "Package name"
-msgstr ""
+msgstr "Paketnamn"
msgid "Packets"
-msgstr ""
+msgstr "Paket"
msgid "Part of zone %q"
-msgstr ""
+msgstr "Del av zon %q"
msgid "Password"
-msgstr ""
+msgstr "Lösenord"
msgid "Password authentication"
-msgstr ""
+msgstr "Lösenordsautentisering"
msgid "Password of Private Key"
-msgstr ""
+msgstr "Den privata nyckelns lösenord"
msgid "Password of inner Private Key"
-msgstr ""
+msgstr "Lösenordet för den inre privata nyckeln"
msgid "Password successfully changed!"
-msgstr ""
+msgstr "Ãndring av lösenordet lyckades!"
+
+msgid "Password2"
+msgstr "Lösenord2"
msgid "Path to CA-Certificate"
-msgstr ""
+msgstr "Genväg till CA-certifikat"
msgid "Path to Client-Certificate"
-msgstr ""
+msgstr "Genväg till klient-certifikat"
msgid "Path to Private Key"
-msgstr ""
+msgstr "Genväg till privat nyckel"
msgid "Path to executable which handles the button event"
msgstr ""
msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "Genväg till det inre CA-certifikatet"
msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "Genväg till det inre klient-certifikatet"
msgid "Path to inner Private Key"
-msgstr ""
+msgstr "Genväg till den inre privata nyckeln"
msgid "Peak:"
msgstr ""
@@ -2259,10 +2346,10 @@ msgid "Perfect Forward Secrecy"
msgstr ""
msgid "Perform reboot"
-msgstr ""
+msgstr "Utför omstart"
msgid "Perform reset"
-msgstr ""
+msgstr "Utför återställning"
msgid "Persistent Keep Alive"
msgstr ""
@@ -2271,25 +2358,25 @@ msgid "Phy Rate:"
msgstr ""
msgid "Physical Settings"
-msgstr ""
+msgstr "Fysiska inställningar"
msgid "Ping"
-msgstr ""
+msgstr "Ping"
msgid "Pkts."
-msgstr ""
+msgstr "Pkt."
msgid "Please enter your username and password."
-msgstr ""
+msgstr "Vänligen ange ditt användarnamn och lösenord."
msgid "Policy"
msgstr ""
msgid "Port"
-msgstr ""
+msgstr "Port"
msgid "Port status:"
-msgstr ""
+msgstr "Port-status:"
msgid "Power Management Mode"
msgstr ""
@@ -2297,6 +2384,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr "Föredra LTE"
+
+msgid "Prefer UMTS"
+msgstr "Föredra UMTS"
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2306,40 +2402,40 @@ msgid ""
msgstr ""
msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "Förhindra lyssning på dessa gränssnitt."
msgid "Prevents client-to-client communication"
-msgstr ""
+msgstr "Förhindrar kommunikation klient-till-klient"
msgid "Prism2/2.5/3 802.11b Wireless Controller"
msgstr ""
msgid "Private Key"
-msgstr ""
+msgstr "Privat nyckel"
msgid "Proceed"
-msgstr ""
+msgstr "Fortsätt"
msgid "Processes"
-msgstr ""
+msgstr "Processer"
msgid "Profile"
-msgstr ""
+msgstr "Profil"
msgid "Prot."
-msgstr ""
+msgstr "Prot."
msgid "Protocol"
-msgstr ""
+msgstr "Protokoll"
msgid "Protocol family"
-msgstr ""
+msgstr "Protokoll-familj"
msgid "Protocol of the new interface"
-msgstr ""
+msgstr "Det nya gränssnittets protokoll"
msgid "Protocol support is not installed"
-msgstr ""
+msgstr "Stöd för protokoll är inte installerat"
msgid "Provide NTP server"
msgstr ""
@@ -2351,15 +2447,21 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
msgstr ""
msgid "Public Key"
-msgstr ""
+msgstr "Publik nyckel"
msgid "Public prefix routed to this device for distribution to clients."
msgstr ""
msgid "QMI Cellular"
-msgstr ""
+msgstr "QMI-telefoni"
msgid "Quality"
+msgstr "Kvalité"
+
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
msgstr ""
msgid "RFC3947 NAT-T mode"
@@ -2369,10 +2471,10 @@ msgid "RTS/CTS Threshold"
msgstr ""
msgid "RX"
-msgstr ""
+msgstr "RT"
msgid "RX Rate"
-msgstr ""
+msgstr "RX-hastighet"
msgid "RaLink 802.11%s Wireless Controller"
msgstr ""
@@ -2399,6 +2501,8 @@ msgid ""
"Read /etc/ethers
to configure the DHCP -Server"
msgstr ""
+"Läs /etc/ethers
för att ställa in DHCP -servern"
msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might "
@@ -2411,7 +2515,7 @@ msgid ""
msgstr ""
msgid "Really reset all changes?"
-msgstr ""
+msgstr "Verkligen återställa alla ändringar?"
msgid ""
"Really shut down network?\\nYou might lose access to this device if you are "
@@ -2424,67 +2528,67 @@ msgid ""
msgstr ""
msgid "Really switch protocol?"
-msgstr ""
+msgstr "Verkligen byta protokoll?"
msgid "Realtime Connections"
-msgstr ""
+msgstr "Anslutningar i realtid"
msgid "Realtime Graphs"
-msgstr ""
+msgstr "Realtidsgrafer"
msgid "Realtime Load"
msgstr ""
msgid "Realtime Traffic"
-msgstr ""
+msgstr "Trafik i realtid"
msgid "Realtime Wireless"
+msgstr "Trådlöst i realtid"
+
+msgid "Reassociation Deadline"
msgstr ""
msgid "Rebind protection"
msgstr ""
msgid "Reboot"
-msgstr ""
+msgstr "Starta om"
msgid "Rebooting..."
-msgstr ""
+msgstr "Startar om..."
msgid "Reboots the operating system of your device"
-msgstr ""
+msgstr "Startar om din enhets operativsystem"
msgid "Receive"
-msgstr ""
+msgstr "Ta emot"
msgid "Receiver Antenna"
-msgstr ""
+msgstr "Mottagningsantenn"
msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
+msgstr "Rekommenderad. WireGuard-gränssnittets IP-adress"
msgid "Reconnect this interface"
-msgstr ""
+msgstr "Ã
teranslut det här gränssnittet"
msgid "Reconnecting interface"
-msgstr ""
+msgstr "Ã
teransluter gränssnittet"
msgid "References"
-msgstr ""
-
-msgid "Regulatory Domain"
-msgstr ""
+msgstr "Referens"
msgid "Relay"
-msgstr ""
+msgstr "Relä"
msgid "Relay Bridge"
-msgstr ""
+msgstr "Relä-brygga"
msgid "Relay between networks"
-msgstr ""
+msgstr "Relä mellan nätverk"
msgid "Relay bridge"
-msgstr ""
+msgstr "Relä-brygga"
msgid "Remote IPv4 address"
msgstr ""
@@ -2493,16 +2597,16 @@ msgid "Remote IPv4 address or FQDN"
msgstr ""
msgid "Remove"
-msgstr ""
+msgstr "Ta bort"
msgid "Repeat scan"
-msgstr ""
+msgstr "Repetera skanning"
msgid "Replace entry"
msgstr ""
msgid "Replace wireless configuration"
-msgstr ""
+msgstr "Ersätt trådlös konfiguration"
msgid "Request IPv6-address"
msgstr ""
@@ -2511,7 +2615,10 @@ msgid "Request IPv6-prefix of length"
msgstr ""
msgid "Require TLS"
-msgstr ""
+msgstr "Kräv TLS"
+
+msgid "Required"
+msgstr "Krävs!"
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
@@ -2519,13 +2626,18 @@ msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2534,49 +2646,49 @@ msgid ""
msgstr ""
msgid "Reset"
-msgstr ""
+msgstr "Ã
terställ"
msgid "Reset Counters"
-msgstr ""
+msgstr "Ã
terställ räknare"
msgid "Reset to defaults"
-msgstr ""
+msgstr "Ã
terställ till standard"
msgid "Resolv and Hosts Files"
-msgstr ""
+msgstr "Resolv och Värd-filer"
msgid "Resolve file"
-msgstr ""
+msgstr "Resolv-fil"
msgid "Restart"
-msgstr ""
+msgstr "Starta om"
msgid "Restart Firewall"
-msgstr ""
+msgstr "Starta om brandvägg"
msgid "Restore backup"
-msgstr ""
+msgstr "Ã
terställ säkerhetskopian"
msgid "Reveal/hide password"
-msgstr ""
+msgstr "Visa/göm lösenord"
msgid "Revert"
-msgstr ""
+msgstr "Ã
tergå"
msgid "Root"
-msgstr ""
+msgstr "Root"
msgid "Root directory for files served via TFTP"
-msgstr ""
+msgstr "Root-mappen för filer som skickas via TFTP"
msgid "Root preparation"
-msgstr ""
+msgstr "Root-förberedelse"
msgid "Route Allowed IPs"
msgstr ""
msgid "Route type"
-msgstr ""
+msgstr "Typ av rutt"
msgid "Routed IPv6 prefix for downstream interfaces"
msgstr ""
@@ -2585,10 +2697,10 @@ msgid "Router Advertisement-Service"
msgstr ""
msgid "Router Password"
-msgstr ""
+msgstr "Router-lösenord"
msgid "Routes"
-msgstr ""
+msgstr "Rutter"
msgid ""
"Routes specify over which interface and gateway a certain host or network "
@@ -2596,13 +2708,13 @@ msgid ""
msgstr ""
msgid "Run a filesystem check before mounting the device"
-msgstr ""
+msgstr "Kör en filsystemskontroll innan enheten monteras"
msgid "Run filesystem check"
-msgstr ""
+msgstr "Kör filsystemskontrollen"
msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
msgid ""
"SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
@@ -2613,46 +2725,46 @@ msgid "SIXXS-handle[/Tunnel-ID]"
msgstr ""
msgid "SNR"
-msgstr ""
+msgstr "SNR"
msgid "SSH Access"
-msgstr ""
+msgstr "SSH-Ã¥tkomst"
msgid "SSH server address"
-msgstr ""
+msgstr "SSH-serverns adress"
msgid "SSH server port"
-msgstr ""
+msgstr "SSH-serverns port"
msgid "SSH username"
-msgstr ""
+msgstr "Användarnamn för SSH"
msgid "SSH-Keys"
-msgstr ""
+msgstr "SSH-nycklar"
msgid "SSID"
-msgstr ""
+msgstr "SSID"
msgid "Save"
-msgstr ""
+msgstr "Spara"
msgid "Save & Apply"
-msgstr ""
+msgstr "Spara och Verkställ"
msgid "Save & Apply"
-msgstr ""
+msgstr "Spara & Verkställ"
msgid "Scan"
-msgstr ""
+msgstr "Skanna"
msgid "Scheduled Tasks"
-msgstr ""
+msgstr "Schemalagda uppgifter"
msgid "Section added"
-msgstr ""
+msgstr "Sektionen lades till"
msgid "Section removed"
-msgstr ""
+msgstr "Sektionen togs bort"
msgid "See \"mount\" manpage for details"
msgstr ""
@@ -2663,16 +2775,13 @@ msgid ""
msgstr ""
msgid "Separate Clients"
-msgstr ""
-
-msgid "Separate WDS"
-msgstr ""
+msgstr "Separera klienter"
msgid "Server Settings"
-msgstr ""
+msgstr "Inställningar för server"
msgid "Server password"
-msgstr ""
+msgstr "Lösenordet för servern"
msgid ""
"Server password, enter the specific password of the tunnel when the username "
@@ -2680,22 +2789,27 @@ msgid ""
msgstr ""
msgid "Server username"
-msgstr ""
+msgstr "Användarnamnet för servern"
msgid "Service Name"
-msgstr ""
+msgstr "Namn på tjänst"
msgid "Service Type"
-msgstr ""
+msgstr "Typ av tjänst"
msgid "Services"
+msgstr "Tjänster"
+
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
msgstr ""
msgid "Set up Time Synchronization"
-msgstr ""
+msgstr "Ställ in Tidssynkronisering"
msgid "Setup DHCP Server"
-msgstr ""
+msgstr "Ställ in DHCP-server"
msgid "Severely Errored Seconds (SES)"
msgstr ""
@@ -2707,52 +2821,52 @@ msgid "Show current backup file list"
msgstr ""
msgid "Shutdown this interface"
-msgstr ""
+msgstr "Stäng ner det här gränssnittet"
msgid "Shutdown this network"
-msgstr ""
+msgstr "Stäng ner det här nätverket"
msgid "Signal"
-msgstr ""
+msgstr "Signal"
msgid "Signal Attenuation (SATN)"
msgstr ""
msgid "Signal:"
-msgstr ""
+msgstr "Signal:"
msgid "Size"
-msgstr ""
+msgstr "Storlek"
msgid "Size (.ipk)"
-msgstr ""
+msgstr "Storlek (.ipk)"
msgid "Skip"
-msgstr ""
+msgstr "Hoppa över"
msgid "Skip to content"
-msgstr ""
+msgstr "Hoppa över till innehåll"
msgid "Skip to navigation"
-msgstr ""
+msgstr "Hoppa över till navigering"
msgid "Slot time"
msgstr ""
msgid "Software"
-msgstr ""
+msgstr "Mjukvara"
msgid "Software VLAN"
msgstr ""
msgid "Some fields are invalid, cannot save values!"
-msgstr ""
+msgstr "Några fält är ogiltiga, kan inte spara värden!"
msgid "Sorry, the object you requested was not found."
-msgstr ""
+msgstr "Tyvärr, objektet som du frågade efter kunde inte hittas."
msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
+msgstr "Tyvärr, servern stötte på ett oväntat fel."
msgid ""
"Sorry, there is no sysupgrade support present; a new firmware image must be "
@@ -2761,10 +2875,10 @@ msgid ""
msgstr ""
msgid "Sort"
-msgstr ""
+msgstr "Sortera"
msgid "Source"
-msgstr ""
+msgstr "Källa"
msgid "Source routing"
msgstr ""
@@ -2776,7 +2890,7 @@ msgid "Specifies the directory the device is attached to"
msgstr ""
msgid "Specifies the listening port of this Dropbear instance"
-msgstr ""
+msgstr "Anger lyssningsporten för den här Dropbear -instansen"
msgid ""
"Specifies the maximum amount of failed ARP requests until hosts are presumed "
@@ -2789,7 +2903,7 @@ msgid ""
msgstr ""
msgid "Specify a TOS (Type of Service)."
-msgstr ""
+msgstr "Ange en TaT (Typ av Tjänst)."
msgid ""
"Specify a TTL (Time to Live) for the encapsulating packet other than the "
@@ -2802,7 +2916,7 @@ msgid ""
msgstr ""
msgid "Specify the secret encryption key here."
-msgstr ""
+msgstr "Ange den hemliga krypteringsnyckeln här."
msgid "Start"
msgstr ""
@@ -2814,22 +2928,19 @@ msgid "Startup"
msgstr ""
msgid "Static IPv4 Routes"
-msgstr ""
+msgstr "Statiska IPv4-rutter"
msgid "Static IPv6 Routes"
-msgstr ""
+msgstr "Statiska IPv6-rutter"
msgid "Static Leases"
msgstr ""
msgid "Static Routes"
-msgstr ""
-
-msgid "Static WDS"
-msgstr ""
+msgstr "Statiska rutter"
msgid "Static address"
-msgstr ""
+msgstr "Statiska adresser"
msgid ""
"Static leases are used to assign fixed IP addresses and symbolic hostnames "
@@ -2838,16 +2949,16 @@ msgid ""
msgstr ""
msgid "Status"
-msgstr ""
+msgstr "Status"
msgid "Stop"
msgstr ""
msgid "Strict order"
-msgstr ""
+msgstr "Strikt sortering"
msgid "Submit"
-msgstr ""
+msgstr "Skicka in"
msgid "Suppress logging"
msgstr ""
@@ -2856,71 +2967,71 @@ msgid "Suppress logging of the routine operation of these protocols"
msgstr ""
msgid "Swap"
-msgstr ""
+msgstr "Swap"
msgid "Swap Entry"
msgstr ""
msgid "Switch"
-msgstr ""
+msgstr "Byt"
msgid "Switch %q"
-msgstr ""
+msgstr "Byt %q"
msgid "Switch %q (%s)"
-msgstr ""
+msgstr "Byt %q (%s)"
msgid ""
"Switch %q has an unknown topology - the VLAN settings might not be accurate."
msgstr ""
msgid "Switch VLAN"
-msgstr ""
+msgstr "Byt VLAN"
msgid "Switch protocol"
-msgstr ""
+msgstr "Byt protokoll"
msgid "Sync with browser"
-msgstr ""
+msgstr "Synkronisera med webbläsare"
msgid "Synchronizing..."
-msgstr ""
+msgstr "Synkroniserar..."
msgid "System"
-msgstr ""
+msgstr "System"
msgid "System Log"
-msgstr ""
+msgstr "Systemlogg"
msgid "System Properties"
-msgstr ""
+msgstr "Systemets egenskaper"
msgid "System log buffer size"
msgstr ""
msgid "TCP:"
-msgstr ""
+msgstr "TCP:"
msgid "TFTP Settings"
-msgstr ""
+msgstr "Inställningar för TFTP"
msgid "TFTP server root"
-msgstr ""
+msgstr "Root för TFTP-server"
msgid "TX"
-msgstr ""
+msgstr "TX"
msgid "TX Rate"
-msgstr ""
+msgstr "TX-hastighet"
msgid "Table"
-msgstr ""
+msgstr "Tabell"
msgid "Target"
-msgstr ""
+msgstr "MÃ¥l"
msgid "Target network"
-msgstr ""
+msgstr "Målnätverk"
msgid "Terminate"
msgstr ""
@@ -2977,7 +3088,7 @@ msgid ""
msgstr ""
msgid "The following changes have been committed"
-msgstr ""
+msgstr "Följande ändringar har skickats in"
msgid "The following changes have been reverted"
msgstr ""
@@ -2986,7 +3097,7 @@ msgid "The following rules are currently active on this system."
msgstr ""
msgid "The given network name is not unique"
-msgstr ""
+msgstr "Det angivna nätverksnamnet är inte unikt"
msgid ""
"The hardware is not multi-SSID capable and the existing configuration will "
@@ -3042,16 +3153,16 @@ msgid ""
msgstr ""
msgid "There are no active leases."
-msgstr ""
+msgstr "Det finns inga aktiva kontrakt."
msgid "There are no pending changes to apply!"
-msgstr ""
+msgstr "Det finns inga pendlande ändringar att verkställa!"
msgid "There are no pending changes to revert!"
-msgstr ""
+msgstr "Det finns inga pendlande ändringar att återkalla"
msgid "There are no pending changes!"
-msgstr ""
+msgstr "Det finns inga pendlande ändringar!"
msgid ""
"There is no device assigned yet, please attach a network device in the "
@@ -3062,6 +3173,8 @@ msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface and enable SSH."
msgstr ""
+"Det finns inget lösenord inställt på den här routern. Vänligen ställ in ett "
+"root-lösenord för att skydda webbgränssnittet och för att aktivera SSH."
msgid "This IPv4 address of the relay"
msgstr ""
@@ -3127,39 +3240,41 @@ msgid "This section contains no values yet"
msgstr ""
msgid "Time Synchronization"
-msgstr ""
+msgstr "Synkronisering av tid"
msgid "Time Synchronization is not configured yet."
-msgstr ""
+msgstr "Synkronisering av tid är inte inställd än."
msgid "Timezone"
-msgstr ""
+msgstr "Tidszon"
msgid ""
"To restore configuration files, you can upload a previously generated backup "
"archive here."
msgstr ""
+"För att återställa konfigurationsfiler så kan du ladda upp ett tidigare "
+"genererat säkerhetskopierings arkiv här."
msgid "Tone"
-msgstr ""
+msgstr "Ton"
msgid "Total Available"
-msgstr ""
+msgstr "Totalt tillgängligt"
msgid "Traceroute"
-msgstr ""
+msgstr "Traceroute"
msgid "Traffic"
-msgstr ""
+msgstr "Trafik"
msgid "Transfer"
-msgstr ""
+msgstr "Ãverför"
msgid "Transmission Rate"
-msgstr ""
+msgstr "Ãverföringshastighet"
msgid "Transmit"
-msgstr ""
+msgstr "Ãverför"
msgid "Transmit Power"
msgstr ""
@@ -3174,13 +3289,13 @@ msgid "Trigger Mode"
msgstr ""
msgid "Tunnel ID"
-msgstr ""
+msgstr "Tunnel-ID"
msgid "Tunnel Interface"
-msgstr ""
+msgstr "Tunnelgränssnitt"
msgid "Tunnel Link"
-msgstr ""
+msgstr "Tunnel-länk"
msgid "Tunnel broker protocol"
msgstr ""
@@ -3189,61 +3304,58 @@ msgid "Tunnel setup server"
msgstr ""
msgid "Tunnel type"
-msgstr ""
-
-msgid "Turbo Mode"
-msgstr ""
+msgstr "Tunnel-typ"
msgid "Tx-Power"
msgstr ""
msgid "Type"
-msgstr ""
+msgstr "Typ"
msgid "UDP:"
-msgstr ""
+msgstr "UDP:"
msgid "UMTS only"
-msgstr ""
+msgstr "Endast UMTS"
msgid "UMTS/GPRS/EV-DO"
-msgstr ""
+msgstr "UMTS/GPRS/EV-DO"
msgid "USB Device"
-msgstr ""
+msgstr "USB-enhet"
msgid "USB Ports"
-msgstr ""
+msgstr "USB-portar"
msgid "UUID"
-msgstr ""
+msgstr "UUID"
msgid "Unable to dispatch"
-msgstr ""
+msgstr "Det går inte att skicka"
msgid "Unavailable Seconds (UAS)"
-msgstr ""
+msgstr "Otillgängliga Sekunder (UAS)"
msgid "Unknown"
-msgstr ""
+msgstr "Okänd"
msgid "Unknown Error, password not changed!"
-msgstr ""
+msgstr "Okänt fel, lösenordet ändrades inte!"
msgid "Unmanaged"
msgstr ""
msgid "Unmount"
-msgstr ""
+msgstr "Avmontera"
msgid "Unsaved Changes"
-msgstr ""
+msgstr "Osparade ändringar"
msgid "Unsupported protocol type."
-msgstr ""
+msgstr "Protokolltypen stöds inte."
msgid "Update lists"
-msgstr ""
+msgstr "Uppdatera listor"
msgid ""
"Upload a sysupgrade-compatible image here to replace the running firmware. "
@@ -3252,19 +3364,19 @@ msgid ""
msgstr ""
msgid "Upload archive..."
-msgstr ""
+msgstr "Ladda upp arkiv..."
msgid "Uploaded File"
-msgstr ""
+msgstr "Laddade upp fil"
msgid "Uptime"
-msgstr ""
+msgstr "Upptid"
msgid "Use /etc/ethers
"
-msgstr ""
+msgstr "Använd /etc/ethers
"
msgid "Use DHCP gateway"
-msgstr ""
+msgstr "Använd DHCP-gateway"
msgid "Use DNS servers advertised by peer"
msgstr ""
@@ -3282,7 +3394,7 @@ msgid "Use as external overlay (/overlay)"
msgstr ""
msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "Använd som root-filsystem (/)"
msgid "Use broadcast flag"
msgstr ""
@@ -3291,10 +3403,10 @@ msgid "Use builtin IPv6-management"
msgstr ""
msgid "Use custom DNS servers"
-msgstr ""
+msgstr "Använd anpassade DNS-servrar"
msgid "Use default gateway"
-msgstr ""
+msgstr "Använd standard-gateway"
msgid "Use gateway metric"
msgstr ""
@@ -3316,20 +3428,25 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
-msgid "User certificate (PEM encoded)"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
msgstr ""
+msgid "User certificate (PEM encoded)"
+msgstr "Användarcertifikat (PEM-krypterad)"
+
msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "Användarnyckel (PEM-krypterad)"
msgid "Username"
-msgstr ""
+msgstr "Användarnamn"
msgid "VC-Mux"
-msgstr ""
+msgstr "VC-Mux"
msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
msgid "VLANs on %q"
msgstr ""
@@ -3338,16 +3455,16 @@ msgid "VLANs on %q (%s)"
msgstr ""
msgid "VPN Local address"
-msgstr ""
+msgstr "Lokal adress för VPN"
msgid "VPN Local port"
-msgstr ""
+msgstr "Lokal port för VPN"
msgid "VPN Server"
-msgstr ""
+msgstr "VPN-server"
msgid "VPN Server port"
-msgstr ""
+msgstr "Port för VPN-server"
msgid "VPN Server's certificate SHA1 hash"
msgstr ""
@@ -3356,40 +3473,40 @@ msgid "VPNC (CISCO 3000 (and others) VPN)"
msgstr ""
msgid "Vendor"
-msgstr ""
+msgstr "Tillverkare"
msgid "Vendor Class to send when requesting DHCP"
msgstr ""
msgid "Verbose"
-msgstr ""
+msgstr "Utförlig"
msgid "Verbose logging by aiccu daemon"
msgstr ""
msgid "Verify"
-msgstr ""
+msgstr "Verkställ"
msgid "Version"
-msgstr ""
+msgstr "Version"
msgid "WDS"
-msgstr ""
+msgstr "WDS"
msgid "WEP Open System"
-msgstr ""
+msgstr "Ãppet System WEP"
msgid "WEP Shared Key"
msgstr ""
msgid "WEP passphrase"
-msgstr ""
+msgstr "WEP-lösenordsfras"
msgid "WMM Mode"
-msgstr ""
+msgstr "WMM-läge"
msgid "WPA passphrase"
-msgstr ""
+msgstr "WPA-lösenordsfras"
msgid ""
"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
@@ -3401,19 +3518,20 @@ msgid ""
msgstr ""
msgid "Waiting for changes to be applied..."
-msgstr ""
+msgstr "Väntar på att ändringarna ska tillämpas..."
msgid "Waiting for command to complete..."
-msgstr ""
+msgstr "Väntar på att kommandot ska avsluta..."
msgid "Waiting for device..."
-msgstr ""
+msgstr "Väntar på enheten..."
msgid "Warning"
-msgstr ""
+msgstr "Varning"
msgid "Warning: There are unsaved changes that will get lost on reboot!"
msgstr ""
+"Varning: Det finns osparade ändringar som kommer att förloras vid omstart!"
msgid "Whether to create an IPv6 default route over the tunnel"
msgstr ""
@@ -3422,52 +3540,49 @@ msgid "Whether to route only packets from delegated prefixes"
msgstr ""
msgid "Width"
-msgstr ""
+msgstr "Bredd"
msgid "WireGuard VPN"
msgstr ""
msgid "Wireless"
-msgstr ""
+msgstr "Trådlöst"
msgid "Wireless Adapter"
-msgstr ""
+msgstr "Trådlös adapter"
msgid "Wireless Network"
-msgstr ""
+msgstr "Trådlöst nätverk"
msgid "Wireless Overview"
-msgstr ""
+msgstr "Trådlös överblick"
msgid "Wireless Security"
-msgstr ""
+msgstr "Trådlös säkerhet"
msgid "Wireless is disabled or not associated"
-msgstr ""
+msgstr "Trådlöst är avstängt eller inte associerat"
msgid "Wireless is restarting..."
-msgstr ""
+msgstr "Trådlöst startar om..."
msgid "Wireless network is disabled"
-msgstr ""
+msgstr "Trådlöst nätverk är avstängt"
msgid "Wireless network is enabled"
-msgstr ""
+msgstr "Trådlöst nätverk är aktiverat"
msgid "Wireless restarted"
-msgstr ""
+msgstr "Trådlöst startade om"
msgid "Wireless shut down"
-msgstr ""
+msgstr "Trådlöst stängde ner"
msgid "Write received DNS requests to syslog"
-msgstr ""
+msgstr "Skriv mottagna DNS-förfrågningar till syslogg"
msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr ""
+msgstr "Skriv systemlogg till fil"
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
@@ -3476,47 +3591,49 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
+"Du måste aktivera JavaScript i din webbläsare, annars kommer inte LuCi att "
+"fungera korrekt."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
"upgrade it to at least version 7 or use another browser like Firefox, Opera "
"or Safari."
msgstr ""
+"Din Internet Explorer är för gammal för att visa den här sidan korrekt. "
+"Vänligen uppgradera den till minst version 7 eller använd en annan "
+"webbläsare till exempel Firefox, Opera eller Safari."
msgid "any"
-msgstr ""
+msgstr "något"
msgid "auto"
-msgstr ""
-
-msgid "automatic"
-msgstr ""
+msgstr "auto"
msgid "baseT"
msgstr ""
msgid "bridged"
-msgstr ""
+msgstr "bryggad"
msgid "create:"
-msgstr ""
+msgstr "skapa:"
msgid "creates a bridge over specified interface(s)"
-msgstr ""
+msgstr "skapar en brygga över angivna gränssnitt(en)"
msgid "dB"
-msgstr ""
+msgstr "dB"
msgid "dBm"
-msgstr ""
+msgstr "dBm"
msgid "disable"
-msgstr ""
+msgstr "stäng ner"
msgid "disabled"
-msgstr ""
+msgstr "avstängd"
msgid "expired"
msgstr ""
@@ -3527,85 +3644,79 @@ msgid ""
msgstr ""
msgid "forward"
-msgstr ""
+msgstr "vidarebefordra"
msgid "full-duplex"
-msgstr ""
+msgstr "full-duplex"
msgid "half-duplex"
-msgstr ""
+msgstr "halv-duplex"
msgid "help"
-msgstr ""
+msgstr "hjälp"
msgid "hidden"
-msgstr ""
+msgstr "gömd"
msgid "hybrid mode"
-msgstr ""
+msgstr "hybrid-läge"
msgid "if target is a network"
-msgstr ""
+msgstr "om målet är ett nätverk"
msgid "input"
-msgstr ""
+msgstr "inmatning"
msgid "kB"
-msgstr ""
+msgstr "kB"
msgid "kB/s"
-msgstr ""
+msgstr "kB/s"
msgid "kbit/s"
-msgstr ""
+msgstr "kbit/s"
msgid "local DNS file"
-msgstr ""
+msgstr "lokal DNS -fil"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
-msgstr ""
+msgid "minutes"
+msgstr "minuter"
msgid "no"
-msgstr ""
+msgstr "nej"
msgid "no link"
-msgstr ""
+msgstr "ingen länk"
msgid "none"
msgstr ""
msgid "not present"
-msgstr ""
+msgstr "inte tillgängligt"
msgid "off"
-msgstr ""
+msgstr "av"
msgid "on"
-msgstr ""
+msgstr "på"
msgid "open"
-msgstr ""
+msgstr "öppen"
msgid "overlay"
msgstr ""
msgid "relay mode"
-msgstr ""
+msgstr "relä-läge"
msgid "routed"
msgstr ""
msgid "server mode"
-msgstr ""
-
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "server-läge"
msgid "stateful-only"
msgstr ""
@@ -3617,25 +3728,28 @@ msgid "stateless + stateful"
msgstr ""
msgid "tagged"
+msgstr "taggad"
+
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
msgstr ""
msgid "unknown"
-msgstr ""
+msgstr "okänd"
msgid "unlimited"
-msgstr ""
+msgstr "obegränsat"
msgid "unspecified"
-msgstr ""
+msgstr "ospecifierat"
msgid "unspecified -or- create:"
-msgstr ""
+msgstr "ospecifierat -eller- skapa:"
msgid "untagged"
-msgstr ""
+msgstr "otaggat"
msgid "yes"
-msgstr ""
+msgstr "ja"
msgid "« Back"
-msgstr ""
+msgstr "« Bakåt"
diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot
index 5159f04264..8cbae4f87d 100644
--- a/modules/luci-base/po/templates/base.pot
+++ b/modules/luci-base/po/templates/base.pot
@@ -40,12 +40,36 @@ msgstr ""
msgid "15 Minute Load:"
msgstr ""
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr ""
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
@@ -108,6 +132,11 @@ msgstr ""
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -126,9 +155,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr ""
-
msgid "ARP retry threshold"
msgstr ""
@@ -364,15 +390,9 @@ msgstr ""
msgid "Associated Stations"
msgstr ""
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr ""
@@ -445,9 +465,6 @@ msgstr ""
msgid "Back to scan results"
msgstr ""
-msgid "Background Scan"
-msgstr ""
-
msgid "Backup / Flash Firmware"
msgstr ""
@@ -602,7 +619,11 @@ msgstr ""
msgid "Common Configuration"
msgstr ""
-msgid "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
msgstr ""
msgid "Configuration"
@@ -818,10 +839,10 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
msgstr ""
-msgid "Disabled"
+msgid "Disabled (default)"
msgstr ""
msgid "Discard upstream RFC1918 responses"
@@ -858,9 +879,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr ""
@@ -959,6 +977,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -983,6 +1004,11 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1029,6 +1055,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1041,9 +1073,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr ""
@@ -1079,6 +1108,9 @@ msgstr ""
msgid "Firewall"
msgstr ""
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr ""
@@ -1124,6 +1156,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1367,9 +1402,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1382,7 +1423,7 @@ msgstr ""
msgid "Identity"
msgstr ""
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1464,6 +1505,9 @@ msgstr ""
msgid "Interface"
msgstr ""
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1509,12 +1553,15 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr ""
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1583,9 +1630,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr ""
-
msgid "Leasetime remaining"
msgstr ""
@@ -1627,6 +1671,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1759,9 +1819,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1797,9 +1854,6 @@ msgstr ""
msgid "Metric"
msgstr ""
-msgid "Minimum Rate"
-msgstr ""
-
msgid "Minimum hold time"
msgstr ""
@@ -1812,6 +1866,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr ""
@@ -1868,9 +1925,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr ""
-
msgid "Multicast address"
msgstr ""
@@ -1883,6 +1937,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2057,18 +2114,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2105,9 +2174,6 @@ msgstr ""
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2155,6 +2221,9 @@ msgstr ""
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2212,6 +2281,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr ""
@@ -2284,6 +2356,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2349,6 +2430,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2428,6 +2515,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2458,9 +2548,6 @@ msgstr ""
msgid "References"
msgstr ""
-msgid "Regulatory Domain"
-msgstr ""
-
msgid "Relay"
msgstr ""
@@ -2500,19 +2587,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2652,9 +2747,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr ""
@@ -2678,6 +2770,11 @@ msgstr ""
msgid "Services"
msgstr ""
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2812,9 +2909,6 @@ msgstr ""
msgid "Static Routes"
msgstr ""
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3178,9 +3272,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr ""
-
msgid "Tx-Power"
msgstr ""
@@ -3303,6 +3394,11 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3453,9 +3549,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr ""
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3463,7 +3556,7 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3478,9 +3571,6 @@ msgstr ""
msgid "auto"
msgstr ""
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3552,7 +3642,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3588,12 +3678,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3606,6 +3690,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po
index 3c6c85ccc7..e6293212c4 100644
--- a/modules/luci-base/po/tr/base.po
+++ b/modules/luci-base/po/tr/base.po
@@ -50,12 +50,36 @@ msgstr "1 Dakikalık Yük:"
msgid "15 Minute Load:"
msgstr "15 Dakikalık Yük:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "5 Dakikalık Yük:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr " BSSID "
@@ -124,6 +148,11 @@ msgstr "Maks. eÅzamanlı sorgu"
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -142,9 +171,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "AR DesteÄi"
-
msgid "ARP retry threshold"
msgstr "ARP yenileme aralıÄı"
@@ -384,15 +410,9 @@ msgstr ""
msgid "Associated Stations"
msgstr ""
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Kablosuz Denetleyicisi"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Kimlik doÄrulama"
@@ -465,9 +485,6 @@ msgstr "Genel BakıÅa dön"
msgid "Back to scan results"
msgstr "Tarama sonuçlarına dön"
-msgid "Background Scan"
-msgstr "Arka Planda Tarama"
-
msgid "Backup / Flash Firmware"
msgstr ""
@@ -622,7 +639,11 @@ msgstr ""
msgid "Common Configuration"
msgstr ""
-msgid "Compression"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
msgstr ""
msgid "Configuration"
@@ -838,10 +859,10 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
msgstr ""
-msgid "Disabled"
+msgid "Disabled (default)"
msgstr ""
msgid "Discard upstream RFC1918 responses"
@@ -878,9 +899,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr ""
-
msgid "Domain required"
msgstr ""
@@ -979,6 +997,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1003,6 +1024,11 @@ msgstr ""
msgid "Enabled"
msgstr ""
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
@@ -1049,6 +1075,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1061,9 +1093,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr ""
-
msgid "File"
msgstr ""
@@ -1099,6 +1128,9 @@ msgstr ""
msgid "Firewall"
msgstr ""
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr ""
@@ -1144,6 +1176,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1387,9 +1422,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1402,7 +1443,7 @@ msgstr ""
msgid "Identity"
msgstr ""
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1484,6 +1525,9 @@ msgstr ""
msgid "Interface"
msgstr ""
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1529,12 +1573,15 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr ""
+msgid "Isolate Clients"
+msgstr ""
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
msgstr ""
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1603,9 +1650,6 @@ msgstr ""
msgid "Leasefile"
msgstr ""
-msgid "Leasetime"
-msgstr ""
-
msgid "Leasetime remaining"
msgstr ""
@@ -1647,6 +1691,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1779,9 +1839,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr ""
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1817,9 +1874,6 @@ msgstr ""
msgid "Metric"
msgstr ""
-msgid "Minimum Rate"
-msgstr ""
-
msgid "Minimum hold time"
msgstr ""
@@ -1832,6 +1886,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr ""
@@ -1888,9 +1945,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr ""
-
msgid "Multicast address"
msgstr ""
@@ -1903,6 +1957,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2077,18 +2134,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+
+msgid ""
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2125,9 +2194,6 @@ msgstr ""
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr ""
-
msgid "Output Interface"
msgstr ""
@@ -2175,6 +2241,9 @@ msgstr ""
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2232,6 +2301,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr ""
@@ -2304,6 +2376,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2369,6 +2450,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2448,6 +2535,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2478,9 +2568,6 @@ msgstr ""
msgid "References"
msgstr ""
-msgid "Regulatory Domain"
-msgstr ""
-
msgid "Relay"
msgstr ""
@@ -2520,19 +2607,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2672,9 +2767,6 @@ msgstr ""
msgid "Separate Clients"
msgstr ""
-msgid "Separate WDS"
-msgstr ""
-
msgid "Server Settings"
msgstr ""
@@ -2698,6 +2790,11 @@ msgstr ""
msgid "Services"
msgstr ""
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2832,9 +2929,6 @@ msgstr ""
msgid "Static Routes"
msgstr ""
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3198,9 +3292,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr ""
-
msgid "Tx-Power"
msgstr ""
@@ -3323,6 +3414,11 @@ msgstr ""
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3473,9 +3569,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr ""
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3483,7 +3576,7 @@ msgid ""
msgstr ""
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
"LuCI'nin düzgün çalıÅması için tarayıcınızda Java Scripti "
"etkinleÅtirmelisiniz."
@@ -3500,9 +3593,6 @@ msgstr "herhangi"
msgid "auto"
msgstr "otomatik"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr ""
@@ -3574,7 +3664,7 @@ msgstr "yerel DNS dosyası"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3610,12 +3700,6 @@ msgstr "yönlendirildi"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3628,6 +3712,9 @@ msgstr ""
msgid "tagged"
msgstr "etiketlendi"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3648,3 +3735,12 @@ msgstr "evet"
msgid "« Back"
msgstr "« Geri"
+
+#~ msgid "AR Support"
+#~ msgstr "AR DesteÄi"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Kablosuz Denetleyicisi"
+
+#~ msgid "Background Scan"
+#~ msgstr "Arka Planda Tarama"
diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po
index aefbea517c..05bd03d584 100644
--- a/modules/luci-base/po/uk/base.po
+++ b/modules/luci-base/po/uk/base.po
@@ -51,12 +51,36 @@ msgstr "ÐаванÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð·Ð° 1 Ñ
вилинÑ:"
msgid "15 Minute Load:"
msgstr "ÐаванÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð·Ð° 15 Ñ
вилин:"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "ÐаванÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð·Ð° 5 Ñ
вилин:"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr ""
"Max. одноÑаÑниÑ
зап
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -158,9 +187,6 @@ msgid "APN"
msgstr ""
"APN "
-msgid "AR Support"
-msgstr "ÐÑдÑÑимка AR"
-
msgid "ARP retry threshold"
msgstr "ÐоÑÑг повÑоÑÑ ARP"
@@ -408,15 +434,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "ÐÑиÑÐ´Ð½Ð°Ð½Ñ ÑÑанÑÑÑ"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "ÐездÑоÑовий 802.11%s конÑÑÐ¾Ð»ÐµÑ Atheros"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "ÐвÑенÑиÑÑкаÑÑÑ"
@@ -489,9 +509,6 @@ msgstr "ÐовеÑнÑÑиÑÑ Ð´Ð¾ пеÑелÑкÑ"
msgid "Back to scan results"
msgstr "ÐовеÑнÑÑиÑÑ Ð´Ð¾ ÑезÑлÑÑаÑÑв ÑканÑваннÑ"
-msgid "Background Scan"
-msgstr "СканÑÐ²Ð°Ð½Ð½Ñ Ñ ÑÐ¾Ð½Ð¾Ð²Ð¾Ð¼Ñ ÑежимÑ"
-
msgid "Backup / Flash Firmware"
msgstr "РезеÑвне копÑÑÐ²Ð°Ð½Ð½Ñ / ÐÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿ÑоÑивки"
@@ -660,8 +677,12 @@ msgstr "Ðоманда"
msgid "Common Configuration"
msgstr "ÐагалÑна конÑÑгÑÑаÑÑÑ"
-msgid "Compression"
-msgstr "СÑиÑненнÑ"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "ÐонÑÑгÑÑаÑÑÑ"
@@ -883,12 +904,12 @@ msgstr "ÐимкнÑÑи наÑÑÑоÑÐ²Ð°Ð½Ð½Ñ DNS"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "ÐимкнÑÑи ÑÐ°Ð¹Ð¼ÐµÑ HW-Beacon"
-
msgid "Disabled"
msgstr "Ðимкнено"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "ÐÑдкидаÑи RFC1918-вÑдповÑÐ´Ñ Ð²Ñд клÑÑнÑа на ÑеÑвеÑ"
@@ -930,9 +951,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr "Ðе ÑпÑÑмовÑваÑи звоÑоÑний пеÑеглÑд Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑниÑ
меÑеж"
-msgid "Do not send probe responses"
-msgstr "Ðе надÑилаÑи вÑдповÑÐ´Ñ Ð½Ð° зондÑваннÑ"
-
msgid "Domain required"
msgstr "ÐоÑÑÑбен домен"
@@ -1040,6 +1058,9 @@ msgstr "УвÑмкнÑÑи пÑдÑÑÐ¸Ð¼ÐºÑ VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "УвÑмкнÑÑи learning Ñа aging"
@@ -1064,6 +1085,11 @@ msgstr "УвÑмкнено/Ðимкнено"
msgid "Enabled"
msgstr "УвÑмкнено"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr ""
"УвÑмкнÑÑи STP на ÑÑÐ¾Ð¼Ñ Ð¼Ð¾ÑÑÑ"
@@ -1112,6 +1138,12 @@ msgstr "ТеÑмÑн оÑенди адÑеÑ, мÑнÑмÑм 2 Ñ
вилини (<
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "ÐовнÑÑнÑй ÑеÑÐ²ÐµÑ ÑиÑÑемного жÑÑналÑ"
@@ -1124,9 +1156,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Ð¨Ð²Ð¸Ð´ÐºÑ ÑÑейми"
-
msgid "File"
msgstr "Файл"
@@ -1162,6 +1191,9 @@ msgstr "ÐоÑово"
msgid "Firewall"
msgstr "ÐÑандмаÑеÑ"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "ÐаÑÑÑойки бÑандмаÑеÑа"
@@ -1207,6 +1239,9 @@ msgstr "ÐÑимÑÑово TKIP"
msgid "Force TKIP and CCMP (AES)"
msgstr "ÐÑимÑÑово TKIP Ñа CCMP (AES)"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1456,9 +1491,15 @@ msgstr "Ðовжина пÑеÑÑкÑа IPv6"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-адÑеÑа"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6 Ñ IPv4 (RFC4213)"
@@ -1471,7 +1512,7 @@ msgstr "IPv6 ÑеÑез IPv4 (6to4)"
msgid "Identity"
msgstr "ÐденÑиÑнÑÑÑÑ"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1563,6 +1604,9 @@ msgstr "ÐнÑÑалÑÐ¾Ð²Ð°Ð½Ñ Ð¿Ð°ÐºÐµÑи"
msgid "Interface"
msgstr "ÐнÑеÑÑейÑ"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ÐонÑÑгÑÑаÑÑÑ ÑнÑеÑÑейÑÑ"
@@ -1609,6 +1653,9 @@ msgstr "Ðадано невÑÑний VLAN ID! ÐоÑÑÑÐ¿Ð½Ñ ÑÑлÑки Ñ
msgid "Invalid username and/or password! Please try again."
msgstr "ÐепÑипÑÑÑиме ÑмâÑ ÐºÐ¾ÑиÑÑÑваÑа Ñа/або паÑолÑ! СпÑобÑйÑе Ñе Ñаз."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1617,8 +1664,8 @@ msgstr ""
"СÑ
оже, Ñо ви намагаÑÑеÑÑ Ð·Ð°Ð»Ð¸Ñи обÑаз, Ñкий не вмÑÑаÑÑÑÑÑ Ñ ÑлеÑ-пам'ÑÑÑ! "
"ÐеÑевÑÑÑе Ñайл обÑазÑ!"
-msgid "Java Script required!"
-msgstr "ÐоÑÑÑбен Java Script!"
+msgid "JavaScript required!"
+msgstr "ÐоÑÑÑбен JavaScript!"
msgid "Join Network"
msgstr "ÐÑдклÑÑÐµÐ½Ð½Ñ Ð´Ð¾ меÑежÑ"
@@ -1686,9 +1733,6 @@ msgstr "Ð§Ð°Ñ ÑинноÑÑÑ Ð¾Ñенди"
msgid "Leasefile"
msgstr "Файл оÑенд"
-msgid "Leasetime"
-msgstr "Ð§Ð°Ñ Ð¾Ñенди"
-
msgid "Leasetime remaining"
msgstr "Ð§Ð°Ñ Ð¾Ñенди, Ñо лиÑивÑÑ"
@@ -1732,6 +1776,22 @@ msgstr ""
"СпиÑок DNS -ÑеÑвеÑÑв, до ÑкиÑ
"
"пеÑеÑилаÑи запиÑи"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1873,9 +1933,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "ÐакÑималÑна ÑвидкÑÑÑÑ"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "ÐакÑималÑно допÑÑÑима кÑлÑкÑÑÑÑ Ð°ÐºÑивниÑ
оÑенд DHCP"
@@ -1911,9 +1968,6 @@ msgstr "ÐикоÑиÑÑÐ°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑÑ, %"
msgid "Metric"
msgstr "ÐеÑÑика"
-msgid "Minimum Rate"
-msgstr "ÐÑнÑмалÑна ÑвидкÑÑÑÑ"
-
msgid "Minimum hold time"
msgstr "ÐÑнÑмалÑний ÑÐ°Ñ ÑÑÑимÑваннÑ"
@@ -1926,6 +1980,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "ÐÑдÑÑÑÐ½Ñ ÑозÑиÑÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿ÑоÑÐ¾ÐºÐ¾Ð»Ñ %q"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Режим"
@@ -1984,9 +2041,6 @@ msgstr "Ðниз"
msgid "Move up"
msgstr "ÐгоÑÑ"
-msgid "Multicast Rate"
-msgstr "ШвидкÑÑÑÑ Ð±Ð°Ð³Ð°ÑоадÑеÑного поÑокÑ"
-
msgid "Multicast address"
msgstr "ÐдÑеÑа багаÑоадÑеÑного поÑокÑ"
@@ -1999,6 +2053,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2179,18 +2236,30 @@ msgstr "ÐпÑÑÑ Ð·Ð¼Ñнена"
msgid "Option removed"
msgstr "ÐпÑÑÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð°"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2227,9 +2296,6 @@ msgstr "ÐиÑ
."
msgid "Outbound:"
msgstr "ÐиÑ
Ñдний:"
-msgid "Outdoor Channels"
-msgstr "ÐовнÑÑÐ½Ñ ÐºÐ°Ð½Ð°Ð»Ð¸"
-
msgid "Output Interface"
msgstr ""
@@ -2282,6 +2348,9 @@ msgstr ""
">PIN "
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPP"
@@ -2339,6 +2408,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "ÐаÑÐ¾Ð»Ñ ÑÑпÑÑно змÑнено!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "ШлÑÑ
до ÑенÑÑÑ ÑеÑÑиÑÑкÑÑÑ"
@@ -2411,6 +2483,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2478,6 +2559,12 @@ msgstr ""
msgid "Quality"
msgstr "ЯкÑÑÑÑ"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2573,6 +2660,9 @@ msgstr "ТÑаÑÑк Ñ ÑеалÑÐ½Ð¾Ð¼Ñ ÑаÑÑ"
msgid "Realtime Wireless"
msgstr "ÐездÑоÑÐ¾Ð²Ñ Ð¼ÐµÑÐµÐ¶Ñ Ñ ÑеалÑÐ½Ð¾Ð¼Ñ ÑаÑÑ"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "ÐаÑ
иÑÑ Ð²Ñд пеÑепÑив'Ñзки"
@@ -2603,9 +2693,6 @@ msgstr "ÐеÑепÑдклÑÑÐµÐ½Ð½Ñ ÑнÑеÑÑейÑÑ"
msgid "References"
msgstr "ÐоÑиланнÑ"
-msgid "Regulatory Domain"
-msgstr "РегÑлÑÑивний домен"
-
msgid "Relay"
msgstr "РеÑÑанÑлÑÑоÑ"
@@ -2645,19 +2732,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "ÐоÑÑÑбно Ð´Ð»Ñ Ð´ÐµÑкиÑ
пÑовайдеÑÑв, напÑиклад, Charter Ñз DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2801,9 +2896,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "РоздÑлÑÑи клÑÑнÑÑв"
-msgid "Separate WDS"
-msgstr "РоздÑлÑÑи WDS"
-
msgid "Server Settings"
msgstr "ÐаÑÑÑойки ÑеÑвеÑа"
@@ -2827,6 +2919,11 @@ msgstr "Тип ÑеÑвÑÑÑ"
msgid "Services"
msgstr "СеÑвÑÑи"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "ÐаÑÑÑойки ÑинÑ
ÑонÑзаÑÑÑ ÑаÑÑ"
@@ -2969,9 +3066,6 @@ msgstr "СÑаÑиÑÐ½Ñ Ð¾Ñенди"
msgid "Static Routes"
msgstr "СÑаÑиÑÐ½Ñ Ð¼Ð°ÑÑÑÑÑи"
-msgid "Static WDS"
-msgstr "СÑаÑиÑний WDS"
-
msgid "Static address"
msgstr "СÑаÑиÑÐ½Ñ Ð°Ð´ÑеÑи"
@@ -3398,9 +3492,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Режим Turbo"
-
msgid "Tx-Power"
msgstr "ÐоÑÑжнÑÑÑÑ Ð¿ÐµÑедаваÑа"
@@ -3530,6 +3621,11 @@ msgstr "ÐикоÑиÑÑано"
msgid "Used Key Slot"
msgstr "ÐикоÑиÑÑовÑÑÑÑÑÑ ÑÐ»Ð¾Ñ ÐºÐ»ÑÑа"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3682,9 +3778,6 @@ msgstr "ÐапиÑÑваÑи оÑÑÐ¸Ð¼Ð°Ð½Ñ DNS-запиÑи до ÑиÑÑем
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "ÐÑдÑÑимка XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3696,9 +3789,9 @@ msgstr ""
"пÑиÑÑÑÑй може ÑÑаÑи недоÑÑÑпним! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
-"Ðи Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ ÑвÑмкнÑÑи Java Script Ñ Ð²Ð°ÑÐ¾Ð¼Ñ Ð±ÑаÑзеÑÑ, або LuCI не бÑде "
+"Ðи Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ ÑвÑмкнÑÑи JavaScript Ñ Ð²Ð°ÑÐ¾Ð¼Ñ Ð±ÑаÑзеÑÑ, або LuCI не бÑде "
"пÑаÑÑваÑи належним Ñином."
msgid ""
@@ -3713,9 +3806,6 @@ msgstr "бÑдÑ-Ñкий"
msgid "auto"
msgstr "авÑо"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3791,7 +3881,7 @@ msgstr ""
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3827,12 +3917,6 @@ msgstr "ÑпÑÑмовано"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3845,6 +3929,9 @@ msgstr ""
msgid "tagged"
msgstr "з познаÑкоÑ"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "невÑдомий"
@@ -3866,6 +3953,57 @@ msgstr "Ñак"
msgid "« Back"
msgstr "« Ðазад"
+#~ msgid "Leasetime"
+#~ msgstr "Ð§Ð°Ñ Ð¾Ñенди"
+
+#~ msgid "AR Support"
+#~ msgstr "ÐÑдÑÑимка AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "ÐездÑоÑовий 802.11%s конÑÑÐ¾Ð»ÐµÑ Atheros"
+
+#~ msgid "Background Scan"
+#~ msgstr "СканÑÐ²Ð°Ð½Ð½Ñ Ñ ÑÐ¾Ð½Ð¾Ð²Ð¾Ð¼Ñ ÑежимÑ"
+
+#~ msgid "Compression"
+#~ msgstr "СÑиÑненнÑ"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "ÐимкнÑÑи ÑÐ°Ð¹Ð¼ÐµÑ HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ðе надÑилаÑи вÑдповÑÐ´Ñ Ð½Ð° зондÑваннÑ"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Ð¨Ð²Ð¸Ð´ÐºÑ ÑÑейми"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "ÐакÑималÑна ÑвидкÑÑÑÑ"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "ÐÑнÑмалÑна ÑвидкÑÑÑÑ"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "ШвидкÑÑÑÑ Ð±Ð°Ð³Ð°ÑоадÑеÑного поÑокÑ"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "ÐовнÑÑÐ½Ñ ÐºÐ°Ð½Ð°Ð»Ð¸"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "РегÑлÑÑивний домен"
+
+#~ msgid "Separate WDS"
+#~ msgstr "РоздÑлÑÑи WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "СÑаÑиÑний WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Режим Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "ÐÑдÑÑимка XR"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "ЯкÑо ви залиÑиÑе Ñе невибÑаним, бÑде ÑÑвоÑена додаÑкова меÑежа."
diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po
index a8934cdd96..1a6cadc9f4 100644
--- a/modules/luci-base/po/vi/base.po
+++ b/modules/luci-base/po/vi/base.po
@@ -52,12 +52,36 @@ msgstr ""
msgid "15 Minute Load:"
msgstr ""
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr ""
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -122,6 +146,11 @@ msgstr ""
msgid "%s - %s "
msgstr ""
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -140,9 +169,6 @@ msgstr ""
msgid "APN"
msgstr ""
-msgid "AR Support"
-msgstr "HỠtrợ AR"
-
msgid "ARP retry threshold"
msgstr ""
@@ -378,15 +404,9 @@ msgstr ""
msgid "Associated Stations"
msgstr ""
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "Xác thực"
@@ -459,9 +479,6 @@ msgstr ""
msgid "Back to scan results"
msgstr ""
-msgid "Background Scan"
-msgstr "Background Scan"
-
msgid "Backup / Flash Firmware"
msgstr ""
@@ -616,8 +633,12 @@ msgstr "Lá»nh"
msgid "Common Configuration"
msgstr ""
-msgid "Compression"
-msgstr "Sức nén"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "Cấu hình"
@@ -834,12 +855,12 @@ msgstr ""
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "Vô hiá»u hóa bá» chá»nh giá» HW-Beacon"
-
msgid "Disabled"
msgstr ""
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr ""
@@ -878,9 +899,6 @@ msgstr ""
msgid "Do not forward reverse lookups for local networks"
msgstr ""
-msgid "Do not send probe responses"
-msgstr "Không gá»i nhắc há»i Äáp"
-
msgid "Domain required"
msgstr "Domain yêu cầu"
@@ -984,6 +1002,9 @@ msgstr ""
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr ""
@@ -1008,6 +1029,11 @@ msgstr "Cho kÃch hoạt/ Vô hiá»u hóa"
msgid "Enabled"
msgstr ""
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "KÃch hoạt Spanning Tree Protocol trên cầu ná»i nà y"
@@ -1054,6 +1080,12 @@ msgstr ""
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr ""
@@ -1066,9 +1098,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "Khung nhanh"
-
msgid "File"
msgstr ""
@@ -1104,6 +1133,9 @@ msgstr ""
msgid "Firewall"
msgstr "Firewall"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr ""
@@ -1149,6 +1181,9 @@ msgstr ""
msgid "Force TKIP and CCMP (AES)"
msgstr ""
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1394,9 +1429,15 @@ msgstr ""
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr ""
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr ""
@@ -1409,7 +1450,7 @@ msgstr ""
msgid "Identity"
msgstr "Nháºn dạng"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1496,6 +1537,9 @@ msgstr ""
msgid "Interface"
msgstr "Giao diá»n "
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr ""
@@ -1541,6 +1585,9 @@ msgstr ""
msgid "Invalid username and/or password! Please try again."
msgstr "Tên và máºt mã không Äúng. Xin thá» lại "
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
@@ -1549,7 +1596,7 @@ msgstr ""
"DÆ°á»ng nhÆ° bạn cá» gắng flash má»t hình ảnh không phù hợp vá»i bá» nhá» flash, xin "
"vui lòng xác minh các táºp tin hình ảnh!"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr ""
msgid "Join Network"
@@ -1618,9 +1665,6 @@ msgstr ""
msgid "Leasefile"
msgstr "Leasefile"
-msgid "Leasetime"
-msgstr "Leasetime"
-
msgid "Leasetime remaining"
msgstr "Leasetime còn lại"
@@ -1662,6 +1706,22 @@ msgid ""
"requests to"
msgstr ""
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1794,9 +1854,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "Mức cao nhất"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr ""
@@ -1832,9 +1889,6 @@ msgstr "Memory usage (%)"
msgid "Metric"
msgstr "Metric"
-msgid "Minimum Rate"
-msgstr "Mức thấp nhất"
-
msgid "Minimum hold time"
msgstr "Mức thấp nhất"
@@ -1847,6 +1901,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr ""
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "Chế Äá»"
@@ -1905,9 +1962,6 @@ msgstr ""
msgid "Move up"
msgstr ""
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
msgid "Multicast address"
msgstr ""
@@ -1920,6 +1974,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2100,18 +2157,30 @@ msgstr ""
msgid "Option removed"
msgstr ""
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2148,9 +2217,6 @@ msgstr "Ra khá»i"
msgid "Outbound:"
msgstr ""
-msgid "Outdoor Channels"
-msgstr "Kênh ngoại mạng"
-
msgid "Output Interface"
msgstr ""
@@ -2198,6 +2264,9 @@ msgstr "PID"
msgid "PIN"
msgstr ""
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr ""
@@ -2255,6 +2324,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr ""
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "ÄÆ°á»ng dẫn tá»i CA-Certificate"
@@ -2327,6 +2399,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2392,6 +2473,12 @@ msgstr ""
msgid "Quality"
msgstr ""
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2473,6 +2560,9 @@ msgstr ""
msgid "Realtime Wireless"
msgstr ""
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr ""
@@ -2503,9 +2593,6 @@ msgstr ""
msgid "References"
msgstr "Tham chiếu"
-msgid "Regulatory Domain"
-msgstr "Miá»n Äiá»u chá»nh"
-
msgid "Relay"
msgstr ""
@@ -2545,19 +2632,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr ""
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2699,9 +2794,6 @@ msgstr ""
msgid "Separate Clients"
msgstr "Cô láºp Äá»i tượng"
-msgid "Separate WDS"
-msgstr "Phân tách WDS"
-
msgid "Server Settings"
msgstr ""
@@ -2725,6 +2817,11 @@ msgstr ""
msgid "Services"
msgstr "Dá»ch vụ "
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
msgid "Set up Time Synchronization"
msgstr ""
@@ -2859,9 +2956,6 @@ msgstr "Thá»ng kê leases"
msgid "Static Routes"
msgstr "Static Routes"
-msgid "Static WDS"
-msgstr ""
-
msgid "Static address"
msgstr ""
@@ -3240,9 +3334,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
msgid "Tx-Power"
msgstr ""
@@ -3365,6 +3456,11 @@ msgstr "Äã sá» dụng"
msgid "Used Key Slot"
msgstr ""
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3515,9 +3611,6 @@ msgstr ""
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "HỠtrợ XR"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
@@ -3529,7 +3622,7 @@ msgstr ""
"bạn chó thá» trá» nên không truy cáºp Äược "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
msgid ""
@@ -3544,10 +3637,6 @@ msgstr ""
msgid "auto"
msgstr "tá»± Äá»ng"
-#, fuzzy
-msgid "automatic"
-msgstr "thá»ng kê"
-
msgid "baseT"
msgstr ""
@@ -3621,7 +3710,7 @@ msgstr "Táºp tin DNS Äá»a phÆ°Æ¡ng"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3657,12 +3746,6 @@ msgstr ""
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3675,6 +3758,9 @@ msgstr ""
msgid "tagged"
msgstr ""
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr ""
@@ -3695,3 +3781,52 @@ msgstr ""
msgid "« Back"
msgstr ""
+
+#~ msgid "Leasetime"
+#~ msgstr "Leasetime"
+
+#, fuzzy
+#~ msgid "automatic"
+#~ msgstr "thá»ng kê"
+
+#~ msgid "AR Support"
+#~ msgstr "HỠtrợ AR"
+
+#~ msgid "Background Scan"
+#~ msgstr "Background Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Sức nén"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Vô hiá»u hóa bá» chá»nh giá» HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Không gá»i nhắc há»i Äáp"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Khung nhanh"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Mức cao nhất"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Mức thấp nhất"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Kênh ngoại mạng"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Miá»n Äiá»u chá»nh"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Phân tách WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Mode"
+
+#~ msgid "XR Support"
+#~ msgstr "HỠtrợ XR"
diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po
index 37bf6d73d3..7383166890 100644
--- a/modules/luci-base/po/zh-cn/base.po
+++ b/modules/luci-base/po/zh-cn/base.po
@@ -1,32 +1,22 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-21 23:08+0200\n"
-"PO-Revision-Date: 2017-01-07 21:46+0800\n"
-"Last-Translator: Hsing-Wang Liao \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.11\n"
-"Language-Team: \n"
+"Last-Translator: Hsing-Wang Liao \n"
msgid "%s is untagged in multiple VLANs!"
-msgstr "%s å¨å¤ä¸ª VLAN ä¸æªæ è®°"
+msgstr "%s å¨å¤ä¸ª VLAN ä¸åæªå
³èï¼"
msgid "(%d minute window, %d second interval)"
-msgstr "(%d åéä¿¡æ¯ï¼%d ç§å·æ°)"
+msgstr "ï¼æè¿ %d åéä¿¡æ¯ï¼æ¯ %d ç§å·æ°ï¼"
msgid "(%s available)"
-msgstr "(%s å¯ç¨)"
+msgstr "ï¼%s å¯ç¨ï¼"
msgid "(empty)"
-msgstr "(空)"
+msgstr "ï¼ç©ºï¼"
msgid "(no interfaces attached)"
-msgstr "(æªè¿æ¥æ¥å£)"
+msgstr "ï¼æ²¡ææ¥å£è¿æ¥ï¼"
msgid "-- Additional Field --"
msgstr "-- æ´å¤é项 --"
@@ -44,77 +34,106 @@ msgid "-- match by label --"
msgstr "-- æ ¹æ®æ ç¾å¹é
--"
msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- æ ¹æ® UUID å¹é
--"
msgid "1 Minute Load:"
-msgstr "1åéè´è½½:"
+msgstr "1 åéè´è½½ï¼"
msgid "15 Minute Load:"
-msgstr "15åéè´è½½:"
+msgstr "15 åéè´è½½ï¼"
+
+msgid "4-character hexadecimal ID"
+msgstr "4 å符çåå
è¿å¶ ID"
msgid "464XLAT (CLAT)"
msgstr "464XLAT (CLAT)"
msgid "5 Minute Load:"
-msgstr "5åéè´è½½:"
+msgstr "5 åéè´è½½ï¼"
+
+msgid "6-octet identifier as a hex string - no colons"
+msgstr "åå
è¿å¶è¡¨ç¤ºç 6 åèæ è¯ç¬¦ï¼æ åå·åé"
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r å¿«éåæ¢"
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "802.11w å
³è SA æ¥è¯¢æ大è¶
æ¶"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr "802.11w å
³è SA æ¥è¯¢éè¯è¶
æ¶"
+
+msgid "802.11w Management Frame Protection"
+msgstr "802.11w 管ç帧ä¿æ¤"
+
+msgid "802.11w maximum timeout"
+msgstr "802.11w æ大è¶
æ¶"
+
+msgid "802.11w retry timeout"
+msgstr "802.11w éè¯è¶
æ¶"
msgid "BSSID "
-msgstr "BSSID "
+msgstr "BSSID "
msgid "DNS query port"
-msgstr "DNS æ¥è¯¢ç«¯å£"
+msgstr "DNS æ¥è¯¢ç«¯å£"
msgid "DNS server port"
-msgstr "DNS æå¡å¨ç«¯å£"
+msgstr "DNS æå¡å¨ç«¯å£"
msgid ""
"DNS servers will be queried in the "
"order of the resolvfile"
-msgstr "å°ä¼æç
§æå®ç顺åºæ¥è¯¢DNS "
+msgstr ""
+"æç
§â解ææ件âéç顺åºæ¥è¯¢ DNS æå¡"
+"å¨"
msgid "ESSID "
-msgstr "ESSID "
+msgstr "ESSID "
msgid "IPv4 -Address"
-msgstr "IPv4 -å°å"
+msgstr "IPv4 å°å"
msgid "IPv4 -Gateway"
-msgstr "IPv4 -ç½å
³"
+msgstr "IPv4 ç½å
³"
msgid "IPv4 -Netmask"
-msgstr "IPv4 -åç½æ©ç "
+msgstr "IPv4 åç½æ©ç "
msgid ""
"IPv6 -Address or Network "
"(CIDR)"
msgstr ""
-"IPv6 -å°åæè¶
ç½(CIDR )"
+"IPv6 å°åæç½æ®µï¼CIDRï¼"
msgid "IPv6 -Gateway"
-msgstr "IPv6 -ç½å
³"
+msgstr "IPv6 ç½å
³"
msgid "IPv6 -Suffix (hex)"
-msgstr "IPv6 -åç¼ï¼åå
è¿å¶ï¼"
+msgstr ""
+"IPv6 åç¼ï¼åå
è¿å¶ï¼"
msgid "LED Configuration"
-msgstr "LED é
ç½®"
+msgstr "LED é
ç½®"
msgid "LED Name"
-msgstr "LED å称"
+msgstr "LED å称"
msgid "MAC -Address"
-msgstr "MAC -å°å"
+msgstr "MAC å°å"
msgid ""
"Max. DHCP leases"
-msgstr "æ大DHCP åé
æ°é"
+msgstr ""
+"æ大 DHCP ç§çº¦æ°é"
msgid ""
"Max. EDNS0 packet size"
-msgstr "æ大EDNS0 æ°æ®å
大å°"
+msgstr ""
+"æ大 EDNS0"
+"abbr> æ°æ®å
大å°"
msgid "Max. concurrent queries"
msgstr "æ大并åæ¥è¯¢æ°"
@@ -122,6 +141,12 @@ msgstr "æ大并åæ¥è¯¢æ°"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+" 注æï¼å¦æ crontab æ件å¨ç¼è¾å为空ï¼åéè¦æå¨éæ°å¯å¨ cron æå¡ã"
+
msgid "A43C + J43 + A43"
msgstr "A43C + J43 + A43"
@@ -140,37 +165,34 @@ msgstr "ANSI T1.413"
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "ARæ¯æ"
-
msgid "ARP retry threshold"
-msgstr "ARPéè¯éå¼"
+msgstr "ARP éè¯éå¼"
msgid "ATM (Asynchronous Transfer Mode)"
-msgstr "ATM(å¼æ¥ä¼ è¾æ¨¡å¼)"
+msgstr "ATMï¼å¼æ¥ä¼ è¾æ¨¡å¼ï¼"
msgid "ATM Bridges"
-msgstr "ATMæ¡¥æ¥"
+msgstr "ATM æ¡¥æ¥"
msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATMèæééæ è¯(VCI)"
+msgstr "ATM èæééæ è¯ï¼VCIï¼"
msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATMèæè·¯å¾æ è¯(VPI)"
+msgstr "ATM èæè·¯å¾æ è¯ï¼VPIï¼"
msgid ""
"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
"Linux network interfaces which can be used in conjunction with DHCP or PPP "
"to dial into the provider network."
msgstr ""
-"ATMæ¡¥æ¯ä»¥AAL5åè®®å°è£
以太ç½çèæLinuxç½æ¡¥ï¼ç¨äºååDHCPæPPPæ¥æ¨å·è¿æ¥å°ç½ç»"
-"è¿è¥åã"
+"ATM æ¡¥æ¯ä»¥ AAL5 åè®®å°è£
以太ç½çèæ Linux ç½æ¡¥ï¼ç¨äºåå DHCP æ PPP æ¥æ¨å·"
+"è¿æ¥å°ç½ç»è¿è¥åã"
msgid "ATM device number"
-msgstr "ATM设å¤å·ç "
+msgstr "ATM 设å¤å·ç "
msgid "ATU-C System Vendor ID"
-msgstr "ATU-Cç³»ç»ä¾åºåID"
+msgstr "ATU-C ç³»ç»ä¾åºå ID"
msgid "AYIYA"
msgstr "AYIYA"
@@ -179,7 +201,7 @@ msgid "Access Concentrator"
msgstr "æ¥å
¥éä¸å¨"
msgid "Access Point"
-msgstr "æ¥å
¥ç¹AP"
+msgstr "æ¥å
¥ç¹ AP"
msgid "Action"
msgstr "å¨ä½"
@@ -191,37 +213,37 @@ msgid "Activate this network"
msgstr "æ¿æ´»æ¤ç½ç»"
msgid "Active IPv4 -Routes"
-msgstr "æ´»å¨çIPv4 -é¾è·¯"
+msgstr "æ´»å¨ç IPv4 è·¯ç±"
msgid "Active IPv6 -Routes"
-msgstr "æ´»å¨çIPv6 -é¾è·¯"
+msgstr "æ´»å¨ç IPv6 è·¯ç±"
msgid "Active Connections"
msgstr "æ´»å¨è¿æ¥"
msgid "Active DHCP Leases"
-msgstr "å·²åé
çDHCPç§çº¦"
+msgstr "å·²åé
ç DHCP ç§çº¦"
msgid "Active DHCPv6 Leases"
-msgstr "å·²åé
çDHCPv6ç§çº¦"
+msgstr "å·²åé
ç DHCPv6 ç§çº¦"
msgid "Ad-Hoc"
-msgstr "ç¹å¯¹ç¹Ad-Hoc"
+msgstr "ç¹å¯¹ç¹ Ad-Hoc"
msgid "Add"
msgstr "æ·»å "
msgid "Add local domain suffix to names served from hosts files"
-msgstr "æ·»å æ¬å°åååç¼å°HOSTSæ件ä¸çåå"
+msgstr "æ·»å æ¬å°åååç¼å° HOSTS æ件ä¸çåå"
msgid "Add new interface..."
msgstr "æ·»å æ°æ¥å£..."
msgid "Additional Hosts files"
-msgstr "é¢å¤çHOSTSæ件"
+msgstr "é¢å¤ç HOSTS æ件"
msgid "Additional servers file"
-msgstr "é¢å¤çSERVERSæ件"
+msgstr "é¢å¤ç SERVERS æ件"
msgid "Address"
msgstr "å°å"
@@ -236,7 +258,7 @@ msgid "Advanced Settings"
msgstr "é«çº§è®¾ç½®"
msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "æ»åå°åç(ACTATP)"
+msgstr "æ»åå°åçï¼ACTATPï¼"
msgid "Alert"
msgstr "è¦æ"
@@ -244,13 +266,13 @@ msgstr "è¦æ"
msgid ""
"Allocate IP addresses sequentially, starting from the lowest available "
"address"
-msgstr "ä»æä½å¯ç¨å°åå¼å§é¡ºåºåé
IPå°å"
+msgstr "ä»æä½å¯ç¨å°åå¼å§é¡ºåºåé
IP å°å"
msgid "Allocate IP sequentially"
-msgstr "顺åºåé
IP"
+msgstr "顺åºåé
IP"
msgid "Allow SSH password authentication"
-msgstr "å
许SSH å¯ç éªè¯"
+msgstr "å
许 SSH å¯ç éªè¯"
msgid "Allow all except listed"
msgstr "ä»
å
许å表å¤"
@@ -262,36 +284,36 @@ msgid "Allow localhost"
msgstr "å
许æ¬æº"
msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "å
许è¿ç¨ä¸»æºè¿æ¥å°æ¬å°SSH转å端å£"
+msgstr "å
许è¿ç¨ä¸»æºè¿æ¥å°æ¬å° SSH 转å端å£"
msgid "Allow root logins with password"
-msgstr "å
许rootç¨æ·åå¯ç ç»å½"
+msgstr "å
许 root ç¨æ·åå¯ç ç»å½"
msgid "Allow the root user to login with password"
-msgstr "å
许root ç¨æ·åå¯ç ç»å½"
+msgstr "å
许 root ç¨æ·åå¯ç ç»å½"
msgid ""
"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "å
许127.0.0.0/8åç¯èå´å
çä¸è¡ååºï¼ä¾å¦ï¼RBLæå¡"
+msgstr "å
许 127.0.0.0/8 åç¯èå´å
çä¸è¡ååºï¼ä¾å¦ï¼RBL æå¡"
msgid "Allowed IPs"
-msgstr "å
许çIP"
+msgstr "å
许ç IP"
msgid ""
"Also see Tunneling Comparison on SIXXS"
msgstr ""
-"ä¹è¯·æ¥çSIXXSä¸çé§éå¯¹æ¯ "
msgid "Always announce default router"
-msgstr "æ»æ¯å¹¿æé»è®¤è·¯ç±"
+msgstr "æ»æ¯éåé»è®¤è·¯ç±"
msgid "Annex"
msgstr "Annex"
msgid "Annex A + L + M (all)"
-msgstr "Annex A + L + M (å
¨é¨)"
+msgstr "Annex A + L + Mï¼å
¨é¨ï¼"
msgid "Annex A G.992.1"
msgstr "Annex A G.992.1"
@@ -306,7 +328,7 @@ msgid "Annex A G.992.5"
msgstr "Annex A G.992.5"
msgid "Annex B (all)"
-msgstr "Annex B (å
¨é¨)"
+msgstr "Annex Bï¼å
¨é¨ï¼"
msgid "Annex B G.992.1"
msgstr "Annex B G.992.1"
@@ -318,13 +340,13 @@ msgid "Annex B G.992.5"
msgstr "Annex B G.992.5"
msgid "Annex J (all)"
-msgstr "Annex J (å
¨é¨)"
+msgstr "Annex Jï¼å
¨é¨ï¼"
msgid "Annex L G.992.3 POTS 1"
msgstr "Annex L G.992.3 POTS 1"
msgid "Annex M (all)"
-msgstr "Annex M (å
¨é¨)"
+msgstr "Annex Mï¼å
¨é¨ï¼"
msgid "Annex M G.992.3"
msgstr "Annex M G.992.3"
@@ -333,13 +355,13 @@ msgid "Annex M G.992.5"
msgstr "Annex M G.992.5"
msgid "Announce as default router even if no public prefix is available."
-msgstr "å³ä½¿æ²¡æå¯ç¨çå
Œ
±åç¼ä¹å¹¿æé»è®¤è·¯ç±ã"
+msgstr "å³ä½¿æ²¡æå¯ç¨çå
¬ç½åç¼ï¼ä¹ä»éåèªå·±ä¸ºé»è®¤è·¯ç±ã"
msgid "Announced DNS domains"
-msgstr "广æçDNSåå"
+msgstr "éåç DNS åå"
msgid "Announced DNS servers"
-msgstr "广æçDNSæå¡å¨"
+msgstr "éåç DNS æå¡å¨"
msgid "Anonymous Identity"
msgstr "å¿å身份"
@@ -348,7 +370,7 @@ msgid "Anonymous Mount"
msgstr "èªå¨æè½½æªé
ç½®çç£çååº"
msgid "Anonymous Swap"
-msgstr "èªå¨æè½½æªé
ç½®çSwapååº"
+msgstr "èªå¨æè½½æªé
ç½®ç Swap ååº"
msgid "Antenna 1"
msgstr "天线 1"
@@ -370,27 +392,21 @@ msgstr "æ£å¨åºç¨æ´æ¹"
msgid ""
"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr "ç»æ¯ä¸ªå
Œ
±IPv6åç¼åé
æå®é¿åº¦çåºå®é¨å"
+msgstr "å°æ¯ä¸ªå
Œ
± IPv6 åç¼çç»å®é¿åº¦é¨ååé
ç»æ¤æ¥å£"
msgid "Assign interfaces..."
msgstr "åé
æ¥å£..."
msgid ""
"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr "æå®æ¤æ¥å£ä½¿ç¨çåå
è¿å¶åIDåç¼é¨å"
+msgstr "å°æ¤åå
è¿å¶å ID åç¼åé
ç»æ¤æ¥å£"
msgid "Associated Stations"
msgstr "å·²è¿æ¥ç«ç¹"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Qualcomm/Atheros 802.11%s æ 线ç½å¡"
-
msgid "Auth Group"
msgstr "认è¯ç»"
-msgid "AuthGroup"
-msgstr "认è¯ç»"
-
msgid "Authentication"
msgstr "认è¯"
@@ -398,7 +414,7 @@ msgid "Authentication Type"
msgstr "认è¯ç±»å"
msgid "Authoritative"
-msgstr "ææçå¯ä¸DHCPæå¡å¨"
+msgstr "å¯ä¸ææ"
msgid "Authorization Required"
msgstr "éè¦ææ"
@@ -410,22 +426,22 @@ msgid "Automatic"
msgstr "èªå¨"
msgid "Automatic Homenet (HNCP)"
-msgstr "èªå¨å®¶åºç½ç»(HNCP)"
+msgstr "èªå¨å®¶åºç½ç»ï¼HNCPï¼"
msgid "Automatically check filesystem for errors before mounting"
msgstr "å¨æè½½åèªå¨æ£æ¥æ件系ç»é误"
msgid "Automatically mount filesystems on hotplug"
-msgstr "éè¿Hotplugèªå¨æè½½ç£ç"
+msgstr "éè¿ hotplug èªå¨æè½½ç£ç"
msgid "Automatically mount swap on hotplug"
-msgstr "éè¿Hotplugèªå¨æè½½Swapååº"
+msgstr "éè¿ hotplug èªå¨æè½½ swap ååº"
msgid "Automount Filesystem"
msgstr "èªå¨æè½½ç£ç"
msgid "Automount Swap"
-msgstr "èªå¨æè½½Swap"
+msgstr "èªå¨æè½½ Swap"
msgid "Available"
msgstr "å¯ç¨"
@@ -434,7 +450,7 @@ msgid "Available packages"
msgstr "å¯ç¨è½¯ä»¶å
"
msgid "Average:"
-msgstr "å¹³å:"
+msgstr "å¹³åï¼"
msgid "B43 + B43C"
msgstr "B43 + B43C"
@@ -463,9 +479,6 @@ msgstr "è¿åè³æ¦åµ"
msgid "Back to scan results"
msgstr "è¿åè³æ«æç»æ"
-msgid "Background Scan"
-msgstr "åå°æç´¢"
-
msgid "Backup / Flash Firmware"
msgstr "å¤ä»½/å级"
@@ -482,7 +495,7 @@ msgid "Band"
msgstr "é¢å®½"
msgid "Behind NAT"
-msgstr "å¨NATç½ç»å
"
+msgstr "å¨ NAT ç½ç»å
"
msgid ""
"Below is the determined list of files to backup. It consists of changed "
@@ -499,7 +512,7 @@ msgid "Bind only to specific interfaces rather than wildcard address."
msgstr "ä»
ç»å®å°ç¹å®æ¥å£ï¼èä¸æ¯å
¨é¨å°åã"
msgid "Bind the tunnel to this interface (optional)."
-msgstr "å°é§éç»å®å°æ¤æ¥å£(å¯é)ã"
+msgstr "å°é§éç»å®å°æ¤æ¥å£ï¼å¯éï¼ã"
msgid "Bitrate"
msgstr "ä¼ è¾éç"
@@ -520,10 +533,10 @@ msgid "Bring up on boot"
msgstr "å¼æºèªå¨è¿è¡"
msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s æ 线ç½å¡"
+msgstr "Broadcom 802.11%s æ 线æ§å¶å¨"
msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 æ 线ç½å¡"
+msgstr "Broadcom BCM%04x 802.11 æ 线æ§å¶å¨"
msgid "Buffered"
msgstr "å·²ç¼å²"
@@ -537,10 +550,10 @@ msgid "Buttons"
msgstr "æé®"
msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr "CAè¯ä¹¦ï¼å¦æç空çè¯è¯ä¹¦å°å¨ç¬¬ä¸æ¬¡è¿æ¥æ¶è¢«ä¿åã"
+msgstr "CA è¯ä¹¦ï¼å¦æç空ï¼åè¯ä¹¦å°å¨ç¬¬ä¸æ¬¡è¿æ¥å被ä¿åã"
msgid "CPU usage (%)"
-msgstr "CPU使ç¨ç(%)"
+msgstr "CPU 使ç¨çï¼%ï¼"
msgid "Cancel"
msgstr "åæ¶"
@@ -570,7 +583,7 @@ msgid "Check fileystems before mount"
msgstr "å¨æè½½åæ£æ¥æ件系ç»"
msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
+msgstr "éä¸æ¤é项以ä»æ 线ä¸å é¤ç°æç½ç»ã"
msgid "Checksum"
msgstr "æ ¡éªå¼"
@@ -580,35 +593,39 @@ msgid ""
"unspecified to remove the interface from the associated zone or "
"fill out the create field to define a new zone and attach the "
"interface to it."
-msgstr "æ¤æ¥å£çé²ç«å¢åºåãå¡«åå建 æ å¯æ°å»ºé²ç«å¢åºåã"
+msgstr ""
+"为æ¤æ¥å£åé
æå±çé²ç«å¢åºåï¼éæ©âä¸æå®âå¯å°è¯¥æ¥å£ç§»åºå·²å
³èçåºåï¼æè
å¡«"
+"åâå建âæ æ¥å建ä¸ä¸ªæ°çåºåï¼å¹¶å°å½åæ¥å£ä¸ä¹å»ºç«å
³èã"
msgid ""
"Choose the network(s) you want to attach to this wireless interface or fill "
"out the create field to define a new network."
-msgstr "éæ©ææ´¾å°æ¤æ 线æ¥å£çç½ç»ãå¡«åå建 æ å¯æ°å»ºç½ç»ã"
+msgstr "éæ©ææ´¾å°æ¤æ 线æ¥å£çç½ç»ï¼æè
å¡«åâå建âæ æ¥æ°å»ºç½ç»ã"
msgid "Cipher"
msgstr "ç®æ³"
msgid "Cisco UDP encapsulation"
-msgstr "Cisco UDPå°è£
"
+msgstr "Cisco UDP å°è£
"
msgid ""
"Click \"Generate archive\" to download a tar archive of the current "
"configuration files. To reset the firmware to its initial state, click "
"\"Perform reset\" (only possible with squashfs images)."
-msgstr "å¤ä»½/æ¢å¤å½åç³»ç»é
ç½®æ件æéç½®OpenWrt(ä»
squashfsåºä»¶ææ)ã"
+msgstr ""
+"ç¹å»âçæå¤ä»½âä¸è½½å½åé
ç½®æ件ç tar åæ¡£ãè¦å°åºä»¶æ¢å¤å°åå§ç¶æï¼è¯·åå»âæ§"
+"è¡éç½®âï¼ä»
squashfs æ ¼å¼çåºä»¶ææï¼ã"
msgid "Client"
-msgstr "客æ·ç«¯Client"
+msgstr "客æ·ç«¯ Client"
msgid "Client ID to send when requesting DHCP"
-msgstr "请æ±DHCPæ¶åéç客æ·ID"
+msgstr "è¯·æ± DHCP æ¶åéç客æ·ç«¯ ID"
msgid ""
"Close inactive connection after the given amount of seconds, use 0 to "
"persist connection"
-msgstr "å®æ¶å
³ééæ´»å¨é¾æ¥(ç§)ï¼0为æç»è¿æ¥"
+msgstr "å¨ç»å®æ¶é´ï¼ç§ï¼åå
³ééæ´»å¨é¾æ¥ï¼0 为ä¿æè¿æ¥"
msgid "Close list..."
msgstr "å
³éå表..."
@@ -617,19 +634,23 @@ msgid "Collecting data..."
msgstr "æ£å¨æ¶éæ°æ®..."
msgid "Command"
-msgstr "è¿ç¨å½ä»¤"
+msgstr "å½ä»¤"
msgid "Common Configuration"
-msgstr "ä¸è¬è®¾ç½®"
+msgstr "ä¸è¬é
ç½®"
-msgid "Compression"
-msgstr "å缩"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "é
ç½®"
msgid "Configuration applied."
-msgstr "é
置已åºç¨"
+msgstr "é
置已åºç¨ã"
msgid "Configuration files will be kept."
msgstr "é
ç½®æ件å°è¢«ä¿çã"
@@ -647,10 +668,10 @@ msgid "Connection Limit"
msgstr "è¿æ¥æ°éå¶"
msgid "Connection to server fails when TLS cannot be used"
-msgstr "å½TLSä¸å¯ç¨æ¶è¿æ¥å°æå¡å¨å¤±è´¥"
+msgstr "å½ TLS ä¸å¯ç¨æ¶ï¼ä¸æå¡å¨è¿æ¥å¤±è´¥"
msgid "Connections"
-msgstr "é¾æ¥"
+msgstr "è¿æ¥"
msgid "Country"
msgstr "å½å®¶"
@@ -665,7 +686,7 @@ msgid "Cover the following interfaces"
msgstr "å
æ¬ä»¥ä¸æ¥å£"
msgid "Create / Assign firewall-zone"
-msgstr "å建/åé
é²ç«å¢åºå"
+msgstr "å建/åé
é²ç«å¢åºå"
msgid "Create Interface"
msgstr "å建æ°æ¥å£"
@@ -677,60 +698,59 @@ msgid "Critical"
msgstr "è´å½é误"
msgid "Cron Log Level"
-msgstr "Cronæ¥å¿çº§å«"
+msgstr "Cron æ¥å¿çº§å«"
msgid "Custom Interface"
msgstr "èªå®ä¹æ¥å£"
msgid "Custom delegated IPv6-prefix"
-msgstr "èªå®ä¹åé
çIPv6åç¼"
+msgstr "èªå®ä¹åé
ç IPv6 åç¼"
msgid ""
"Custom feed definitions, e.g. private feeds. This file can be preserved in a "
"sysupgrade."
-msgstr ""
-"èªå®ä¹ç软件æºå°åï¼ä¾å¦ç§æç软件æºï¼ãæ¤å¤è®¾å®çæºå°åå¨ç³»ç»å级æ¶å°è¢«ä¿ç"
+msgstr "èªå®ä¹è½¯ä»¶æºå°åï¼ä¾å¦ï¼ç§æç软件æºãæ¤æ件å¨ç³»ç»å级æ¶å°è¢«ä¿çã"
msgid "Custom feeds"
-msgstr "èªå®ä¹ç软件æº"
+msgstr "èªå®ä¹è½¯ä»¶æº"
msgid ""
"Customizes the behaviour of the device LED s if possible."
-msgstr "èªå®ä¹LED çæ´»å¨ç¶æã"
+msgstr "èªå®ä¹æ¤è®¾å¤ç LED è¡ä¸ºã"
msgid "DHCP Leases"
-msgstr "DHCPåé
"
+msgstr "DHCP åé
"
msgid "DHCP Server"
-msgstr "DHCPæå¡å¨"
+msgstr "DHCP æå¡å¨"
msgid "DHCP and DNS"
msgstr "DHCP/DNS"
msgid "DHCP client"
-msgstr "DHCP客æ·ç«¯"
+msgstr "DHCP 客æ·ç«¯"
msgid "DHCP-Options"
-msgstr "DHCP-é项"
+msgstr "DHCP é项"
msgid "DHCPv6 Leases"
-msgstr "DHCPv6åé
"
+msgstr "DHCPv6 åé
"
msgid "DHCPv6 client"
-msgstr "DHCPv6客æ·ç«¯"
+msgstr "DHCPv6 客æ·ç«¯"
msgid "DHCPv6-Mode"
-msgstr "DHCPv6模å¼"
+msgstr "DHCPv6 模å¼"
msgid "DHCPv6-Service"
-msgstr "DHCPv6æå¡"
+msgstr "DHCPv6 æå¡"
msgid "DNS"
msgstr "DNS"
msgid "DNS forwardings"
-msgstr "DNS转å"
+msgstr "DNS 转å"
msgid "DNS-Label / FQDN"
msgstr "DNS-Label / FQDN"
@@ -739,25 +759,25 @@ msgid "DNSSEC"
msgstr "DNSSEC"
msgid "DNSSEC check unsigned"
-msgstr "DNSSECæªç¾åæ£æ¥"
+msgstr "DNSSEC æ£æ¥æªç¾å"
msgid "DPD Idle Timeout"
-msgstr "DPD空é²è¶
æ¶"
+msgstr "DPD 空é²è¶
æ¶"
msgid "DS-Lite AFTR address"
-msgstr "DS-Lite AFTRå°å"
+msgstr "DS-Lite AFTR å°å"
msgid "DSL"
msgstr "DSL"
msgid "DSL Status"
-msgstr "DSLç¶æ"
+msgstr "DSL ç¶æ"
msgid "DSL line mode"
-msgstr "DSL线路模å¼"
+msgstr "DSL 线路模å¼"
msgid "DUID"
-msgstr "DUID (DHCPå¯ä¸æ è¯ç¬¦)"
+msgstr "DUID"
msgid "Data Rate"
msgstr "æ°æ®éç"
@@ -766,13 +786,13 @@ msgid "Debug"
msgstr "è°è¯"
msgid "Default %d"
-msgstr "é»è®¤%d"
+msgstr "é»è®¤ %d"
msgid "Default gateway"
msgstr "é»è®¤ç½å
³"
msgid "Default is stateless + stateful"
-msgstr "é»è®¤æ¯æ ç¶æ + æç¶æ"
+msgstr "é»è®¤æ¯æ ç¶æç + æç¶æç"
msgid "Default route"
msgstr "é»è®¤è·¯ç±"
@@ -781,15 +801,15 @@ msgid "Default state"
msgstr "é»è®¤ç¶æ"
msgid "Define a name for this network."
-msgstr "为ç½ç»å®ä¹å称"
+msgstr "为ç½ç»å®ä¹å称ã"
msgid ""
"Define additional DHCP options, for example "
"\"6,192.168.2.1,192.168.2.2
\" which advertises different DNS "
"servers to clients."
msgstr ""
-"设置DHCPçéå é项ï¼ä¾å¦è®¾å®\"6,192.168.2.1,192.168.2.2
\"表示é"
-"åä¸åçDNSæå¡å¨ç»å®¢æ·ç«¯ã"
+"设置 DHCP çéå é项ï¼ä¾å¦è®¾å® \"6,192.168.2.1,192.168.2.2
\" 表"
+"示éåä¸åç DNS æå¡å¨ç»å®¢æ·ç«¯ã"
msgid "Delete"
msgstr "å é¤"
@@ -833,22 +853,24 @@ msgstr "ç¦ç¨"
msgid ""
"Disable DHCP for "
"this interface."
-msgstr "ç¦ç¨æ¬æ¥å£çDHCP ã"
+msgstr ""
+"ä¸å¨æ¤æ¥å£æä¾ DHCP"
+"abbr> æå¡ã"
msgid "Disable DNS setup"
-msgstr "åç¨DNS设å®"
+msgstr "åç¨ DNS 设å®"
msgid "Disable Encryption"
msgstr "ç¦ç¨å å¯"
-msgid "Disable HW-Beacon timer"
-msgstr "åç¨HW-Beacon计æ¶å¨"
-
msgid "Disabled"
msgstr "ç¦ç¨"
+msgid "Disabled (default)"
+msgstr "ç¦ç¨ï¼é»è®¤ï¼"
+
msgid "Discard upstream RFC1918 responses"
-msgstr "丢å¼RFC1918ä¸è¡ååºæ°æ®"
+msgstr "ä¸¢å¼ RFC1918 ä¸è¡ååºæ°æ®"
msgid "Displaying only packages containing"
msgstr "åªæ¾ç¤ºæå
容ç软件å
"
@@ -857,32 +879,32 @@ msgid "Distance Optimization"
msgstr "è·ç¦»ä¼å"
msgid "Distance to farthest network member in meters."
-msgstr "æè¿å®¢æ·ç«¯çè·ç¦»(ç±³)ã"
+msgstr "æè¿ç½ç»ç¨æ·çè·ç¦»ï¼ç±³ï¼ã"
msgid "Distribution feeds"
msgstr "åè¡ç软件æº"
msgid "Diversity"
-msgstr "åé"
+msgstr "å·®å¼"
msgid ""
"Dnsmasq is a combined DHCP -Server and DNS -"
"Forwarder for NAT "
"firewalls"
-msgstr "Dnsmasq为NATé²ç«å¢æä¾äºä¸ä¸ªéæçDHCPæå¡å¨åDNS转åå¨"
+msgstr ""
+"Dnsmasq 为 NAT é²ç«å¢æä¾"
+"äºä¸ä¸ªéæç DHCP "
+"æå¡å¨å DNS 转åå¨"
msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "ä¸ç¼åæ ç¨çååº, æ¯å¦ï¼ä¸åå¨çåã"
+msgstr "ä¸ç¼åæ ç¨çååº, æ¯å¦ï¼ä¸åå¨çåå"
msgid "Do not forward requests that cannot be answered by public name servers"
msgstr "ä¸è½¬åå
Œ
±ååæå¡å¨æ æ³ååºç请æ±"
msgid "Do not forward reverse lookups for local networks"
-msgstr "ä¸è½¬åååæ¥è¯¢æ¬å°ç½ç»çLookupså½ä»¤"
-
-msgid "Do not send probe responses"
-msgstr "ä¸åéæ¢æµååº"
+msgstr "ä¸è½¬åæ¬å°ç½ç»çååæ¥è¯¢"
msgid "Domain required"
msgstr "忽ç¥ç©ºåå解æ"
@@ -891,12 +913,13 @@ msgid "Domain whitelist"
msgstr "ååç½åå"
msgid "Don't Fragment"
-msgstr "ç¦æ¢ç¢ç"
+msgstr "ç¦æ¢åç"
msgid ""
"Don't forward DNS -Requests without "
"DNS -Name"
-msgstr "ä¸è½¬å没æDNSå称ç解æ请æ±"
+msgstr ""
+"ä¸è½¬å没æ DNS å称ç解æ请æ±"
msgid "Download and install package"
msgstr "ä¸è½½å¹¶å®è£
软件å
"
@@ -905,20 +928,20 @@ msgid "Download backup"
msgstr "ä¸è½½å¤ä»½"
msgid "Dropbear Instance"
-msgstr "Dropbear设置"
+msgstr "Dropbear å®ä¾"
msgid ""
"Dropbear offers SSH network shell access "
"and an integrated SCP server"
msgstr ""
-"Dropbearæä¾äºéæçSCP æå¡å¨ååºäºSSH çShell访é®"
+"Dropbear æä¾ SSH 访é®å SCP æå¡"
msgid "Dual-Stack Lite (RFC6333)"
msgstr "Dual-Stack Lite (RFC6333)"
msgid "Dynamic DHCP "
-msgstr "å¨æDHCP "
+msgstr "å¨æ DHCP "
msgid "Dynamic tunnel"
msgstr "å¨æé§é"
@@ -926,13 +949,14 @@ msgstr "å¨æé§é"
msgid ""
"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
"having static leases will be served."
-msgstr "å¨æåé
DHCPå°åãå¦æç¦ç¨ï¼ååªè½ä¸ºéæç§ç¨è¡¨ä¸ç客æ·ç«¯æä¾ç½ç»æå¡ã"
+msgstr ""
+"为ææ客æ·ç«¯æä¾ DHCP æå¡ãå¦æç¦ç¨ï¼å°åªå¯¹å
·æéæç§çº¦ç客æ·æä¾æå¡ã"
msgid "EA-bits length"
-msgstr "EAä½é¿åº¦"
+msgstr "EA-bits é¿åº¦"
msgid "EAP-Method"
-msgstr "EAPç±»å"
+msgstr "EAP ç±»å"
msgid "Edit"
msgstr "ä¿®æ¹"
@@ -940,7 +964,7 @@ msgstr "ä¿®æ¹"
msgid ""
"Edit the raw configuration data above to fix any error and hit \"Save\" to "
"reload the page."
-msgstr "ç¼è¾ä¸æ¹çåå§é
置以修å¤é误并æä¸âä¿åâæé®ä»¥éæ°è½½å
¥æ¤é¡µé¢ã"
+msgstr "ç¼è¾ä¸æ¹çåå§é
ç½®æ°æ®æ¥ä¿®å¤é误ï¼ç¹å»âä¿åâæé®ä»¥éæ°è½½å
¥æ¤é¡µé¢ã"
msgid "Edit this interface"
msgstr "ä¿®æ¹æ¤æ¥å£"
@@ -955,34 +979,37 @@ msgid "Enable"
msgstr "å¯ç¨"
msgid "Enable STP "
-msgstr "å¼å¯STP "
+msgstr "å¼å¯ STP "
msgid "Enable HE.net dynamic endpoint update"
-msgstr "å¯ç¨HE.netå¨æç»ç«¯æ´æ°"
+msgstr "å¯ç¨ HE.net å¨æç»ç«¯æ´æ°"
msgid "Enable IPv6 negotiation"
-msgstr "å¯ç¨IPv6åå"
+msgstr "å¯ç¨ IPv6 åå"
msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "å¨PPPé¾è·¯ä¸å¯ç¨IPv6åå"
+msgstr "å¨ PPP é¾è·¯ä¸å¯ç¨ IPv6 åå"
msgid "Enable Jumbo Frame passthrough"
msgstr "å¯ç¨å·¨å帧éä¼ "
msgid "Enable NTP client"
-msgstr "å¯ç¨NTP客æ·ç«¯"
+msgstr "å¯ç¨ NTP 客æ·ç«¯"
msgid "Enable Single DES"
-msgstr "å¯ç¨å个DES"
+msgstr "å¯ç¨å个 DES"
msgid "Enable TFTP server"
-msgstr "å¯ç¨TFTPæå¡å¨"
+msgstr "å¯ç¨ TFTP æå¡å¨"
msgid "Enable VLAN functionality"
-msgstr "å¯ç¨VLAN"
+msgstr "å¯ç¨ VLAN"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "å¯ç¨WPSæé®é
ç½®ï¼è¦æ±ä½¿ç¨WPA(2)-PSK"
+msgstr "å¯ç¨ WPS ä¸é®å å¯æé®ï¼éè¦ WPA(2)-PSK"
+
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
msgid "Enable learning and aging"
msgstr "å¯ç¨æºè½äº¤æ¢å¦ä¹ "
@@ -994,13 +1021,13 @@ msgid "Enable mirroring of outgoing packets"
msgstr "å¯ç¨æµåºæ°æ®å
éå"
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "å¯ç¨å°è£
æ°æ®å
çDF(ç¦æ¢ç¢ç)æ å¿ã"
+msgstr "å¯ç¨åæ¥æç DFï¼ç¦æ¢åçï¼æ å¿ã"
msgid "Enable this mount"
-msgstr "å¯ç¨æè½½ç¹"
+msgstr "å¯ç¨æ¤æè½½ç¹"
msgid "Enable this swap"
-msgstr "å¯ç¨äº¤æ¢åº"
+msgstr "å¯ç¨æ¤ swap ååº"
msgid "Enable/Disable"
msgstr "å¯ç¨/ç¦ç¨"
@@ -1008,8 +1035,13 @@ msgstr "å¯ç¨/ç¦ç¨"
msgid "Enabled"
msgstr "å¯ç¨"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr "å¯ç¨å±äºåä¸ç§»å¨åçæ¥å
¥ç¹ä¹é´çå¿«é漫游"
+
msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "å¨æ¤æ¡¥æ¥ä¸å¯ç¨çæåè®®æ "
+msgstr "å¨æ¤æ¡¥æ¥ä¸å¯ç¨çææ åè®®"
msgid "Encapsulation mode"
msgstr "å°è£
模å¼"
@@ -1030,7 +1062,7 @@ msgid "Error"
msgstr "é误"
msgid "Errored seconds (ES)"
-msgstr "é误ç§æ°(ES)"
+msgstr "é误ç§æ°ï¼ESï¼"
msgid "Ethernet Adapter"
msgstr "以太ç½éé
å¨"
@@ -1042,32 +1074,35 @@ msgid "Exclude interfaces"
msgstr "æé¤æ¥å£"
msgid "Expand hosts"
-msgstr "æ©å±HOSTSæ件ä¸ç主æºåç¼"
+msgstr "æ©å± HOSTS æ件ä¸ç主æºåç¼"
msgid "Expires"
msgstr "å°ææ¶é´"
msgid ""
"Expiry time of leased addresses, minimum is 2 minutes (2m
)."
-msgstr "ç§ç¨å°åçå°ææ¶é´ï¼æç2åé(2m
)ã"
+msgstr "ç§ç¨å°åçå°ææ¶é´ï¼æç 2 åéï¼2m
ï¼ã"
msgid "External"
-msgstr "è¿ç¨"
+msgstr "å¤é¨"
+
+msgid "External R0 Key Holder List"
+msgstr "å¤é¨ R0KH å表"
+
+msgid "External R1 Key Holder List"
+msgstr "å¤é¨ R1KH å表"
msgid "External system log server"
-msgstr "è¿ç¨æ¥å¿æå¡å¨"
+msgstr "å¤é¨ç³»ç»æ¥å¿æå¡å¨å°å"
msgid "External system log server port"
-msgstr "è¿ç¨æ¥å¿æå¡å¨ç«¯å£"
+msgstr "å¤é¨ç³»ç»æ¥å¿æå¡å¨ç«¯å£"
msgid "External system log server protocol"
-msgstr "è¿ç¨æ¥å¿æå¡å¨åè®®"
+msgstr "å¤é¨ç³»ç»æ¥å¿æå¡å¨åè®®"
msgid "Extra SSH command options"
-msgstr "é¢å¤çSSHå½ä»¤é项"
-
-msgid "Fast Frames"
-msgstr "å¿«é帧"
+msgstr "é¢å¤ç SSH å½ä»¤é项"
msgid "File"
msgstr "æ件"
@@ -1090,9 +1125,7 @@ msgstr "è¿æ»¤æ ç¨å
"
msgid ""
"Find all currently attached filesystems and swap and replace configuration "
"with defaults based on what was detected"
-msgstr ""
-"æ¥æ¾ææå½åç³»ç»ä¸çååºåSwap并使ç¨åºäºææ¾å°çååºçæçé
ç½®æ件æ¿æ¢é»è®¤é
"
-"ç½®ã"
+msgstr "æ¥æ¾å½åç³»ç»ä¸çææååºå swap 设å¤ï¼å¹¶æ ¹æ®æ¥æ¾ç»æçæ并æ¿æ¢ç°æé
ç½®"
msgid "Find and join network"
msgstr "æ索并å å
¥ç½ç»"
@@ -1106,6 +1139,9 @@ msgstr "å®æ"
msgid "Firewall"
msgstr "é²ç«å¢"
+msgid "Firewall Mark"
+msgstr "é²ç«å¢æ è¯"
+
msgid "Firewall Settings"
msgstr "é²ç«å¢è®¾ç½®"
@@ -1119,7 +1155,7 @@ msgid "Firmware Version"
msgstr "åºä»¶çæ¬"
msgid "Fixed source port for outbound DNS queries"
-msgstr "æå®çDNSæ¥è¯¢æºç«¯å£"
+msgstr "æå®ç DNS æ¥è¯¢æºç«¯å£"
msgid "Flash Firmware"
msgstr "å·æ°åºä»¶"
@@ -1137,31 +1173,34 @@ msgid "Flashing..."
msgstr "å·åä¸..."
msgid "Force"
-msgstr "强å¶å¼å¯DHCP"
+msgstr "强å¶"
msgid "Force CCMP (AES)"
-msgstr "强å¶ä½¿ç¨CCMP(AES)å å¯"
+msgstr "å¼ºå¶ CCMPï¼AESï¼"
msgid "Force DHCP on this network even if another server is detected."
-msgstr "强å¶å¼å¯DHCPã"
+msgstr "å³ä½¿æ£æµå°å¦ä¸å°æå¡å¨ï¼ä¹è¦å¼ºå¶ä½¿ç¨æ¤ç½ç»ä¸ç DHCPã"
msgid "Force TKIP"
-msgstr "强å¶ä½¿ç¨TKIPå å¯"
+msgstr "å¼ºå¶ TKIP"
msgid "Force TKIP and CCMP (AES)"
-msgstr "TKIPåCCMP(AES)æ··åå å¯"
+msgstr "å¼ºå¶ TKIP å CCMPï¼AESï¼"
+
+msgid "Force link"
+msgstr "强å¶é¾è·¯"
msgid "Force use of NAT-T"
-msgstr "强å¶ä½¿ç¨NAT-T"
+msgstr "强å¶ä½¿ç¨ NAT-T"
msgid "Form token mismatch"
msgstr "表å令çä¸å¹é
"
msgid "Forward DHCP traffic"
-msgstr "转åDHCPæ°æ®å
"
+msgstr "转å DHCP æ°æ®å
"
msgid "Forward Error Correction Seconds (FECS)"
-msgstr "ååçº éç§æ°(FECS)"
+msgstr "ååçº éç§æ°ï¼FECSï¼"
msgid "Forward broadcast traffic"
msgstr "转å广ææ°æ®å
"
@@ -1185,14 +1224,14 @@ msgid ""
"Further information about WireGuard interfaces and peers at wireguard.io ."
msgstr ""
-"æå
³WireGuardæ¥å£åPeerçæ´å¤ä¿¡æ¯ï¼wireguard."
-"io "
+"æå
³ WireGuard æ¥å£å Peer çæ´å¤ä¿¡æ¯ï¼wireguard.io ã"
msgid "GHz"
msgstr "GHz"
msgid "GPRS only"
-msgstr "ä»
GPRS"
+msgstr "ä»
GPRS"
msgid "Gateway"
msgstr "ç½å
³"
@@ -1207,7 +1246,7 @@ msgid "General Setup"
msgstr "åºæ¬è®¾ç½®"
msgid "General options for opkg"
-msgstr "Opkgåºç¡é
ç½®"
+msgstr "OPKG åºç¡é
ç½®"
msgid "Generate Config"
msgstr "çæé
ç½®"
@@ -1216,7 +1255,7 @@ msgid "Generate archive"
msgstr "çæå¤ä»½"
msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generic 802.11%s æ 线ç½å¡"
+msgstr "éç¨ 802.11%s æ 线æ§å¶å¨"
msgid "Given password confirmation did not match, password not changed!"
msgstr "ç±äºå¯ç éªè¯ä¸å¹é
ï¼å¯ç 没ææ´æ¹ï¼"
@@ -1240,13 +1279,13 @@ msgid "Guest"
msgstr "访客"
msgid "HE.net password"
-msgstr "HE.netå¯ç "
+msgstr "HE.net å¯ç "
msgid "HE.net username"
-msgstr "HE.netç¨æ·å"
+msgstr "HE.net ç¨æ·å"
msgid "HT mode (802.11n)"
-msgstr "HT模å¼(802.11n)"
+msgstr "HT 模å¼ï¼802.11nï¼"
msgid "Handler"
msgstr "å¤çç¨åº"
@@ -1255,7 +1294,7 @@ msgid "Hang Up"
msgstr "æèµ·"
msgid "Header Error Code Errors (HEC)"
-msgstr "头é误代ç é误(HEC)"
+msgstr "请æ±å¤´é误代ç é误ï¼HECï¼"
msgid "Heartbeat"
msgstr "å¿è·³"
@@ -1268,13 +1307,13 @@ msgstr "é
置路ç±å¨çé¨ååºç¡ä¿¡æ¯ã"
msgid ""
"Here you can paste public SSH-Keys (one per line) for SSH public-key "
"authentication."
-msgstr "SSHå
Œ
±å¯é¥è®¤è¯(æ¯è¡ä¸ä¸ªå¯é¥)ã"
+msgstr "请å¨æ¤å¤ç²è´´ SSH å
¬é¥ï¼æ¯è¡ä¸ä¸ªï¼ç¨äº SSH å
¬é¥è®¤è¯ã"
msgid "Hermes 802.11b Wireless Controller"
-msgstr "Hermes 802.11b æ 线ç½å¡"
+msgstr "Hermes 802.11b æ 线æ§å¶å¨"
msgid "Hide ESSID "
-msgstr "éèESSID "
+msgstr "éè ESSID "
msgid "Host"
msgstr "主æº"
@@ -1286,13 +1325,13 @@ msgid "Host expiry timeout"
msgstr "主æºå°æè¶
æ¶"
msgid "Host-IP or Network"
-msgstr "主æºIPæç½ç»"
+msgstr "ä¸»æº IP æç½ç»"
msgid "Hostname"
msgstr "主æºå"
msgid "Hostname to send when requesting DHCP"
-msgstr "请æ±DHCPæ¶åéç主æºå"
+msgstr "è¯·æ± DHCP æ¶åéç主æºå"
msgid "Hostnames"
msgstr "主æºå"
@@ -1301,52 +1340,52 @@ msgid "Hybrid"
msgstr "æ··å"
msgid "IKE DH Group"
-msgstr "IKE DHç»"
+msgstr "IKE DH ç»"
msgid "IP Addresses"
-msgstr ""
+msgstr "IP å°å"
msgid "IP address"
-msgstr "IPå°å"
+msgstr "IP å°å"
msgid "IPv4"
msgstr "IPv4"
msgid "IPv4 Firewall"
-msgstr "IPv4é²ç«å¢"
+msgstr "IPv4 é²ç«å¢"
msgid "IPv4 WAN Status"
-msgstr "IPv4 WANç¶æ"
+msgstr "IPv4 WAN ç¶æ"
msgid "IPv4 address"
-msgstr "IPv4å°å"
+msgstr "IPv4 å°å"
msgid "IPv4 and IPv6"
-msgstr "IPv4åIPv6"
+msgstr "IPv4 å IPv6"
msgid "IPv4 assignment length"
-msgstr "åé
IPv4é¿åº¦"
+msgstr "åé
IPv4 é¿åº¦"
msgid "IPv4 broadcast"
-msgstr "IPv4广æ"
+msgstr "IPv4 广æ"
msgid "IPv4 gateway"
-msgstr "IPv4ç½å
³"
+msgstr "IPv4 ç½å
³"
msgid "IPv4 netmask"
-msgstr "IPv4åç½æ©ç "
+msgstr "IPv4 åç½æ©ç "
msgid "IPv4 only"
-msgstr "ä»
IPv4"
+msgstr "ä»
IPv4"
msgid "IPv4 prefix"
-msgstr "IPv4å°ååç¼"
+msgstr "IPv4 å°ååç¼"
msgid "IPv4 prefix length"
-msgstr "IPv4å°ååç¼é¿åº¦"
+msgstr "IPv4 å°ååç¼é¿åº¦"
msgid "IPv4-Address"
-msgstr "IPv4-å°å"
+msgstr "IPv4 å°å"
msgid "IPv4-in-IPv4 (RFC2003)"
msgstr "IPv4-in-IPv4 (RFC2003)"
@@ -1355,49 +1394,55 @@ msgid "IPv6"
msgstr "IPv6"
msgid "IPv6 Firewall"
-msgstr "IPv6é²ç«å¢"
+msgstr "IPv6 é²ç«å¢"
msgid "IPv6 Neighbours"
-msgstr "IPv6é»å±
"
+msgstr "IPv6 ç½ä¸é»å±
"
msgid "IPv6 Settings"
-msgstr "IPv6设置"
+msgstr "IPv6 设置"
msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULAåç¼"
+msgstr "IPv6 ULA åç¼"
msgid "IPv6 WAN Status"
-msgstr "IPv6 WANç¶æ"
+msgstr "IPv6 WAN ç¶æ"
msgid "IPv6 address"
-msgstr "IPv6å°å"
+msgstr "IPv6 å°å"
msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
-msgstr "ç»å®å°æ¬å°é§éç»ç¹çIPv6å°å(å¯é)"
+msgstr "ç»å®å°é§éæ¬ç«¯ç IPv6 å°åï¼å¯éï¼"
msgid "IPv6 assignment hint"
-msgstr "IPv6åé
æ示"
+msgstr "IPv6 åé
æ示"
msgid "IPv6 assignment length"
-msgstr "IPv6åé
é¿åº¦"
+msgstr "IPv6 åé
é¿åº¦"
msgid "IPv6 gateway"
-msgstr "IPv6ç½å
³"
+msgstr "IPv6 ç½å
³"
msgid "IPv6 only"
-msgstr "ä»
IPv6"
+msgstr "ä»
IPv6"
msgid "IPv6 prefix"
-msgstr "IPv6å°ååç¼"
+msgstr "IPv6 å°ååç¼"
msgid "IPv6 prefix length"
-msgstr "IPv6å°ååç¼é¿åº¦"
+msgstr "IPv6 å°ååç¼é¿åº¦"
msgid "IPv6 routed prefix"
-msgstr "IPv6è·¯ç±åç¼"
+msgstr "IPv6 è·¯ç±åç¼"
+
+msgid "IPv6 suffix"
+msgstr "IPv6 åç¼"
msgid "IPv6-Address"
-msgstr "IPv6-å°å"
+msgstr "IPv6 å°å"
+
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6-in-IPv4 (RFC4213)"
@@ -1411,26 +1456,26 @@ msgstr "IPv6-over-IPv4 (6to4)"
msgid "Identity"
msgstr "é´æ"
-msgid "If checked, 1DES is enaled"
-msgstr "éä¸ä»¥å¯ç¨1DES"
+msgid "If checked, 1DES is enabled"
+msgstr "éä¸ä»¥å¯ç¨ 1DES"
msgid "If checked, encryption is disabled"
msgstr "éä¸ä»¥ç¦ç¨å å¯"
msgid ""
"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "ç¨UUIDæ¥æ载设å¤"
+msgstr "å¦ææå®ï¼åéè¿ UUID èä¸æ¯åºå®ç设å¤æ件æ¥æ载设å¤"
msgid ""
"If specified, mount the device by the partition label instead of a fixed "
"device node"
-msgstr "ç¨å·æ æ¥æ载设å¤"
+msgstr "å¦ææå®ï¼åéè¿ååºå·æ èä¸æ¯åºå®ç设å¤æ件æ¥æ载设å¤"
msgid "If unchecked, no default route is configured"
msgstr "ç空åä¸é
ç½®é»è®¤è·¯ç±"
msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "ç空å忽ç¥æéåçDNSæå¡å¨å°å"
+msgstr "ç空å忽ç¥æéåç DNS æå¡å¨å°å"
msgid ""
"If your physical memory is insufficient unused data can be temporarily "
@@ -1438,13 +1483,17 @@ msgid ""
"\"Random Access Memory\">RAM . Be aware that swapping data is a very "
"slow process as the swap-device cannot be accessed with the high datarates "
"of the RAM ."
-msgstr "å¦æç©çå
åä¸è¶³ï¼é²ç½®æ°æ®å¯èªå¨ç§»å°äº¤æ¢åºæåï¼ä»¥æé«å¯ç¨å
åã"
+msgstr ""
+"å¦æç©çå
åä¸è¶³ï¼é²ç½®æ°æ®å¯èªå¨ç§»å° swap åºæåï¼ä»¥å¢å å¯ç¨ç RAM ã请注æï¼swap åºçæ°æ®å¤çä¼é常æ
¢ï¼å 为 "
+"swap 设å¤æ æ³å RAM è¿æ ·çé«éç"
+"访é®ã"
msgid "Ignore /etc/hosts
"
msgstr "å¿½ç¥ /etc/hosts
"
msgid "Ignore interface"
-msgstr "å
³éDHCP"
+msgstr "忽ç¥æ¤æ¥å£"
msgid "Ignore resolve file"
msgstr "忽ç¥è§£ææ件"
@@ -1459,7 +1508,7 @@ msgid ""
"In order to prevent unauthorized access to the system, your request has been "
"blocked. Click \"Continue »\" below to return to the previous page."
msgstr ""
-"为äºé²æ¢å¯¹ç³»ç»çæªææ访é®ï¼æ¨ç请æ±å·²è¢«é»æ¢ãç¹å»ä¸é¢ç âç»§ç» Â»â æ¥è¿åä¸ä¸"
+"为äºé²æ¢æªç»ææ访é®ç³»ç»ï¼æ¨ç请æ±å·²è¢«é»æ¢ãç¹å»ä¸é¢ç âç»§ç» Â»â æ¥è¿åä¸ä¸"
"页ã"
msgid "Inactivity timeout"
@@ -1481,7 +1530,7 @@ msgid "Install"
msgstr "å®è£
"
msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "å®è£
iputils-traceroute6 以è¿è¡IPv6 traceroute"
+msgstr "å®è£
iputils-traceroute6 以è¿è¡ IPv6 è·¯ç±è¿½è¸ª"
msgid "Install package %q"
msgstr "å®è£
软件å
%q"
@@ -1495,6 +1544,9 @@ msgstr "å·²å®è£
软件å
"
msgid "Interface"
msgstr "æ¥å£"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr "æ¥å£è®¾å¤ %q ä» %q èªå¨è¿ç§»å°äº %qã"
+
msgid "Interface Configuration"
msgstr "æ¥å£é
ç½®"
@@ -1532,21 +1584,24 @@ msgid "Invalid"
msgstr "æ æ"
msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "æ æçVLAN IDï¼åªæ %d å %d ä¹é´çIDææã"
+msgstr "æ æç VLAN IDï¼åªæ %d å %d ä¹é´ç ID ææã"
msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "æ æçVLAN IDï¼åªå
许å¯ä¸çIDã"
+msgstr "æ æç VLAN IDï¼åªå
许å¯ä¸ç ID"
msgid "Invalid username and/or password! Please try again."
msgstr "æ æçç¨æ·åå/æå¯ç ï¼è¯·éè¯ã"
+msgid "Isolate Clients"
+msgstr "é离客æ·ç«¯"
+
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
-msgstr "ä½ å°è¯å·åçåºä»¶ä¸æ¬è·¯ç±å¨ä¸å
¼å®¹ï¼è¯·éæ°éªè¯åºä»¶æ件ã"
+msgstr "æ¨å°è¯å·åçåºä»¶ä¸æ¬è·¯ç±å¨ä¸å
¼å®¹ï¼è¯·éæ°éªè¯åºä»¶æ件ã"
-msgid "Java Script required!"
-msgstr "éè¦Java Scriptï¼"
+msgid "JavaScript required!"
+msgstr "éè¦ JavaScriptï¼"
msgid "Join Network"
msgstr "å å
¥ç½ç»"
@@ -1579,13 +1634,13 @@ msgid "L2TP"
msgstr "L2TP"
msgid "L2TP Server"
-msgstr "L2TPæå¡å¨"
+msgstr "L2TP æå¡å¨"
msgid "LCP echo failure threshold"
-msgstr "LCPååºæ
ééå¼"
+msgstr "LCP ååºæ
ééå¼"
msgid "LCP echo interval"
-msgstr "LCPååºé´é"
+msgstr "LCP ååºé´é"
msgid "LLC"
msgstr "LLC"
@@ -1603,7 +1658,7 @@ msgid "Latency"
msgstr "延è¿"
msgid "Leaf"
-msgstr "å¶ç¶"
+msgstr "å¶èç¹"
msgid "Lease time"
msgstr "ç§æ"
@@ -1614,9 +1669,6 @@ msgstr "ææç§æ"
msgid "Leasefile"
msgstr "ç§çº¦æ件"
-msgid "Leasetime"
-msgstr "ç§ç¨æ¶é´"
-
msgid "Leasetime remaining"
msgstr "å©ä½ç§æ"
@@ -1624,7 +1676,7 @@ msgid "Leave empty to autodetect"
msgstr "ç空åèªå¨æ¢æµ"
msgid "Leave empty to use the current WAN address"
-msgstr "ç空å使ç¨å½åWANå°å"
+msgstr "ç空å使ç¨å½å WAN å°å"
msgid "Legend:"
msgstr "å¾ä¾ï¼"
@@ -1633,13 +1685,13 @@ msgid "Limit"
msgstr "客æ·æ°"
msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr "å°DNSæå¡éå¶å°æ们æä¾DNSçåç½æ¥å£ã"
+msgstr "ä»
å¨ç½å¡æå±çåç½ä¸æä¾ DNS æå¡ã"
msgid "Limit listening to these interfaces, and loopback."
msgstr "ä»
çå¬è¿äºæ¥å£åç¯åæ¥å£ã"
msgid "Line Attenuation (LATN)"
-msgstr "线路衰å(LATN)"
+msgstr "线路衰åï¼LATNï¼"
msgid "Line Mode"
msgstr "线路模å¼"
@@ -1656,13 +1708,37 @@ msgstr "æ´»å¨é¾æ¥"
msgid ""
"List of DNS servers to forward "
"requests to"
-msgstr "å°æå®çååDNS解æ转åå°æå®çDNSæå¡å¨ï¼æç
§ç¤ºä¾å¡«åï¼"
+msgstr ""
+"å°è¯·æ±è½¬åå°ç DNS æå¡å¨å表"
+
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+"åä¸ç§»å¨åä¸ç R0KH å表ã æ ¼å¼ï¼MAC å°åï¼NAS æ è¯ç¬¦ï¼128 ä½å¯é¥ï¼åå
"
+"è¿å¶å符串ï¼ã å¨ä»åå§ç§»å¨åå
³èæé´ä½¿ç¨ç R0KH ä¸è¯·æ± PMK-R1 å¯é¥æ¶ï¼"
+"该å表ç¨äºå° R0KH-IDï¼NAS æ è¯ç¬¦ï¼æ å°å°ç®æ MAC å°åã"
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+"åä¸ç§»å¨åä¸ç R1KH å表ã æ ¼å¼ï¼MAC å°åï¼R1KH-IDï¼å
å«åå·ç 6 个å
«ä½"
+"åèï¼ï¼128 ä½å¯é¥ï¼åå
è¿å¶å符串ï¼ã å½ä» R0KH åé PMK-R1 é®æ¶ï¼æ¤å"
+"表ç¨äºå° R1KH-ID æ å°å°ç®æ MAC å°åãè¿ä¹æ¯å¯ä»¥è¯·æ± PMK-R1 é®ç MD ä¸ææç "
+"R1KH çå表ã"
msgid "List of SSH key files for auth"
-msgstr "ç¨äºè®¤è¯çSSHå¯é¥æ件å表"
+msgstr "ç¨äºè®¤è¯ç SSH å¯é¥æ件å表"
msgid "List of domains to allow RFC1918 responses for"
-msgstr "å
许RFC1918ååºçååå表"
+msgstr "å
许 RFC1918 ååºçååå表"
msgid "List of hosts that supply bogus NX domain results"
msgstr "å
许èå空ååååºçæå¡å¨å表"
@@ -1674,10 +1750,10 @@ msgid "Listen Port"
msgstr "çå¬ç«¯å£"
msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "çå¬æå®çæ¥å£ï¼æªæå®åçå¬å
¨é¨"
+msgstr "ä»
çå¬æå®çæ¥å£ï¼æªæå®åçå¬å
¨é¨"
msgid "Listening port for inbound DNS queries"
-msgstr "å
¥ç«DNSæ¥è¯¢ç«¯å£"
+msgstr "å
¥ç« DNS æ¥è¯¢ç«¯å£"
msgid "Load"
msgstr "è´è½½"
@@ -1689,13 +1765,13 @@ msgid "Loading"
msgstr "å è½½ä¸"
msgid "Local IP address to assign"
-msgstr "è¦åé
çæ¬å°IPå°å"
+msgstr "è¦åé
çæ¬å° IP å°å"
msgid "Local IPv4 address"
-msgstr "æ¬å°IPv4å°å"
+msgstr "æ¬å° IPv4 å°å"
msgid "Local IPv6 address"
-msgstr "æ¬å°IPv6å°å"
+msgstr "æ¬å° IPv6 å°å"
msgid "Local Service Only"
msgstr "ä»
æ¬å°æå¡"
@@ -1712,10 +1788,10 @@ msgstr "æ¬å°åå"
msgid ""
"Local domain specification. Names matching this domain are never forwarded "
"and are resolved from DHCP or hosts files only"
-msgstr "æ¬å°ååè§åãä¸æ¤åå¹é
çå称ä»ä¸è½¬åï¼ä»
ä»DHCPæHOSTSæ件解æ"
+msgstr "æ¬å°ååè§åãä¸æ¤åå¹é
çå称ä»ä¸è½¬åï¼ä»
ä» DHCP æ HOSTS æ件解æ"
msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr "æ¬å°åååç¼å°æ·»å å°DHCPåHOSTSæ件æ¡ç®"
+msgstr "æ¬å°åååç¼å°æ·»å å° DHCP å HOSTS æ件æ¡ç®"
msgid "Local server"
msgstr "æ¬å°æå¡å¨"
@@ -1723,7 +1799,7 @@ msgstr "æ¬å°æå¡å¨"
msgid ""
"Localise hostname depending on the requesting subnet if multiple IPs are "
"available"
-msgstr "å¦ææå¤ä¸ªIPå¯ç¨ï¼åæ ¹æ®è¯·æ±æ¥æºçåç½æ¥æ¬å°å主æºå"
+msgstr "å¦ææå¤ä¸ª IP å¯ç¨ï¼åæ ¹æ®è¯·æ±æ¥æºçåç½æ¥æ¬å°å主æºå"
msgid "Localise queries"
msgstr "æ¬å°åæ¥è¯¢"
@@ -1735,7 +1811,7 @@ msgid "Log output level"
msgstr "æ¥å¿è®°å½ç级"
msgid "Log queries"
-msgstr "æ¥å¿æ¥è¯¢"
+msgstr "è®°å½æ¥è¯¢æ¥å¿"
msgid "Logging"
msgstr "æ¥å¿"
@@ -1747,22 +1823,22 @@ msgid "Logout"
msgstr "éåº"
msgid "Loss of Signal Seconds (LOSS)"
-msgstr "ä¿¡å·ä¸¢å¤±ç§æ°(LOSS)"
+msgstr "ä¿¡å·ä¸¢å¤±ç§æ°ï¼LOSSï¼"
msgid "Lowest leased address as offset from the network address."
msgstr "ç½ç»å°åçèµ·å§åé
åºåã"
msgid "MAC-Address"
-msgstr "MAC-å°å"
+msgstr "MAC å°å"
msgid "MAC-Address Filter"
-msgstr "MAC-å°åè¿æ»¤"
+msgstr "MAC å°åè¿æ»¤"
msgid "MAC-Filter"
-msgstr "MAC-è¿æ»¤"
+msgstr "MAC è¿æ»¤"
msgid "MAC-List"
-msgstr "MAC-å表"
+msgstr "MAC å表"
msgid "MAP / LW4over6"
msgstr "MAP / LW4over6"
@@ -1782,28 +1858,25 @@ msgstr "MTU"
msgid ""
"Make sure to clone the root filesystem using something like the commands "
"below:"
-msgstr "è¯·ç¡®è®¤ä½ å·²ç»å¤å¶è¿æ´ä¸ªæ ¹æ件系ç»,ä¾å¦ä½¿ç¨ä»¥ä¸å½ä»¤ï¼"
+msgstr "ç¡®ä¿ä½¿ç¨ä»¥ä¸å½ä»¤æ¥å¤å¶æ ¹æ件系ç»ï¼"
msgid "Manual"
msgstr "æå¨"
msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "æ大å¯è¾¾æ°æ®éç(ATTNDR)"
-
-msgid "Maximum Rate"
-msgstr "æé«éç"
+msgstr "æ大å¯è¾¾æ°æ®éçï¼ATTNDRï¼"
msgid "Maximum allowed number of active DHCP leases"
-msgstr "å
许çæ大DHCPç§ç¨æ°"
+msgstr "å
许çæ大 DHCP ç§ç¨æ°"
msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "å
许çæ大并åDNSæ¥è¯¢æ°"
+msgstr "å
许çæ大并å DNS æ¥è¯¢æ°"
msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "å
许çæ大EDNS.0 UDPæ°æ®å
大å°"
+msgstr "å
许çæ大 EDNS.0 UDP æ°æ®å
大å°"
msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "è°å¶è§£è°å¨å°±ç»ªçæ大çå¾
æ¶é´(ç§)"
+msgstr "è°å¶è§£è°å¨å°±ç»ªçæ大çå¾
æ¶é´ï¼ç§ï¼"
msgid "Maximum hold time"
msgstr "æ大æç»æ¶é´"
@@ -1812,7 +1885,8 @@ msgid ""
"Maximum length of the name is 15 characters including the automatic protocol/"
"bridge prefix (br-, 6in4-, pppoe- etc.)"
msgstr ""
-"å称çæ大é¿åº¦ä¸º15个å符ï¼å
æ¬èªå¨åè®®/ç½æ¡¥åç¼(br-, 6in4-, pppoe- çç)"
+"å称çæ大é¿åº¦ä¸º 15 个å符ï¼å
å«æ ¹æ®å议类åï¼ç½æ¡¥èªå¨æ·»å ä¸çåååç¼ï¼br-ã"
+"6in4-ãpppoe- çï¼"
msgid "Maximum number of leased addresses."
msgstr "æ大å°ååé
æ°éã"
@@ -1824,14 +1898,11 @@ msgid "Memory"
msgstr "å
å"
msgid "Memory usage (%)"
-msgstr "å
å使ç¨ç(%)"
+msgstr "å
å使ç¨çï¼%ï¼"
msgid "Metric"
msgstr "è·ç¹æ°"
-msgid "Minimum Rate"
-msgstr "æä½éç"
-
msgid "Minimum hold time"
msgstr "æä½æç»æ¶é´"
@@ -1844,6 +1915,9 @@ msgstr "æ°æ®å
éåæºç«¯å£"
msgid "Missing protocol extension for proto %q"
msgstr "缺å°åè®® %q çåè®®æ©å±"
+msgid "Mobility Domain"
+msgstr "移å¨å"
+
msgid "Mode"
msgstr "模å¼"
@@ -1857,7 +1931,7 @@ msgid "Modem init timeout"
msgstr "è°å¶è§£è°å¨åå§åè¶
æ¶"
msgid "Monitor"
-msgstr "çå¬Monitor"
+msgstr "çå¬"
msgid "Mount Entry"
msgstr "æ载项ç®"
@@ -1869,15 +1943,15 @@ msgid "Mount Points"
msgstr "æè½½ç¹"
msgid "Mount Points - Mount Entry"
-msgstr "æè½½ç¹-åå¨åº"
+msgstr "æè½½ç¹ - åå¨åº"
msgid "Mount Points - Swap Entry"
-msgstr "æè½½ç¹-交æ¢åº"
+msgstr "æè½½ç¹ - 交æ¢åº"
msgid ""
"Mount Points define at which point a memory device will be attached to the "
"filesystem"
-msgstr "é
ç½®åå¨è®¾å¤æè½½å°æ件系ç»ä¸çä½ç½®ååæ°ã"
+msgstr "é
ç½®åå¨è®¾å¤æè½½å°æ件系ç»ä¸çä½ç½®ååæ°"
msgid "Mount filesystems not specifically configured"
msgstr "èªå¨æè½½æªä¸é¨é
ç½®æè½½ç¹çååº"
@@ -1889,7 +1963,7 @@ msgid "Mount point"
msgstr "æè½½ç¹"
msgid "Mount swap not specifically configured"
-msgstr "èªå¨æè½½æªä¸é¨é
ç½®çSwapååº"
+msgstr "èªå¨æè½½æªä¸é¨é
ç½®ç swap ååº"
msgid "Mounted file systems"
msgstr "å·²æè½½çæ件系ç»"
@@ -1900,9 +1974,6 @@ msgstr "ä¸ç§»"
msgid "Move up"
msgstr "ä¸ç§»"
-msgid "Multicast Rate"
-msgstr "å¤æéç"
-
msgid "Multicast address"
msgstr "å¤æå°å"
@@ -1910,22 +1981,25 @@ msgid "NAS ID"
msgstr "NAS ID"
msgid "NAT-T Mode"
-msgstr "NAT-T模å¼"
+msgstr "NAT-T 模å¼"
msgid "NAT64 Prefix"
-msgstr "NAT64åç¼"
+msgstr "NAT64 åç¼"
+
+msgid "NCM"
+msgstr "NCM"
msgid "NDP-Proxy"
-msgstr "NDP-代ç"
+msgstr "NDP 代ç"
msgid "NT Domain"
-msgstr "NTå"
+msgstr "NT å"
msgid "NTP server candidates"
-msgstr "åéNTPæå¡å¨"
+msgstr "åé NTP æå¡å¨"
msgid "NTP sync time-out"
-msgstr "NTPåæ¥è¶
æ¶"
+msgstr "NTP åæ¥è¶
æ¶"
msgid "Name"
msgstr "å称"
@@ -1958,10 +2032,10 @@ msgid "Next »"
msgstr "ä¸ä¸æ¥ »"
msgid "No DHCP Server configured for this interface"
-msgstr "æ¬æ¥å£æªé
ç½®DHCPæå¡å¨"
+msgstr "æ¬æ¥å£æªé
ç½® DHCP æå¡å¨"
msgid "No NAT-T"
-msgstr "æ NAT-T"
+msgstr "æ NAT-T"
msgid "No chains in this table"
msgstr "æ¬è¡¨ä¸æ²¡æé¾"
@@ -1997,16 +2071,16 @@ msgid "Noise"
msgstr "åªå£°"
msgid "Noise Margin (SNR)"
-msgstr "åªå£°å®¹é(SNR)"
+msgstr "åªå£°å®¹éï¼SNRï¼"
msgid "Noise:"
-msgstr "åªå£°:"
+msgstr "åªå£°ï¼"
msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "éæ¢å CRCé误(CRC_P)"
+msgstr "éæ¢å CRC é误ï¼CRC_Pï¼"
msgid "Non-wildcard"
-msgstr "ééé
符"
+msgstr "éå
¨é¨å°å"
msgid "None"
msgstr "æ "
@@ -2039,13 +2113,13 @@ msgid "OK"
msgstr "确认"
msgid "OPKG-Configuration"
-msgstr "OPKG-é
ç½®"
+msgstr "OPKG é
ç½®"
msgid "Obfuscated Group Password"
-msgstr ""
+msgstr "æ··æ·ç»å¯ç "
msgid "Obfuscated Password"
-msgstr ""
+msgstr "æ··æ·å¯ç "
msgid "Off-State Delay"
msgstr "å
³éæ¶é´"
@@ -2057,7 +2131,11 @@ msgid ""
"VLAN notation "
"INTERFACE.VLANNR (e.g. : "
"eth0.1 )."
-msgstr "é
ç½®ç½ç»æ¥å£ä¿¡æ¯ã"
+msgstr ""
+"å¨æ¤é¡µé¢ï¼æ¨å¯ä»¥é
ç½®ç½ç»æ¥å£ãæ¨å¯ä»¥å¾éâæ¡¥æ¥æ¥å£âï¼å¹¶è¾å
¥ç±ç©ºæ ¼åéçå¤ä¸ªç½"
+"ç»æ¥å£çå称æ¥æ¡¥æ¥å¤ä¸ªæ¥å£ãæ¥å£å称ä¸å¯ä»¥ä½¿ç¨ VLAN è®°å· INTERFACE.VLANNR ï¼ä¾å¦ï¼"
+"eth0.1 ï¼ã"
msgid "On-State Delay"
msgstr "éçµæ¶é´"
@@ -2078,7 +2156,7 @@ msgid "Open list..."
msgstr "æå¼å表..."
msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "å¼æ¾è¿æ¥(CISCO AnyConnect)"
+msgstr "OpenConnect (CISCO AnyConnect)"
msgid "Operating frequency"
msgstr "å·¥ä½é¢ç"
@@ -2089,43 +2167,59 @@ msgstr "ä¿®æ¹çé项"
msgid "Option removed"
msgstr "移é¤çé项"
+msgid "Optional"
+msgstr "å¯é"
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
-msgstr "å¯éï¼è®¾ç½®è¿ä¸ªé项ä¼è¦çé»è®¤è®¾å®çæå¡å¨(tic.sixxs.net)"
+msgstr "å¯éï¼è®¾ç½®è¿ä¸ªé项ä¼è¦çé»è®¤æå¡å¨ï¼tic.sixxs.netï¼"
msgid "Optional, use when the SIXXS account has more than one tunnel"
-msgstr "å¯éï¼å¦æä½ çSIXXSè´¦å·æ¥æä¸ä¸ªä»¥ä¸çé§é请设置æ¤é¡¹."
+msgstr "å¯éï¼å¦ææ¨ç SIXXS è´¦å·æ¥æä¸ä¸ªä»¥ä¸çé§é请设置æ¤é¡¹"
-msgid "Optional."
-msgstr "å¯é"
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
+msgstr ""
+"å¯éï¼ä¼ åºå å¯æ°æ®å
ç 32 ä½æ è®°ã请è¾å
¥åå
è¿å¶å¼ï¼ä»¥ 0x
å¼å¤´ã"
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
msgstr ""
+"å¯éï¼å
许çå¼ï¼'eui64'ã'random' åå
¶ä»åºå®å¼ï¼ä¾å¦ï¼'::1' æ '::1:2'ï¼ãå½"
+"ä»æææå¡å¨è·åå° IPv6 åç¼ï¼å¦ 'a:b:c:d::'ï¼ï¼ä½¿ç¨åç¼ï¼å¦ '::1'ï¼åæ "
+"IPv6 å°åï¼'a:b:c:d::1'ï¼åé
ç»æ¤æ¥å£ã"
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
+msgstr "å¯éï¼Base64 ç¼ç çé¢å
±äº«å¯é¥ã"
msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr "å¯éï¼ä¸ºæ¤Peerå建å
许IPçè·¯ç±ã"
+msgstr "å¯éï¼ä¸ºæ¤ Peer å建å
许 IP çè·¯ç±ã"
msgid ""
"Optional. Host of peer. Names are resolved prior to bringing up the "
"interface."
-msgstr ""
+msgstr "å¯éï¼Peer ç主æºã"
msgid "Optional. Maximum Transmission Unit of tunnel interface."
msgstr "å¯éï¼é§éæ¥å£çæå¤§ä¼ è¾åå
ã"
msgid "Optional. Port of peer."
-msgstr "å¯éï¼Peerç端å£ã"
+msgstr "å¯éï¼Peer ç端å£ã"
msgid ""
"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
"Recommended value if this device is behind a NAT is 25."
msgstr ""
-"å¯éï¼Keep-Aliveæ¶æ¯ä¹é´çç§æ°ï¼é»è®¤ä¸º0(ç¦ç¨)ãå¦ææ¤è®¾å¤ä½äºNATä¹åï¼å»ºè®®ä½¿"
-"ç¨çå¼ä¸º25ã"
+"å¯éï¼Keep-Alive æ¶æ¯ä¹é´çç§æ°ï¼é»è®¤ä¸º 0ï¼ç¦ç¨ï¼ãå¦ææ¤è®¾å¤ä½äº NAT ä¹åï¼"
+"建议使ç¨çå¼ä¸º 25ã"
msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr "å¯éï¼ç¨äºä¼ åºåä¼ å
¥æ°æ®å
çUDP端å£ã"
+msgstr "å¯éï¼ç¨äºä¼ åºåä¼ å
¥æ°æ®å
ç UDP 端å£ã"
msgid "Options"
msgstr "é项"
@@ -2139,37 +2233,34 @@ msgstr "åºå£"
msgid "Outbound:"
msgstr "åºç«ï¼"
-msgid "Outdoor Channels"
-msgstr "æ·å¤é¢é"
-
msgid "Output Interface"
msgstr "ç½ç»åºå£"
msgid "Override MAC address"
-msgstr "å
éMACå°å"
+msgstr "é设 MAC å°å"
msgid "Override MTU"
-msgstr "æ´æ°MTU"
+msgstr "é设 MTU"
msgid "Override TOS"
-msgstr "æ´æ°TOS"
+msgstr "é设 TOS"
msgid "Override TTL"
-msgstr "æ´æ°TTL"
+msgstr "é设 TTL"
msgid "Override default interface name"
-msgstr "æ´æ°é»è®¤æ¥å£å称"
+msgstr "é设é»è®¤æ¥å£å称"
msgid "Override the gateway in DHCP responses"
-msgstr "æ´æ°DHCPååºç½å
³"
+msgstr "é设 DHCP ååºç½å
³"
msgid ""
"Override the netmask sent to clients. Normally it is calculated from the "
"subnet that is served."
-msgstr "æ´æ°åéå°å®¢æ·ç«¯çåç½æ©ç ã"
+msgstr "é设åéå°å®¢æ·ç«¯çåç½æ©ç ã"
msgid "Override the table used for internal routes"
-msgstr "æ´æ°å
é¨è·¯ç±è¡¨"
+msgstr "é设å
é¨è·¯ç±è¡¨"
msgid "Overview"
msgstr "æ»è§"
@@ -2178,10 +2269,10 @@ msgid "Owner"
msgstr "ç¨æ·å"
msgid "PAP/CHAP password"
-msgstr "PAP/CHAPå¯ç "
+msgstr "PAP/CHAP å¯ç "
msgid "PAP/CHAP username"
-msgstr "PAP/CHAPç¨æ·å"
+msgstr "PAP/CHAP ç¨æ·å"
msgid "PID"
msgstr "PID"
@@ -2189,11 +2280,14 @@ msgstr "PID"
msgid "PIN"
msgstr "PIN"
+msgid "PMK R1 Push"
+msgstr "PMK R1 Push"
+
msgid "PPP"
msgstr "PPP"
msgid "PPPoA Encapsulation"
-msgstr "PPPoAå°å
"
+msgstr "PPPoA å°å
"
msgid "PPPoATM"
msgstr "PPPoATM"
@@ -2208,19 +2302,19 @@ msgid "PPtP"
msgstr "PPtP"
msgid "PSID offset"
-msgstr "PSIDå移"
+msgstr "PSID å移"
msgid "PSID-bits length"
-msgstr "PSIDä½é¿åº¦"
+msgstr "PSID-bits é¿åº¦"
msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr "PTM/EFM(åç»ä¼ è¾æ¨¡å¼)"
+msgstr "PTM/EFMï¼åç»ä¼ è¾æ¨¡å¼ï¼"
msgid "Package libiwinfo required!"
msgstr "éè¦ libiwinfo 软件å
ï¼"
msgid "Package lists are older than 24 hours"
-msgstr "软件å
å表已è¶
è¿24å°æ¶æªæ´æ°"
+msgstr "软件å
å表已è¶
è¿ 24 å°æ¶æªæ´æ°"
msgid "Package name"
msgstr "软件å
å称"
@@ -2246,8 +2340,11 @@ msgstr "å
é¨ç§é¥çå¯ç "
msgid "Password successfully changed!"
msgstr "å¯ç ä¿®æ¹æåï¼"
+msgid "Password2"
+msgstr "å¯ç 2"
+
msgid "Path to CA-Certificate"
-msgstr "CAè¯ä¹¦è·¯å¾"
+msgstr "CA è¯ä¹¦è·¯å¾"
msgid "Path to Client-Certificate"
msgstr "客æ·ç«¯è¯ä¹¦è·¯å¾"
@@ -2259,7 +2356,7 @@ msgid "Path to executable which handles the button event"
msgstr "å¤çæé®å¨ä½çå¯æ§è¡æ件路å¾"
msgid "Path to inner CA-Certificate"
-msgstr "å
é¨CAè¯ä¹¦çè·¯å¾"
+msgstr "å
é¨ CA è¯ä¹¦çè·¯å¾"
msgid "Path to inner Client-Certificate"
msgstr "å
é¨å®¢æ·ç«¯è¯ä¹¦çè·¯å¾"
@@ -2268,10 +2365,10 @@ msgid "Path to inner Private Key"
msgstr "å
é¨ç§é¥çè·¯å¾"
msgid "Peak:"
-msgstr "å³°å¼:"
+msgstr "å³°å¼ï¼"
msgid "Peer IP address to assign"
-msgstr "è¦åé
çPeer IPå°å"
+msgstr "è¦åé
ç Peer IP å°å"
msgid "Peers"
msgstr "Peers"
@@ -2283,13 +2380,13 @@ msgid "Perform reboot"
msgstr "æ§è¡éå¯"
msgid "Perform reset"
-msgstr "æ§è¡å¤ä½"
+msgstr "æ§è¡éç½®"
msgid "Persistent Keep Alive"
-msgstr "æç»Keep-Alive"
+msgstr "æç» Keep-Alive"
msgid "Phy Rate:"
-msgstr "ç©çéç:"
+msgstr "ç©çéçï¼"
msgid "Physical Settings"
msgstr "ç©ç设置"
@@ -2316,7 +2413,16 @@ msgid "Power Management Mode"
msgstr "çµæºç®¡ç模å¼"
msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "æ¢å å¼CRCé误(CRCP_P)"
+msgstr "æ¢å å¼ CRC é误ï¼CRCP_Pï¼"
+
+msgid "Prefer LTE"
+msgstr "é¦é LTE"
+
+msgid "Prefer UMTS"
+msgstr "é¦é UMTS"
+
+msgid "Prefix Delegated"
+msgstr "åååç¼"
msgid "Preshared Key"
msgstr "é¢å
±äº«å¯é¥"
@@ -2324,16 +2430,16 @@ msgstr "é¢å
±äº«å¯é¥"
msgid ""
"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
"ignore failures"
-msgstr "å¨æå®æ°éçLCPååºæ
éååå®é¾è·¯å·²æå¼ï¼0为忽ç¥æ
é"
+msgstr "å¨æå®æ°éç LCP ååºæ
éååå®é¾è·¯å·²æå¼ï¼0 为忽ç¥æ
é"
msgid "Prevent listening on these interfaces."
-msgstr "é²æ¢çå¬è¿äºæ¥å£ã"
+msgstr "ä¸çå¬è¿äºæ¥å£ã"
msgid "Prevents client-to-client communication"
msgstr "ç¦æ¢å®¢æ·ç«¯é´éä¿¡"
msgid "Prism2/2.5/3 802.11b Wireless Controller"
-msgstr "Prism2/2.5/3 802.11b æ 线ç½å¡"
+msgstr "Prism2/2.5/3 802.11b æ 线æ§å¶å¨"
msgid "Private Key"
msgstr "ç§é¥"
@@ -2363,13 +2469,13 @@ msgid "Protocol support is not installed"
msgstr "æªå®è£
åè®®æ¯æ"
msgid "Provide NTP server"
-msgstr "NTPæå¡å¨"
+msgstr "ä½ä¸º NTP æå¡å¨æä¾æå¡"
msgid "Provide new network"
msgstr "æ·»å æ°ç½ç»"
msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "伪è£
Ad-Hoc(ahdemo)"
+msgstr "伪è£
Ad-Hocï¼ahdemoï¼"
msgid "Public Key"
msgstr "å
¬é¥"
@@ -2378,16 +2484,22 @@ msgid "Public prefix routed to this device for distribution to clients."
msgstr "åé
å°æ¤è®¾å¤çå
Œ
±åç¼ï¼ç¨ä»¥ååå°å®¢æ·ç«¯ã"
msgid "QMI Cellular"
-msgstr "QMIèçª"
+msgstr "QMI èçª"
msgid "Quality"
msgstr "è´¨é"
+msgid "R0 Key Lifetime"
+msgstr "R0 Key Lifetime"
+
+msgid "R1 Key Holder"
+msgstr "R1 Key Holder"
+
msgid "RFC3947 NAT-T mode"
-msgstr "RFC3947 NAT-T模å¼"
+msgstr "RFC3947 NAT-T 模å¼"
msgid "RTS/CTS Threshold"
-msgstr "RTS/CTSéå¼"
+msgstr "RTS/CTS éå¼"
msgid "RX"
msgstr "æ¥æ¶"
@@ -2396,7 +2508,7 @@ msgid "RX Rate"
msgstr "æ¥æ¶éç"
msgid "RaLink 802.11%s Wireless Controller"
-msgstr "MediaTek/RaLink 802.11%s æ 线ç½å¡"
+msgstr "RaLink 802.11%s æ 线æ§å¶å¨"
msgid "Radius-Accounting-Port"
msgstr "Radius 计费端å£"
@@ -2420,8 +2532,8 @@ msgid ""
"Read /etc/ethers
to configure the DHCP -Server"
msgstr ""
-"æ ¹æ®/etc/ethers
æ¥é
ç½®DHCP -æå¡å¨"
+"æ ¹æ® /etc/ethers
æ¥é
ç½® DHCP æå¡å¨"
msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might "
@@ -2443,14 +2555,14 @@ msgid ""
"Really shut down network?\\nYou might lose access to this device if you are "
"connected via this interface."
msgstr ""
-"ç¡®å®è¦å
³éæ¤ç½ç»ï¼\\nå¦æä½ æ£å¨ä½¿ç¨æ¤æ¥å£è¿æ¥è·¯ç±å¨ï¼å
³éæ¤ç½ç»å¯è½å¯¼è´è¿æ¥æ"
+"ç¡®å®è¦å
³éæ¤ç½ç»ï¼\\nå¦ææ¨æ£å¨ä½¿ç¨æ¤æ¥å£è¿æ¥è·¯ç±å¨ï¼å
³éæ¤ç½ç»å¯è½å¯¼è´è¿æ¥æ"
"å¼ï¼"
msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
"you are connected via this interface."
msgstr ""
-"ç¡®å®è¦å
³éæ¥å£ \"%s\"ï¼\\nå¦æä½ æ£å¨ä½¿ç¨æ¤æ¥å£è¿æ¥è·¯ç±å¨ï¼å
³éæ¤ç½ç»å¯è½å¯¼è´"
+"ç¡®å®è¦å
³éæ¥å£ \"%s\"ï¼\\nå¦ææ¨æ£å¨ä½¿ç¨æ¤æ¥å£è¿æ¥è·¯ç±å¨ï¼å
³éæ¤ç½ç»å¯è½å¯¼è´"
"è¿æ¥æå¼ï¼"
msgid "Really switch protocol?"
@@ -2471,6 +2583,9 @@ msgstr "å®æ¶æµé"
msgid "Realtime Wireless"
msgstr "å®æ¶æ 线"
+msgid "Reassociation Deadline"
+msgstr "éå
³èæªæ¢æ¶é´"
+
msgid "Rebind protection"
msgstr "éç»å®ä¿æ¤"
@@ -2490,7 +2605,7 @@ msgid "Receiver Antenna"
msgstr "æ¥æ¶å¤©çº¿"
msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
+msgstr "æ¨èï¼Wire Guard æ¥å£ç IP å°åã"
msgid "Reconnect this interface"
msgstr "éè¿æ¤æ¥å£"
@@ -2501,9 +2616,6 @@ msgstr "éè¿æ¥å£ä¸..."
msgid "References"
msgstr "å¼ç¨"
-msgid "Regulatory Domain"
-msgstr "æ 线ç½ç»å½å®¶åºå"
-
msgid "Relay"
msgstr "ä¸ç»§"
@@ -2517,10 +2629,10 @@ msgid "Relay bridge"
msgstr "ä¸ç»§æ¡¥"
msgid "Remote IPv4 address"
-msgstr "è¿ç¨IPv4å°å"
+msgstr "è¿ç¨ IPv4 å°å"
msgid "Remote IPv4 address or FQDN"
-msgstr "è¿ç¨IPv4å°åæFQDN"
+msgstr "è¿ç¨ IPv4 å°åæ FQDN"
msgid "Remove"
msgstr "移é¤"
@@ -2535,35 +2647,45 @@ msgid "Replace wireless configuration"
msgstr "éç½®æ 线é
ç½®"
msgid "Request IPv6-address"
-msgstr "请æ±IPv6å°å"
+msgstr "è¯·æ± IPv6 å°å"
msgid "Request IPv6-prefix of length"
-msgstr "请æ±æå®é¿åº¦çIPv6åç¼"
+msgstr "请æ±æå®é¿åº¦ç IPv6 åç¼"
msgid "Require TLS"
-msgstr "å¿
须使ç¨TLS"
+msgstr "å¿
é¡»ä½¿ç¨ TLS"
+
+msgid "Required"
+msgstr "å¿
é¡»"
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "æäºISPéè¦ï¼ä¾å¦ï¼å轴线ç½ç»DOCSIS 3"
+msgstr "æäº ISP éè¦ï¼ä¾å¦ï¼å轴线ç½ç» DOCSIS 3"
msgid "Required. Base64-encoded private key for this interface."
-msgstr "å¿
é¡»ï¼æ¤æ¥å£çBase64ç¼ç ç§é¥ã"
+msgstr "å¿
é¡»ï¼æ¤æ¥å£ç Base64 ç¼ç ç§é¥ã"
+
+msgid "Required. Base64-encoded public key of peer."
+msgstr "å¿
é¡»ï¼Peer ç Base64 ç¼ç å
¬é¥ã"
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-"å¿
é¡»ï¼å
许该Peerå¨é§éä¸ä½¿ç¨çIPå°åååç¼ï¼é常æ¯è¯¥Peerçé§éIPå°ååéè¿é§"
-"éçè·¯ç±ç½ç»ã"
+"å¿
é¡»ï¼å
许该 Peer å¨é§éä¸ä½¿ç¨ç IP å°åååç¼ï¼é常æ¯è¯¥ Peer çé§é IP å°å"
+"åéè¿é§éçè·¯ç±ç½ç»ã"
-msgid "Required. Public key of peer."
-msgstr "å¿
é¡»ï¼Peerçå
¬é¥ã"
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
+msgstr ""
+"éè¦å®æ´çæ¬ç wpad/hostapdï¼å¹¶ä¸ WiFi 驱å¨æ¯æ ï¼æªæ¢ 2017.02ï¼å·²ç¥æ¯æ"
+"æ¤ç¹æ§ç驱å¨æ ath9kãath10kï¼ä»¥å LEDE ä¸ç mwlwifi å mt76ï¼"
msgid ""
"Requires upstream supports DNSSEC; verify unsigned domain responses really "
"come from unsigned domains"
-msgstr "éè¦ä¸çº§æ¯æDNSSECï¼éªè¯æªç¾åçåååºç¡®å®æ¯æ¥èªæªç¾åçåã"
+msgstr "éè¦ä¸çº§æ¯æ DNSSECï¼éªè¯æªç¾åçååºç¡®å®æ¯æ¥èªæªç¾åçåå"
msgid "Reset"
msgstr "å¤ä½"
@@ -2575,7 +2697,7 @@ msgid "Reset to defaults"
msgstr "æ¢å¤å°åºå设置"
msgid "Resolv and Hosts Files"
-msgstr "HOSTSå解ææ件"
+msgstr "HOSTS å解ææ件"
msgid "Resolve file"
msgstr "解ææ件"
@@ -2599,22 +2721,22 @@ msgid "Root"
msgstr "Root"
msgid "Root directory for files served via TFTP"
-msgstr "TFTPæå¡å¨çæ ¹ç®å½"
+msgstr "TFTP æå¡å¨çæ ¹ç®å½"
msgid "Root preparation"
-msgstr ""
+msgstr "æ ¹ç®å½åå¤"
msgid "Route Allowed IPs"
-msgstr "è·¯ç±å
许çIP"
+msgstr "è·¯ç±å
许ç IP"
msgid "Route type"
msgstr "è·¯ç±ç±»å"
msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr "ä¸è¡æ¥å£çè·¯ç±IPv6åç¼"
+msgstr "ä¸è¡æ¥å£çè·¯ç± IPv6 åç¼"
msgid "Router Advertisement-Service"
-msgstr "è·¯ç±å¨å¹¿åæå¡"
+msgstr "è·¯ç±éåæå¡"
msgid "Router Password"
msgstr "主æºå¯ç "
@@ -2639,28 +2761,28 @@ msgstr "SHA256"
msgid ""
"SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
"use 6in4 instead"
-msgstr "SIXXSä»
æ¯æTICï¼å¯¹äºä½¿ç¨IPåè®®41(RFC4213)çéæé§éï¼ä½¿ç¨6in4"
+msgstr "SIXXS ä»
æ¯æ TICï¼å¯¹äºä½¿ç¨ IP åè®® 41ï¼RFC4213ï¼çéæé§éï¼ä½¿ç¨ 6in4"
msgid "SIXXS-handle[/Tunnel-ID]"
-msgstr ""
+msgstr "SIXXS-handle[/Tunnel-ID]"
msgid "SNR"
msgstr "SNR"
msgid "SSH Access"
-msgstr "SSH访é®"
+msgstr "SSH 访é®"
msgid "SSH server address"
-msgstr "SSHæå¡å¨å°å"
+msgstr "SSH æå¡å¨å°å"
msgid "SSH server port"
-msgstr "SSHæå¡å¨ç«¯å£"
+msgstr "SSH æå¡å¨ç«¯å£"
msgid "SSH username"
-msgstr "SSHç¨æ·å"
+msgstr "SSH ç¨æ·å"
msgid "SSH-Keys"
-msgstr "SSH-å¯é¥"
+msgstr "SSH å¯é¥"
msgid "SSID"
msgstr "SSID"
@@ -2675,16 +2797,16 @@ msgid "Save & Apply"
msgstr "ä¿å&åºç¨"
msgid "Scan"
-msgstr "æç´¢"
+msgstr "æ«æ"
msgid "Scheduled Tasks"
msgstr "计åä»»å¡"
msgid "Section added"
-msgstr "æ·»å çåºå"
+msgstr "æ·»å çèç¹"
msgid "Section removed"
-msgstr "移é¤çåºå"
+msgstr "移é¤çèç¹"
msgid "See \"mount\" manpage for details"
msgstr "详å \"mount\" èæºå¸®å©"
@@ -2692,14 +2814,11 @@ msgstr "详å \"mount\" èæºå¸®å©"
msgid ""
"Send LCP echo requests at the given interval in seconds, only effective in "
"conjunction with failure threshold"
-msgstr "å®æ¶åéLCPååº(ç§)ï¼ä»
å¨ç»åäºæ
ééå¼æ¶ææ"
+msgstr "å®æ¶åé LCP ååºï¼ç§ï¼ï¼ä»
å¨ç»åäºæ
ééå¼æ¶ææ"
msgid "Separate Clients"
msgstr "é离客æ·ç«¯"
-msgid "Separate WDS"
-msgstr "é离WDS"
-
msgid "Server Settings"
msgstr "æå¡å¨è®¾ç½®"
@@ -2709,7 +2828,7 @@ msgstr "æå¡å¨å¯ç "
msgid ""
"Server password, enter the specific password of the tunnel when the username "
"contains the tunnel ID"
-msgstr "æå¡å¨å¯ç ,å¦æç¨æ·åå
å«é§éIDåå¨æ¤å¡«åç¬ç«çå¯ç "
+msgstr "æå¡å¨å¯ç ï¼å¦æç¨æ·åå
å«é§é ID åå¨æ¤å¡«åé§éèªå·±çå¯ç "
msgid "Server username"
msgstr "æå¡å¨ç¨æ·å"
@@ -2723,20 +2842,27 @@ msgstr "æå¡ç±»å"
msgid "Services"
msgstr "æå¡"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+"ä¸ç®¡æ¥å£çé¾è·¯ç¶æå¦ä½ï¼æ»æ¯ç¨åºç¨è®¾ç½®ï¼å¦æå¾éï¼é¾è·¯ç¶æåæ´å°ä¸å触å "
+"hotplug äºä»¶å¤çï¼ã"
+
msgid "Set up Time Synchronization"
msgstr "设置æ¶é´åæ¥"
msgid "Setup DHCP Server"
-msgstr "é
ç½®DHCPæå¡å¨"
+msgstr "é
ç½® DHCP æå¡å¨"
msgid "Severely Errored Seconds (SES)"
-msgstr "严é误ç ç§(SES)"
+msgstr "严é误ç ç§ï¼SESï¼"
msgid "Short GI"
-msgstr ""
+msgstr "Short GI"
msgid "Show current backup file list"
-msgstr "æ¾ç¤ºå½åæ件å¤ä»½å表"
+msgstr "æ¾ç¤ºå½åå¤ä»½æ件å表"
msgid "Shutdown this interface"
msgstr "å
³éæ¤æ¥å£"
@@ -2748,16 +2874,16 @@ msgid "Signal"
msgstr "ä¿¡å·"
msgid "Signal Attenuation (SATN)"
-msgstr "ä¿¡å·è¡°å(SATN)"
+msgstr "ä¿¡å·è¡°åï¼SATNï¼"
msgid "Signal:"
-msgstr "ä¿¡å·:"
+msgstr "ä¿¡å·ï¼"
msgid "Size"
msgstr "大å°"
msgid "Size (.ipk)"
-msgstr "大å°(.ipk)"
+msgstr "大å°ï¼.ipkï¼"
msgid "Skip"
msgstr "è·³è¿"
@@ -2775,7 +2901,7 @@ msgid "Software"
msgstr "软件å
"
msgid "Software VLAN"
-msgstr ""
+msgstr "软件 VLAN"
msgid "Some fields are invalid, cannot save values!"
msgstr "ä¸äºé¡¹ç®çå¼æ æï¼æ æ³ä¿åï¼"
@@ -2791,8 +2917,8 @@ msgid ""
"flashed manually. Please refer to the wiki for device specific install "
"instructions."
msgstr ""
-"æ±æï¼æ¨ç设å¤æä¸æ¯æSysupgradeå级ï¼éæå¨æ´æ°åºä»¶ã请åèWikiä¸å
³äºæ¤è®¾å¤"
-"çåºä»¶æ´æ°è¯´æã"
+"æ±æï¼æ¨ç设å¤æä¸æ¯æ sysupgrade å级ï¼éæå¨æ´æ°åºä»¶ã请åè Wiki ä¸å
³äºæ¤"
+"设å¤çåºä»¶æ´æ°è¯´æã"
msgid "Sort"
msgstr "æåº"
@@ -2810,35 +2936,34 @@ msgid "Specifies the directory the device is attached to"
msgstr "æå®è®¾å¤çæè½½ç®å½"
msgid "Specifies the listening port of this Dropbear instance"
-msgstr "æå®Dropbear ççå¬ç«¯å£"
+msgstr "æå®æ¤ Dropbear å®ä¾ççå¬ç«¯å£"
msgid ""
"Specifies the maximum amount of failed ARP requests until hosts are presumed "
"to be dead"
-msgstr "æå®å设主æºå·²ä¸¢å¤±çæ大失败ARP请æ±æ°"
+msgstr "å¤å®ä¸»æºå·²ä¸çº¿çæå° ARP 请æ±å¤±è´¥æ°"
msgid ""
"Specifies the maximum amount of seconds after which hosts are presumed to be "
"dead"
-msgstr "æå®å设主æºå·²ä¸¢å¤±çæ大æ¶é´(ç§)"
+msgstr "å¤æ主æºå·²ä¸çº¿çè¶
æ¶æ¶é´ï¼ç§ï¼"
msgid "Specify a TOS (Type of Service)."
-msgstr "æå®TOS(æå¡ç±»å)ã"
+msgstr "æå® TOSï¼æå¡ç±»åï¼ã"
msgid ""
"Specify a TTL (Time to Live) for the encapsulating packet other than the "
"default (64)."
-msgstr "为å°è£
æ°æ®å
设置TTL(çåæ¶é´)ï¼ç¼ºçå¼ï¼64"
+msgstr "为å°è£
æ°æ®å
设置 TTLï¼çåæ¶é´ï¼ï¼ç¼ºçå¼ï¼64"
msgid ""
"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
"bytes)."
-msgstr "设置MTU(æå¤§ä¼ è¾åä½)ï¼ç¼ºçå¼ï¼1280 bytes"
+msgstr "设置 MTUï¼æå¤§ä¼ è¾åä½ï¼ï¼ç¼ºçå¼ï¼1280 bytes"
msgid "Specify the secret encryption key here."
msgstr "å¨æ¤æå®å¯é¥ã"
-# å
³èäº å¯å¨é¡¹ å æ¥å£>LAN>DHCPæå¡å¨>ç½ååé
åºå
msgid "Start"
msgstr "å¼å§"
@@ -2849,10 +2974,10 @@ msgid "Startup"
msgstr "å¯å¨é¡¹"
msgid "Static IPv4 Routes"
-msgstr "éæIPv4è·¯ç±"
+msgstr "éæ IPv4 è·¯ç±"
msgid "Static IPv6 Routes"
-msgstr "éæIPv6è·¯ç±"
+msgstr "éæ IPv6 è·¯ç±"
msgid "Static Leases"
msgstr "éæå°ååé
"
@@ -2860,9 +2985,6 @@ msgstr "éæå°ååé
"
msgid "Static Routes"
msgstr "éæè·¯ç±"
-msgid "Static WDS"
-msgstr "éæWDS"
-
msgid "Static address"
msgstr "éæå°å"
@@ -2871,8 +2993,8 @@ msgid ""
"to DHCP clients. They are also required for non-dynamic interface "
"configurations where only hosts with a corresponding lease are served."
msgstr ""
-"éæç§çº¦ç¨äºç»DHCP客æ·ç«¯åé
åºå®çIPå°åå主æºæ è¯ãåªææå®ç主æºæè½è¿æ¥ï¼"
-"并ä¸æ¥å£é¡»ä¸ºéå¨æé
ç½®ã"
+"éæç§çº¦ç¨äºç» DHCP 客æ·ç«¯åé
åºå®ç IP å°åå主æºæ è¯ãåªææå®ç主æºæè½è¿"
+"æ¥ï¼å¹¶ä¸æ¥å£é¡»ä¸ºéå¨æé
ç½®ã"
msgid "Status"
msgstr "ç¶æ"
@@ -2893,10 +3015,10 @@ msgid "Suppress logging of the routine operation of these protocols"
msgstr "ä¸è®°å½è¿äºåè®®ç常è§æä½æ¥å¿ã"
msgid "Swap"
-msgstr "交æ¢åº"
+msgstr "Swap"
msgid "Swap Entry"
-msgstr "交æ¢é¡¹ç®"
+msgstr "Swap èç¹"
msgid "Switch"
msgstr "交æ¢æº"
@@ -2905,14 +3027,14 @@ msgid "Switch %q"
msgstr "交æ¢æº %q"
msgid "Switch %q (%s)"
-msgstr "交æ¢æº %q (%s)"
+msgstr "交æ¢æº %qï¼%sï¼"
msgid ""
"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr "交æ¢æº %q å
·ææªç¥çææç»æ - VLAN设置å¯è½ä¸æ£ç¡®ã"
+msgstr "交æ¢æº %q å
·ææªç¥çææç»æï¼VLAN 设置å¯è½ä¸æ£ç¡®ã"
msgid "Switch VLAN"
-msgstr "VLAN交æ¢æº"
+msgstr "交æ¢æº VLAN"
msgid "Switch protocol"
msgstr "åæ¢åè®®"
@@ -2936,13 +3058,13 @@ msgid "System log buffer size"
msgstr "ç³»ç»æ¥å¿ç¼å²åºå¤§å°"
msgid "TCP:"
-msgstr "TCP:"
+msgstr "TCPï¼"
msgid "TFTP Settings"
-msgstr "TFTP设置"
+msgstr "TFTP 设置"
msgid "TFTP server root"
-msgstr "TFTPæå¡å¨æ ¹ç®å½"
+msgstr "TFTP æå¡å¨æ ¹ç®å½"
msgid "TX"
msgstr "åé"
@@ -2962,7 +3084,6 @@ msgstr "ç®æ ç½ç»"
msgid "Terminate"
msgstr "å
³é"
-#, fuzzy
msgid ""
"The Device Configuration section covers physical settings of the "
"radio hardware such as channel, transmit power or antenna selection which "
@@ -2970,27 +3091,27 @@ msgid ""
"multi-SSID capable). Per network settings like encryption or operation mode "
"are grouped in the Interface Configuration ."
msgstr ""
-"设å¤é
ç½® åºåå¯é
ç½®æ 线ç硬件åæ°ï¼æ¯å¦ä¿¡éãåå°åçæåå°å¤©çº¿(å¦æ"
-"æ¤æ 线模å硬件æ¯æå¤SSIDï¼åå
¨é¨SSIDå
±ç¨æ¤è®¾å¤é
ç½®)ãæ¥å£é
ç½® åºåå"
-"å¯é
ç½®æ¤ç½ç»çå·¥ä½æ¨¡å¼åå å¯çã"
+"â设å¤é
ç½®âåºåå¯é
ç½®æ 线ç硬件åæ°ï¼æ¯å¦ï¼ä¿¡éãåå°åçæåå°å¤©çº¿ï¼å¦ææ¤æ "
+"线硬件æ¯æå¤ SSIDï¼åå
¨é¨ SSID å
±ç¨æ¤è®¾å¤é
ç½®ãâæ¥å£é
ç½®âåºååå¯é
ç½®æ¥å£åèª"
+"åæ°ï¼å¦å·¥ä½æ¨¡å¼ãå å¯æ¹å¼çã"
msgid ""
"The libiwinfo-lua package is not installed. You must install this "
"component for working wireless configuration!"
-msgstr "软件å
libiwinfo-lua æªå®è£
ãå¿
éå®è£
æ¤ç»ä»¶ä»¥é
ç½®æ 线ï¼"
+msgstr "软件å
libiwinfo-lua æªå®è£
ï¼å¿
é¡»å®è£
æ¤ç»ä»¶ä»¥é
ç½®æ 线ï¼"
msgid ""
"The HE.net endpoint update configuration changed, you must now use the plain "
"username instead of the user ID!"
-msgstr "HE.net客æ·ç«¯æ´æ°è®¾ç½®å·²ç»è¢«æ¹å,æ¨ç°å¨å¿
须使ç¨ç¨æ·å代æ¿ç¨æ·ID/"
+msgstr "HE.net 客æ·ç«¯æ´æ°è®¾ç½®å·²ç»è¢«æ¹åï¼æ¨ç°å¨å¿
须使ç¨ç¨æ·å代æ¿ç¨æ· IDï¼"
msgid ""
"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr "è¿ç¨é§é端çIPv4å°åæå®æ´ååã"
+msgstr "è¿ç¨é§é端ç IPv4 å°åæå®æ´ååã"
msgid ""
"The IPv6 prefix assigned to the provider, usually ends with ::
"
-msgstr "è¿è¥åç¹å®çIPv6åç¼ï¼é常以::
为ç»å°¾"
+msgstr "è¿è¥åç¹å®ç IPv6 åç¼ï¼é常以 ::
为ç»å°¾"
msgid ""
"The allowed characters are: A-Z
, a-z
, 0-9"
@@ -3005,21 +3126,23 @@ msgstr "ç±äºä»¥ä¸é误ï¼é
ç½®æ件æ æ³è¢«å è½½ï¼"
msgid ""
"The device file of the memory or partition (e.g."
" /dev/sda1
)"
-msgstr "åå¨å¨æååºç设å¤èç¹ï¼(ä¾å¦ï¼/dev/sda1
)"
+msgstr "åå¨å¨æååºç设å¤æ件ï¼ï¼ä¾å¦ï¼/dev/sda1
ï¼"
msgid ""
"The filesystem that was used to format the memory (e.g. ext3 "
"samp>)"
msgstr ""
-"ç¨äºæ ¼å¼ååå¨å¨çæ件系ç»ï¼(ä¾å¦ï¼ext3 )"
+"ç¨äºæ ¼å¼ååå¨å¨çæ件系ç»ï¼ä¾å¦ï¼ext3 ï¼"
msgid ""
"The flash image was uploaded. Below is the checksum and file size listed, "
"compare them with the original file to ensure data integrity. Click "
"\"Proceed\" below to start the flash procedure."
-msgstr "åºä»¶å·²ä¸ä¼ ï¼è¯·æ³¨ææ ¸å¯¹æ件大å°åæ ¡éªå¼ï¼ å·æ°è¿ç¨åå¿æçµï¼"
+msgstr ""
+"åºä»¶å·²ä¸ä¼ ï¼è¯·æ³¨ææ ¸å¯¹æ件大å°åæ ¡éªå¼ï¼ ç¹å»ä¸é¢çâ继ç»âå¼å§å·åï¼å·æ°"
+"è¿ç¨ä¸åå¿æçµï¼"
msgid "The following changes have been committed"
msgstr "以ä¸æ´æ¹å·²æ交"
@@ -3028,7 +3151,7 @@ msgid "The following changes have been reverted"
msgstr "以ä¸æ´æ¹å·²æ¾å¼"
msgid "The following rules are currently active on this system."
-msgstr "ç³»ç»ä¸çæ´»è·è¿æ¥ã"
+msgstr "以ä¸è§åå½åå¨ç³»ç»ä¸å¤äºæ´»å¨ç¶æã"
msgid "The given network name is not unique"
msgstr "ç»å®çç½ç»åéå¤"
@@ -3036,18 +3159,18 @@ msgstr "ç»å®çç½ç»åéå¤"
msgid ""
"The hardware is not multi-SSID capable and the existing configuration will "
"be replaced if you proceed."
-msgstr "æ¬æºç硬件ä¸æ¯æå¤SSIDï¼å¦æ继ç»ï¼ç°æé
ç½®å°è¢«æ¿æ¢ã"
+msgstr "æ¬æºç硬件ä¸æ¯æå¤ SSIDï¼å¦æ继ç»ï¼ç°æé
ç½®å°è¢«æ¿æ¢ã"
msgid ""
"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
"addresses."
-msgstr "bitæ ¼å¼çIPv4åç¼é¿åº¦, å
¶ä½çç¨å¨IPv6å°å."
+msgstr "IPv4 åç¼é¿åº¦ï¼bitï¼ï¼å
¶ä½çç¨å¨ IPv6 å°åã"
msgid "The length of the IPv6 prefix in bits"
-msgstr "bitæ ¼å¼çIPv6åç¼é¿åº¦"
+msgstr "IPv6 åç¼é¿åº¦ï¼bitï¼"
msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "æå建é§éçæ¬å°IPv4å°å(å¯é)ã"
+msgstr "æå建é§éçæ¬å° IPv4 å°åï¼å¯éï¼ã"
msgid ""
"The network ports on this device can be combined to several VLAN ï¼å¹¶æ¯æçµèé´çç´"
-"æ¥é讯ãVLAN ä¹å¸¸ç¨äºåå²ä¸åç½æ®µãé»è®¤é常"
-"æ¯ä¸æ¡ä¸è¡ç«¯å£è¿æ¥ISPï¼å
¶ä½ç«¯å£ä¸ºæ¬å°åç½ã"
+"æ¬è®¾å¤å¯ä»¥åå为å¤ä¸ª VLAN ï¼"
+"并æ¯æçµèé´çç´æ¥é讯ãVLAN"
+"abbr> ä¹å¸¸ç¨äºåå²ä¸åç½æ®µãé»è®¤é常æ¯ä¸æ¡ä¸è¡ç«¯å£è¿æ¥ ISPï¼å
¶ä½ç«¯å£ä¸ºæ¬å°å"
+"ç½ã"
msgid "The selected protocol needs a device assigned"
msgstr "æéçåè®®éè¦åé
设å¤"
@@ -3070,7 +3194,7 @@ msgstr "æ交çå®å
¨ä»¤çæ ææå·²è¿æï¼"
msgid ""
"The system is erasing the configuration partition now and will reboot itself "
"when finished."
-msgstr "ç³»ç»æ£å¨å é¤é
ç½®ååºï¼å®æåä¼èªå¨éå¯ã"
+msgstr "ç³»ç»æ£å¨æ¦é¤é
ç½®ååºï¼å®æåä¼èªå¨éå¯ã"
msgid ""
"The system is flashing now. DO NOT POWER OFF THE DEVICE! Wait a "
@@ -3079,17 +3203,17 @@ msgid ""
"settings."
msgstr ""
"æ£å¨å·æ°ç³»ç»... åå¿å
³éçµæº! DO NOT POWER OFF THE DEVICE! çå¾
æ°å"
-"éåå³å¯å°è¯éæ°è¿æ¥å°è·¯ç±ãæ¨å¯è½éè¦æ´æ¹è®¡ç®æºçIPå°å以éæ°è¿æ¥ã"
+"éåå³å¯å°è¯éæ°è¿æ¥å°è·¯ç±ãæ¨å¯è½éè¦æ´æ¹è®¡ç®æºç IP å°å以éæ°è¿æ¥ã"
msgid ""
"The tunnel end-point is behind NAT, defaults to disabled and only applies to "
"AYIYA"
-msgstr "é§é端ç¹å¨NATä¹åï¼é»è®¤ä¸ºç¦ç¨ï¼ä»
éç¨äºAYIYA"
+msgstr "é§é端ç¹å¨ NAT ä¹åï¼é»è®¤ä¸ºç¦ç¨ï¼ä»
éç¨äº AYIYA"
msgid ""
"The uploaded image file does not contain a supported format. Make sure that "
"you choose the generic image format for your platform."
-msgstr "ä¸æ¯ææä¸ä¼ çæä»¶æ ¼å¼ã请确认éæ©çæ件æ 误ã"
+msgstr "ä¸æ¯ææä¸ä¼ çæ åæä»¶æ ¼å¼ï¼è¯·éæ©éåå½åå¹³å°çéç¨æ åæ件ã"
msgid "There are no active leases."
msgstr "没æå·²åé
çç§çº¦ã"
@@ -3111,65 +3235,67 @@ msgstr "å°æªåé
设å¤ï¼è¯·å¨âç©ç设置âé项å¡ä¸éæ©ç½ç»è®¾
msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface and enable SSH."
-msgstr "å°æªè®¾ç½®å¯ç ã请为rootç¨æ·è®¾ç½®å¯ç 以ä¿æ¤ä¸»æºå¹¶å¼å¯SSHã"
+msgstr "å°æªè®¾ç½®å¯ç ã请为 root ç¨æ·è®¾ç½®å¯ç 以ä¿æ¤ä¸»æºå¹¶å¯ç¨ SSHã"
msgid "This IPv4 address of the relay"
-msgstr "ä¸ç»§çIPv4å°å"
+msgstr "ä¸ç»§ç IPv4 å°å"
msgid ""
"This file may contain lines like 'server=/domain/1.2.3.4' or "
"'server=1.2.3.4' fordomain-specific or full upstream DNS servers."
msgstr ""
-"æ¤æ件å¯è½å
å«ç±»ä¼¼'server=/domain/1.2.3.4'æ'server=1.2.3.4'çè¡ï¼æ¥è§£æç¹å®"
-"ååææå®ä¸æ¸¸DNS æå¡å¨ã"
+"æ¤æ件å
å«ç±»ä¼¼äº 'server=/domain/1.2.3.4' æ 'server=1.2.3.4' çè¡ï¼ç¨äºè§£æ"
+"ç¹å®ååææå®ä¸æ¸¸ DNS æå¡å¨ã"
msgid ""
"This is a list of shell glob patterns for matching files and directories to "
"include during sysupgrade. Modified files in /etc/config/ and certain other "
"configurations are automatically preserved."
msgstr ""
-"ç³»ç»å级æ¶è¦ä¿åçé
ç½®æ件åç®å½çæ¸
åãç®å½/etc/config/å
ä¿®æ¹è¿çæ件以åé¨"
-"åå
¶ä»é
ç½®ä¼è¢«èªå¨ä¿åã"
+"ç³»ç»å级æ¶è¦ä¿åçé
ç½®æ件åç®å½çæ¸
åãç®å½ /etc/config/ å
ä¿®æ¹è¿çæ件以å"
+"é¨åå
¶ä»é
ç½®ä¼è¢«èªå¨ä¿åã"
msgid ""
"This is either the \"Update Key\" configured for the tunnel or the account "
"password if no update key has been configured"
-msgstr "å¦ææ´æ°å¯é¥æ²¡æ设置çè¯,é§éçâæ´æ°å¯é¥âæè
è´¦æ·å¯ç å¿
须填åã"
+msgstr "å¦ææ´æ°å¯é¥æ²¡æ设置çè¯ï¼é§éçâæ´æ°å¯é¥âæè
è´¦æ·å¯ç å¿
须填åã"
msgid ""
"This is the content of /etc/rc.local. Insert your own commands here (in "
"front of 'exit 0') to execute them at the end of the boot process."
-msgstr "å¯å¨èæ¬æå
¥å°'exit 0'ä¹åå³å¯éç³»ç»å¯å¨è¿è¡ã"
+msgstr "å¯å¨èæ¬æå
¥å° 'exit 0' ä¹åå³å¯éç³»ç»å¯å¨è¿è¡ã"
msgid ""
"This is the local endpoint address assigned by the tunnel broker, it usually "
"ends with :2
"
-msgstr "é§é代çåé
çæ¬å°ç»ç«¯å°åï¼é常以:2
ç»å°¾"
+msgstr "é§é代çåé
çæ¬å°ç»ç«¯å°åï¼é常以 :2
ç»å°¾"
msgid ""
"This is the only DHCP"
"abbr> in the local network"
-msgstr "è¿æ¯å
ç½ä¸å¯ä¸çDHCP æå¡å¨"
+msgstr ""
+"è¿æ¯æ¬å°ç½ç»ä¸å¯ä¸ç DHCP æå¡å¨"
msgid "This is the plain username for logging into the account"
msgstr "ç»å½è´¦æ·æ¶å¡«åçç¨æ·å"
msgid ""
"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr "è¿æ¯é§é代çåé
ç»ä½ çè·¯ç±åç¼ï¼ä¾å®¢æ·ç«¯ä½¿ç¨"
+msgstr "è¿æ¯é§é代çåé
ç»æ¨çè·¯ç±åç¼ï¼ä¾å®¢æ·ç«¯ä½¿ç¨"
msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "èªå®ä¹ç³»ç»Crontabä¸ç计åä»»å¡ã"
+msgstr "èªå®ä¹ç³»ç» crontab ä¸ç计åä»»å¡ã"
msgid ""
"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr "è¿é常æ¯é§é代çæ管ççæè¿çPoPçå°å"
+msgstr "è¿é常æ¯é§é代çæ管ççæè¿ç PoP çå°å"
msgid ""
"This list gives an overview over currently running system processes and "
"their status."
-msgstr "ç³»ç»ä¸æ£å¨è¿è¡çè¿ç¨åå
¶ç¶æä¿¡æ¯ã"
+msgstr "ç³»ç»ä¸æ£å¨è¿è¡çè¿ç¨æ¦åµåå®ä»¬çç¶æä¿¡æ¯ã"
msgid "This page allows the configuration of custom button actions"
msgstr "èªå®ä¹æé®å¨ä½ã"
@@ -3195,7 +3321,7 @@ msgid ""
msgstr "ä¸ä¼ å¤ä»½å档以æ¢å¤é
ç½®ã"
msgid "Tone"
-msgstr ""
+msgstr "Tone"
msgid "Total Available"
msgstr "å¯ç¨æ°"
@@ -3222,13 +3348,13 @@ msgid "Transmitter Antenna"
msgstr "ä¼ é天线"
msgid "Trigger"
-msgstr "触å"
+msgstr "触åå¨"
msgid "Trigger Mode"
msgstr "触å模å¼"
msgid "Tunnel ID"
-msgstr "é§éID"
+msgstr "é§é ID"
msgid "Tunnel Interface"
msgstr "é§éæ¥å£"
@@ -3245,9 +3371,6 @@ msgstr "é§éé
ç½®æå¡å¨"
msgid "Tunnel type"
msgstr "é§éç±»å"
-msgid "Turbo Mode"
-msgstr "Turbo模å¼"
-
msgid "Tx-Power"
msgstr "ä¼ è¾åç"
@@ -3255,19 +3378,19 @@ msgid "Type"
msgstr "ç±»å"
msgid "UDP:"
-msgstr "UDP:"
+msgstr "UDPï¼"
msgid "UMTS only"
-msgstr "ä»
UMTS(WCDMA)"
+msgstr "ä»
UMTSï¼WCDMAï¼"
msgid "UMTS/GPRS/EV-DO"
msgstr "UMTS/GPRS/EV-DO"
msgid "USB Device"
-msgstr "USB设å¤"
+msgstr "USB 设å¤"
msgid "USB Ports"
-msgstr ""
+msgstr "USB æ¥å£"
msgid "UUID"
msgstr "UUID"
@@ -3276,7 +3399,7 @@ msgid "Unable to dispatch"
msgstr "æ æ³è°åº¦"
msgid "Unavailable Seconds (UAS)"
-msgstr "ä¸å¯ç¨ç§æ°(UAS)"
+msgstr "ä¸å¯ç¨ç§æ°ï¼UASï¼"
msgid "Unknown"
msgstr "æªç¥"
@@ -3303,7 +3426,9 @@ msgid ""
"Upload a sysupgrade-compatible image here to replace the running firmware. "
"Check \"Keep settings\" to retain the current configuration (requires a "
"compatible firmware image)."
-msgstr "ä¸ä¼ å
¼å®¹çSysupgradeåºä»¶ä»¥å·æ°å½åç³»ç»ã"
+msgstr ""
+"ä¸ä¼ ä¸ä¸ª sysupgrade æ ¼å¼çåºä»¶æ åæ件以æ¿æ¢å½åè¿è¡çåºä»¶ãå¾éâä¿çé
ç½®â以"
+"使æ´æ°åçç³»ç»ä»ç¶ä½¿ç¨å½åçç³»ç»é
ç½®ï¼æ°çåºä»¶éè¦åå½ååºä»¶å
¼å®¹ï¼ã"
msgid "Upload archive..."
msgstr "ä¸ä¼ å¤ä»½..."
@@ -3315,37 +3440,37 @@ msgid "Uptime"
msgstr "è¿è¡æ¶é´"
msgid "Use /etc/ethers
"
-msgstr "使ç¨/etc/ethers
é
ç½®"
+msgstr "ä½¿ç¨ /etc/ethers
é
ç½®"
msgid "Use DHCP gateway"
-msgstr "使ç¨DHCPç½å
³"
+msgstr "ä½¿ç¨ DHCP ç½å
³"
msgid "Use DNS servers advertised by peer"
-msgstr "使ç¨ç«¯å±éåçDNSæå¡å¨"
+msgstr "使ç¨å¯¹ç«¯éåç DNS æå¡å¨"
msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "åèISO/IEC 3166 alpha2å½å®¶ä»£ç ã"
+msgstr "åè ISO/IEC 3166 alpha2 å½å®¶ä»£ç ã"
msgid "Use MTU on tunnel interface"
-msgstr "é§éæ¥å£çMTU"
+msgstr "é§éæ¥å£ç MTU"
msgid "Use TTL on tunnel interface"
-msgstr "é§éæ¥å£çTTL"
+msgstr "é§éæ¥å£ç TTL"
msgid "Use as external overlay (/overlay)"
-msgstr "ä½ä¸ºå¤é¨Overlay使ç¨(/overlay)"
+msgstr "ä½ä¸ºå¤é¨ overlay 使ç¨ï¼/overlayï¼"
msgid "Use as root filesystem (/)"
-msgstr "ä½ä¸ºè·æ件系ç»ä½¿ç¨(/)"
+msgstr "ä½ä¸ºæ ¹æ件系ç»ä½¿ç¨ï¼/ï¼"
msgid "Use broadcast flag"
msgstr "使ç¨å¹¿ææ ç¾"
msgid "Use builtin IPv6-management"
-msgstr "使ç¨å
ç½®çIPv6管ç"
+msgstr "使ç¨å
ç½®ç IPv6 管ç"
msgid "Use custom DNS servers"
-msgstr "使ç¨èªå®ä¹çDNSæå¡å¨"
+msgstr "使ç¨èªå®ä¹ç DNS æå¡å¨"
msgid "Use default gateway"
msgstr "使ç¨é»è®¤ç½å
³"
@@ -3363,8 +3488,9 @@ msgid ""
"requesting host. The optional Lease time can be used to set non-"
"standard host-specific lease time, e.g. 12h, 3d or infinite."
msgstr ""
-"使ç¨æ·»å æ¥å¢å æ°çç§çº¦æ¡ç®ã使ç¨MAC-å°å é´å«ä¸»æºï¼IPv4-"
-"å°å åé
å°åï¼ä¸»æºå åé
æ è¯ã"
+"使ç¨âæ·»å âæé®æ¥å¢å æ°çç§çº¦æ¡ç®ãâIPv4 å°åâåâ主æºåâå段çå¼å°è¢«åºå®åé
"
+"ç»âMAC å°åâå段æ è¯ç主æºï¼âç§æâæ¯ä¸ä¸ªå¯éå段ï¼å¯ä¸ºæ¯ä¸ªä¸»æºåç¬è®¾å® DHCP "
+"ç§æçæ¶é¿ï¼ä¾å¦ï¼12hã3dãinifiniteï¼åå«è¡¨ç¤º 12 å°æ¶ã3 天ãæ°¸ä¹
ã"
msgid "Used"
msgstr "å·²ç¨"
@@ -3372,11 +3498,18 @@ msgstr "å·²ç¨"
msgid "Used Key Slot"
msgstr "å¯ç¨å¯ç ç»"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+"ç¨äºä¸¤ç§ä¸åçç¨éï¼RADIUS NAS ID å 802.11r R0KH-IDï¼æ®é WPA(2)-PSK ä¸é"
+"è¦ã"
+
msgid "User certificate (PEM encoded)"
-msgstr "客æ·è¯ä¹¦(PEMå å¯ç)"
+msgstr "ç¨æ·è¯ä¹¦ï¼PEMï¼"
msgid "User key (PEM encoded)"
-msgstr "客æ·Key(PEMå å¯ç)"
+msgstr "ç¨æ·å¯é¥ï¼PEMï¼"
msgid "Username"
msgstr "ç¨æ·å"
@@ -3388,40 +3521,40 @@ msgid "VDSL"
msgstr "VDSL"
msgid "VLANs on %q"
-msgstr "%q ä¸çVLAN"
+msgstr "%q ä¸ç VLAN"
msgid "VLANs on %q (%s)"
-msgstr "%q (%s) ä¸çVLAN"
+msgstr "%qï¼%sï¼ä¸ç VLAN"
msgid "VPN Local address"
-msgstr "VPNæ¬å°å°å"
+msgstr "VPN æ¬å°å°å"
msgid "VPN Local port"
-msgstr "VPNæ¬å°ç«¯å£"
+msgstr "VPN æ¬å°ç«¯å£"
msgid "VPN Server"
-msgstr "VPNæå¡å¨"
+msgstr "VPN æå¡å¨"
msgid "VPN Server port"
-msgstr "VPNæå¡å¨ç«¯å£"
+msgstr "VPN æå¡å¨ç«¯å£"
msgid "VPN Server's certificate SHA1 hash"
-msgstr "VPNæå¡å¨è¯ä¹¦çSHA1åå¸å¼"
+msgstr "VPN æå¡å¨è¯ä¹¦ç SHA1 åå¸å¼"
msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (CISCO 3000 åå
¶ä»VPN)"
+msgstr "VPNCï¼CISCO 3000 åå
¶ä» VPNï¼"
msgid "Vendor"
-msgstr ""
+msgstr "Vendor"
msgid "Vendor Class to send when requesting DHCP"
-msgstr "请æ±DHCPæ¶åéçVendor Class"
+msgstr "è¯·æ± DHCP æ¶åéç Vendor Class é项"
msgid "Verbose"
msgstr "详ç»"
msgid "Verbose logging by aiccu daemon"
-msgstr "aiccuå®æ¤ç¨åºè¯¦ç»æ¥å¿"
+msgstr "Aiccu å®æ¤ç¨åºè¯¦ç»æ¥å¿"
msgid "Verify"
msgstr "éªè¯"
@@ -3433,36 +3566,36 @@ msgid "WDS"
msgstr "WDS"
msgid "WEP Open System"
-msgstr "WEPå¼æ¾è®¤è¯"
+msgstr "WEP å¼æ¾å¼ç³»ç»"
msgid "WEP Shared Key"
-msgstr "WEPå
±äº«å¯é¥"
+msgstr "WEP å
±äº«å¯é¥"
msgid "WEP passphrase"
-msgstr "WEPå¯é¥"
+msgstr "WEP å¯é¥"
msgid "WMM Mode"
-msgstr "WMMå¤åªä½å é"
+msgstr "WMM 模å¼"
msgid "WPA passphrase"
-msgstr "WPAå¯é¥"
+msgstr "WPA å¯é¥"
msgid ""
"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
"and ad-hoc mode) to be installed."
msgstr ""
-"WPAå å¯éè¦å®è£
wpa_supplicant(客æ·ç«¯æ¨¡å¼)æå®è£
hostapd(æ¥å
¥ç¹APãç¹å¯¹ç¹ad-hoc"
-"模å¼)ã"
+"WPA å å¯éè¦å®è£
wpa_supplicantï¼å®¢æ·ç«¯æ¨¡å¼ï¼æå®è£
hostapdï¼æ¥å
¥ç¹ APãç¹å¯¹"
+"ç¹ Ad-Hoc 模å¼ï¼ã"
msgid ""
"Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
-msgstr "å¨NTPåæ¥ä¹åçå¾
æ¶é´ï¼è®¾ç½®ä¸º0表示åæ¥ä¹åä¸çå¾
(å¯é)"
+msgstr "NTP åæ¥åççå¾
æ¶é´ï¼è®¾ç½®ä¸º 0 表示ä¸çå¾
ï¼å¯éï¼"
msgid "Waiting for changes to be applied..."
msgstr "æ£å¨åºç¨æ´æ¹..."
msgid "Waiting for command to complete..."
-msgstr "æ£å¨æ§è¡å½ä»¤..."
+msgstr "çå¾
å½ä»¤æ§è¡å®æ..."
msgid "Waiting for device..."
msgstr "çå¾
设å¤..."
@@ -3471,10 +3604,10 @@ msgid "Warning"
msgstr "è¦å"
msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr "è¦åï¼æä¸äºæªä¿åçé
ç½®å°å¨éå¯å丢失ï¼"
+msgstr "è¦åï¼ä¸äºæªä¿åçé
ç½®å°å¨éå¯å丢失ï¼"
msgid "Whether to create an IPv6 default route over the tunnel"
-msgstr "æ¯å¦éè¿é§éå建IPv6缺çè·¯ç±"
+msgstr "æ¯å¦æ·»å ä¸æ¡éåé§éç IPv6 é»è®¤è·¯ç±"
msgid "Whether to route only packets from delegated prefixes"
msgstr "æ¯å¦ä»
è·¯ç±æ¥èªåååç¼çæ°æ®å
"
@@ -3483,7 +3616,7 @@ msgid "Width"
msgstr "é¢å®½"
msgid "WireGuard VPN"
-msgstr ""
+msgstr "WireGuard VPN"
msgid "Wireless"
msgstr "æ 线"
@@ -3501,10 +3634,10 @@ msgid "Wireless Security"
msgstr "æ 线å®å
¨"
msgid "Wireless is disabled or not associated"
-msgstr "æªå¼å¯ææªå
³èæ 线"
+msgstr "æ 线æªå¼å¯ææªå
³è"
msgid "Wireless is restarting..."
-msgstr "éå¯æ 线ä¸..."
+msgstr "æ 线éå¯ä¸..."
msgid "Wireless network is disabled"
msgstr "æ 线已ç¦ç¨"
@@ -3519,33 +3652,30 @@ msgid "Wireless shut down"
msgstr "æ 线已å
³é"
msgid "Write received DNS requests to syslog"
-msgstr "å°æ¶å°çDNS请æ±åå
¥ç³»ç»æ¥å¿"
+msgstr "å°æ¶å°ç DNS 请æ±åå
¥ç³»ç»æ¥å¿"
msgid "Write system log to file"
msgstr "å°ç³»ç»æ¥å¿åå
¥æ件"
-msgid "XR Support"
-msgstr "XRæ¯æ"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
"scripts like \"network\", your device might become inaccessible! "
msgstr ""
-"å¯ç¨æç¦ç¨å·²å®è£
çå¯å¨èæ¬ãæ´æ¹å¨è®¾å¤éå¯åçæãè¦åï¼å¦æç¦"
-"ç¨äºå¿
è¦çå¯å¨èæ¬ï¼æ¯å¦\"network\"ï¼å¯è½ä¼å¯¼è´è®¾å¤æ æ³è®¿é®ï¼ "
+"å¨æ¤å¯ç¨æç¦ç¨å·²å®è£
çå¯å¨èæ¬ï¼æ´æ¹å¨è®¾å¤éå¯åçæãè¦åï¼å¦"
+"æç¦ç¨äºå¿
è¦çå¯å¨èæ¬ï¼æ¯å¦ \"network\"ï¼å¯è½ä¼å¯¼è´æ æ³è®¿é®è®¾å¤ï¼ "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "LUCIçæ£å¸¸è¿è¡éè¦å¼å¯æµè§å¨çJava Scriptæ¯æã"
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "å¿
é¡»å¼å¯æµè§å¨ç JavaScript æ¯æï¼å¦å LuCI æ æ³æ£å¸¸å·¥ä½ã"
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
"upgrade it to at least version 7 or use another browser like Firefox, Opera "
"or Safari."
msgstr ""
-"ä½ çInternet Explorerå·²ç»èå°æ æ³æ£å¸¸æ¾ç¤ºè¿ä¸ªé¡µé¢äºï¼è¯·è³å°æ´æ°å°IE7æè
使ç¨"
-"诸å¦Firefox Opera Safariä¹ç±»çæµè§å¨ã"
+"æ¨ç IE æµè§å¨å¤ªèäºï¼æ æ³æ£å¸¸æ¾ç¤ºè¿ä¸ªé¡µé¢ï¼è¯·æ´æ°å° IE7 å以ä¸æ使ç¨å
¶ä»æµè§"
+"å¨ï¼ä¾å¦ï¼ChromeãFirefoxãOperaãSafariã"
msgid "any"
msgstr "ä»»æ"
@@ -3553,9 +3683,6 @@ msgstr "ä»»æ"
msgid "auto"
msgstr "èªå¨"
-msgid "automatic"
-msgstr "èªå¨"
-
msgid "baseT"
msgstr "baseT"
@@ -3563,7 +3690,7 @@ msgid "bridged"
msgstr "æ¡¥æ¥ç"
msgid "create:"
-msgstr "å建:"
+msgstr "å建ï¼"
msgid "creates a bridge over specified interface(s)"
msgstr "为æå®æ¥å£å建桥æ¥"
@@ -3586,7 +3713,9 @@ msgstr "è¿ææ¶é´"
msgid ""
"file where given DHCP"
"abbr>-leases will be stored"
-msgstr "åæ¾DHCP ç§çº¦çæ件"
+msgstr ""
+"ç¨äºåæ¾å·²åé
ç DHCP"
+"abbr> ç§çº¦çæ件"
msgid "forward"
msgstr "转å"
@@ -3622,16 +3751,16 @@ msgid "kbit/s"
msgstr "kbit/s"
msgid "local DNS file"
-msgstr "æ¬å°DNS 解ææ件"
+msgstr "æ¬å° DNS 解ææ件"
msgid "minimum 1280, maximum 1480"
-msgstr "æå°å¼1280ï¼æ大å¼1480"
+msgstr "æå°å¼ 1280ï¼æå¤§å¼ 1480"
-msgid "navigation Navigation"
-msgstr "导èª"
+msgid "minutes"
+msgstr "åé"
msgid "no"
-msgstr ""
+msgstr "å¦"
msgid "no link"
msgstr "æªè¿æ¥"
@@ -3663,12 +3792,6 @@ msgstr "已路ç±"
msgid "server mode"
msgstr "æå¡å¨æ¨¡å¼"
-msgid "skiplink1 Skip to navigation"
-msgstr "skiplink1 跳转å°å¯¼èª"
-
-msgid "skiplink2 Skip to content"
-msgstr "skiplink2 è·³å°å
容"
-
msgid "stateful-only"
msgstr "æç¶æç"
@@ -3676,10 +3799,13 @@ msgid "stateless"
msgstr "æ ç¶æç"
msgid "stateless + stateful"
-msgstr "æç¶æåæ ç¶æç"
+msgstr "æ ç¶æç + æç¶æç"
msgid "tagged"
-msgstr "å
³è"
+msgstr "å·²å
³è"
+
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr "æ¶é´åä½ï¼TUs / 1.024msï¼[1000-65535]"
msgid "unknown"
msgstr "æªç¥"
@@ -3691,10 +3817,10 @@ msgid "unspecified"
msgstr "æªæå®"
msgid "unspecified -or- create:"
-msgstr "æªæå®æå建ï¼"
+msgstr "ä¸æå®ææ°å»ºï¼"
msgid "untagged"
-msgstr "ä¸å
³è"
+msgstr "æªå
³è"
msgid "yes"
msgstr "æ¯"
@@ -3702,6 +3828,78 @@ msgstr "æ¯"
msgid "« Back"
msgstr "« åé"
+#~ msgid "Leasetime"
+#~ msgstr "ç§ç¨æ¶é´"
+
+#~ msgid "Optional."
+#~ msgstr "å¯éã"
+
+#~ msgid "navigation Navigation"
+#~ msgstr "导èª"
+
+#~ msgid "skiplink1 Skip to navigation"
+#~ msgstr "skiplink1 跳转å°å¯¼èª"
+
+#~ msgid "skiplink2 Skip to content"
+#~ msgstr "skiplink2 è·³å°å
容"
+
+#~ msgid "AuthGroup"
+#~ msgstr "认è¯ç»"
+
+#~ msgid "automatic"
+#~ msgstr "èªå¨"
+
+#~ msgid "AR Support"
+#~ msgstr "AR æ¯æ"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Qualcomm/Atheros 802.11%s æ 线æ§å¶å¨"
+
+#~ msgid "Background Scan"
+#~ msgstr "åå°æç´¢"
+
+#~ msgid "Compression"
+#~ msgstr "å缩"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "åç¨ HW-Beacon 计æ¶å¨"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "ä¸åéæ¢æµååº"
+
+#~ msgid "Fast Frames"
+#~ msgstr "å¿«é帧"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "æé«éç"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "æä½éç"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "å¤æéç"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "æ·å¤é¢é"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "æ 线ç½ç»å½å®¶åºå"
+
+#~ msgid "Separate WDS"
+#~ msgstr "é离 WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "éæ WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo 模å¼"
+
+#~ msgid "XR Support"
+#~ msgstr "XR æ¯æ"
+
+#~ msgid "Required. Public key of peer."
+#~ msgstr "å¿
é¡»ï¼Peer çå
¬é¥ã"
+
#~ msgid "An additional network will be created if you leave this checked."
#~ msgstr "å¦æéä¸æ¤å¤éæ¡ï¼åä¼å建ä¸ä¸ªéå ç½ç»ã"
@@ -3718,7 +3916,7 @@ msgstr "« åé"
#~ msgstr "ç«¯å£ %d"
#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "ç«¯å£ %d å¨å¤ä¸ªVLANä¸åæªå
³èï¼"
+#~ msgstr "ç«¯å£ %d å¨å¤ä¸ª VLAN ä¸åæªå
³èï¼"
#~ msgid "VLAN Interface"
-#~ msgstr "VLANæ¥å£"
+#~ msgstr "VLAN æ¥å£"
diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po
index 316d03c774..214e9cd79d 100644
--- a/modules/luci-base/po/zh-tw/base.po
+++ b/modules/luci-base/po/zh-tw/base.po
@@ -50,12 +50,36 @@ msgstr "1åéè² è¼"
msgid "15 Minute Load:"
msgstr "15åéè² è¼"
+msgid "4-character hexadecimal ID"
+msgstr ""
+
msgid "464XLAT (CLAT)"
msgstr ""
msgid "5 Minute Load:"
msgstr "5åéè² è¼"
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
msgid "BSSID "
msgstr "BSSID "
@@ -123,6 +147,11 @@ msgstr "æ大 並ç¼æ¥è©¢æ¸"
msgid "%s - %s "
msgstr "%s - %s "
+msgid ""
+" Note: you need to manually restart the cron service if the crontab file "
+"was empty before editing."
+msgstr ""
+
msgid "A43C + J43 + A43"
msgstr ""
@@ -141,9 +170,6 @@ msgstr ""
msgid "APN"
msgstr "APN"
-msgid "AR Support"
-msgstr "ARæ¯æ´"
-
msgid "ARP retry threshold"
msgstr "ARPé試é檻"
@@ -381,15 +407,9 @@ msgstr ""
msgid "Associated Stations"
msgstr "å·²é£æ¥ç«é»"
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s ç¡ç·æ§å¶å¨"
-
msgid "Auth Group"
msgstr ""
-msgid "AuthGroup"
-msgstr ""
-
msgid "Authentication"
msgstr "èªè"
@@ -462,9 +482,6 @@ msgstr "è¿åè³ç¸½è¦½"
msgid "Back to scan results"
msgstr "è¿åè³ææçµæ"
-msgid "Background Scan"
-msgstr "èæ¯æå°"
-
msgid "Backup / Flash Firmware"
msgstr "å份/åç´éé«"
@@ -580,14 +597,14 @@ msgid ""
"fill out the create field to define a new zone and attach the "
"interface to it."
msgstr ""
-"é¸æä½ è¦æå®çµ¦éä»é¢çé²ç«çå. æ¿é¸unspecified 以便å¾æå®ååé¤éå"
+"é¸ææ¨è¦æå®çµ¦éä»é¢çé²ç«çå. æ¿é¸unspecified 以便å¾æå®ååé¤éå"
"ä»é¢æè
填寫create æ¬ä»¥ä¾¿å®ç¾©éå éåä»é¢å°ä¸åæ°çååä¸."
msgid ""
"Choose the network(s) you want to attach to this wireless interface or fill "
"out the create field to define a new network."
msgstr ""
-"é¸æä½ è¦éå å°ç¡ç·ç¶²è·¯ä»é¢çå¤å網路æè
填寫create 以便å®ç¾©ä¸åæ°ç"
+"é¸ææ¨è¦éå å°ç¡ç·ç¶²è·¯ä»é¢çå¤å網路æè
填寫create 以便å®ç¾©ä¸åæ°ç"
"網路."
msgid "Cipher"
@@ -627,8 +644,12 @@ msgstr "æ令"
msgid "Common Configuration"
msgstr "ä¸è¬è¨å®"
-msgid "Compression"
-msgstr "å£ç¸®"
+msgid ""
+"Complicates key reinstallation attacks on the client side by disabling "
+"retransmission of EAPOL-Key frames that are used to install keys. This "
+"workaround might cause interoperability issues and reduced robustness of key "
+"negotiation especially in environments with heavy traffic load."
+msgstr ""
msgid "Configuration"
msgstr "è¨å®"
@@ -848,12 +869,12 @@ msgstr "ééDNSè¨ç½®"
msgid "Disable Encryption"
msgstr ""
-msgid "Disable HW-Beacon timer"
-msgstr "éé硬é«çèè¨æå¨"
-
msgid "Disabled"
msgstr "éé"
+msgid "Disabled (default)"
+msgstr ""
+
msgid "Discard upstream RFC1918 responses"
msgstr "ä¸æ£ä¸æ¸¸RFC1918 èæ¬IP網路çåæ"
@@ -891,9 +912,6 @@ msgstr "å°ä¸è¢«å
¬ç¨å稱伺æå¨åæçè«æ±ä¸è½ç¼"
msgid "Do not forward reverse lookups for local networks"
msgstr "å°æ¬å°ç¶²åä¸è½ç¼å解æéå®"
-msgid "Do not send probe responses"
-msgstr "ä¸å³éæ¢æ¸¬åæ"
-
msgid "Domain required"
msgstr "網åå¿
è¦ç"
@@ -996,6 +1014,9 @@ msgstr "åç¨VLANåè½"
msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
msgstr ""
+msgid "Enable key reinstallation (KRACK) countermeasures"
+msgstr ""
+
msgid "Enable learning and aging"
msgstr "åç¨æºæ
§å¸ç¿åè½"
@@ -1020,6 +1041,11 @@ msgstr "åç¨/éé"
msgid "Enabled"
msgstr "åç¨"
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
msgid "Enables the Spanning Tree Protocol on this bridge"
msgstr "å¨æ©æ¥å¨ä¸åç¨802.1d Spanning Treeåå®"
@@ -1067,6 +1093,12 @@ msgstr "éæ¾ä½åçéæé±æ,æå°å
©åé (2m
)."
msgid "External"
msgstr ""
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
msgid "External system log server"
msgstr "å¤é¨ç³»çµ±æ¥èªä¼ºæå¨"
@@ -1079,9 +1111,6 @@ msgstr ""
msgid "Extra SSH command options"
msgstr ""
-msgid "Fast Frames"
-msgstr "å¿«éè¿
æ¡ç¾¤"
-
msgid "File"
msgstr "æªæ¡"
@@ -1117,6 +1146,9 @@ msgstr "å®æ"
msgid "Firewall"
msgstr "é²ç«ç"
+msgid "Firewall Mark"
+msgstr ""
+
msgid "Firewall Settings"
msgstr "é²ç«çè¨å®"
@@ -1162,6 +1194,9 @@ msgstr "å¼·å¶TKIPå å¯"
msgid "Force TKIP and CCMP (AES)"
msgstr "å¼·å¶TKIP+CCMP (AES)å å¯"
+msgid "Force link"
+msgstr ""
+
msgid "Force use of NAT-T"
msgstr ""
@@ -1405,9 +1440,15 @@ msgstr "IPv6åé¦é·åº¦"
msgid "IPv6 routed prefix"
msgstr ""
+msgid "IPv6 suffix"
+msgstr ""
+
msgid "IPv6-Address"
msgstr "IPv6-ä½å"
+msgid "IPv6-PD"
+msgstr ""
+
msgid "IPv6-in-IPv4 (RFC4213)"
msgstr "IPv6å
è¦å¨IPv4å
§(RFC4213)"
@@ -1420,7 +1461,7 @@ msgstr "IPv6åé§IPv4å¤(6è½4)"
msgid "Identity"
msgstr "ç¹æ§"
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
msgstr ""
msgid "If checked, encryption is disabled"
@@ -1448,7 +1489,7 @@ msgid ""
"slow process as the swap-device cannot be accessed with the high datarates "
"of the RAM ."
msgstr ""
-"å¦æä½ çç©çå
§åä¸è¶³æ,æªä½¿ç¨çæ¸æå¯ä»¥æ¯æ«æ交æå°å°è´æ´é«ç交æè¨åéçå¯ç¨"
+"å¦ææ¨çç©çå
§åä¸è¶³æ,æªä½¿ç¨çæ¸æå¯ä»¥æ¯æ«æ交æå°å°è´æ´é«ç交æè¨åéçå¯ç¨"
"RAM å
§.è«æ³¨æï¼äº¤ææ¸ææ¯ä¸åé常"
"ç·©æ
¢çéç¨,ä½çºäº¤æè£ç½®ä¸è½ç¨é«æ¸æéç訪å該RAM縮寫>"
@@ -1506,6 +1547,9 @@ msgstr "å®è£è»é«å
"
msgid "Interface"
msgstr "ä»é¢"
+msgid "Interface %q device auto-migrated from %q to %q."
+msgstr ""
+
msgid "Interface Configuration"
msgstr "ä»é¢è¨å®"
@@ -1551,13 +1595,16 @@ msgstr "æå
¥çæ¯ä¸æ£ç¢ºçVLAN ID!å
æç¨ä¸ç¡äºçIDs被å
許"
msgid "Invalid username and/or password! Please try again."
msgstr "ä¸æ£ç¢ºçç¨æ¶å稱å/æè
å¯ç¢¼!è«å試ä¸æ¬¡."
+msgid "Isolate Clients"
+msgstr ""
+
#, fuzzy
msgid ""
"It appears that you are trying to flash an image that does not fit into the "
"flash memory, please verify the image file!"
-msgstr "å®é¡¯ç¤ºä½ æ£å試æ´æ°ä¸é©ç¨æ¼éåflashè¨æ¶é«çæ åæª,è«æª¢æ¥ç¢ºèªéåæ åæª"
+msgstr "å®é¡¯ç¤ºæ¨æ£å試æ´æ°ä¸é©ç¨æ¼éåflashè¨æ¶é«çæ åæª,è«æª¢æ¥ç¢ºèªéåæ åæª"
-msgid "Java Script required!"
+msgid "JavaScript required!"
msgstr "éè¦Javaè
³æ¬"
msgid "Join Network"
@@ -1626,9 +1673,6 @@ msgstr "ç§è³æææé"
msgid "Leasefile"
msgstr "ç§è³æªæ¡"
-msgid "Leasetime"
-msgstr "ç§è³æé"
-
msgid "Leasetime remaining"
msgstr "ç§è³ä¿çæé"
@@ -1670,6 +1714,22 @@ msgid ""
"requests to"
msgstr "ååº DNS 伺æå¨ä»¥ä¾¿è½ç¼è«æ±"
+msgid ""
+"List of R0KHs in the same Mobility Domain. Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
msgid "List of SSH key files for auth"
msgstr ""
@@ -1803,9 +1863,6 @@ msgstr ""
msgid "Max. Attainable Data Rate (ATTNDR)"
msgstr ""
-msgid "Maximum Rate"
-msgstr "æå¿«é度"
-
msgid "Maximum allowed number of active DHCP leases"
msgstr "å
許åç¨DHCPéæ¾çæ大æ¸é"
@@ -1841,9 +1898,6 @@ msgstr "è¨æ¶é«ä½¿ç¨ (%)"
msgid "Metric"
msgstr "å
¬æ¸¬å®ä½"
-msgid "Minimum Rate"
-msgstr "æä½é度"
-
msgid "Minimum hold time"
msgstr "å¯ææçæä½æé"
@@ -1856,6 +1910,9 @@ msgstr ""
msgid "Missing protocol extension for proto %q"
msgstr "åå® %q æ¼å¤±ç延伸åå®"
+msgid "Mobility Domain"
+msgstr ""
+
msgid "Mode"
msgstr "模å¼"
@@ -1912,9 +1969,6 @@ msgstr "å¾ä¸ç§»"
msgid "Move up"
msgstr "å¾ä¸ç§»"
-msgid "Multicast Rate"
-msgstr "å¤é»ç¾¤æé度"
-
msgid "Multicast address"
msgstr "å¤é»ç¾¤æä½å"
@@ -1927,6 +1981,9 @@ msgstr ""
msgid "NAT64 Prefix"
msgstr ""
+msgid "NCM"
+msgstr ""
+
msgid "NDP-Proxy"
msgstr ""
@@ -2070,8 +2127,8 @@ msgid ""
"INTERFACE.VLANNR (e.g. : "
"eth0.1 )."
msgstr ""
-"å¨éåé é¢ä½ å¯ä»¥è¨å®ç¶²è·¯ä»é¢. åªè¦é»ä¸éå\"ä»é¢ç¾¤æ©æ¥\"èä¸æå
¥æ¸åä»¥ç©ºæ ¼å"
-"é網路ä»é¢çå稱就å¯ä»¥æ©æ¥æ¸åä»é¢ç¾¤. ä½ ä¹å¯ä»¥ä½¿ç¨VLAN 符èINTERFACE.VLANNR (ä¾.å¦ : eth0.1 )."
@@ -2105,18 +2162,30 @@ msgstr "é¸é
å·²è®æ´"
msgid "Option removed"
msgstr "é¸é
已移é¤"
+msgid "Optional"
+msgstr ""
+
msgid "Optional, specify to override default server (tic.sixxs.net)"
msgstr ""
msgid "Optional, use when the SIXXS account has more than one tunnel"
msgstr ""
-msgid "Optional."
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with 0x
."
msgstr ""
msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
+"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
+"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
+"for the interface."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
msgstr ""
msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2153,9 +2222,6 @@ msgstr "åº"
msgid "Outbound:"
msgstr "å¤é£:"
-msgid "Outdoor Channels"
-msgstr "室å¤éé"
-
msgid "Output Interface"
msgstr ""
@@ -2203,6 +2269,9 @@ msgstr "PID碼"
msgid "PIN"
msgstr "PIN碼"
+msgid "PMK R1 Push"
+msgstr ""
+
msgid "PPP"
msgstr "PPPåå®"
@@ -2260,6 +2329,9 @@ msgstr ""
msgid "Password successfully changed!"
msgstr "å¯ç¢¼å·²è®æ´æå!"
+msgid "Password2"
+msgstr ""
+
msgid "Path to CA-Certificate"
msgstr "CA-èæ¸çè·¯å¾"
@@ -2315,7 +2387,7 @@ msgid "Pkts."
msgstr "å°å
æ¸."
msgid "Please enter your username and password."
-msgstr "è«è¼¸å
¥ä½ çç¨æ¶å稱åå¯ç¢¼"
+msgstr "è«è¼¸å
¥æ¨çç¨æ¶å稱åå¯ç¢¼"
msgid "Policy"
msgstr "çç¥"
@@ -2332,6 +2404,15 @@ msgstr ""
msgid "Pre-emtive CRC errors (CRCP_P)"
msgstr ""
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
msgid "Preshared Key"
msgstr ""
@@ -2397,6 +2478,12 @@ msgstr ""
msgid "Quality"
msgstr "å質"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
msgid "RFC3947 NAT-T mode"
msgstr ""
@@ -2442,14 +2529,14 @@ msgid ""
"lose access to this device if you are connected via this interface."
msgstr ""
"ççè¦åªé¤éä»é¢?ç¡æ³å¾©å
åªé¤!\n"
-"åå¦ä½ è¦éééåä»é¢é£ç·ä½ å¯è½æç¡æ³ååéåè¨å."
+"åå¦æ¨è¦éééåä»é¢é£ç·æ¨å¯è½æç¡æ³ååéåè¨å."
msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou "
"might lose access to this device if you are connected via this network."
msgstr ""
"ççè¦åªé¤éåç¡ç·ç¶²è·¯?ç¡æ³å¾©å
çåªé¤!\n"
-"åå¦ä½ æ¯éééå網路é£ç·ä½ å¯è½æç¡æ³ååéåè¨å."
+"åå¦æ¨æ¯éééå網路é£ç·æ¨å¯è½æç¡æ³ååéåè¨å."
msgid "Really reset all changes?"
msgstr "確å®è¦éç½®å復åå» ?"
@@ -2460,14 +2547,14 @@ msgid ""
"connected via this interface."
msgstr ""
"ççè¦åªé¤éå網路 ?\n"
-"åå¦ä½ æ¯éééåä»é¢é£ç·ä½ å¯è½æç¡æ³ååéåè¨å."
+"åå¦æ¨æ¯éééåä»é¢é£ç·æ¨å¯è½æç¡æ³ååéåè¨å."
msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
"you are connected via this interface."
msgstr ""
"ççè¦éééåä»é¢ \"%s\" ?!\n"
-"åå¦ä½ è¦éééåä»é¢é£ç·ä½ å¯è½æç¡æ³ååéåè¨å."
+"åå¦æ¨è¦éééåä»é¢é£ç·æ¨å¯è½æç¡æ³ååéåè¨å."
msgid "Really switch protocol?"
msgstr "確å®è¦æ´æåå®?"
@@ -2487,6 +2574,9 @@ msgstr "å³ææµé"
msgid "Realtime Wireless"
msgstr "å³æç¡ç·ç¶²è·¯"
+msgid "Reassociation Deadline"
+msgstr ""
+
msgid "Rebind protection"
msgstr "éæ°ç¶è·"
@@ -2497,7 +2587,7 @@ msgid "Rebooting..."
msgstr "ééä¸..."
msgid "Reboots the operating system of your device"
-msgstr "éåä½ è¨åçä½æ¥ç³»çµ±"
+msgstr "éåæ¨è¨åçä½æ¥ç³»çµ±"
msgid "Receive"
msgstr "æ¥æ¶"
@@ -2517,9 +2607,6 @@ msgstr "éé£éåä»é¢ä¸"
msgid "References"
msgstr "å¼ç¨"
-msgid "Regulatory Domain"
-msgstr "ç£ç®¡ç¶²å"
-
msgid "Relay"
msgstr "延é²"
@@ -2559,19 +2646,27 @@ msgstr ""
msgid "Require TLS"
msgstr ""
+msgid "Required"
+msgstr ""
+
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
msgstr "å°ç¹å®çISPéè¦,ä¾å¦.DOCSIS 3 å éæç·é»è¦å¯¬é »ç¶²è·¯"
msgid "Required. Base64-encoded private key for this interface."
msgstr ""
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
msgid ""
"Required. IP addresses and prefixes that this peer is allowed to use inside "
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+" (as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
msgstr ""
msgid ""
@@ -2711,9 +2806,6 @@ msgstr "å³éLCPå¼å«è«æ±å¨éå給äºçç§æ¸ééå
§, å
å½±é¿éè¯
msgid "Separate Clients"
msgstr "åéç¨æ¶ç«¯"
-msgid "Separate WDS"
-msgstr "åéWDSä¸ç¹¼"
-
msgid "Server Settings"
msgstr "伺æå¨è¨å®å¼"
@@ -2737,6 +2829,11 @@ msgstr "æååæ
"
msgid "Services"
msgstr "åæå"
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
#, fuzzy
msgid "Set up Time Synchronization"
msgstr "å®è£æ ¡æåæ¥"
@@ -2796,7 +2893,7 @@ msgid "Some fields are invalid, cannot save values!"
msgstr "æäºæ¬ä½å¤±æ, ç¡æ³å²åæ¸å¼!"
msgid "Sorry, the object you requested was not found."
-msgstr "æ±æ, ä½ è«æ±çéç©ä»¶å°ç¡ç¼ç¾."
+msgstr "æ±æ, æ¨è«æ±çéç©ä»¶å°ç¡ç¼ç¾."
msgid "Sorry, the server encountered an unexpected error."
msgstr "æ±æ, 伺æå¨éééé æçé¯èª¤."
@@ -2874,9 +2971,6 @@ msgstr "éæ
ç§ç´"
msgid "Static Routes"
msgstr "éæ
è·¯ç±"
-msgid "Static WDS"
-msgstr "éæ
WDS"
-
msgid "Static address"
msgstr "éæ
ä½å"
@@ -2929,7 +3023,7 @@ msgid "Switch VLAN"
msgstr ""
msgid "Switch protocol"
-msgstr "交æå¨åå®"
+msgstr "åæåå®"
msgid "Sync with browser"
msgstr "åæ¥ç覽å¨"
@@ -2993,7 +3087,7 @@ msgid ""
"The libiwinfo-lua package is not installed. You must install this "
"component for working wireless configuration!"
msgstr ""
-"é libiwinfo-lua è»é«å
å°æªå®è£. ä½ å¿
é å®è£éåå
件以便ç¡ç·ç¶²è·¯è¨å®"
+"é libiwinfo-lua è»é«å
å°æªå®è£. æ¨å¿
é å®è£éåå
件以便ç¡ç·ç¶²è·¯è¨å®"
"æä½ç¨."
msgid ""
@@ -3058,7 +3152,7 @@ msgstr "輸å
¥ç網路å稱éç¨ä¸"
msgid ""
"The hardware is not multi-SSID capable and the existing configuration will "
"be replaced if you proceed."
-msgstr "å¦æä½ ç¹¼çºç話.é硬é«ä¸¦éå¤SSIDå·¥è½ä¸¦ä¸å·²åçè¨å®å°æ被è¦è."
+msgstr "å¦ææ¨ç¹¼çºç話.é硬é«ä¸¦éå¤SSIDå·¥è½ä¸¦ä¸å·²åçè¨å®å°æ被è¦è."
msgid ""
"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
@@ -3102,8 +3196,8 @@ msgid ""
"address of your computer to reach the device again, depending on your "
"settings."
msgstr ""
-"系統ç¾æ£å·æ©ä¸. è«å¿ééè¨å! çå¾
æ¸åéç´å°ä½ éæ°å¨é£ç·. å¯è½é"
-"è¦æ´æ°ä½ é»è
¦çä½å以便åé£è¨å, 端çä½ çè¨å®. "
+"系統ç¾æ£å·æ©ä¸. è«å¿ééè¨å! çå¾
æ¸åéç´å°æ¨éæ°å¨é£ç·. å¯è½é"
+"è¦æ´æ°æ¨é»è
¦çä½å以便åé£è¨å, 端çæ¨çè¨å®. "
msgid ""
"The tunnel end-point is behind NAT, defaults to disabled and only applies to "
@@ -3114,7 +3208,7 @@ msgid ""
"The uploaded image file does not contain a supported format. Make sure that "
"you choose the generic image format for your platform."
msgstr ""
-"以ä¸å³çæ åæªä¸å
å«æ¯æ´æ ¼å¼. è«ç¢ºèªä½ é¸æçæ¯éå°ä½ çå¹³å°æ¡ç¨çéç¨æ åæª."
+"以ä¸å³çæ åæªä¸å
å«æ¯æ´æ ¼å¼. è«ç¢ºèªæ¨é¸æçæ¯éå°æ¨çå¹³å°æ¡ç¨çéç¨æ åæª."
msgid "There are no active leases."
msgstr "ç§è³å°æªåå."
@@ -3272,9 +3366,6 @@ msgstr ""
msgid "Tunnel type"
msgstr ""
-msgid "Turbo Mode"
-msgstr "渦輪çè¡æ¨¡å¼"
-
msgid "Tx-Power"
msgstr "å³é-åç"
@@ -3402,6 +3493,11 @@ msgstr "已使ç¨"
msgid "Used Key Slot"
msgstr "已使ç¨çééµæ槽"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
msgid "User certificate (PEM encoded)"
msgstr ""
@@ -3554,20 +3650,17 @@ msgstr "寫å
¥å·²æ¥æ¶çDNSè«æ±å°ç³»çµ±æ¥èªä¸"
msgid "Write system log to file"
msgstr ""
-msgid "XR Support"
-msgstr "æ¯æ´XRç¡ç·é£å"
-
msgid ""
"You can enable or disable installed init scripts here. Changes will applied "
"after a device reboot.Warning: If you disable essential init "
"scripts like \"network\", your device might become inaccessible! "
msgstr ""
-"ä½ å¯ä»¥éåæééåå§åæ令å¨é. ä¿®æ¹å°æå¨è¨åééå¾è¢«åç¨. è¦"
-"å: åå¦ä½ ééå¿
è¦çåå§åè
³æ¬å\"網路\", ä½ çè¨åå°å¯è½ç¡æ³åå! "
+"æ¨å¯ä»¥éåæééåå§åæ令å¨é. ä¿®æ¹å°æå¨è¨åééå¾è¢«åç¨. è¦"
+"å: åå¦æ¨ééå¿
è¦çåå§åè
³æ¬å\"網路\", æ¨çè¨åå°å¯è½ç¡æ³åå! "
msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "å¨ç覽å¨ä½ å¿
é åç¨Java Scriptå¦åLuCIç¡æ³æ£å¸¸éä½."
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "å¨ç覽å¨æ¨å¿
é åç¨JavaScriptå¦åLuCIç¡æ³æ£å¸¸éä½."
msgid ""
"Your Internet Explorer is too old to display this page correctly. Please "
@@ -3581,9 +3674,6 @@ msgstr "ä»»æ"
msgid "auto"
msgstr "èªå"
-msgid "automatic"
-msgstr ""
-
msgid "baseT"
msgstr "baseT"
@@ -3657,7 +3747,7 @@ msgstr "æ¬å°DNS æªæ¡"
msgid "minimum 1280, maximum 1480"
msgstr ""
-msgid "navigation Navigation"
+msgid "minutes"
msgstr ""
msgid "no"
@@ -3693,12 +3783,6 @@ msgstr "è·¯ç±"
msgid "server mode"
msgstr ""
-msgid "skiplink1 Skip to navigation"
-msgstr ""
-
-msgid "skiplink2 Skip to content"
-msgstr ""
-
msgid "stateful-only"
msgstr ""
@@ -3711,6 +3795,9 @@ msgstr ""
msgid "tagged"
msgstr "æ¨ç±¤"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
msgid "unknown"
msgstr "æªç¥"
@@ -3732,6 +3819,57 @@ msgstr "æ¯ç"
msgid "« Back"
msgstr "« åé"
+#~ msgid "Leasetime"
+#~ msgstr "ç§è³æé"
+
+#~ msgid "AR Support"
+#~ msgstr "ARæ¯æ´"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s ç¡ç·æ§å¶å¨"
+
+#~ msgid "Background Scan"
+#~ msgstr "èæ¯æå°"
+
+#~ msgid "Compression"
+#~ msgstr "å£ç¸®"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "éé硬é«çèè¨æå¨"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "ä¸å³éæ¢æ¸¬åæ"
+
+#~ msgid "Fast Frames"
+#~ msgstr "å¿«éè¿
æ¡ç¾¤"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "æå¿«é度"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "æä½é度"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "å¤é»ç¾¤æé度"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "室å¤éé"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "ç£ç®¡ç¶²å"
+
+#~ msgid "Separate WDS"
+#~ msgstr "åéWDSä¸ç¹¼"
+
+#~ msgid "Static WDS"
+#~ msgstr "éæ
WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "渦輪çè¡æ¨¡å¼"
+
+#~ msgid "XR Support"
+#~ msgstr "æ¯æ´XRç¡ç·é£å"
+
#~ msgid "An additional network will be created if you leave this unchecked."
#~ msgstr "åæ¶é¸åå°æå¦å¤å»ºç«ä¸åæ°ç¶²è·¯ï¼èä¸æè¦èç®åç網路è¨å®"
diff --git a/modules/luci-base/root/etc/config/ucitrack b/modules/luci-base/root/etc/config/ucitrack
index c3741ba780..d083922955 100644
--- a/modules/luci-base/root/etc/config/ucitrack
+++ b/modules/luci-base/root/etc/config/ucitrack
@@ -37,6 +37,7 @@ config qos
config system
option init led
list affects luci_statistics
+ list affects dhcp
config luci_splash
option init luci_splash
diff --git a/modules/luci-mod-admin-full/Makefile b/modules/luci-mod-admin-full/Makefile
index 5fed2797ec..36ddf13f16 100644
--- a/modules/luci-mod-admin-full/Makefile
+++ b/modules/luci-mod-admin-full/Makefile
@@ -10,6 +10,7 @@ LUCI_TITLE:=LuCI Administration - full-featured for full control
LUCI_DEPENDS:=+luci-base
PKG_BUILD_DEPENDS:=iwinfo
+PKG_LICENSE:=Apache-2.0
include ../../luci.mk
diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/network.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/network.lua
index 3b5f3eb8de..2cb2108b9f 100644
--- a/modules/luci-mod-admin-full/luasrc/controller/admin/network.lua
+++ b/modules/luci-mod-admin-full/luasrc/controller/admin/network.lua
@@ -238,6 +238,7 @@ function iface_status(ifaces)
ipaddrs = net:ipaddrs(),
ip6addrs = net:ip6addrs(),
dnsaddrs = net:dnsaddrs(),
+ ip6prefix = net:ip6prefix(),
name = device:shortname(),
type = device:type(),
ifname = device:name(),
diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua
index ad575e0d26..22e1b7e173 100644
--- a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua
+++ b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua
@@ -139,14 +139,12 @@ function action_connections()
end
function action_nameinfo(...)
- local i
- local rv = { }
- for i = 1, select('#', ...) do
- local addr = select(i, ...)
- local fqdn = nixio.getnameinfo(addr)
- rv[addr] = fqdn or (addr:match(":") and "[%s]" % addr or addr)
- end
+ local util = require "luci.util"
luci.http.prepare_content("application/json")
- luci.http.write_json(rv)
+ luci.http.write_json(util.ubus("network.rrdns", "lookup", {
+ addrs = { ... },
+ timeout = 5000,
+ limit = 1000
+ }) or { })
end
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
index 10636a491a..0c01ceffca 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
@@ -68,9 +68,10 @@ se = s:taboption("advanced", Flag, "sequential_ip",
translate("Allocate IP addresses sequentially, starting from the lowest available address"))
se.optional = true
-s:taboption("advanced", Flag, "boguspriv",
+bp = s:taboption("advanced", Flag, "boguspriv",
translate("Filter private"),
translate("Do not forward reverse lookups for local networks"))
+bp.default = bp.enabled
s:taboption("advanced", Flag, "filterwin2k",
translate("Filter useless"),
@@ -275,6 +276,16 @@ name = s:option(Value, "name", translate("Hostname"))
name.datatype = "hostname"
name.rmempty = true
+function name.write(self, section, value)
+ Value.write(self, section, value)
+ m:set(section, "dns", "1")
+end
+
+function name.remove(self, section)
+ Value.remove(self, section)
+ m:del(section, "dns")
+end
+
mac = s:option(Value, "mac", translate("MAC -Address"))
mac.datatype = "list(macaddr)"
mac.rmempty = true
@@ -285,6 +296,19 @@ ip.datatype = "or(ip4addr,'ignore')"
time = s:option(Value, "leasetime", translate("Lease time"))
time.rmempty = true
+duid = s:option(Value, "duid", translate("DUID "))
+duid.datatype = "and(rangelength(28,36),hexstring)"
+fp = io.open("/var/hosts/odhcpd")
+if fp then
+ for line in fp:lines() do
+ local net_val, duid_val = string.match(line, "# (%S+)%s+(%S+)")
+ if duid_val then
+ duid:value(duid_val, duid_val)
+ end
+ end
+ fp:close()
+end
+
hostid = s:option(Value, "hostid", translate("IPv6 -Suffix (hex)"))
ipc.neighbors({ family = 4 }, function(n)
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua
index 16a104494a..4fc71cefab 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua
@@ -220,6 +220,12 @@ auto.default = (net:proto() == "none") and auto.disabled or auto.enabled
delegate = s:taboption("advanced", Flag, "delegate", translate("Use builtin IPv6-management"))
delegate.default = delegate.enabled
+force_link = s:taboption("advanced", Flag, "force_link",
+ translate("Force link"),
+ translate("Set interface properties regardless of the link carrier (If set, carrier sense events do not invoke hotplug handlers)."))
+
+force_link.default = (net:proto() == "static") and force_link.enabled or force_link.disabled
+
if not net:is_virtual() then
br = s:taboption("physical", Flag, "type", translate("Bridge interfaces"), translate("creates a bridge over specified interface(s)"))
@@ -439,7 +445,7 @@ if has_dnsmasq and net:proto() == "static" then
limit.datatype = "uinteger"
limit.default = "150"
- local ltime = s:taboption("general", Value, "leasetime", translate("Leasetime"),
+ local ltime = s:taboption("general", Value, "leasetime", translate("Lease time"),
translate("Expiry time of leased addresses, minimum is 2 minutes (2m
)."))
ltime.rmempty = true
ltime.default = "12h"
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
index 385e1141ec..22f7c5f700 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
@@ -38,6 +38,7 @@ if fs.access("/etc/init.d/dsl_control") then
tone:value("bv", translate("B43 + B43C + V43"))
xfer_mode = dsl:option(ListValue, "xfer_mode", translate("Encapsulation mode"))
+ xfer_mode:value("", translate("auto"))
xfer_mode:value("atm", translate("ATM (Asynchronous Transfer Mode)"))
xfer_mode:value("ptm", translate("PTM/EFM (Packet Transfer Mode)"))
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua
index 902767c903..89a73a5ca8 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua
@@ -12,6 +12,35 @@ nw.init(m.uci)
local topologies = nw:get_switch_topologies() or {}
+local update_interfaces = function(old_ifname, new_ifname)
+ local info = { }
+
+ m.uci:foreach("network", "interface", function(section)
+ local old_ifnames = m.uci:get("network", section[".name"], "ifname")
+ local new_ifnames = { }
+ local cur_ifname
+ local changed = false
+ for cur_ifname in luci.util.imatch(old_ifnames) do
+ if cur_ifname == old_ifname then
+ new_ifnames[#new_ifnames+1] = new_ifname
+ changed = true
+ else
+ new_ifnames[#new_ifnames+1] = cur_ifname
+ end
+ end
+ if changed then
+ m.uci:set("network", section[".name"], "ifname", table.concat(new_ifnames, " "))
+
+ info[#info+1] = translatef("Interface %q device auto-migrated from %q to %q.",
+ section[".name"], old_ifname, new_ifname)
+ end
+ end)
+
+ if #info > 0 then
+ m.message = (m.message and m.message .. "\n" or "") .. table.concat(info, "\n")
+ end
+end
+
m.uci:foreach("network", "switch",
function(x)
local sid = x['.name']
@@ -259,17 +288,32 @@ m.uci:foreach("network", "switch",
-- When writing the "vid" or "vlan" option, serialize the port states
-- as well and write them as "ports" option to uci.
- vid.write = function(self, section, value)
+ vid.write = function(self, section, new_vid)
local o
local p = { }
-
for _, o in ipairs(port_opts) do
- local v = o:formvalue(section)
- if v == "t" then
- p[#p+1] = o.option .. v
- elseif v == "u" then
+ local new_tag = o:formvalue(section)
+ if new_tag == "t" then
+ p[#p+1] = o.option .. new_tag
+ elseif new_tag == "u" then
p[#p+1] = o.option
end
+
+ if o.info and o.info.device then
+ local old_tag = o:cfgvalue(section)
+ local old_vid = self:cfgvalue(section)
+ if old_tag ~= new_tag or old_vid ~= new_vid then
+ local old_ifname = (old_tag == "u") and o.info.device
+ or "%s.%s" %{ o.info.device, old_vid }
+
+ local new_ifname = (new_tag == "u") and o.info.device
+ or "%s.%s" %{ o.info.device, new_vid }
+
+ if old_ifname ~= new_ifname then
+ update_interfaces(old_ifname, new_ifname)
+ end
+ end
+ end
end
if enable_vlan4k then
@@ -277,7 +321,7 @@ m.uci:foreach("network", "switch",
end
m:set(section, "ports", table.concat(p, " "))
- return Value.write(self, section, value)
+ return Value.write(self, section, new_vid)
end
-- Fallback to "vlan" option if "vid" option is supported but unset.
@@ -301,6 +345,7 @@ m.uci:foreach("network", "switch",
po.cfgvalue = portvalue
po.validate = portvalidate
po.write = function() end
+ po.info = pt
port_opts[#port_opts+1] = po
end
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua
index afe0d662b7..c64226931c 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua
@@ -248,64 +248,6 @@ if hwtype == "mac80211" then
end
-------------------- Madwifi Device ------------------
-
-if hwtype == "atheros" then
- tp = s:taboption("general",
- (#tx_power_list > 0) and ListValue or Value,
- "txpower", translate("Transmit Power"), "dBm")
-
- tp.rmempty = true
- tp.default = tx_power_cur
-
- function tp.cfgvalue(...)
- return txpower_current(Value.cfgvalue(...), tx_power_list)
- end
-
- tp:value("", translate("auto"))
- for _, p in ipairs(tx_power_list) do
- tp:value(p.driver_dbm, "%i dBm (%i mW)"
- %{ p.display_dbm, p.display_mw })
- end
-
- s:taboption("advanced", Flag, "diversity", translate("Diversity")).rmempty = false
-
- if not nsantenna then
- ant1 = s:taboption("advanced", ListValue, "txantenna", translate("Transmitter Antenna"))
- ant1.widget = "radio"
- ant1.orientation = "horizontal"
- ant1:depends("diversity", "")
- ant1:value("0", translate("auto"))
- ant1:value("1", translate("Antenna 1"))
- ant1:value("2", translate("Antenna 2"))
-
- ant2 = s:taboption("advanced", ListValue, "rxantenna", translate("Receiver Antenna"))
- ant2.widget = "radio"
- ant2.orientation = "horizontal"
- ant2:depends("diversity", "")
- ant2:value("0", translate("auto"))
- ant2:value("1", translate("Antenna 1"))
- ant2:value("2", translate("Antenna 2"))
-
- else -- NanoFoo
- local ant = s:taboption("advanced", ListValue, "antenna", translate("Transmitter Antenna"))
- ant:value("auto")
- ant:value("vertical")
- ant:value("horizontal")
- ant:value("external")
- end
-
- s:taboption("advanced", Value, "distance", translate("Distance Optimization"),
- translate("Distance to farthest network member in meters."))
- s:taboption("advanced", Value, "regdomain", translate("Regulatory Domain"))
- s:taboption("advanced", Value, "country", translate("Country Code"))
- s:taboption("advanced", Flag, "outdoor", translate("Outdoor Channels"))
-
- --s:option(Flag, "nosbeacon", translate("Disable HW-Beacon timer"))
-end
-
-
-
------------------- Broadcom Device ------------------
if hwtype == "broadcom" then
@@ -518,103 +460,14 @@ if hwtype == "mac80211" then
wmm:depends({mode="ap"})
wmm:depends({mode="ap-wds"})
wmm.default = wmm.enabled
-
- ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name"))
- ifname.optional = true
-end
-
-
-
--------------------- Madwifi Interface ----------------------
-
-if hwtype == "atheros" then
- mode:value("ahdemo", translate("Pseudo Ad-Hoc (ahdemo)"))
- mode:value("monitor", translate("Monitor"))
- mode:value("ap-wds", "%s (%s)" % {translate("Access Point"), translate("WDS")})
- mode:value("sta-wds", "%s (%s)" % {translate("Client"), translate("WDS")})
- mode:value("wds", translate("Static WDS"))
-
- function mode.write(self, section, value)
- if value == "ap-wds" then
- ListValue.write(self, section, "ap")
- m.uci:set("wireless", section, "wds", 1)
- elseif value == "sta-wds" then
- ListValue.write(self, section, "sta")
- m.uci:set("wireless", section, "wds", 1)
- else
- ListValue.write(self, section, value)
- m.uci:delete("wireless", section, "wds")
- end
- end
- function mode.cfgvalue(self, section)
- local mode = ListValue.cfgvalue(self, section)
- local wds = m.uci:get("wireless", section, "wds") == "1"
-
- if mode == "ap" and wds then
- return "ap-wds"
- elseif mode == "sta" and wds then
- return "sta-wds"
- else
- return mode
- end
- end
-
- bssid:depends({mode="adhoc"})
- bssid:depends({mode="ahdemo"})
- bssid:depends({mode="wds"})
-
- wdssep = s:taboption("advanced", Flag, "wdssep", translate("Separate WDS"))
- wdssep:depends({mode="ap-wds"})
-
- s:taboption("advanced", Flag, "doth", "802.11h")
- hidden = s:taboption("general", Flag, "hidden", translate("Hide ESSID "))
- hidden:depends({mode="ap"})
- hidden:depends({mode="adhoc"})
- hidden:depends({mode="ap-wds"})
- hidden:depends({mode="sta-wds"})
- isolate = s:taboption("advanced", Flag, "isolate", translate("Separate Clients"),
+ isolate = s:taboption("advanced", Flag, "isolate", translate("Isolate Clients"),
translate("Prevents client-to-client communication"))
isolate:depends({mode="ap"})
- s:taboption("advanced", Flag, "bgscan", translate("Background Scan"))
-
- mp = s:taboption("macfilter", ListValue, "macpolicy", translate("MAC-Address Filter"))
- mp:value("", translate("disable"))
- mp:value("allow", translate("Allow listed only"))
- mp:value("deny", translate("Allow all except listed"))
-
- ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List"))
- ml.datatype = "macaddr"
- ml:depends({macpolicy="allow"})
- ml:depends({macpolicy="deny"})
- nt.mac_hints(function(mac, name) ml:value(mac, "%s (%s)" %{ mac, name }) end)
-
- s:taboption("advanced", Value, "rate", translate("Transmission Rate"))
- s:taboption("advanced", Value, "mcast_rate", translate("Multicast Rate"))
- s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold"))
- s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold"))
- s:taboption("advanced", Value, "minrate", translate("Minimum Rate"))
- s:taboption("advanced", Value, "maxrate", translate("Maximum Rate"))
- s:taboption("advanced", Flag, "compression", translate("Compression"))
-
- s:taboption("advanced", Flag, "bursting", translate("Frame Bursting"))
- s:taboption("advanced", Flag, "turbo", translate("Turbo Mode"))
- s:taboption("advanced", Flag, "ff", translate("Fast Frames"))
-
- s:taboption("advanced", Flag, "wmm", translate("WMM Mode"))
- s:taboption("advanced", Flag, "xr", translate("XR Support"))
- s:taboption("advanced", Flag, "ar", translate("AR Support"))
+ isolate:depends({mode="ap-wds"})
- local swm = s:taboption("advanced", Flag, "sw_merge", translate("Disable HW-Beacon timer"))
- swm:depends({mode="adhoc"})
-
- local nos = s:taboption("advanced", Flag, "nosbeacon", translate("Disable HW-Beacon timer"))
- nos:depends({mode="sta"})
- nos:depends({mode="sta-wds"})
-
- local probereq = s:taboption("advanced", Flag, "probereq", translate("Do not send probe responses"))
- probereq.enabled = "0"
- probereq.disabled = "1"
+ ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name"))
+ ifname.optional = true
end
@@ -738,7 +591,7 @@ encr:value("none", "No Encryption")
encr:value("wep-open", translate("WEP Open System"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
encr:value("wep-shared", translate("WEP Shared Key"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+if hwtype == "mac80211" or hwtype == "prism2" then
local supplicant = fs.access("/usr/sbin/wpa_supplicant")
local hostapd = fs.access("/usr/sbin/hostapd")
@@ -747,9 +600,9 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
local has_sta_eap = (os.execute("wpa_supplicant -veap >/dev/null 2>/dev/null") == 0)
if hostapd and supplicant then
- encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
- encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
- encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
+ encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
+ encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
+ encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
if has_ap_eap and has_sta_eap then
encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
@@ -767,9 +620,9 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
"and ad-hoc mode) to be installed."
)
elseif not hostapd and supplicant then
- encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"})
- encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"})
- encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"})
+ encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
+ encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
+ encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
if has_sta_eap then
encr:value("wpa", "WPA-EAP", {mode="sta"}, {mode="sta-wds"})
encr:value("wpa2", "WPA2-EAP", {mode="sta"}, {mode="sta-wds"})
@@ -899,14 +752,105 @@ for slot=1,4 do
end
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
- nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"))
+if hwtype == "mac80211" or hwtype == "prism2" then
+
+ -- Probe 802.11r support (and EAP support as a proxy for Openwrt)
+ local has_80211r = (os.execute("hostapd -v11r 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
+
+ ieee80211r = s:taboption("encryption", Flag, "ieee80211r",
+ translate("802.11r Fast Transition"),
+ translate("Enables fast roaming among access points that belong " ..
+ "to the same Mobility Domain"))
+ ieee80211r:depends({mode="ap", encryption="wpa"})
+ ieee80211r:depends({mode="ap", encryption="wpa2"})
+ ieee80211r:depends({mode="ap-wds", encryption="wpa"})
+ ieee80211r:depends({mode="ap-wds", encryption="wpa2"})
+ if has_80211r then
+ ieee80211r:depends({mode="ap", encryption="psk"})
+ ieee80211r:depends({mode="ap", encryption="psk2"})
+ ieee80211r:depends({mode="ap", encryption="psk-mixed"})
+ ieee80211r:depends({mode="ap-wds", encryption="psk"})
+ ieee80211r:depends({mode="ap-wds", encryption="psk2"})
+ ieee80211r:depends({mode="ap-wds", encryption="psk-mixed"})
+ end
+ ieee80211r.rmempty = true
+
+ nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"),
+ translate("Used for two different purposes: RADIUS NAS ID and " ..
+ "802.11r R0KH-ID. Not needed with normal WPA(2)-PSK."))
nasid:depends({mode="ap", encryption="wpa"})
nasid:depends({mode="ap", encryption="wpa2"})
nasid:depends({mode="ap-wds", encryption="wpa"})
nasid:depends({mode="ap-wds", encryption="wpa2"})
+ nasid:depends({ieee80211r="1"})
nasid.rmempty = true
+ mobility_domain = s:taboption("encryption", Value, "mobility_domain",
+ translate("Mobility Domain"),
+ translate("4-character hexadecimal ID"))
+ mobility_domain:depends({ieee80211r="1"})
+ mobility_domain.placeholder = "4f57"
+ mobility_domain.datatype = "and(hexstring,rangelength(4,4))"
+ mobility_domain.rmempty = true
+
+ reassociation_deadline = s:taboption("encryption", Value, "reassociation_deadline",
+ translate("Reassociation Deadline"),
+ translate("time units (TUs / 1.024 ms) [1000-65535]"))
+ reassociation_deadline:depends({ieee80211r="1"})
+ reassociation_deadline.placeholder = "1000"
+ reassociation_deadline.datatype = "range(1000,65535)"
+ reassociation_deadline.rmempty = true
+
+ ft_protocol = s:taboption("encryption", ListValue, "ft_over_ds", translate("FT protocol"))
+ ft_protocol:depends({ieee80211r="1"})
+ ft_protocol:value("1", translatef("FT over DS"))
+ ft_protocol:value("0", translatef("FT over the Air"))
+ ft_protocol.rmempty = true
+
+ ft_psk_generate_local = s:taboption("encryption", Flag, "ft_psk_generate_local",
+ translate("Generate PMK locally"),
+ translate("When using a PSK, the PMK can be generated locally without inter AP communications"))
+ ft_psk_generate_local:depends({ieee80211r="1"})
+
+ r0_key_lifetime = s:taboption("encryption", Value, "r0_key_lifetime",
+ translate("R0 Key Lifetime"), translate("minutes"))
+ r0_key_lifetime:depends({ieee80211r="1", ft_psk_generate_local=""})
+ r0_key_lifetime.placeholder = "10000"
+ r0_key_lifetime.datatype = "uinteger"
+ r0_key_lifetime.rmempty = true
+
+ r1_key_holder = s:taboption("encryption", Value, "r1_key_holder",
+ translate("R1 Key Holder"),
+ translate("6-octet identifier as a hex string - no colons"))
+ r1_key_holder:depends({ieee80211r="1", ft_psk_generate_local=""})
+ r1_key_holder.placeholder = "00004f577274"
+ r1_key_holder.datatype = "and(hexstring,rangelength(12,12))"
+ r1_key_holder.rmempty = true
+
+ pmk_r1_push = s:taboption("encryption", Flag, "pmk_r1_push", translate("PMK R1 Push"))
+ pmk_r1_push:depends({ieee80211r="1", ft_psk_generate_local=""})
+ pmk_r1_push.placeholder = "0"
+ pmk_r1_push.rmempty = true
+
+ r0kh = s:taboption("encryption", DynamicList, "r0kh", translate("External R0 Key Holder List"),
+ translate("List of R0KHs in the same Mobility Domain. " ..
+ " Format: MAC-address,NAS-Identifier,128-bit key as hex string. " ..
+ " This list is used to map R0KH-ID (NAS Identifier) to a destination " ..
+ "MAC address when requesting PMK-R1 key from the R0KH that the STA " ..
+ "used during the Initial Mobility Domain Association."))
+ r0kh:depends({ieee80211r="1", ft_psk_generate_local=""})
+ r0kh.rmempty = true
+
+ r1kh = s:taboption("encryption", DynamicList, "r1kh", translate("External R1 Key Holder List"),
+ translate ("List of R1KHs in the same Mobility Domain. "..
+ " Format: MAC-address,R1KH-ID as 6 octets with colons,128-bit key as hex string. "..
+ " This list is used to map R1KH-ID to a destination MAC address " ..
+ "when sending PMK-R1 key from the R0KH. This is also the " ..
+ "list of authorized R1KHs in the MD that can request PMK-R1 keys."))
+ r1kh:depends({ieee80211r="1", ft_psk_generate_local=""})
+ r1kh.rmempty = true
+ -- End of 802.11r options
+
eaptype = s:taboption("encryption", ListValue, "eap_type", translate("EAP-Method"))
eaptype:value("tls", "TLS")
eaptype:value("ttls", "TTLS")
@@ -1045,7 +989,59 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
password.password = true
end
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+-- ieee802.11w options
+if hwtype == "mac80211" then
+ local has_80211w = (os.execute("hostapd -v11w 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
+ if has_80211w then
+ ieee80211w = s:taboption("encryption", ListValue, "ieee80211w",
+ translate("802.11w Management Frame Protection"),
+ translate("Requires the 'full' version of wpad/hostapd " ..
+ "and support from the wifi driver (as of Feb 2017: " ..
+ "ath9k and ath10k, in LEDE also mwlwifi and mt76)"))
+ ieee80211w.default = ""
+ ieee80211w.rmempty = true
+ ieee80211w:value("", translate("Disabled (default)"))
+ ieee80211w:value("1", translate("Optional"))
+ ieee80211w:value("2", translate("Required"))
+ ieee80211w:depends({mode="ap", encryption="wpa2"})
+ ieee80211w:depends({mode="ap-wds", encryption="wpa2"})
+ ieee80211w:depends({mode="ap", encryption="psk2"})
+ ieee80211w:depends({mode="ap", encryption="psk-mixed"})
+ ieee80211w:depends({mode="ap-wds", encryption="psk2"})
+ ieee80211w:depends({mode="ap-wds", encryption="psk-mixed"})
+
+ max_timeout = s:taboption("encryption", Value, "ieee80211w_max_timeout",
+ translate("802.11w maximum timeout"),
+ translate("802.11w Association SA Query maximum timeout"))
+ max_timeout:depends({ieee80211w="1"})
+ max_timeout:depends({ieee80211w="2"})
+ max_timeout.datatype = "uinteger"
+ max_timeout.placeholder = "1000"
+ max_timeout.rmempty = true
+
+ retry_timeout = s:taboption("encryption", Value, "ieee80211w_retry_timeout",
+ translate("802.11w retry timeout"),
+ translate("802.11w Association SA Query retry timeout"))
+ retry_timeout:depends({ieee80211w="1"})
+ retry_timeout:depends({ieee80211w="2"})
+ retry_timeout.datatype = "uinteger"
+ retry_timeout.placeholder = "201"
+ retry_timeout.rmempty = true
+ end
+
+ local key_retries = s:taboption("encryption", Flag, "wpa_disable_eapol_key_retries",
+ translate("Enable key reinstallation (KRACK) countermeasures"),
+ translate("Complicates key reinstallation attacks on the client side by disabling retransmission of EAPOL-Key frames that are used to install keys. This workaround might cause interoperability issues and reduced robustness of key negotiation especially in environments with heavy traffic load."))
+
+ key_retries:depends({mode="ap", encryption="wpa2"})
+ key_retries:depends({mode="ap", encryption="psk2"})
+ key_retries:depends({mode="ap", encryption="psk-mixed"})
+ key_retries:depends({mode="ap-wds", encryption="wpa2"})
+ key_retries:depends({mode="ap-wds", encryption="psk2"})
+ key_retries:depends({mode="ap-wds", encryption="psk-mixed"})
+end
+
+if hwtype == "mac80211" or hwtype == "prism2" then
local wpasupplicant = fs.access("/usr/sbin/wpa_supplicant")
local hostcli = fs.access("/usr/sbin/hostapd_cli")
if hostcli and wpasupplicant then
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/crontab.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/crontab.lua
index ea92eb98de..016a6199aa 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/crontab.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/crontab.lua
@@ -5,7 +5,10 @@
local fs = require "nixio.fs"
local cronfile = "/etc/crontabs/root"
-f = SimpleForm("crontab", translate("Scheduled Tasks"), translate("This is the system crontab in which scheduled tasks can be defined."))
+f = SimpleForm("crontab", translate("Scheduled Tasks"),
+ translate("This is the system crontab in which scheduled tasks can be defined.") ..
+ translate(" Note: you need to manually restart the cron service if the " ..
+ "crontab file was empty before editing."))
t = f:field(TextValue, "crons")
t.rmempty = true
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/leds.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/leds.lua
index 4b6f397e6a..74e2f1a19d 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/leds.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/leds.lua
@@ -7,10 +7,11 @@ local sysfs_path = "/sys/class/leds/"
local leds = {}
local fs = require "nixio.fs"
-local util = require "nixio.util"
+local nu = require "nixio.util"
+local util = require "luci.util"
if fs.access(sysfs_path) then
- leds = util.consume((fs.dir(sysfs_path)))
+ leds = nu.consume((fs.dir(sysfs_path)))
end
if #leds == 0 then
@@ -110,12 +111,32 @@ function usbdev.remove(self, section)
end
-usbport = s:option(MultiValue, "ports", translate("USB Ports"))
+usbport = s:option(MultiValue, "port", translate("USB Ports"))
usbport:depends("trigger", "usbport")
usbport.rmempty = true
usbport.widget = "checkbox"
+usbport.cast = "table"
usbport.size = 1
+function usbport.valuelist(self, section)
+ local port, ports = nil, {}
+ for port in util.imatch(m.uci:get("system", section, "port")) do
+ local b, n = port:match("^usb(%d+)-port(%d+)$")
+ if not (b and n) then
+ b, n = port:match("^(%d+)-(%d+)$")
+ end
+ if b and n then
+ ports[#ports+1] = "usb%u-port%u" %{ tonumber(b), tonumber(n) }
+ end
+ end
+ return ports
+end
+
+function usbport.validate(self, value)
+ return type(value) == "string" and { value } or value
+end
+
+
for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
local id = p:match("%d+-%d+")
local mf = nixio.fs.readfile("/sys/bus/usb/devices/" .. id .. "/manufacturer") or "?"
@@ -123,8 +144,8 @@ for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
usbdev:value(id, "%s (%s - %s)" %{ id, mf, pr })
end
-for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*") do
- local bus, port = p:match("(%d+)-(%d+)")
+for p in nixio.fs.glob("/sys/bus/usb/devices/*/usb[0-9]*-port[0-9]*") do
+ local bus, port = p:match("usb(%d+)-port(%d+)")
if bus and port then
usbport:value("usb%u-port%u" %{ tonumber(bus), tonumber(port) },
"Hub %u, Port %u" %{ tonumber(bus), tonumber(port) })
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
index 646d931f37..2512a35b3c 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
@@ -164,6 +164,11 @@
ifc.ip6addrs[i]
);
}
+
+ if (ifc.ip6prefix)
+ {
+ html += String.format('<%:IPv6-PD%>: %s ', ifc.ip6prefix);
+ }
d.innerHTML = html;
}
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm
index 8c3b1abcc7..b15dd13f39 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm
@@ -54,6 +54,11 @@
ifc.ip6addrs[i]
);
}
+
+ if (ifc.ip6prefix)
+ {
+ html += String.format('<%:IPv6-PD%>: %s ', ifc.ip6prefix);
+ }
d.innerHTML = html;
}
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
index 9c351d3933..4465095ff2 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
@@ -66,10 +66,6 @@
return name
- -- madwifi
- elseif name == "ath" or name == "wifi" then
- return translatef("Atheros 802.11%s Wireless Controller", bands)
-
-- ralink
elseif name == "ra" then
return translatef("RaLink 802.11%s Wireless Controller", bands)
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
index 0b2e52e059..b7ebc41451 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
@@ -153,7 +153,8 @@
{
var c = conn[i];
- if (c.src == '127.0.0.1' && c.dst == '127.0.0.1')
+ if ((c.src == '127.0.0.1' && c.dst == '127.0.0.1')
+ || (c.src == '::1' && c.dst == '::1'))
continue;
var tr = conn_table.rows[0].parentNode.insertRow(-1);
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/dmesg.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/dmesg.htm
index c119b57296..1a8770ef88 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/dmesg.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/dmesg.htm
@@ -7,6 +7,6 @@
<%+header%>
<%:Kernel Log%>
-
+
<%+footer%>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
index 8976e30cba..d29a894276 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
@@ -37,10 +37,8 @@
local wan = ntm:get_wannet()
local wan6 = ntm:get_wan6net()
- local conn_count = tonumber((
- luci.sys.exec("wc -l /proc/net/nf_conntrack") or
- luci.sys.exec("wc -l /proc/net/ip_conntrack") or
- ""):match("%d+")) or 0
+ local conn_count = tonumber(
+ fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count")) or 0
local conn_max = tonumber((
luci.sys.exec("sysctl net.nf_conntrack_max") or
@@ -76,12 +74,14 @@
if wan6 then
rv.wan6 = {
- ip6addr = wan6:ip6addr(),
- gw6addr = wan6:gw6addr(),
- dns = wan6:dns6addrs(),
- uptime = wan6:uptime(),
- ifname = wan6:ifname(),
- link = wan6:adminlink()
+ ip6addr = wan6:ip6addr(),
+ gw6addr = wan6:gw6addr(),
+ dns = wan6:dns6addrs(),
+ ip6prefix = wan6:ip6prefix(),
+ uptime = wan6:uptime(),
+ proto = wan6:proto(),
+ ifname = wan6:ifname(),
+ link = wan6:adminlink()
}
end
@@ -233,9 +233,34 @@
if (ifc6 && ifc6.ifname && ifc6.proto != 'none')
{
var s = String.format(
- '<%:Address%>: %s ' +
+ '<%:Type%>: %s%s ',
+ ifc6.proto, (ifc6.ip6prefix) ? '-pd' : ''
+ );
+
+ if (!ifc6.ip6prefix)
+ {
+ s += String.format(
+ '<%:Address%>: %s ',
+ (ifc6.ip6addr) ? ifc6.ip6addr : '::'
+ );
+ }
+ else
+ {
+ s += String.format(
+ '<%:Prefix Delegated%>: %s ',
+ ifc6.ip6prefix
+ );
+ if (ifc6.ip6addr)
+ {
+ s += String.format(
+ '<%:Address%>: %s ',
+ ifc6.ip6addr
+ );
+ }
+ }
+
+ s += String.format(
'<%:Gateway%>: %s ',
- (ifc6.ip6addr) ? ifc6.ip6addr : '::',
(ifc6.gw6addr) ? ifc6.gw6addr : '::'
);
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/syslog.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/syslog.htm
index b87f21d08d..fb734a76d9 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/syslog.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/syslog.htm
@@ -7,6 +7,6 @@
<%+header%>
<%:System Log%>
-
+
<%+footer%>
diff --git a/modules/luci-mod-admin-full/src/luci-bwc.c b/modules/luci-mod-admin-full/src/luci-bwc.c
index 63668d42b3..8ddd91727a 100644
--- a/modules/luci-mod-admin-full/src/luci-bwc.c
+++ b/modules/luci-mod-admin-full/src/luci-bwc.c
@@ -521,8 +521,8 @@ 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;
if (sscanf(line, "%*s %*d %s", ifname) || sscanf(line, "%s %*d", ifname))
diff --git a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua
index c895430a3b..7bc4df859b 100644
--- a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua
+++ b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua
@@ -5,15 +5,40 @@
local wa = require "luci.tools.webadmin"
local sys = require "luci.sys"
local fs = require "nixio.fs"
+local nx = require "nixio"
local has_pptp = fs.access("/usr/sbin/pptp")
local has_pppoe = fs.glob("/usr/lib/pppd/*/rp-pppoe.so")()
local network = luci.model.uci.cursor_state():get_all("network")
-local netstat = sys.net.deviceinfo()
+local netstat = {}
local ifaces = {}
+local k, v
+for k, v in ipairs(nx.getifaddrs()) do
+ if v.family == "packet" then
+ local d = v.data
+ d[1] = d.rx_bytes
+ d[2] = d.rx_packets
+ d[3] = d.rx_errors
+ d[4] = d.rx_dropped
+ d[5] = 0
+ d[6] = 0
+ d[7] = 0
+ d[8] = d.multicast
+ d[9] = d.tx_bytes
+ d[10] = d.tx_packets
+ d[11] = d.tx_errors
+ d[12] = d.tx_dropped
+ d[13] = 0
+ d[14] = d.collisions
+ d[15] = 0
+ d[16] = 0
+ netstat[v.name] = d
+ end
+end
+
for k, v in pairs(network) do
if v[".type"] == "interface" and k ~= "loopback" then
table.insert(ifaces, v)
diff --git a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
index 19952cd5dc..ec929f1ed9 100644
--- a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
+++ b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
@@ -156,18 +156,6 @@ end
local hwtype = m:get(wifidevs[1], "type")
-if hwtype == "atheros" then
- mode = s:option(ListValue, "hwmode", translate("Mode"))
- mode.override_values = true
- mode:value("", "auto")
- mode:value("11b", "802.11b")
- mode:value("11g", "802.11g")
- mode:value("11a", "802.11a")
- mode:value("11bg", "802.11b+g")
- mode.rmempty = true
-end
-
-
ch = s:option(Value, "channel", translate("Channel"))
for i=1, 14 do
ch:value(i, i .. " (2.4 GHz)")
@@ -224,7 +212,7 @@ encr.override_values = true
encr:value("none", "No Encryption")
encr:value("wep", "WEP")
-if hwtype == "atheros" or hwtype == "mac80211" then
+if hwtype == "mac80211" then
local supplicant = fs.access("/usr/sbin/wpa_supplicant")
local hostapd = fs.access("/usr/sbin/hostapd")
@@ -288,7 +276,7 @@ port:depends({mode="ap", encryption="wpa2"})
port.rmempty = true
-if hwtype == "atheros" or hwtype == "mac80211" then
+if hwtype == "mac80211" then
nasid = s:option(Value, "nasid", translate("NAS ID"))
nasid:depends({mode="ap", encryption="wpa"})
nasid:depends({mode="ap", encryption="wpa2"})
@@ -339,7 +327,7 @@ if hwtype == "atheros" or hwtype == "mac80211" then
end
-if hwtype == "atheros" or hwtype == "broadcom" then
+if hwtype == "broadcom" then
iso = s:option(Flag, "isolate", translate("AP-Isolation"), translate("Prevents Client to Client communication"))
iso.rmempty = true
iso:depends("mode", "ap")
@@ -349,7 +337,7 @@ if hwtype == "atheros" or hwtype == "broadcom" then
hide:depends("mode", "ap")
end
-if hwtype == "mac80211" or hwtype == "atheros" then
+if hwtype == "mac80211" then
bssid:depends({mode="adhoc"})
end
diff --git a/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua
index 84669dce84..e2291e5ca6 100644
--- a/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua
+++ b/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua
@@ -70,7 +70,7 @@ function index()
page.target = cbi("freifunk/basics")
page.title = _("Basic Settings")
page.order = 5
-
+
page = node("admin", "freifunk", "basics", "profile")
page.target = cbi("freifunk/profile")
page.title = _("Profile")
@@ -102,7 +102,7 @@ function zeroes()
local zeroes = string.rep(string.char(0), 8192)
local cnt = 0
local lim = 1024 * 1024 * 1024
-
+
http.prepare_content("application/x-many-zeroes")
while cnt < lim do
@@ -188,7 +188,6 @@ function jsonstatus()
root.network = {}
root.wireless = {devices = {}, interfaces = {}, status = {}}
local wifs = root.wireless.interfaces
- local netdata = luci.sys.net.deviceinfo() or {}
for _, vif in ipairs(ffwifs) do
root.network[vif] = cursor:get_all("network", vif)
diff --git a/modules/luci-mod-freifunk/po/zh-cn/freifunk.po b/modules/luci-mod-freifunk/po/zh-cn/freifunk.po
index 2d58b1653b..d273055d12 100644
--- a/modules/luci-mod-freifunk/po/zh-cn/freifunk.po
+++ b/modules/luci-mod-freifunk/po/zh-cn/freifunk.po
@@ -143,7 +143,7 @@ msgid "If selected then the default content element is not shown."
msgstr "å¦æéä¸ï¼é£ä¹é»è®¤å
容å
ç´ å°ä¸æ¾ç¤ºã"
msgid "If you are interested in our project then contact the local community"
-msgstr "å¦æä½ å¯¹æ们ç项ç®æå
´è¶£ï¼è¯·èç³»å½å°ç社åº"
+msgstr "å¦ææ¨å¯¹æ们ç项ç®æå
´è¶£ï¼è¯·èç³»å½å°ç社åº"
msgid "Index Page"
msgstr "ç´¢å¼é¡µ"
@@ -155,7 +155,7 @@ msgid ""
"Internet access depends on technical and organisational conditions and may "
"or may not work for you."
msgstr ""
-"访é®å ç¹ç½åå³äºææ¯åæºæçåæï¼å¯è½ä¼ãä¹å¯è½ä¸ä¼åä½ è®¾æ³çé£æ ·è¿ä½ã"
+"访é®å ç¹ç½åå³äºææ¯åæºæçåæï¼å¯è½ä¼ãä¹å¯è½ä¸ä¼åæ¨è®¾æ³çé£æ ·è¿ä½ã"
msgid "It is operated by"
msgstr "å®æ¯ç±"
@@ -324,7 +324,7 @@ msgstr "å½å°ç¤¾åºè®¾ç½®ã"
msgid ""
"These pages will assist you in setting up your router for Freifunk or "
"similar wireless community networks."
-msgstr "è¿äºé¡µé¢å°å¸®å©ä½ 设置路ç±å¨Freifunkæ类似çæ 线社åºç½ç»ã"
+msgstr "è¿äºé¡µé¢å°å¸®å©æ¨è®¾ç½®è·¯ç±å¨Freifunkæ类似çæ 线社åºç½ç»ã"
msgid "This is the access point"
msgstr "AP"
@@ -368,7 +368,7 @@ msgstr ""
msgid ""
"You can find further information about the global Freifunk initiative at"
-msgstr "ä½ å¯ä»¥æ¾å°æ´å¤æå
³å
¨çFreifunkæ´»å¨çä¿¡æ¯"
+msgstr "æ¨å¯ä»¥æ¾å°æ´å¤æå
³å
¨çFreifunkæ´»å¨çä¿¡æ¯"
msgid "You can manually edit the selected community profile here."
msgstr "æ¨å¯ä»¥å¨è¿éæå¨ç¼è¾æé社åºé
ç½®æ件ã"
@@ -376,7 +376,7 @@ msgstr "æ¨å¯ä»¥å¨è¿éæå¨ç¼è¾æé社åºé
ç½®æ件ã"
msgid ""
"You need to select a profile before you can edit it. To select a profile go "
"to"
-msgstr "ç¼è¾å®ä¹åï¼ä½ éè¦éæ©ä¸ä¸ªé
ç½®æ件ãéæ©é
ç½®æ件"
+msgstr "ç¼è¾å®ä¹åï¼æ¨éè¦éæ©ä¸ä¸ªé
ç½®æ件ãéæ©é
ç½®æ件"
msgid "and fill out all required fields."
msgstr "å¡«åææå¿
å¡«å段ã"
diff --git a/modules/luci-mod-rpc/Makefile b/modules/luci-mod-rpc/Makefile
index e64c86c628..bc1f6d2756 100644
--- a/modules/luci-mod-rpc/Makefile
+++ b/modules/luci-mod-rpc/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI RPC - JSON-RPC API
LUCI_DEPENDS:=+luci-lib-json
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/protocols/luci-proto-ipv6/Makefile b/protocols/luci-proto-ipv6/Makefile
index e749bc9e83..761ee2f9f5 100644
--- a/protocols/luci-proto-ipv6/Makefile
+++ b/protocols/luci-proto-ipv6/Makefile
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Support for DHCPv6/6in4/6to4/6rd/DS-Lite/aiccu
LUCI_DEPENDS:=
+PKG_LICENSE:=Apache-2.0
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua
index c843161c6f..76caedcb37 100644
--- a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua
+++ b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua
@@ -14,7 +14,7 @@ o.default = "try"
o = section:taboption("general", Value, "reqprefix",
translate("Request IPv6-prefix of length"))
-o:value("auto", translate("automatic"))
+o:value("auto", translate("Automatic"))
o:value("no", translate("disabled"))
o:value("48")
o:value("52")
diff --git a/protocols/luci-proto-ncm/Makefile b/protocols/luci-proto-ncm/Makefile
new file mode 100644
index 0000000000..5fd9c9a266
--- /dev/null
+++ b/protocols/luci-proto-ncm/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2008-2014 The LuCI Team
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Support for NCM
+LUCI_DEPENDS:=+comgt-ncm
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua b/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua
new file mode 100644
index 0000000000..917c88c92c
--- /dev/null
+++ b/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua
@@ -0,0 +1,157 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2015 Cezary Jackiewicz
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+]]--
+
+local map, section, net = ...
+
+local device, apn, service, pincode, username, password, dialnumber
+local ipv6, maxwait, defaultroute, metric, peerdns, dns,
+ keepalive_failure, keepalive_interval, demand
+
+
+device = section:taboption("general", Value, "device", translate("Modem device"))
+device.rmempty = false
+
+local device_suggestions = nixio.fs.glob("/dev/cdc-wdm*")
+ or nixio.fs.glob("/dev/ttyUSB*")
+
+if device_suggestions then
+ local node
+ for node in device_suggestions do
+ device:value(node)
+ end
+end
+
+
+mode = section:taboption("general", Value, "mode", translate("Service Type"))
+mode.default = "auto"
+mode:value("preferlte", translate("Prefer LTE"))
+mode:value("preferumts", translate("Prefer UMTS"))
+mode:value("lte", "LTE")
+mode:value("umts", "UMTS/GPRS")
+mode:value("gsm", translate("GPRS only"))
+mode:value("auto", translate("auto"))
+
+
+apn = section:taboption("general", Value, "apn", translate("APN"))
+
+
+pincode = section:taboption("general", Value, "pincode", translate("PIN"))
+
+
+username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
+
+
+password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
+password.password = true
+
+dialnumber = section:taboption("general", Value, "dialnumber", translate("Dial number"))
+dialnumber.placeholder = "*99***1#"
+
+if luci.model.network:has_ipv6() then
+
+ ipv6 = section:taboption("advanced", ListValue, "ipv6")
+ ipv6:value("auto", translate("Automatic"))
+ ipv6:value("0", translate("Disabled"))
+ ipv6:value("1", translate("Manual"))
+ ipv6.default = "auto"
+
+end
+
+
+maxwait = section:taboption("advanced", Value, "maxwait",
+ translate("Modem init timeout"),
+ translate("Maximum amount of seconds to wait for the modem to become ready"))
+
+maxwait.placeholder = "20"
+maxwait.datatype = "min(1)"
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+ translate("Use default gateway"),
+ translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+metric = section:taboption("advanced", Value, "metric",
+ translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+peerdns = section:taboption("advanced", Flag, "peerdns",
+ translate("Use DNS servers advertised by peer"),
+ translate("If unchecked, the advertised DNS server addresses are ignored"))
+
+peerdns.default = peerdns.enabled
+
+
+dns = section:taboption("advanced", DynamicList, "dns",
+ translate("Use custom DNS servers"))
+
+dns:depends("peerdns", "")
+dns.datatype = "ipaddr"
+dns.cast = "string"
+
+
+keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
+ translate("LCP echo failure threshold"),
+ translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
+
+function keepalive_failure.cfgvalue(self, section)
+ local v = m:get(section, "keepalive")
+ if v and #v > 0 then
+ return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
+ end
+end
+
+function keepalive_failure.write() end
+function keepalive_failure.remove() end
+
+keepalive_failure.placeholder = "0"
+keepalive_failure.datatype = "uinteger"
+
+
+keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
+ translate("LCP echo interval"),
+ translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
+
+function keepalive_interval.cfgvalue(self, section)
+ local v = m:get(section, "keepalive")
+ if v and #v > 0 then
+ return tonumber(v:match("^%d+[ ,]+(%d+)"))
+ end
+end
+
+function keepalive_interval.write(self, section, value)
+ local f = tonumber(keepalive_failure:formvalue(section)) or 0
+ local i = tonumber(value) or 5
+ if i < 1 then i = 1 end
+ if f > 0 then
+ m:set(section, "keepalive", "%d %d" %{ f, i })
+ else
+ m:del(section, "keepalive")
+ end
+end
+
+keepalive_interval.remove = keepalive_interval.write
+keepalive_interval.placeholder = "5"
+keepalive_interval.datatype = "min(1)"
+
+
+demand = section:taboption("advanced", Value, "demand",
+ translate("Inactivity timeout"),
+ translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
+
+demand.placeholder = "0"
+demand.datatype = "uinteger"
diff --git a/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua b/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua
new file mode 100644
index 0000000000..6c5b34e083
--- /dev/null
+++ b/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua
@@ -0,0 +1,61 @@
+--[[
+LuCI - Network model - NCM protocol extension
+
+Copyright 2015 Cezary Jackiewicz