Merge pull request #1382 from dibdot/dnscrypt-proxy
authorHannu Nyman <hannu.nyman@iki.fi>
Wed, 4 Oct 2017 19:26:02 +0000 (22:26 +0300)
committerGitHub <noreply@github.com>
Wed, 4 Oct 2017 19:26:02 +0000 (22:26 +0300)
luci-app-dnscrypt-proxy: major update

80 files changed:
applications/luci-app-adblock/luasrc/controller/adblock.lua
applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
applications/luci-app-adblock/po/it/adblock.po [new file with mode: 0644]
applications/luci-app-adblock/po/ja/adblock.po
applications/luci-app-adblock/po/pt-br/adblock.po
applications/luci-app-adblock/po/sv/adblock.po
applications/luci-app-adblock/po/templates/adblock.pot
applications/luci-app-adblock/po/zh-cn/adblock.po
applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po [new file with mode: 0644]
applications/luci-app-ahcp/po/sv/ahcp.po
applications/luci-app-aria2/po/sv/aria2.po
applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm
applications/luci-app-bcp38/po/sv/bcp38.po [new file with mode: 0644]
applications/luci-app-clamav/po/sv/clamav.po
applications/luci-app-coovachilli/po/sv/coovachilli.po
applications/luci-app-ddns/po/it/ddns.po
applications/luci-app-ddns/po/sv/ddns.po
applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po
applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po
applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot
applications/luci-app-firewall/po/it/firewall.po
applications/luci-app-firewall/po/sv/firewall.po
applications/luci-app-mwan3/po/ja/mwan3.po
applications/luci-app-mwan3/po/templates/mwan3.pot
applications/luci-app-mwan3/po/zh-cn/mwan3.po
applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3
applications/luci-app-openvpn/po/sv/openvpn.po
applications/luci-app-samba/po/it/samba.po
applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua
applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
applications/luci-app-travelmate/po/ja/travelmate.po
applications/luci-app-travelmate/po/pt-br/travelmate.po
applications/luci-app-travelmate/po/templates/travelmate.pot
applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua
applications/luci-app-unbound/luasrc/controller/unbound.lua
applications/luci-app-unbound/luasrc/model/cbi/unbound.lua [deleted file]
applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua [new file with mode: 0644]
applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua [new file with mode: 0644]
applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua [new file with mode: 0644]
applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua [new file with mode: 0644]
applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm [new file with mode: 0644]
applications/luci-app-unbound/luasrc/view/unbound/show-empty.htm [new file with mode: 0644]
applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm [new file with mode: 0644]
applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound
applications/luci-app-wifischedule/po/it/wifischedule.po [new file with mode: 0644]
applications/luci-app-wireguard/po/sv/wireguard.po
applications/luci-app-wol/po/it/wol.po
modules/luci-base/htdocs/luci-static/resources/cbi.js
modules/luci-base/luasrc/cbi/datatypes.lua
modules/luci-base/luasrc/http.lua
modules/luci-base/po/ca/base.po
modules/luci-base/po/cs/base.po
modules/luci-base/po/de/base.po
modules/luci-base/po/el/base.po
modules/luci-base/po/en/base.po
modules/luci-base/po/es/base.po
modules/luci-base/po/fr/base.po
modules/luci-base/po/he/base.po
modules/luci-base/po/hu/base.po
modules/luci-base/po/it/base.po
modules/luci-base/po/ja/base.po
modules/luci-base/po/ko/base.po
modules/luci-base/po/ms/base.po
modules/luci-base/po/no/base.po
modules/luci-base/po/pl/base.po
modules/luci-base/po/pt-br/base.po
modules/luci-base/po/pt/base.po
modules/luci-base/po/ro/base.po
modules/luci-base/po/ru/base.po
modules/luci-base/po/sk/base.po
modules/luci-base/po/sv/base.po
modules/luci-base/po/templates/base.pot
modules/luci-base/po/tr/base.po
modules/luci-base/po/uk/base.po
modules/luci-base/po/vi/base.po
modules/luci-base/po/zh-cn/base.po
modules/luci-base/po/zh-tw/base.po
protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua

index efa99b5..b748584 100644 (file)
@@ -3,10 +3,10 @@
 
 module("luci.controller.adblock", package.seeall)
 
-local fs = require("nixio.fs")
-local util = require("luci.util")
+local fs    = require("nixio.fs")
+local util  = require("luci.util")
 local templ = require("luci.template")
-local i18n = require("luci.i18n")
+local i18n  = require("luci.i18n")
 
 function index()
        if not nixio.fs.access("/etc/config/adblock") then
@@ -24,7 +24,13 @@ function index()
 end
 
 function logread()
-       local logfile = util.trim(util.exec("logread -e 'adblock'"))
+       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
 
index aa57014..e2ef1ef 100644 (file)
@@ -1,32 +1,23 @@
 -- 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("uci")
-local sys = require("luci.sys")
-local json = require("luci.jsonc")
+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"
-local dnspath = uci.get("adblock", "global", "adb_dnsdir") or ""
-local parse = json.parse(fs.readfile(adbinput) or "")
-if parse ~= nil then
-       version = parse.data.adblock_version
-       domains = parse.data.blocked_domains
-       fetch = parse.data.fetch_info
-       backend = parse.data.dns_backend
-       rundate = parse.data.last_rundate
-       if dnspath == "" then
-               if backend == "dnsmasq" then
-                       dnspath = "/tmp/dnsmasq.d"
-               elseif backend == "unbound" then
-                       dnspath = "/var/lib/unbound"
-               elseif backend == "named" then
-                       dnspath = "/var/lib/bind"
-               elseif backend == "kresd" then
-                       dnspath = "/tmp/kresd"
-               end
-       end
+
+if not uci:get_first("adblock", "adblock", "adb_trigger") then
+       m = SimpleForm("error", nil, translate("Please update your adblock config file to use this package. ")
+       .. translatef("In OPKG use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from "
+       .. "<a href=\"%s\" target=\"_blank\">"
+       .. "here</a>", "https://raw.githubusercontent.com/openwrt/packages/master/net/adblock/files/adblock.conf"))
+       m.submit = false
+       m.reset = false
+       return m
 end
-local dnsfile = dnspath .. "/.adb_hidden/adb_list.overall"
 
 m = Map("adblock", translate("Adblock"),
        translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ")
@@ -35,7 +26,7 @@ m = Map("adblock", translate("Adblock"),
        .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md"))
 
 function m.on_after_commit(self)
-       function e3.validate(self, value)
+       function e4.validate(self, value)
                if value == "0" then
                        luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1")
                else
@@ -49,62 +40,91 @@ end
 
 s = m:section(NamedSection, "global", "adblock")
 
-o1 = s:option(Flag, "adb_enabled", translate("Enable adblock"))
-o1.default = o1.enabled
+local parse = json.parse(fs.readfile(adbinput) or "")
+if parse then
+       status  = parse.data.adblock_status
+       version = parse.data.adblock_version
+       domains = parse.data.blocked_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 ~= nil and nixio.fs.access(dnsfile) then
-       btn.inputtitle = translate("Resume adblock")
-       btn.inputstyle = "apply"
+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 resume >/dev/null 2>&1")
+               luci.sys.call("/etc/init.d/adblock suspend >/dev/null 2>&1")
                luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
        end
-else
-       btn.inputtitle = translate("Suspend adblock")
-       btn.inputstyle = "reset"
+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 suspend >/dev/null 2>&1")
+               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(Value, "adb_iface", translate("Restrict interface trigger to certain interface(s)"),
-       translate("Space separated list of interfaces that trigger adblock processing. "..
-       "To disable event driven (re-)starts remove all entries."))
-o2.rmempty = true
-
-o3 = s:option(Value, "adb_triggerdelay", translate("Trigger delay"),
-       translate("Additional trigger delay in seconds before adblock processing begins."))
-o3.default = 2
-o3.datatype = "range(1,90)"
+o2 = s:option(ListValue, "adb_dns", translate("DNS Backend (DNS Directory)"),
+       translate("List of supported DNS backends with their default list export directory.<br />")
+       .. 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", "bind (/var/lib/bind)")
+o2:value("kresd", "kresd (/etc/kresd)")
+o2:value("dnscrypt-proxy","dnscrypt-proxy (/tmp)")
+o2.default = "dnsmasq"
+o2.rmempty = false
+
+o3 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"),
+       translate("List of available network interfaces. By default the startup will be triggered by the 'wan' interface.<br />")
+       .. 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
 
-o4 = s:option(Flag, "adb_debug", translate("Enable verbose debug logging"))
-o4.default = o4.disabled
-o4.rmempty = false
-
 -- Runtime information
 
-ds = s:option(DummyValue, "_dummy", translate("Runtime information"))
+ds = s:option(DummyValue, "", translate("Runtime Information"))
 ds.template = "cbi/nullsection"
 
-dv1 = s:option(DummyValue, "status", translate("Status"))
+dv1 = s:option(DummyValue, "", translate("Adblock Status"))
 dv1.template = "adblock/runtime"
 if parse == nil then
        dv1.value = translate("n/a")
-elseif domains == "0" then
-       dv1.value = translate("no domains blocked")
-elseif nixio.fs.access(dnsfile) then
-       dv1.value = translate("suspended")
 else
-       dv1.value = translate("active")
+       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, "adblock_version", translate("Adblock version"))
+dv2 = s:option(DummyValue, "", translate("Adblock Version"))
 dv2.template = "adblock/runtime"
 if parse == nil then
        dv2.value = translate("n/a")
@@ -112,7 +132,7 @@ else
        dv2.value = version
 end
 
-dv3 = s:option(DummyValue, "fetch_info", translate("Download Utility (SSL Library)"),
+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
@@ -121,7 +141,7 @@ else
        dv3.value = fetch
 end
 
-dv4 = s:option(DummyValue, "dns_backend", translate("DNS backend"))
+dv4 = s:option(DummyValue, "", translate("DNS Backend (DNS Directory)"))
 dv4.template = "adblock/runtime"
 if parse == nil then
        dv4.value = translate("n/a")
@@ -129,7 +149,7 @@ else
        dv4.value = backend
 end
 
-dv5 = s:option(DummyValue, "blocked_domains", translate("Blocked domains (overall)"))
+dv5 = s:option(DummyValue, "", translate("Overall Blocked Domains"))
 dv5.template = "adblock/runtime"
 if parse == nil then
        dv5.value = translate("n/a")
@@ -137,7 +157,7 @@ else
        dv5.value = domains
 end
 
-dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate"))
+dv6 = s:option(DummyValue, "", translate("Last Run"))
 dv6.template = "adblock/runtime"
 if parse == nil then
        dv6.value = translate("n/a")
@@ -147,9 +167,10 @@ end
 
 -- Blocklist table
 
-bl = m:section(TypedSection, "source", translate("Blocklist sources"),
+bl = m:section(TypedSection, "source", translate("Blocklist Sources"),
        translate("Available blocklist sources. ")
-       .. translate("Note that list URLs and Shallalist category selections are configurable in the 'Advanced' section."))
+       .. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section.<br />")
+       .. translate("Caution: Please don't select big lists or many lists at once on low memory devices to prevent OOM exceptions!"))
 bl.template = "cbi/tblsection"
 
 name = bl:option(Flag, "enabled", translate("Enabled"))
@@ -169,31 +190,48 @@ des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
 
 -- Extra options
 
-e = m:section(NamedSection, "global", "adblock", translate("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."))
 
-e1 = e:option(Flag, "adb_forcedns", translate("Force local DNS"),
-       translate("Redirect all DNS queries to the local resolver."))
+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_forcesrt", translate("Force Overall Sort"),
-       translate("Enable memory intense overall sort / duplicate removal on low memory devices (&lt; 64 MB RAM)"))
+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_manmode", translate("Manual / Backup mode"),
-       translate("Do not automatically update blocklists during startup, use blocklist backups instead."))
+e3 = e:option(Flag, "adb_forcesrt", translate("Force Overall Sort"),
+       translate("Enable memory intense overall sort / duplicate removal on low memory devices (&lt; 64 MB 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 manual mode."))
+e4 = e:option(Flag, "adb_manmode", translate("Manual / Backup mode"),
+       translate("Do not automatically update blocklists during startup, use blocklist backups instead."))
 e4.default = e4.disabled
 e4.rmempty = false
 
-e5 = e:option(Value, "adb_backupdir", translate("Backup directory"))
-e5.datatype = "directory"
+e5 = 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 manual mode."))
+e5.default = e5.disabled
 e5.rmempty = false
 
+e6 = e:option(Value, "adb_backupdir", translate("Backup Directory"),
+       translate("Target directory for adblock backups. Please use only non-volatile disks, no ram/tmpfs drives."))
+e6.datatype = "directory"
+e6.default = "/mnt"
+e6.rmempty = false
+
+e7 = e:option(Value, "adb_dnsdir", translate("DNS Directory"),
+       translate("Target directory for the generated blocklist 'adb_list.overall'."))
+e7.datatype = "directory"
+e7.optional = true
+
+e8 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"),
+       translate("Additional trigger delay in seconds before adblock processing begins."))
+e8.datatype = "range(1,60)"
+e8.optional = true
+
 return m
index ee3a455..0221a75 100644 (file)
@@ -5,6 +5,6 @@ This is free software, licensed under the Apache License, Version 2.0
 
 <%+cbi/valueheader%>
 
-<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border: none; box-shadow: none; background-color: #ffffff; color: #0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" />
+<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border:none;box-shadow:none;background:transparent;color:#0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" />
 
 <%+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 (file)
index 0000000..1901228
--- /dev/null
@@ -0,0 +1,337 @@
+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 <bubu83@gmail.com>\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 "Blocklist Sources"
+msgstr "Fonti lista di Blocco"
+
+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 ""
+"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 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 "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 "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 "
+"(&lt; 64 MB RAM)"
+msgstr ""
+"Attiva l'ordinamento globale / rimozione duplicati stressante per la memoria "
+"su dispositivi con poca memoria (&lt; 64 MB RAM)"
+
+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 <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+"Per ulteriori informazioni <a href=\"%s\" target=\"_blank\">vedi "
+"documentazione online</a>"
+
+msgid "Force Local DNS"
+msgstr "Forza DNS Locale"
+
+msgid "Force Overall Sort"
+msgstr "Forza Ordinamento Globale"
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+"In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-"
+"esistente file di configurazione o scarica una nuova configurazione di "
+"default da <a href=\"%s\" target=\"_blank\">qui</a>"
+
+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.<br />"
+msgstr ""
+"Le selezioni degli URL delle liste e categorie Shallalist sono configurabili "
+"nella sezione 'Avanzato'.<br />"
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+"Lista delle interfacce di rete disponibili. Per default l'avvio sarà "
+"innescato dall'interfaccia 'wan'.<br />"
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+"Lista dei backend DNS supportati con la loro directory di default di esporto "
+"della lista.<br />"
+
+msgid "Loading"
+msgstr "Caricando"
+
+msgid "Manual / Backup mode"
+msgstr "Modalità Manuale / Backup"
+
+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 Blocked Domains"
+msgstr "Totale Domini Bloccati"
+
+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 ""
+"Per favore aggiorna il tuo file configurazione di adblock per usare questo "
+"pacchetto."
+
+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, no "
+"ram/tmpfs drives."
+msgstr ""
+"Directory per i backup di adblock. Per favore usa solo dischi non volatili, "
+"non dischi ram/tmpfs."
+
+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 (&gt; 512 KB)."
+msgstr ""
+"La grandezza del file è troppo grande per modificarla online in LuCI (&gt; "
+"512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista nera di "
+"adblock (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista bianca di "
+"adblock (%s).<br />"
+
+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 "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"
index b3e139e..86ff363 100644 (file)
@@ -11,13 +11,19 @@ msgstr ""
 "X-Generator: Poedit 2.0.3\n"
 "Language: ja\n"
 
+msgid "-------"
+msgstr "(利用不可)"
+
 msgid "Adblock"
 msgstr "Adblock"
 
 msgid "Adblock Logfile"
 msgstr "Adblock ログファイル"
 
-msgid "Adblock version"
+msgid "Adblock Status"
+msgstr "Adblock ステータス"
+
+msgid "Adblock Version"
 msgstr "Adblock バージョン"
 
 msgid "Additional trigger delay in seconds before adblock processing begins."
@@ -29,15 +35,27 @@ msgstr "詳細設定"
 msgid "Available blocklist sources."
 msgstr "利用可能なブロックリスト提供元です。"
 
-msgid "Backup directory"
+msgid "Backup Directory"
 msgstr "バックアップ先 ディレクトリ"
 
-msgid "Blocked domains (overall)"
-msgstr "ブロック済みドメイン(全体)"
-
-msgid "Blocklist sources"
+msgid "Blocklist Sources"
 msgstr "ブロックリスト提供元"
 
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+"警告: メモリー容量の小さいデバイスでは OutOfMemory (OOM) 例外を防ぐため、大き"
+"いリストや一度にたくさんのリストを選択しないでください。"
+
+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 "データ収集中です..."
 
@@ -55,8 +73,11 @@ msgstr ""
 "ロードがエラーの場合、またはマニュアル モードでサービスを起動時に使用されま"
 "す。"
 
-msgid "DNS backend"
-msgstr "DNS バックエンド"
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS バックエンド(DNS ディレクトリ)"
+
+msgid "DNS Directory"
+msgstr "DNS ディレクトリ"
 
 msgid "Description"
 msgstr "説明"
@@ -80,10 +101,10 @@ msgstr "設定の編集"
 msgid "Edit Whitelist"
 msgstr "ホワイトリストの編集"
 
-msgid "Enable adblock"
+msgid "Enable Adblock"
 msgstr "Adblock の有効化"
 
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
 msgstr "ブロックリスト バックアップの有効化"
 
 msgid ""
@@ -93,14 +114,15 @@ msgstr ""
 "メモリー容量の少ないデバイス(RAM 64MB 未満)において、一時ファイル内の全体的"
 "なソート及び重複の除去を有効にします。"
 
-msgid "Enable verbose debug logging"
-msgstr "詳細なデバッグ ログの有効化"
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+"何らかの処理エラーが発生した場合に、詳細なデバッグ ログを有効にします。"
 
 msgid "Enabled"
 msgstr "有効"
 
-msgid "Extra options"
-msgstr "拡張設定"
+msgid "Extra Options"
+msgstr "拡張オプション"
 
 msgid ""
 "For SSL protected blocklist sources you need a suitable SSL library, e.g. "
@@ -116,11 +138,20 @@ msgstr ""
 "詳細な情報は<a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a>を確"
 "認してください。"
 
+msgid "Force Local DNS"
+msgstr "ローカル DNS の強制"
+
 msgid "Force Overall Sort"
 msgstr "全体ソートの強制"
 
-msgid "Force local DNS"
-msgstr "ローカル DNS の強制"
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+"OPKGで '--force-maintainer' オプションを使用して既存の設定ファイルを上書きす"
+"るか、 <a href=\"%s\" target=\"_blank\">ここ</a> からデフォルトの設定ファイル"
+"をダウンロードしてください。"
 
 msgid "Input file not found, please check your configuration."
 msgstr "入力ファイルが見つかりません。設定を確認してください。"
@@ -128,8 +159,29 @@ msgstr "入力ファイルが見つかりません。設定を確認してくだ
 msgid "Invalid domain specified!"
 msgstr "無効なドメインが指定されています!"
 
-msgid "Last rundate"
-msgstr "最終実行日時"
+msgid "Last Run"
+msgstr "最終実行"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション"
+"で設定することができます。<br />"
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+"利用可能なネットワーク インターフェースの一覧です。デフォルトでは 'wan' イン"
+"ターフェースによりスタートアップがトリガされます。"
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+"サポートされる DNS バックエンドと、それぞれのデフォルトのリスト出力先ディレク"
+"トリのリストです<br />"
 
 msgid "Loading"
 msgstr "読込中"
@@ -141,16 +193,12 @@ msgid "No"
 msgstr "いいえ"
 
 msgid ""
-"Note that list URLs and Shallalist category selections are configurable in "
-"the 'Advanced' section."
-msgstr ""
-"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション"
-"で設定することができます。"
-
-msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。"
 
+msgid "Overall Blocked Domains"
+msgstr "全体のブロック済みドメイン"
+
 msgid "Overview"
 msgstr "概要"
 
@@ -165,22 +213,24 @@ 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 to the local resolver."
-msgstr "全ての DNS クエリをローカル リゾルバにリダイレクトします。"
-
-msgid "Restrict interface trigger to certain interface(s)"
-msgstr "インターフェース トリガーを特定のインターフェースに限定する"
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+"'lan' ゾーンからの全 DNS クエリを、ローカル リゾルバにリダイレクトします。"
 
-msgid "Resume adblock"
-msgstr "Adblock の再開"
+msgid "Resume"
+msgstr "再開"
 
-msgid "Runtime information"
+msgid "Runtime Information"
 msgstr "実行情報"
 
 msgid "SSL req."
@@ -189,22 +239,24 @@ msgstr "SSL 必須"
 msgid "Save"
 msgstr "保存"
 
-msgid ""
-"Space separated list of interfaces that trigger adblock processing. To "
-"disable event driven (re-)starts remove all entries."
-msgstr ""
-"Adblock の処理のトリガーとなる、スペースで区切られたインターフェースのリスト"
-"です。処理を発生させるイベントを無効にするには、全てのエントリーを削除して空"
-"欄にします。"
+msgid "Startup Trigger"
+msgstr "スタートアップ トリガ"
 
-msgid "Status"
-msgstr "ステータス"
+msgid "Suspend"
+msgstr "一時停止"
 
-msgid "Suspend / Resume adblock"
+msgid "Suspend / Resume Adblock"
 msgstr "Adblock の一時停止 / 再開"
 
-msgid "Suspend adblock"
-msgstr "Adblock の一時停止"
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+"Adblock バックアップの保存先ディレクトリです。 RAM/tmpfs ドライブではなく、不"
+"揮発性のドライブのみを使用してください。"
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "生成されたブロックリスト 'adb_list.overall' の保存先ディレクトリです。"
 
 msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
 msgstr ""
@@ -246,8 +298,18 @@ msgstr ""
 "このフォームには、システムログ内の Adblock に関連するメッセージのみが表示され"
 "ます。"
 
-msgid "Trigger delay"
-msgstr "トリガー遅延"
+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 "ログファイルを見る"
@@ -258,14 +320,17 @@ msgstr "コマンド実行中です..."
 msgid "Yes"
 msgstr "はい"
 
-msgid "active"
-msgstr "動作中"
+msgid "disabled"
+msgstr "無効"
+
+msgid "enabled"
+msgstr "有効"
+
+msgid "error"
+msgstr "エラー"
 
 msgid "n/a"
 msgstr "利用不可"
 
-msgid "no domains blocked"
-msgstr "ブロックされたドメインはありません"
-
-msgid "suspended"
-msgstr "一時停止中"
+msgid "paused"
+msgstr "一時停止"
index 586c318..b4c8675 100644 (file)
@@ -8,39 +8,54 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.8.11\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Last-Translator: Luís Gabriel Lima Silva <gabrielima.si@gmail.com>\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "Language: pt_BR\n"
 
+msgid "-------"
+msgstr ""
+
 msgid "Adblock"
 msgstr "Adblock"
 
 msgid "Adblock Logfile"
-msgstr ""
+msgstr "Arquivo de log do Adblock"
 
-msgid "Adblock version"
+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 ""
+msgstr "Avançado"
 
 msgid "Available blocklist sources."
-msgstr ""
+msgstr "Fontes de listas de bloqueio disponíveis."
 
-msgid "Backup directory"
+msgid "Backup Directory"
 msgstr "Diretório da cópia de segurança"
 
-msgid "Blocked domains (overall)"
+msgid "Blocklist Sources"
+msgstr "Fontes de listas de bloqueio"
+
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
 msgstr ""
 
-msgid "Blocklist sources"
-msgstr "Fontes de listas de bloqueio"
+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 ""
+msgstr "Coletando dados..."
 
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
@@ -52,8 +67,13 @@ 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 "DNS Backend (DNS Directory)"
+msgstr ""
 
-msgid "DNS backend"
+msgid "DNS Directory"
 msgstr ""
 
 msgid "Description"
@@ -63,185 +83,277 @@ 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 ""
+msgstr "Utilitário de Download (Biblioteca SSL)"
 
 msgid "Edit Blacklist"
-msgstr ""
+msgstr "Editar Lista de Bloqueio"
 
 msgid "Edit Configuration"
-msgstr ""
+msgstr "Editar Configuração"
 
 msgid "Edit Whitelist"
-msgstr ""
+msgstr "Editar Lista Permitida"
 
-msgid "Enable adblock"
+msgid "Enable Adblock"
 msgstr "Habilitar adblock"
 
-msgid "Enable blocklist backup"
+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 "
 "(&lt; 64 MB RAM)"
 msgstr ""
+"Ativar tipo geral intenso de memória / duplicar remoção em dispositivos com "
+"pouca memória (&lt; 64 MB RAM)"
 
-msgid "Enable verbose debug logging"
-msgstr "Habilite registros detalhados para depuração"
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
 
 msgid "Enabled"
 msgstr "Habilitado"
 
-msgid "Extra options"
+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 <a href=\"%s\" target=\"_blank\">see online "
 "documentation</a>"
 msgstr ""
+"Para outras informações <a href=\"%s\" target=\"_blank\">veja a documentação "
+"online</a>"
+
+msgid "Force Local DNS"
+msgstr "Force o DNS local"
 
 msgid "Force Overall Sort"
-msgstr ""
+msgstr "Force Tipo Geral"
 
-msgid "Force local DNS"
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
 msgstr ""
 
 msgid "Input file not found, please check your configuration."
-msgstr ""
+msgstr "Arquivo de entrada não encontrado, por favor cheque sua configuração."
 
 msgid "Invalid domain specified!"
-msgstr ""
+msgstr "Domínio especificado inválido!"
 
-msgid "Last rundate"
+msgid "Last Run"
 msgstr ""
 
-msgid "Loading"
-msgstr ""
-
-msgid "Manual / Backup mode"
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
 msgstr ""
 
-msgid "No"
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
 msgstr ""
 
 msgid ""
-"Note that list URLs and Shallalist category selections are configurable in "
-"the 'Advanced' section."
+"List of supported DNS backends with their default list export directory.<br /"
+">"
 msgstr ""
 
+msgid "Loading"
+msgstr "Carregando"
+
+msgid "Manual / Backup mode"
+msgstr "Manual / Modo backup"
+
+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 "Overview"
+msgid "Overall Blocked 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 ""
+msgstr "Consulta"
 
 msgid "Query domains"
-msgstr ""
+msgstr "Consulta de domínios"
 
-msgid "Redirect all DNS queries to the local resolver."
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
 msgstr ""
 
-msgid "Restrict interface trigger to certain interface(s)"
+msgid "Resume"
 msgstr ""
 
-msgid "Resume adblock"
-msgstr ""
-
-msgid "Runtime information"
-msgstr ""
+msgid "Runtime Information"
+msgstr "Informação de execução"
 
 msgid "SSL req."
-msgstr ""
+msgstr "req. de SSL"
 
 msgid "Save"
-msgstr ""
+msgstr "Salvar"
 
-msgid ""
-"Space separated list of interfaces that trigger adblock processing. To "
-"disable event driven (re-)starts remove all entries."
+msgid "Startup Trigger"
 msgstr ""
 
-msgid "Status"
+msgid "Suspend"
 msgstr ""
 
-msgid "Suspend / Resume adblock"
+msgid "Suspend / Resume Adblock"
+msgstr "Suspender / Resumir adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
 msgstr ""
 
-msgid "Suspend adblock"
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
 msgstr ""
 
 msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
 msgstr ""
+"O tamanho do arquivo é muito grande para edição online no LuCI (&gt; 512 KB)."
 
 msgid ""
 "This form allows you to modify the content of the adblock blacklist (%s)."
 "<br />"
 msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de bloqueio "
+"do adblock (%s).<br />"
 
 msgid ""
 "This form allows you to modify the content of the adblock whitelist (%s)."
 "<br />"
 msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de "
+"permissão do adblock (%s).<br />"
 
 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 "Trigger delay"
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
 msgstr ""
 
-msgid "View Logfile"
+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 ""
+msgstr "Aguardando por comando para completar..."
 
 msgid "Yes"
-msgstr ""
+msgstr "Sim"
 
-msgid "active"
+msgid "disabled"
 msgstr ""
 
-msgid "n/a"
+msgid "enabled"
 msgstr ""
 
-msgid "no domains blocked"
+msgid "error"
 msgstr ""
 
-msgid "suspended"
+msgid "n/a"
+msgstr "n/d"
+
+msgid "paused"
 msgstr ""
 
+#~ 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"
 
index a70a1a1..4cb932c 100644 (file)
@@ -1,13 +1,19 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8\n"
 
+msgid "-------"
+msgstr ""
+
 msgid "Adblock"
 msgstr "Adblock"
 
 msgid "Adblock Logfile"
 msgstr "Adblock's loggfil"
 
-msgid "Adblock version"
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
 msgstr "Version för Adblock"
 
 msgid "Additional trigger delay in seconds before adblock processing begins."
@@ -19,15 +25,22 @@ msgstr "Avancerat"
 msgid "Available blocklist sources."
 msgstr "Tillgängliga källor för blockeringslistor"
 
-msgid "Backup directory"
+msgid "Backup Directory"
 msgstr "Säkerhetskopiera mapp"
 
-msgid "Blocked domains (overall)"
-msgstr "Blockerade domäner (övergripande)"
-
-msgid "Blocklist sources"
+msgid "Blocklist Sources"
 msgstr "Källor för blockeringslistor"
 
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+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 "Samlar in data..."
 
@@ -42,8 +55,11 @@ msgid ""
 "errors or during startup in manual mode."
 msgstr ""
 
-msgid "DNS backend"
-msgstr "Bakände för DNS"
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
 
 msgid "Description"
 msgstr "Beskrivning"
@@ -52,6 +68,8 @@ 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)"
@@ -65,10 +83,10 @@ msgstr "Redigerar konfigurationen"
 msgid "Edit Whitelist"
 msgstr "Redigera vitlista"
 
-msgid "Enable adblock"
+msgid "Enable Adblock"
 msgstr "Aktivera adblock"
 
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
 msgstr "Aktivera säkerhetskopiering av blockeringslistan"
 
 msgid ""
@@ -76,13 +94,13 @@ msgid ""
 "(&lt; 64 MB RAM)"
 msgstr ""
 
-msgid "Enable verbose debug logging"
+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 ""
@@ -94,39 +112,60 @@ msgid ""
 "For further information <a href=\"%s\" target=\"_blank\">see online "
 "documentation</a>"
 msgstr ""
+"För mer information <a href=\"%s\" target=\"_blank\">se dokumentationen på "
+"internet</a>"
+
+msgid "Force Local DNS"
+msgstr "Tvinga lokal DNS"
 
 msgid "Force Overall Sort"
 msgstr ""
 
-msgid "Force local DNS"
-msgstr "Tvinga lokal DNS"
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
 
 msgid "Input file not found, please check your configuration."
 msgstr ""
-"Inmatningsfilen hittades inte, var vänlig och kontrollera din konfiguration."
+"Inmatningsfilen kunde inte hittas, var vänlig kontrollera din konfiguration."
 
 msgid "Invalid domain specified!"
 msgstr "Ogiltig domän angiven!"
 
-msgid "Last rundate"
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
 msgstr ""
 
 msgid "Loading"
 msgstr "Laddar"
 
 msgid "Manual / Backup mode"
-msgstr ""
+msgstr "Manuell / Säkerhetskopieringsläge"
 
 msgid "No"
 msgstr "Nej"
 
 msgid ""
-"Note that list URLs and Shallalist category selections are configurable in "
-"the 'Advanced' section."
+"Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid ""
-"Options for further tweaking in case the defaults are not suitable for you."
+msgid "Overall Blocked Domains"
 msgstr ""
 
 msgid "Overview"
@@ -138,63 +177,72 @@ msgid ""
 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 ""
+msgstr "Fråga"
 
 msgid "Query domains"
-msgstr ""
+msgstr "Fråga efter domäner"
 
-msgid "Redirect all DNS queries to the local resolver."
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
 msgstr ""
 
-msgid "Restrict interface trigger to certain interface(s)"
+msgid "Resume"
 msgstr ""
 
-msgid "Resume adblock"
-msgstr "Återuppta adblock"
-
-msgid "Runtime information"
-msgstr "Information om kör-tid"
+msgid "Runtime Information"
+msgstr "Information om körtid"
 
 msgid "SSL req."
-msgstr ""
+msgstr "SSL-rek."
 
 msgid "Save"
-msgstr ""
+msgstr "Spara"
 
-msgid ""
-"Space separated list of interfaces that trigger adblock processing. To "
-"disable event driven (re-)starts remove all entries."
+msgid "Startup Trigger"
 msgstr ""
 
-msgid "Status"
-msgstr "Status"
+msgid "Suspend"
+msgstr ""
 
-msgid "Suspend / Resume adblock"
+msgid "Suspend / Resume Adblock"
 msgstr "Upphäv / Återuppta adblock"
 
-msgid "Suspend adblock"
-msgstr "Upphäv adblock"
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
 
-msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
 msgstr ""
 
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgstr "Filstorleken är för stor för online-redigering i LuCi (&gt; 512 KB)."
+
 msgid ""
 "This form allows you to modify the content of the adblock blacklist (%s)."
 "<br />"
 msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's "
+"svartlista (%s).<br />"
 
 msgid ""
 "This form allows you to modify the content of the adblock whitelist (%s)."
 "<br />"
 msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's vitlista "
+"(%s).<br />"
 
 msgid ""
 "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. "
@@ -206,7 +254,15 @@ msgid ""
 "only."
 msgstr ""
 
-msgid "Trigger delay"
+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"
@@ -218,17 +274,53 @@ msgstr "Väntar på att kommandot ska slutföras..."
 msgid "Yes"
 msgstr "Ja"
 
-msgid "active"
-msgstr "aktiv"
+msgid "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
+msgstr ""
 
 msgid "n/a"
 msgstr "n/a"
 
-msgid "no domains blocked"
-msgstr "inga domäner blockerades"
+msgid "paused"
+msgstr ""
+
+#~ 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 "suspended"
+#~ msgstr "upphävd"
 
 #~ msgid "."
 #~ msgstr "."
index 3b61036..c6ad66b 100644 (file)
@@ -1,13 +1,19 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8"
 
+msgid "-------"
+msgstr ""
+
 msgid "Adblock"
 msgstr ""
 
 msgid "Adblock Logfile"
 msgstr ""
 
-msgid "Adblock version"
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
 msgstr ""
 
 msgid "Additional trigger delay in seconds before adblock processing begins."
@@ -19,13 +25,20 @@ msgstr ""
 msgid "Available blocklist sources."
 msgstr ""
 
-msgid "Backup directory"
+msgid "Backup Directory"
 msgstr ""
 
-msgid "Blocked domains (overall)"
+msgid "Blocklist Sources"
 msgstr ""
 
-msgid "Blocklist sources"
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+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..."
@@ -40,7 +53,10 @@ msgid ""
 "errors or during startup in manual mode."
 msgstr ""
 
-msgid "DNS backend"
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
 msgstr ""
 
 msgid "Description"
@@ -63,10 +79,10 @@ msgstr ""
 msgid "Edit Whitelist"
 msgstr ""
 
-msgid "Enable adblock"
+msgid "Enable Adblock"
 msgstr ""
 
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
 msgstr ""
 
 msgid ""
@@ -74,13 +90,13 @@ msgid ""
 "(&lt; 64 MB 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 ""
@@ -93,10 +109,16 @@ msgid ""
 "documentation</a>"
 msgstr ""
 
+msgid "Force Local DNS"
+msgstr ""
+
 msgid "Force Overall Sort"
 msgstr ""
 
-msgid "Force local DNS"
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
 msgstr ""
 
 msgid "Input file not found, please check your configuration."
@@ -105,7 +127,22 @@ msgstr ""
 msgid "Invalid domain specified!"
 msgstr ""
 
-msgid "Last rundate"
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
 msgstr ""
 
 msgid "Loading"
@@ -118,12 +155,10 @@ msgid "No"
 msgstr ""
 
 msgid ""
-"Note that list URLs and Shallalist category selections are configurable in "
-"the 'Advanced' section."
+"Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid ""
-"Options for further tweaking in case the defaults are not suitable for you."
+msgid "Overall Blocked Domains"
 msgstr ""
 
 msgid "Overview"
@@ -137,22 +172,22 @@ msgstr ""
 msgid "Please edit this file directly in a terminal session."
 msgstr ""
 
-msgid "Query"
+msgid "Please update your adblock config file to use this package."
 msgstr ""
 
-msgid "Query domains"
+msgid "Query"
 msgstr ""
 
-msgid "Redirect all DNS queries to the local resolver."
+msgid "Query domains"
 msgstr ""
 
-msgid "Restrict interface trigger to certain interface(s)"
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
 msgstr ""
 
-msgid "Resume adblock"
+msgid "Resume"
 msgstr ""
 
-msgid "Runtime information"
+msgid "Runtime Information"
 msgstr ""
 
 msgid "SSL req."
@@ -161,18 +196,21 @@ msgstr ""
 msgid "Save"
 msgstr ""
 
-msgid ""
-"Space separated list of interfaces that trigger adblock processing. To "
-"disable event driven (re-)starts remove all entries."
+msgid "Startup Trigger"
 msgstr ""
 
-msgid "Status"
+msgid "Suspend"
 msgstr ""
 
-msgid "Suspend / Resume adblock"
+msgid "Suspend / Resume Adblock"
 msgstr ""
 
-msgid "Suspend adblock"
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
 msgstr ""
 
 msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
@@ -203,7 +241,15 @@ msgid ""
 "only."
 msgstr ""
 
-msgid "Trigger delay"
+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"
@@ -215,14 +261,17 @@ msgstr ""
 msgid "Yes"
 msgstr ""
 
-msgid "active"
+msgid "disabled"
 msgstr ""
 
-msgid "n/a"
+msgid "enabled"
 msgstr ""
 
-msgid "no domains blocked"
+msgid "error"
+msgstr ""
+
+msgid "n/a"
 msgstr ""
 
-msgid "suspended"
+msgid "paused"
 msgstr ""
index 534e8f5..d5f5104 100644 (file)
@@ -13,13 +13,19 @@ msgstr ""
 "X-Generator: Poedit 2.0.1\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgid "-------"
+msgstr ""
+
 msgid "Adblock"
 msgstr "Adblock"
 
 msgid "Adblock Logfile"
 msgstr "Adblock 日志文件"
 
-msgid "Adblock version"
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
 msgstr "Adblock 版本"
 
 msgid "Additional trigger delay in seconds before adblock processing begins."
@@ -31,14 +37,21 @@ msgstr "高级"
 msgid "Available blocklist sources."
 msgstr "可用的 blocklist 来源"
 
-msgid "Backup directory"
+msgid "Backup Directory"
 msgstr "备份目录"
 
-msgid "Blocked domains (overall)"
+msgid "Blocklist Sources"
+msgstr "拦截列表来源"
+
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
 msgstr ""
 
-msgid "Blocklist sources"
-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 "正在收集数据..."
@@ -52,8 +65,11 @@ msgid ""
 "errors or during startup in manual mode."
 msgstr ""
 
-msgid "DNS backend"
-msgstr "DNS 后端"
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
 
 msgid "Description"
 msgstr "描述"
@@ -75,10 +91,10 @@ msgstr "编辑设置"
 msgid "Edit Whitelist"
 msgstr "编辑白名单"
 
-msgid "Enable adblock"
+msgid "Enable Adblock"
 msgstr "启用Adblock"
 
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
 msgstr "启用拦截规则备份"
 
 msgid ""
@@ -86,13 +102,13 @@ msgid ""
 "(&lt; 64 MB RAM)"
 msgstr ""
 
-msgid "Enable verbose debug logging"
-msgstr "启用详细调试输出"
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
 
 msgid "Enabled"
 msgstr "启用"
 
-msgid "Extra options"
+msgid "Extra Options"
 msgstr "额外选项"
 
 msgid ""
@@ -105,10 +121,16 @@ msgid ""
 "documentation</a>"
 msgstr ""
 
+msgid "Force Local DNS"
+msgstr ""
+
 msgid "Force Overall Sort"
 msgstr ""
 
-msgid "Force local DNS"
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
 msgstr ""
 
 msgid "Input file not found, please check your configuration."
@@ -117,7 +139,22 @@ msgstr ""
 msgid "Invalid domain specified!"
 msgstr "无效域名!"
 
-msgid "Last rundate"
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
 msgstr ""
 
 msgid "Loading"
@@ -130,14 +167,12 @@ msgid "No"
 msgstr "否"
 
 msgid ""
-"Note that list URLs and Shallalist category selections are configurable in "
-"the 'Advanced' section."
-msgstr ""
-
-msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr "在默认设置并不适合你时的额外选项。"
 
+msgid "Overall Blocked Domains"
+msgstr ""
+
 msgid "Overview"
 msgstr "总览"
 
@@ -149,22 +184,22 @@ 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 to the local resolver."
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
 msgstr ""
 
-msgid "Restrict interface trigger to certain interface(s)"
+msgid "Resume"
 msgstr ""
 
-msgid "Resume adblock"
-msgstr "恢复 Adblock"
-
-msgid "Runtime information"
+msgid "Runtime Information"
 msgstr "运行信息"
 
 msgid "SSL req."
@@ -173,19 +208,22 @@ msgstr ""
 msgid "Save"
 msgstr ""
 
-msgid ""
-"Space separated list of interfaces that trigger adblock processing. To "
-"disable event driven (re-)starts remove all entries."
+msgid "Startup Trigger"
 msgstr ""
 
-msgid "Status"
-msgstr "状态"
+msgid "Suspend"
+msgstr ""
 
-msgid "Suspend / Resume adblock"
+msgid "Suspend / Resume Adblock"
 msgstr "暂停/恢复 Adblock"
 
-msgid "Suspend adblock"
-msgstr "暂停 Adblock"
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
 
 msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
 msgstr ""
@@ -215,9 +253,17 @@ msgid ""
 "only."
 msgstr ""
 
-msgid "Trigger delay"
+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 "查看日志文件"
 
@@ -227,17 +273,44 @@ msgstr "正在执行命令..."
 msgid "Yes"
 msgstr "是"
 
-msgid "active"
-msgstr "已启用"
+msgid "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
+msgstr ""
 
 msgid "n/a"
 msgstr ""
 
-msgid "no domains blocked"
-msgstr "没有被拦截的域名"
+msgid "paused"
+msgstr ""
+
+#~ 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 "suspended"
+#~ msgstr "已暂停"
 
 #~ msgid "."
 #~ msgstr "."
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 (file)
index 0000000..cac09d7
--- /dev/null
@@ -0,0 +1,108 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+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.<br /> DO NOT POWER OFF THE DEVICE!<br /> 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.<br /> DO NOT POWER "
+"OFF THE DEVICE!<br /> 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.<br /> DO NOT POWER OFF THE DEVICE!<br /> 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.<br /> STÄNG INTE AV ENHETEN!<br /> 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.<br /><br /> 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.<br /><br /> 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.<br /><br /> 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.<br /><br /> 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.<br /><br /> 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!"
index a7c7a38..db1cc35 100644 (file)
@@ -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 <kristoffer.grundstrom1983@gmail.com>\n"
+"Last-Translator: Umeaboy <hamnisdude@gmail.com>\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"
index 3a12936..33613fa 100644 (file)
@@ -25,10 +25,10 @@ msgstr "Status för Aria2"
 msgid ""
 "Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
 "configure the settings."
-msgstr "Aria2 är ett verktyg för multiprotokoll &amp; multi-käll"
+msgstr ""
 
 msgid "Autosave session interval"
-msgstr ""
+msgstr "Autospara sessionintervall"
 
 msgid "BitTorrent Settings"
 msgstr "Inställningar för BitTorrent"
@@ -82,16 +82,16 @@ msgid "Info"
 msgstr "Info"
 
 msgid "List of additional Bt tracker"
-msgstr ""
+msgstr "Lista över extra Bt-tracker"
 
 msgid "List of extra settings"
-msgstr ""
+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 "Loggningsnivå"
+msgstr "Loggnivå"
 
 msgid "Max concurrent downloads"
 msgstr "Maximalt sammanhängande nerladdningar"
@@ -103,10 +103,10 @@ msgid "Max number of peers per torrent"
 msgstr "Maximalt antalet jämlikar per torrent"
 
 msgid "Max number of split"
-msgstr ""
+msgstr "Högst antal split"
 
 msgid "Min split size"
-msgstr ""
+msgstr "Minsta split-storlek"
 
 msgid "No Authentication"
 msgstr "Ingen autentisering"
@@ -118,7 +118,7 @@ msgid "Off"
 msgstr "Av"
 
 msgid "Open WebUI-Aria2"
-msgstr ""
+msgstr "Öppna WebUI-Aria2"
 
 msgid "Open YAAW"
 msgstr "Öppna YAAW"
@@ -145,10 +145,10 @@ msgid "Prealloc"
 msgstr "Prealloc"
 
 msgid "Preallocation"
-msgstr ""
+msgstr "Förallokering"
 
 msgid "Prefix of peer ID"
-msgstr ""
+msgstr "Peer-ID prefix"
 
 msgid "RPC Token"
 msgstr ""
@@ -172,7 +172,7 @@ msgid "Sec"
 msgstr "Sek"
 
 msgid "Task Settings"
-msgstr ""
+msgstr "Inställningar för uppgifter"
 
 msgid "The Aria2 service is not running."
 msgstr "Aria2-tjänsten körs inte."
@@ -181,7 +181,7 @@ msgid "The Aria2 service is running."
 msgstr "Aria2-tjänsten körs."
 
 msgid "Token"
-msgstr ""
+msgstr "Tecken"
 
 msgid "Trunc"
 msgstr ""
@@ -196,13 +196,13 @@ msgid "Username & Password"
 msgstr "Användarnamn & Lösenord"
 
 msgid "View Json-RPC URL"
-msgstr ""
+msgstr "Visa Json-RPC URL"
 
 msgid "Warn"
 msgstr "Varna"
 
 msgid "in bytes, You can append K or M."
-msgstr ""
+msgstr "i bytes, Du kan bifoga K eller M."
 
 msgid "in bytes/sec, You can append K or M."
-msgstr ""
+msgstr "i bytes/sek, Du kan bifoga K eller M."
index 1edafa7..1e423b4 100644 (file)
@@ -1,3 +1,78 @@
+<%
+-- 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%>
 <h2 name="content"><%:Attended Sysupgrade%></h2>
 <div class="container">
@@ -6,6 +81,12 @@
 </div>
 <input class="cbi-button" value="search for updates" onclick="update_request()" type="button" id="update_button">
 <div style="display: none" id="packages" class="alert-message success"></div>
+<div class="cbi-value" id="update_packages_container" style="display: block">
+       <label class="cbi-value-title" for="keep">search for package updates:</label>
+       <div class="cbi-value-field">
+               <input type="checkbox" name="update_packages" id="update_packages" />
+       </div>
+</div>
 <div class="cbi-value" id="keep_container" style="display: none">
        <label class="cbi-value-title" for="keep">keep settings:</label>
        <div class="cbi-value-field">
@@ -15,7 +96,7 @@
 
 <script type="text/javascript">
 
-latest_release = "";
+latest_version = "";
 data = {};
 ubus_counter = 1
 origin = document.location.href.replace(location.pathname, "")
@@ -69,6 +150,9 @@ function ubus_request_callback(response_object, callback) {
                console.log(callback)
                if(typeof callback === "string") {
                        response_json = JSON.parse(response_object.responseText).result[1]
+                       if (callback == "release") {
+                               latest_version = response_json.release.version
+                       }
                        data[callback] = response_json[callback]
                } else {
                        callback(response_object)
@@ -83,6 +167,8 @@ function ubus_request_callback_uci(response_object, callback) {
                console.log(callback)
                response_json = JSON.parse(response_object.responseText).result[1].value
                data[callback] = response_json
+
+               document.getElementById("update_packages").checked = data.update_packages;
        } else {
                console.log(respons_object.responseText)
        }
@@ -96,6 +182,7 @@ function setup() {
        ubus_request("system", "board", {}, "board_name");
        ubus_request("system", "board", {}, "model");
        ubus_request("uci", "get", { "config": "attendedsysupgrade", "section": "updateserver", "option": "url" }, "update_server")
+       ubus_request("uci", "get", { "config": "attendedsysupgrade", "section": "updateclient", "option": "update_packages" }, "update_packages")
 }
 
 // shows notification if update is available
@@ -107,7 +194,7 @@ function update_info(info_output) {
 function update_error(error_output) {
        document.getElementById("update_error").style.display = "block";
        document.getElementById("update_error").innerHTML = error_output;
-       document.getElementById("update_info").style.display = "None";
+       document.getElementById("update_info").style.display = "none";
 }
 
 // asks server for news updates, actually only based on relesae not packages
@@ -116,6 +203,9 @@ function update_request() {
        request_dict = {}
        request_dict.version = data.release.version;
        request_dict.packages = data.packagelist;
+       if (document.getElementById("update_packages").checked == 1) {
+               request_dict.update_packages = 1
+       }
        server_request(request_dict, "update-request", update_request_callback)
 }
 
@@ -144,7 +234,7 @@ function update_request_callback(response_object) {
                // bad request
                console.log(response_object.responseText)
                response_object_content = JSON.parse(response_object.responseText)
-               update_error(response_object_content)
+               update_error(response_object_content.error)
        } else if (response_object.status === 200) {
                // new release/updates
                response_object_content = JSON.parse(response_object.responseText)
@@ -179,16 +269,18 @@ function update_request_200(response_content) {
                for (update in response_content.updates) {
                        info_output += "<b>" + update + "</b>: " + response_content.updates[update][1] + " to " + response_content.updates[update][0] + "</br>"
                }
-               data.packages = response_content.packages
        }
+       data.packages = response_content.packages
        update_info(info_output)
        document.getElementById("update_button").value = "request image";
+       document.getElementById("update_packages_container").style.display = "none";
        document.getElementById("update_button").onclick = image_request;
 }
 
 // request the image, need merge with update_request
 function image_request() {
        console.log("image_request")
+       document.getElementById("update_packages_container").style.display = "none";
        request_dict = {}
        request_dict.version = latest_version;
        request_dict.board = data.board_name
diff --git a/applications/luci-app-bcp38/po/sv/bcp38.po b/applications/luci-app-bcp38/po/sv/bcp38.po
new file mode 100644 (file)
index 0000000..7293278
--- /dev/null
@@ -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 <a href=\"http://tools.ietf.org/html/"
+"bcp38\">BCP 38</a>. For IPv6, only source specific default routes are "
+"installed, so no BCP38 firewall routes are needed."
+msgstr ""
index 37de249..a6c9837 100644 (file)
@@ -41,10 +41,10 @@ msgid "ClamAV"
 msgstr "ClamAV"
 
 msgid "Database check every N sec"
-msgstr ""
+msgstr "Kontrollera databasen var N sek"
 
 msgid "Detect broken executables"
-msgstr ""
+msgstr "Upptäck trasiga exekverbara filer"
 
 msgid "Detect possibly unwanted apps"
 msgstr "Upptäck möjliga oönskade appar"
@@ -53,19 +53,19 @@ msgid "Enable verbose logging"
 msgstr "Aktivera utförlig loggning"
 
 msgid "Follow directory symlinks"
-msgstr ""
+msgstr "Följ mappens symbollänkar"
 
 msgid "Follow file symlinks"
-msgstr ""
+msgstr "Följ symbollänkar för fil"
 
 msgid "Log"
 msgstr "Logg"
 
 msgid "Log additional infection info"
-msgstr ""
+msgstr "Logga ytterligare information om infektionen"
 
 msgid "Log time with each message"
-msgstr ""
+msgstr "Loggtid med varje meddelande"
 
 msgid "Max directory scan depth"
 msgstr ""
@@ -74,19 +74,19 @@ msgid "Max number of threads"
 msgstr "Maximalt antalet trådar"
 
 msgid "Max size of log file"
-msgstr ""
+msgstr "Högsta storlek av loggfilen"
 
 msgid "Max size of scanned file"
-msgstr ""
+msgstr "Högsta storlek av skannad fil"
 
 msgid "No"
 msgstr "Nej"
 
 msgid "Port range, highest port"
-msgstr ""
+msgstr "Räckvidd för port, högsta port"
 
 msgid "Port range, lowest port"
-msgstr ""
+msgstr "Räckvidd för port, lägsta port"
 
 msgid "Scan ELF files"
 msgstr "Sök igenom ELF-filer"
@@ -107,7 +107,7 @@ msgid "Scan pdf files"
 msgstr "Sök igenom pdf-filer"
 
 msgid "Scan portable executables"
-msgstr ""
+msgstr "Sök igenom bärbara exekverbara filer"
 
 msgid "Scan swf files"
 msgstr "Sök igenom swf-filer"
index 8695ce5..751b921 100644 (file)
@@ -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 <kristoffer.grundstrom1983@gmail.com>\n"
+"Last-Translator: Kristoffer Grundström <hamnisdude@gmail.com>\n"
 "Language-Team: none\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
index f59d053..3b9d5f4 100644 (file)
@@ -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 <bubu83@gmail.com>\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.<br /"
 ">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.  <br />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.<br /"
 ">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. <br />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<br />You will find more hints to optimize your system to "
 "run DDNS scripts with all options"
 msgstr ""
+"Segui questo collegamento<br />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<br />Please follow "
 "the instructions on OpenWrt's homepage to enable IPv6 support<br />or update "
 "your system to the latest OpenWrt Release"
 msgstr ""
+"IPv6 non è (pienamente) supportato da questo sistema<br />Per favore segui "
+"le istruzioni sul sito di OpenWrt per abilitare il supporto a IPv6<br />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.<br />Neither "
 "from LuCI interface nor from console"
 msgstr ""
+"Se questa sezione del servizio è disabilitata, non può essere avviata<br />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<br />Values below 5 minutes == 300 seconds "
 "are not supported"
 msgstr ""
+"Intervallo per controllare i cambiamenti dell'IP<br />I valori sotto i 5 minuti == "
+"300 secondi non sono supportati"
 
 msgid ""
 "Interval to force updates send to DDNS Provider<br />Setting this parameter "
 "to 0 will force the script to only run once<br />Values lower 'Check "
 "Interval' except '0' are not supported"
 msgstr ""
+"Intervallo per forzare gli aggiornamenti da mandare al provider DDNS<br />Impostanto questo "
+"parametro a 0 forzerà lo script ad eseguirsi una sola volta<br />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.<br />Follow "
 "instructions you will find on their WEB page."
 msgstr ""
+"L'URL di aggiornamento da usare per aggiornare il tuo Provider DDNS.<br />"
+"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"
index 9373fea..2e63ee1 100644 (file)
@@ -30,12 +30,13 @@ 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 ""
+msgstr "Bind samman nätverk"
 
 msgid "Binding to a specific network not supported"
-msgstr ""
+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 "
index cf74fbc..c735323 100644 (file)
@@ -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 <hamnisdude@gmail.com>\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 ""
@@ -94,10 +94,10 @@ msgid "Milliseconds to sleep between requests (default 100)"
 msgstr ""
 
 msgid "Model"
-msgstr ""
+msgstr "Modell"
 
 msgid "Name"
-msgstr ""
+msgstr "Namn"
 
 msgid "Network Device Scan"
 msgstr ""
@@ -106,16 +106,16 @@ 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 ""
 
 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 ""
@@ -132,28 +132,28 @@ msgid "Perform Scans (this can take a few minutes)"
 msgstr ""
 
 msgid "Phone Information"
-msgstr ""
+msgstr "Information om telefon"
 
 msgid "Phone Scan"
-msgstr ""
+msgstr "Skanning av 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 ""
 
 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 ""
@@ -162,46 +162,46 @@ 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 ""
 
 msgid "Use Configuration"
-msgstr ""
+msgstr "Använd konfiguration"
 
 msgid "Vendor"
-msgstr ""
+msgstr "Tillverkare"
 
 msgid "check other networks"
-msgstr ""
+msgstr "kolla andra nätverk"
index 9008d89..0328df2 100644 (file)
@@ -34,6 +34,20 @@ msgstr ""
 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 クエリ ログファイル"
 
@@ -64,6 +78,9 @@ msgstr "DNSCrypt-Proxy の高速化のため、キャッシュ機能を有効化
 msgid "Ephemeral Keys"
 msgstr "一時的なキー"
 
+msgid "Extra options"
+msgstr "拡張オプション"
+
 msgid "File Checksum"
 msgstr "ファイル チェックサム"
 
@@ -115,6 +132,10 @@ msgstr ""
 msgid "Name of the remote DNS service for resolving queries."
 msgstr "クエリの名前解決を行う、リモートの DNS サービス名です。"
 
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。"
+
 msgid "Overview"
 msgstr "概要"
 
@@ -149,8 +170,12 @@ msgstr "スタートアップ トリガ"
 msgid "The listening port for DNS queries."
 msgstr "DNS クエリを待ち受けるポートです。"
 
-msgid "The local IP address."
-msgstr "ローカル IP アドレスです。"
+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."
index 98e6526..ea83e7a 100644 (file)
@@ -21,6 +21,17 @@ 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 ""
 
@@ -51,6 +62,9 @@ msgstr ""
 msgid "Ephemeral Keys"
 msgstr ""
 
+msgid "Extra options"
+msgstr ""
+
 msgid "File Checksum"
 msgstr ""
 
@@ -95,6 +109,10 @@ msgstr ""
 msgid "Name of the remote DNS service for resolving queries."
 msgstr ""
 
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -127,7 +145,9 @@ msgstr ""
 msgid "The listening port for DNS queries."
 msgstr ""
 
-msgid "The local IP address."
+msgid ""
+"The local IPv4 or IPv6 address. The latter one should be specified within "
+"brackets, e.g. '[::1]'."
 msgstr ""
 
 msgid ""
index 33e8351..a5c4a1e 100644 (file)
@@ -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 <claudyus84@gmail.com>\n"
+"PO-Revision-Date: 2017-09-02 23:05+0200\n"
+"Last-Translator: bubu83 <bubu83@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
@@ -47,22 +47,22 @@ 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 <em>source zones</em>:"
-msgstr "Permetti routing da <em>zone di origini</em>:"
+msgstr "Permetti routing da <em>zone di origine</em>:"
 
 msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permetti rountin a <em>zone di destinazione</em>:"
+msgstr "Permetti rounting a <em>zone di destinazione</em>:"
 
 msgid "Any"
 msgstr "Qualsiasi"
 
 msgid "Covered networks"
-msgstr ""
+msgstr "Reti coperte"
 
 msgid "Custom Rules"
 msgstr "Regole Personalizzate"
@@ -73,9 +73,9 @@ msgid ""
 "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 <em>unidirectional</em>, e.g. a forward from lan to wan does "
 "<em>not</em> 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 <em>zone di destinazione</em> coprono il traffico inoltrato "
+"<strong>originato da %q</strong>. Le <em>zone di origine</em> corrispondono il "
+"traffico inoltrato da altre zone <strong>che puntano a %q</strong>. La regola di "
+"inoltro è <em>unidirezionale</em>, esempio: un inoltro dalla lan alla wan "
+"<em>non</em> 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 <em>input</em> and "
@@ -415,68 +438,78 @@ msgid ""
 "forwarded traffic between different networks within the zone. <em>Covered "
 "networks</em> specifies which available networks are members of this zone."
 msgstr ""
+"Questa sezione definisce le proprietà comuni di %q. Le opzioni di<em>ingresso</em> "
+"e <em>uscita</em> definiscono le regole di default per il traffico in entrata e "
+"uscita di questa zona mentre l'opzione di <em>inoltro</em> descrive il metodo per il "
+"traffico inoltrato tra reti differenti nella zona. Le <em>reti coperte</em> "
+"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 <var>this device</var>"
-msgstr ""
+msgstr "Verso %s a %s su <var>questo dispositivo</var>"
 
 msgid "To %s in %s"
-msgstr ""
+msgstr "Verso %s in %s"
 
 msgid "To %s on <var>this device</var>"
-msgstr ""
+msgstr "Verso %s su <var>questo dispositivo</var>"
 
 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"
index 8e310c0..f9fd920 100644 (file)
@@ -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 <hamnisdude@gmail.com>\n"
 "Language-Team: none\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
@@ -49,10 +49,10 @@ msgid "Advanced Settings"
 msgstr "Avancerade inställningar"
 
 msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
+msgstr "Tillåt vidarebefordring från <em>källzonerna</em>:"
 
 msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
+msgstr "Till vidarebefordring till <em>destinationszonerna:</em>:"
 
 msgid "Any"
 msgstr "Alla"
@@ -70,16 +70,16 @@ msgid ""
 msgstr ""
 
 msgid "Destination IP address"
-msgstr ""
+msgstr "Destinationens IP-adress"
 
 msgid "Destination address"
-msgstr "Destinationsadress"
+msgstr "Destinationens adress"
 
 msgid "Destination port"
 msgstr "Destinationsport"
 
 msgid "Destination zone"
-msgstr ""
+msgstr "Destinationens zon"
 
 msgid "Do not rewrite"
 msgstr "Skriv inte om igen"
@@ -97,7 +97,7 @@ 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 "Extern IP-adress"
@@ -118,13 +118,13 @@ msgid "Firewall - Custom Rules"
 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 ""
@@ -142,10 +142,10 @@ msgid "From %s in %s"
 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 "Generella inställningar"
@@ -187,21 +187,25 @@ msgid "MSS clamping"
 msgstr ""
 
 msgid "Masquerading"
-msgstr ""
+msgstr "Maskering"
 
 msgid "Match"
 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 "
@@ -212,7 +216,7 @@ msgid "Monday"
 msgstr "Måndag"
 
 msgid "Month Days"
-msgstr ""
+msgstr "Dagar i månaden"
 
 msgid "Name"
 msgstr "Namn"
@@ -221,16 +225,16 @@ msgid "New SNAT rule"
 msgstr "Ny SNAT-regel"
 
 msgid "New forward rule"
-msgstr "Ny vidarebefordningsregel"
+msgstr "Ny regel för vidarebefordring"
 
 msgid "New input rule"
 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 "
@@ -259,7 +264,7 @@ 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 "
index 89fa5ea..72c5ddd 100644 (file)
@@ -88,6 +88,9 @@ msgstr ""
 msgid "Enabled"
 msgstr "有効"
 
+msgid "Enter value in hex, starting with <code>0x</code>"
+msgstr "<code>0x</code> で始まる16進数の値を入力してください。"
+
 msgid "Error collecting troubleshooting information"
 msgstr "トラブルシューティング情報の収集エラー"
 
@@ -95,11 +98,14 @@ msgid "Errors"
 msgstr "エラー"
 
 msgid "Expect interface state on up event"
-msgstr ""
+msgstr "Up イベント時に予想されるインターフェースの状態です。"
 
 msgid "Failure interval"
 msgstr "障害検出 インターバル"
 
+msgid "Firewall mask"
+msgstr "ファイアウォール マスク"
+
 msgid "Flush conntrack table"
 msgstr ""
 
@@ -107,10 +113,10 @@ msgid "Flush global firewall conntrack table on interface events"
 msgstr ""
 
 msgid "Globals"
-msgstr ""
+msgstr "全般"
 
 msgid "Globals mwan3 options"
-msgstr ""
+msgstr "MWAN3 全般オプション"
 
 msgid "Hotplug Script"
 msgstr "ホットプラグ スクリプト"
@@ -131,7 +137,7 @@ msgid "IPv6"
 msgstr "IPv6"
 
 msgid "Initial state"
-msgstr ""
+msgstr "初期状態"
 
 msgid "Interface"
 msgstr "インターフェース"
@@ -299,7 +305,7 @@ msgid "Offline"
 msgstr "オフライン"
 
 msgid "Online"
-msgstr ""
+msgstr "オンライン"
 
 msgid "Online (tracking active)"
 msgstr "オンライン(追跡実行中)"
@@ -320,7 +326,7 @@ msgid "Ping interval"
 msgstr "Ping インターバル"
 
 msgid "Ping interval during failure detection"
-msgstr "障害検出動作中の Ping 実行間隔です。"
+msgstr "障害検出中の Ping 実行間隔です。"
 
 msgid "Ping interval during failure recovering"
 msgstr "障害復旧中の Ping 実行間隔です。"
@@ -370,12 +376,6 @@ msgstr "障害復旧 インターバル"
 msgid "Restart MWAN"
 msgstr "MWAN の再起動"
 
-msgid "Restore default hotplug script"
-msgstr "デフォルトのホットプラグ スクリプトの復元"
-
-msgid "Restore..."
-msgstr "復元..."
-
 msgid "Rule"
 msgstr "ルール"
 
@@ -443,6 +443,31 @@ msgstr ""
 "に対して Ping の送信が行われます。常にオンラインとする場合、空欄のままにしま"
 "す。"
 
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\".<br /"
+">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This "
+"file is interpreted as a shell script.<br />The first line of the script "
+"must be &#34;#!/bin/sh&#34; without quotes.<br />Lines beginning with # are "
+"comments and are not executed.<br />Put your custom mwan3 action here, they "
+"will<br />be executed with each netifd hotplug interface event<br />on "
+"interfaces for which mwan3 is enabled.<br /><br />There are three main "
+"environment variables that are passed to this script.<br /><br />$ACTION "
+"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />"
+msgstr ""
+"このセクションでは、 \"/etc/mwan3.user\" の内容を変更することができます。"
+"<br />このファイルは、 sysupgrade 時に保持されます。<br /><br />注意: <br />"
+"このファイルは、シェルスクリプトとして解釈されます。<br />スクリプトの1行目"
+"は、&#34;#!bin/sh&#34; である必要があります(クォーテーション不要)。<br /># "
+"で始まる行はコメントであり、実行されません。<br />mwan3 のカスタム動作をここ"
+"に入力してください。これらは、 mwan3 が有効なインターフェースの<br />netifd "
+"ホットプラグ インターフェース イベント毎に実行されます。<br /><br />主に3つの"
+"環境変数が利用可能です。<br /><br />$ACTION - \"ifup\" および \"ifdown\"<br /"
+">$INTERFACE - Up または Down が行われたインターフェース名(例: \"wan\" や "
+"\"wwan\")<br />$DEVICE - Up または Down が行われた物理デバイス名(例: "
+"\"eth0\" や \"wwan0\")<br /><br />"
+
 msgid "This section allows you to modify the contents of /etc/config/mwan3"
 msgstr ""
 "このセクションでは、 /etc/config/mwan3 の内容を変更することができます。"
@@ -455,32 +480,15 @@ msgid "This section allows you to modify the contents of /etc/config/wireless"
 msgstr ""
 "このセクションでは、 /etc/config/wireless の内容を変更することができます。"
 
-msgid ""
-"This section allows you to modify the contents of /etc/hotplug.d/iface/16-"
-"mwancustom<br />This is useful for running system commands and/or scripts "
-"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The "
-"first line of the script must be &#34;#!/bin/sh&#34; without quotes<br /"
-">Lines beginning with # are comments and are not executed<br /><br /"
-">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />"
-"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the "
-"device name attached to the interface (eth0.1, eth1, etc.)"
-msgstr ""
-"このセクションでは、 /etc/hotplug.d/iface/16-mwancustom の内容を変更すること"
-"ができます。<br />これは、インターフェースの ifup または ifdown ホットプラグ "
-"イベント時にシステムコマンドまたはスクリプト、もしくはその両方を実行すること"
-"に役立ちます。<br /><br />注意:<br />スクリプトの1行目は、&#34;#!bin/sh&#34; "
-"である必要があります(クオーテーション不要)。<br /># で始まる行はコメントと"
-"して認識され、実行されません。<br /><br />利用可能な変数:<br />$ACTION - ホッ"
-"トプラグ イベント (ifup, ifdown)<br />$INTERFACE - インターフェース名(wan1, "
-"wan2, その他)<br />$DEVICE - インターフェースにアタッチされたデバイスの名前"
-"(eth0.1, eth1, その他)"
-
 msgid "Tracking IP"
 msgstr "追跡 IP"
 
 msgid "Tracking hostname or IP address"
 msgstr "追跡ホスト名または IP アドレス"
 
+msgid "Tracking method"
+msgstr "追跡方式"
+
 msgid "Tracking reliability"
 msgstr "追跡の信頼性"
 
@@ -505,6 +513,8 @@ 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 の内容を確認してください。"
@@ -653,10 +663,3 @@ msgstr "停止"
 
 msgid "unreachable (reject)"
 msgstr "unreachable (reject)"
-
-#~ msgid ""
-#~ "This IP address will be pinged to dermine if the link is up or down. "
-#~ "Leave blank to assume interface is always online"
-#~ msgstr ""
-#~ "これらは、リンクの Up または Down を判定するために Ping が送信されるIP ア"
-#~ "ドレスです。常にオンラインとする場合、空欄のままにします。"
index 9e17c3d..e63d8ad 100644 (file)
@@ -73,6 +73,9 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid "Enter value in hex, starting with <code>0x</code>"
+msgstr ""
+
 msgid "Error collecting troubleshooting information"
 msgstr ""
 
@@ -85,6 +88,9 @@ msgstr ""
 msgid "Failure interval"
 msgstr ""
 
+msgid "Firewall mask"
+msgstr ""
+
 msgid "Flush conntrack table"
 msgstr ""
 
@@ -330,12 +336,6 @@ msgstr ""
 msgid "Restart MWAN"
 msgstr ""
 
-msgid "Restore default hotplug script"
-msgstr ""
-
-msgid "Restore..."
-msgstr ""
-
 msgid "Rule"
 msgstr ""
 
@@ -389,6 +389,20 @@ msgid ""
 "down. Leave blank to assume interface is always online"
 msgstr ""
 
+msgid ""
+"This section allows you to modify the content of \"/etc/mwan3.user\".<br /"
+">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This "
+"file is interpreted as a shell script.<br />The first line of the script "
+"must be &#34;#!/bin/sh&#34; without quotes.<br />Lines beginning with # are "
+"comments and are not executed.<br />Put your custom mwan3 action here, they "
+"will<br />be executed with each netifd hotplug interface event<br />on "
+"interfaces for which mwan3 is enabled.<br /><br />There are three main "
+"environment variables that are passed to this script.<br /><br />$ACTION "
+"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />"
+msgstr ""
+
 msgid "This section allows you to modify the contents of /etc/config/mwan3"
 msgstr ""
 
@@ -398,17 +412,6 @@ msgstr ""
 msgid "This section allows you to modify the contents of /etc/config/wireless"
 msgstr ""
 
-msgid ""
-"This section allows you to modify the contents of /etc/hotplug.d/iface/16-"
-"mwancustom<br />This is useful for running system commands and/or scripts "
-"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The "
-"first line of the script must be &#34;#!/bin/sh&#34; without quotes<br /"
-">Lines beginning with # are comments and are not executed<br /><br /"
-">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />"
-"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the "
-"device name attached to the interface (eth0.1, eth1, etc.)"
-msgstr ""
-
 msgid "Tracking IP"
 msgstr ""
 
index 3c505d8..b133e8b 100644 (file)
@@ -76,6 +76,9 @@ msgstr "当 Ping 成功次数达到这个数值后,已经被认为离线的接
 msgid "Enabled"
 msgstr "启用"
 
+msgid "Enter value in hex, starting with <code>0x</code>"
+msgstr ""
+
 msgid "Error collecting troubleshooting information"
 msgstr "收集故障排除信息时出错"
 
@@ -88,6 +91,9 @@ msgstr ""
 msgid "Failure interval"
 msgstr "故障检测间隔"
 
+msgid "Firewall mask"
+msgstr ""
+
 msgid "Flush conntrack table"
 msgstr "刷新连接跟踪表"
 
@@ -350,12 +356,6 @@ msgstr "故障恢复间隔"
 msgid "Restart MWAN"
 msgstr "重启 MWAN"
 
-msgid "Restore default hotplug script"
-msgstr "恢复默认的 hotplug 脚本"
-
-msgid "Restore..."
-msgstr "恢复..."
-
 msgid "Rule"
 msgstr "规则"
 
@@ -416,6 +416,20 @@ msgid ""
 "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\".<br /"
+">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This "
+"file is interpreted as a shell script.<br />The first line of the script "
+"must be &#34;#!/bin/sh&#34; without quotes.<br />Lines beginning with # are "
+"comments and are not executed.<br />Put your custom mwan3 action here, they "
+"will<br />be executed with each netifd hotplug interface event<br />on "
+"interfaces for which mwan3 is enabled.<br /><br />There are three main "
+"environment variables that are passed to this script.<br /><br />$ACTION "
+"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which "
+"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name "
+"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />"
+msgstr ""
+
 msgid "This section allows you to modify the contents of /etc/config/mwan3"
 msgstr "这里允许你修改 /etc/config/mwan3 的内容"
 
@@ -425,29 +439,15 @@ msgstr "这里允许你修改 /etc/config/network 的内容"
 msgid "This section allows you to modify the contents of /etc/config/wireless"
 msgstr "这里允许你修改 /etc/config/wireless 的内容"
 
-msgid ""
-"This section allows you to modify the contents of /etc/hotplug.d/iface/16-"
-"mwancustom<br />This is useful for running system commands and/or scripts "
-"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The "
-"first line of the script must be &#34;#!/bin/sh&#34; without quotes<br /"
-">Lines beginning with # are comments and are not executed<br /><br /"
-">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />"
-"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the "
-"device name attached to the interface (eth0.1, eth1, etc.)"
-msgstr ""
-"这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容<br />这可以在接口 "
-"ifup 或 ifdown Hotplug 事件时运行系统命令或脚本<br /><br />注意:<br />脚本的"
-"第一行必须是 &#34;#!/bin/sh&#34; 不含引号<br />以#开头的行是注释,不会执行"
-"<br /><br />可用变量:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)<br />"
-"$INTERFACE 是接口名称(wan1、wan2 等)<br />$DEVICE 是连接到接口的设备名称 "
-"(eth0.1、eth1 等)"
-
 msgid "Tracking IP"
 msgstr "追踪的 IP"
 
 msgid "Tracking hostname or IP address"
 msgstr "追踪的主机或 IP 地址"
 
+msgid "Tracking method"
+msgstr ""
+
 msgid "Tracking reliability"
 msgstr "追踪可靠性"
 
@@ -590,3 +590,26 @@ 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<br />This is useful for running system commands and/or scripts "
+#~ "based on interface ifup or ifdown hotplug events<br /><br />Notes:<br /"
+#~ ">The first line of the script must be &#34;#!/bin/sh&#34; without "
+#~ "quotes<br />Lines beginning with # are comments and are not executed<br /"
+#~ "><br />Available variables:<br />$ACTION is the hotplug event (ifup, "
+#~ "ifdown)<br />$INTERFACE is the interface name (wan1, wan2, etc.)<br />"
+#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"
+#~ msgstr ""
+#~ "这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容<br />这可以在接"
+#~ "口 ifup 或 ifdown Hotplug 事件时运行系统命令或脚本<br /><br />注意:<br />"
+#~ "脚本的第一行必须是 &#34;#!/bin/sh&#34; 不含引号<br />以#开头的行是注释,"
+#~ "不会执行<br /><br />可用变量:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)"
+#~ "<br />$INTERFACE 是接口名称(wan1、wan2 等)<br />$DEVICE 是连接到接口的设"
+#~ "备名称 (eth0.1、eth1 等)"
index 509a694..50c65ad 100755 (executable)
@@ -11,7 +11,7 @@ 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.initial_source="none" >/dev/null
+       uci -q set mwan3.globals.local_source="none" >/dev/null
        uci commit mwan3
 }
 
index 6b8f92f..c03e149 100644 (file)
@@ -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 <hamnisdude@gmail.com>\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 ""
index 8e5b062..8725902 100644 (file)
@@ -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 <claudyus84@gmail.com>\n"
+"PO-Revision-Date: 2017-09-06 01:28+0200\n"
+"Last-Translator: bubu83 <bubu83@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
@@ -25,10 +25,10 @@ msgid "Allowed users"
 msgstr "Utenti ammessi"
 
 msgid "Browseable"
-msgstr ""
+msgstr "Sfogliabile"
 
 msgid "Create mask"
-msgstr "Mask di creazione dei file"
+msgstr "Crea maschera"
 
 msgid "Description"
 msgstr "Descrizione"
@@ -68,6 +68,8 @@ 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"
index 5df59cb..4a01bed 100644 (file)
@@ -9,23 +9,28 @@ 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 source ip addresses checked \
-               against <em>Src ip bypass</em>, <em>Src ip forward</em>, \
-               <em>Src ip checkdst</em> and if none matches <em>Src default</em> \
+               If enabled, packets will first have their src ip addresses checked \
+               against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, \
+               <em>Src ip/net checkdst</em> and if none matches <em>Src default</em> \
                will give the default action to be taken. \
                If the prior check results in action <em>checkdst</em>, packets will continue \
-               to have their destination addresses checked."))
+               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', 'ss_rules', 'disabled', true)
+       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("srcip", translate("Source Settings"))
-s:tab("dstip", translate("Destination 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')
@@ -39,40 +44,66 @@ ss.values_redir(o, 'udp')
 
 o = s:taboption('general', ListValue, "local_default",
        translate("Local-out default"),
-       translate("Default action for locally generated packets"))
+       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!"))
 
-s:taboption('srcip', DynamicList, "src_ips_bypass",
-       translate("Src ip bypass"),
-       translate("Bypass redir action for packets with source addresses in this list"))
-s:taboption('srcip', DynamicList, "src_ips_forward",
-       translate("Src ip forward"),
-       translate("Go through redir action for packets with source addresses in this list"))
-s:taboption('srcip', DynamicList, "src_ips_checkdst",
-       translate("Src ip checkdst"),
-       translate("Continue to have dst address checked for packets with source addresses in this list"))
-o = s:taboption('srcip', ListValue, "src_default",
+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 source addresses do not match any of the source ip list"))
+       translate("Default action for packets whose src address do not match any of the src ip/net list"))
 ss.values_actions(o)
 
-s:taboption('dstip', DynamicList, "dst_ips_bypass",
-       translate("Dst ip bypass"),
-       translate("Bypass redir action for packets with destination addresses in this list"))
-s:taboption('dstip', DynamicList, "dst_ips_forward",
-       translate("Dst ip forward"),
-       translate("Go through redir action for packets with destination addresses in this list"))
+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('dstip', FileBrowser, "dst_ips_bypass_file",
-       translate("Dst ip bypass file"),
-       translate("File containing ip addresses for the purposes as with <em>Dst ip bypass</em>"))
+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 <em>Dst ip/net bypass</em>"))
 o.datatype = "file"
-s:taboption('dstip', FileBrowser, "dst_ips_forward_file",
-       translate("Dst ip forward file"),
-       translate("File containing ip addresses for the purposes as with <em>Dst ip forward</em>"))
+s:taboption('dst', FileBrowser, "dst_ips_forward_file",
+       translate("Dst ip/net forward file"),
+       translate("File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"))
 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
index 6608ee8..7ba6b40 100644 (file)
@@ -3,6 +3,7 @@
 
 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()
@@ -14,20 +15,25 @@ module("luci.model.shadowsocks-libev", function(m)
 end)
 
 function values_actions(o)
-       for _, a in ipairs(actions) do
-               o:value(a)
+       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 mode and mode:find(xmode) then
+               if not disabled and mode:find(xmode) then
                        local desc = "%s - %s" % {sname, mode}
                        o:value(sname, desc)
                end
        end)
+       o:value("", "<unset>")
+       o.default = ""
 end
 
 function values_serverlist(o)
@@ -43,7 +49,6 @@ function values_serverlist(o)
 end
 
 function values_ipaddr(o)
-       local keys, vals = {}, {}
        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() })
@@ -51,6 +56,12 @@ function values_ipaddr(o)
        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
 
@@ -226,17 +237,13 @@ modes = {
        "udp_only",
 }
 
-actions = {
-       "bypass",
-       "forward",
-       "checkdst",
-}
-
 methods = {
        -- aead
        "aes-128-gcm",
        "aes-192-gcm",
        "aes-256-gcm",
+       "chacha20-ietf-poly1305",
+       "xchacha20-ietf-poly1305",
        -- stream
        "table",
        "rc4",
index add5231..27971df 100644 (file)
@@ -163,24 +163,25 @@ 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'"))
+       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("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(1,10)"
+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"))
+       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"))
+       translate("Timeout in seconds between retries in 'automatic' mode."))
 e4.default = 60
 e4.datatype = "range(60,300)"
 e4.rmempty = false
index 7056153..febdbd5 100644 (file)
@@ -107,12 +107,12 @@ msgstr ""
 "詳細な情報は <a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a> を"
 "確認してください。"
 
-msgid "How long should travelmate wait for a successful wlan interface reload"
+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"
+msgid "How many times should travelmate try to connect to an Uplink."
 msgstr "Travelmate がアップリンクへの接続を試行する回数です。"
 
 msgid "Input file not found, please check your configuration."
@@ -188,8 +188,8 @@ msgstr "再スキャン"
 msgid "Rescan"
 msgstr "再スキャン"
 
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
-msgstr "Travelmate が指定された無線に接続するよう制限します。例: 'radio0'"
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')"
 
 msgid "Runtime information"
 msgstr "実行情報"
@@ -256,9 +256,13 @@ msgstr ""
 "このフォームには、システムログ内の Travelmate に関するメッセージのみが表示さ"
 "れます。"
 
-msgid "Timeout in seconds between retries in 'automatic' mode"
+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"
 
index 282dda8..41fab70 100644 (file)
@@ -102,10 +102,10 @@ msgid ""
 "documentation</a>"
 msgstr ""
 
-msgid "How long should travelmate wait for a successful wlan interface reload"
+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"
+msgid "How many times should travelmate try to connect to an Uplink."
 msgstr ""
 
 msgid "Input file not found, please check your configuration."
@@ -173,7 +173,7 @@ msgstr ""
 msgid "Rescan"
 msgstr ""
 
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
 msgstr ""
 
 msgid "Runtime information"
@@ -231,7 +231,10 @@ msgid ""
 "messages only."
 msgstr ""
 
-msgid "Timeout in seconds between retries in 'automatic' mode"
+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"
index 2190055..a9ceafe 100644 (file)
@@ -91,10 +91,10 @@ msgid ""
 "documentation</a>"
 msgstr ""
 
-msgid "How long should travelmate wait for a successful wlan interface reload"
+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"
+msgid "How many times should travelmate try to connect to an Uplink."
 msgstr ""
 
 msgid "Input file not found, please check your configuration."
@@ -162,7 +162,7 @@ msgstr ""
 msgid "Rescan"
 msgstr ""
 
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
 msgstr ""
 
 msgid "Runtime information"
@@ -220,7 +220,10 @@ msgid ""
 "messages only."
 msgstr ""
 
-msgid "Timeout in seconds between retries in 'automatic' mode"
+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"
index 03821ad..883e1bb 100644 (file)
@@ -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
index 0a5abc5..b44bf03 100644 (file)
 -- Copyright 2008 Steven Barth <steven@midlink.org>
 -- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2017 Eric Luehrsen <ericluehrsen@hotmail.com>
 -- 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 (file)
index bfaacb4..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
--- Copyright 2016 Dan Luedtke <mail@danrl.com>
--- Licensed to the public under the Apache License 2.0.
-
-local m
-local s1
-local ena, mcf, lsv, rlh, rpv, vld, nvd, eds, prt, tlm
-local ctl, dlk, dom, dty, lfq, wfq, exa, ctl, d64, pfx, qry, qrs
-local pro, tgr, rsc, rsn, ag2
-
-m = Map("unbound", translate("Recursive DNS"),
-  translatef("<a href=\"%s\" target=\"_blank\">Unbound</a>"
-  .. " is a validating, recursive, and caching DNS resolver. "
-  .. "UCI help can be found on "
-  .. "<a href=\"%s\" target=\"_blank\">github</a>.",
-  "https://www.unbound.net/",
-  "https://github.com/openwrt/packages/blob/master/net/unbound/files/README.md"))
-
-
-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" })
-
-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" })
-
-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("3", "3")
-ag2:value("9", "9 ("..translate("default")..")")
-ag2:value("12", "12")
-ag2:value("24", "24")
-ag2:value("99", "99 ("..translate("never")..")")
-
-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"
-
-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 (file)
index 0000000..cdf7757
--- /dev/null
@@ -0,0 +1,273 @@
+-- Copyright 2008 Steven Barth <steven@midlink.org>
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- Copyright 2016 Dan Luedtke <mail@danrl.com>
+-- 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("<h3>Unbound Basic Settings</h3>\n"
+  .. "<a href=\"%s\" target=\"_blank\">Unbound</a>"
+  .. " is a validating, recursive, and caching DNS resolver. "
+  .. "UCI help can be found on "
+  .. "<a href=\"%s\" target=\"_blank\">github</a>.",
+  "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("<h3>Unbound Advanced Settings</h3>\n"
+    .. "Advanced setttings and plugin modules for "
+    .. "<a href=\"%s\" target=\"_blank\">Unbound</a>"
+    .. " DNS resolver.", "https://www.unbound.net/"))
+
+  s1:tab("resource", translate("Resource"),
+    translatef("<h3>Unbound Resource Settings</h3>\n"
+    .. "Memory and protocol setttings for "
+    .. "<a href=\"%s\" target=\"_blank\">Unbound</a>"
+    .. " 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("<h3>Unbound RFC5011 Settings</h3>\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 (file)
index 0000000..67d2ec6
--- /dev/null
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- 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 (file)
index 0000000..5cfb9c3
--- /dev/null
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- 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 (file)
index 0000000..d0ac407
--- /dev/null
@@ -0,0 +1,30 @@
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- 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 (file)
index 0000000..44d0937
--- /dev/null
@@ -0,0 +1,8 @@
+<style type="text/css">
+  textarea
+  {
+    background-color: #fffff0;
+    font-family: monospace;
+  }
+</style>
+
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 (file)
index 0000000..87d6cc6
--- /dev/null
@@ -0,0 +1,5 @@
+<%+header%>
+<h3><%=heading:pcdata()%></h3>
+<p><%=description:pcdata()%></p>
+<%+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 (file)
index 0000000..c0a7d13
--- /dev/null
@@ -0,0 +1,8 @@
+<%+header%>
+<h3><%=heading:pcdata()%></h3>
+<p><%=description:pcdata()%></p>
+<div>
+<textarea style="width: 100%; height: 480px; font-family: monospace;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea>
+</div>
+<%+footer%>
+
index cc714ac..c2ac8c9 100644 (file)
@@ -8,18 +8,5 @@ uci -q batch <<-EOF >/dev/null
 EOF
 
 rm -f /tmp/luci-indexcache
-[ ! -x /usr/sbin/unbound-control ] && exit 0
-
-uci -q batch <<-EOF >/dev/null
-  set luci.unboundhosts=command
-  set luci.unboundhosts.name='Unbound Local Hosts'
-  set luci.unboundhosts.command='unbound-control -c /var/lib/unbound/unbound.conf list_local_data'
-  set luci.unboundzones=command
-  set luci.unboundzones.name='Unbound Local Zones'
-  set luci.unboundzones.command='unbound-control -c /var/lib/unbound/unbound.conf list_local_zones'
-  commit luci
-EOF
-
-rm -f /tmp/luci-indexcache
 exit 0
 
diff --git a/applications/luci-app-wifischedule/po/it/wifischedule.po b/applications/luci-app-wifischedule/po/it/wifischedule.po
new file mode 100644 (file)
index 0000000..18a9dce
--- /dev/null
@@ -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"
index 1aa68e2..3422ae9 100644 (file)
@@ -20,7 +20,7 @@ msgid "Endpoint"
 msgstr "Slutpunkt"
 
 msgid "Firewall Mark"
-msgstr ""
+msgstr "Brandväggsmarkering"
 
 msgid "Interface"
 msgstr "Gränssnitt"
@@ -38,10 +38,10 @@ msgid "Never"
 msgstr "Aldrig"
 
 msgid "Peer"
-msgstr ""
+msgstr "Jämlike"
 
 msgid "Persistent Keepalive"
-msgstr ""
+msgstr "Hålla vid liv ständigt"
 
 msgid "Public Key"
 msgstr "Publik nyckel"
index bf23eb8..d0c35f4 100644 (file)
@@ -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"
index b819230..884eb62 100644 (file)
@@ -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()
index cf56566..df23aaf 100644 (file)
@@ -132,38 +132,40 @@ 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 mask 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 mask and not ip6addr(mask) then
-               return false
-       end
+function ipmask(val)
+       return ipmask4(val) or ipmask6(val)
+end
+
+function ipmask4(val)
+       return cidr4(val) or ipnet4(val) or ip4addr(val)
+end
 
-       return ip6addr(ip or val)
+function ipmask6(val)
+       return cidr6(val) or ipnet6(val) or ip6addr(val)
 end
 
 function ip6hostid(val)
index 8795dfc..9cc9857 100644 (file)
@@ -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)
index 0486ec2..45c221e 100644 (file)
@@ -124,7 +124,7 @@ msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
 msgstr ""
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configuració <abbr title=\"Light Emitting Diode\">LED</abbr>"
+msgstr "Configuració dels <abbr title=\"Light Emitting Diode\">LED</abbr>s"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
 msgstr "Nom <abbr title=\"Light Emitting Diode\">LED</abbr>"
@@ -156,6 +156,8 @@ msgid ""
 "<br/>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 ""
@@ -285,7 +287,8 @@ msgstr ""
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
 msgstr ""
-"Permet autenticació <abbr title=\"Secure Shell\">SSH</abbr> per contrasenya"
+"Permetre l'autenticació <abbr title=\"Secure Shell\">SSH</abbr> amb "
+"contrasenya"
 
 msgid "Allow all except listed"
 msgstr "Permet-les totes menys les llistades"
@@ -298,13 +301,13 @@ 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 <em>root</em> user to login with password"
-msgstr "Permetre l'accés de l'usurari <em>root</em> amb paraula clau"
+msgstr "Permetre l'accés de l'usurari <em>root</em> amb contrasenya"
 
 msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
@@ -493,10 +496,10 @@ msgid "Back to scan results"
 msgstr "Enrere als resultats de l'escaneig"
 
 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"
@@ -559,6 +562,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"
@@ -631,6 +636,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"
@@ -728,7 +737,7 @@ msgid ""
 "\">LED</abbr>s if possible."
 msgstr ""
 "Personalitza el comportament dels <abbr title=\"Light Emitting Diode\">LED</"
-"abbr>s del dispositiu si és possible."
+"abbr>s del dispositiu, si és possible."
 
 msgid "DHCP Leases"
 msgstr "Arrendaments DHCP"
@@ -891,7 +900,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"
@@ -936,7 +945,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"
@@ -945,8 +954,9 @@ msgid ""
 "Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
 "and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
 msgstr ""
-"El Dropbear ofereix accés per la xarxa a consola <abbr title=\"Secure Shell"
-"\">SSH</abbr>i un servidor <abbr title=\"Secure Copy\">SCP</abbr> integrat"
+"El Dropbear ofereix accés a una consola <abbr title=\"Secure Shell\">SSH"
+"</abbr> per xarxa i un servidor <abbr title=\"Secure Copy\">SCP</abbr> "
+"integrat"
 
 msgid "Dual-Stack Lite (RFC6333)"
 msgstr ""
@@ -1101,13 +1111,13 @@ msgid "External R1 Key Holder List"
 msgstr ""
 
 msgid "External system log server"
-msgstr ""
+msgstr "Servidor de registre del sistema extern"
 
 msgid "External system log server port"
-msgstr ""
+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 ""
@@ -1166,19 +1176,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"
@@ -1205,13 +1215,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"
@@ -1223,7 +1233,7 @@ msgid "Frame Bursting"
 msgstr ""
 
 msgid "Free"
-msgstr "Lliures"
+msgstr "Lliure"
 
 msgid "Free space"
 msgstr "Espai lliure"
@@ -1252,16 +1262,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 ""
@@ -1318,6 +1328,9 @@ 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"
@@ -1327,7 +1340,7 @@ msgstr ""
 "No mostris l'<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
 
 msgid "Host"
-msgstr ""
+msgstr "Nom de màquina"
 
 msgid "Host entries"
 msgstr "Entrades de noms de màquina"
@@ -1396,7 +1409,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 ""
@@ -1408,7 +1421,7 @@ msgid "IPv6 Firewall"
 msgstr "Tallafocs IPv6"
 
 msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "Veïns IPv6"
 
 msgid "IPv6 Settings"
 msgstr ""
@@ -1417,7 +1430,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"
@@ -1512,10 +1525,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 "
@@ -1627,7 +1640,7 @@ msgid "Joining Network: %q"
 msgstr ""
 
 msgid "Keep settings"
-msgstr ""
+msgstr "Mantenir la configuració"
 
 msgid "Kernel Log"
 msgstr "Registre del nucli"
@@ -1684,7 +1697,7 @@ msgid "Leasefile"
 msgstr "Fitxer 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"
@@ -1717,7 +1730,7 @@ msgid "Line Uptime"
 msgstr ""
 
 msgid "Link On"
-msgstr "Enllaç activa"
+msgstr "Enllaç actiu"
 
 msgid ""
 "List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
@@ -1757,15 +1770,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"
@@ -1905,7 +1920,7 @@ msgid "Memory usage (%)"
 msgstr "Ús de Memòria (%)"
 
 msgid "Metric"
-msgstr "Mètric"
+msgstr "Mètrica"
 
 msgid "Minimum hold time"
 msgstr ""
@@ -2044,13 +2059,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"
@@ -2065,7 +2080,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"
@@ -2230,7 +2245,7 @@ msgid "Other:"
 msgstr "Altres:"
 
 msgid "Out"
-msgstr ""
+msgstr "Sort."
 
 msgid "Outbound:"
 msgstr "Sortint:"
@@ -2447,7 +2462,7 @@ msgid "Private Key"
 msgstr ""
 
 msgid "Proceed"
-msgstr "continua"
+msgstr "Procedeix"
 
 msgid "Processes"
 msgstr "Processos"
@@ -2471,7 +2486,7 @@ msgid "Protocol support is not installed"
 msgstr ""
 
 msgid "Provide NTP server"
-msgstr ""
+msgstr "Habilita el servidor NTP"
 
 msgid "Provide new network"
 msgstr ""
@@ -2564,19 +2579,19 @@ 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 ""
+msgstr "Dispositiu sense fils en temps real"
 
 msgid "Reassociation Deadline"
 msgstr ""
@@ -2594,7 +2609,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"
@@ -2624,10 +2639,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"
@@ -2679,7 +2694,7 @@ msgid ""
 msgstr ""
 
 msgid "Reset"
-msgstr "Reinicia"
+msgstr "Restableix"
 
 msgid "Reset Counters"
 msgstr "Reinicia els comptadors"
@@ -2697,7 +2712,7 @@ msgid "Restart"
 msgstr "Reinicia"
 
 msgid "Restart Firewall"
-msgstr "Reinicia Tallafocs"
+msgstr "Reinicia el tallafocs"
 
 msgid "Restore backup"
 msgstr "Restaura còpia de seguretat"
@@ -2784,10 +2799,10 @@ msgid "Save"
 msgstr "Desa"
 
 msgid "Save & Apply"
-msgstr "Desa y aplica"
+msgstr "Desa i aplica"
 
 msgid "Save &#38; Apply"
-msgstr "Desa y aplica"
+msgstr "Desa i aplica"
 
 msgid "Scan"
 msgstr "Escaneja"
@@ -2842,7 +2857,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Set up Time Synchronization"
-msgstr "Sincronització de hora"
+msgstr "Configura la sincronització de l'hora"
 
 msgid "Setup DHCP Server"
 msgstr ""
@@ -2875,7 +2890,7 @@ msgid "Size"
 msgstr "Mida"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "Mida (.ipk)"
 
 msgid "Skip"
 msgstr "Salta"
@@ -2961,7 +2976,7 @@ msgid "Start priority"
 msgstr "Prioritat d'inici"
 
 msgid "Startup"
-msgstr "Arranca"
+msgstr "Arrencada"
 
 msgid "Static IPv4 Routes"
 msgstr "Rutes IPv4 estàtiques"
@@ -3028,7 +3043,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..."
@@ -3037,13 +3052,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:"
@@ -3131,6 +3146,10 @@ msgid ""
 "compare them with the original file to ensure data integrity.<br /> 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."
+"<br />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"
@@ -3139,7 +3158,7 @@ msgid "The following changes have been reverted"
 msgstr "S&#39;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"
@@ -3193,10 +3212,11 @@ msgid ""
 "address of your computer to reach the device again, depending on your "
 "settings."
 msgstr ""
-"El sistema s'està escrivent ara.<br />NO APAGUEU EL DISPOSITIU!<br />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.<br />NO "
+"APAGUIS EL DISPOSITIU!<br />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 "
@@ -3231,6 +3251,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 ""
@@ -3256,6 +3278,8 @@ 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 "
@@ -3301,10 +3325,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."
@@ -3316,6 +3340,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 ""
@@ -3327,7 +3353,7 @@ msgid "Traceroute"
 msgstr "Rastre de ruta"
 
 msgid "Traffic"
-msgstr "Tràfic"
+msgstr "Trànsit"
 
 msgid "Transfer"
 msgstr "Transferència"
@@ -3336,7 +3362,7 @@ msgid "Transmission Rate"
 msgstr "Taxa de transmissió"
 
 msgid "Transmit"
-msgstr "Transmet"
+msgstr "Transmissió"
 
 msgid "Transmit Power"
 msgstr "Potència de transmissió"
@@ -3345,10 +3371,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"
@@ -3424,6 +3450,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..."
@@ -3432,7 +3461,7 @@ msgid "Uploaded File"
 msgstr "Fitxer pujat"
 
 msgid "Uptime"
-msgstr "Temps d'alta"
+msgstr "Temps en marxa"
 
 msgid "Use <code>/etc/ethers</code>"
 msgstr "Fes servir <code>/etc/ethers</code>"
@@ -3588,7 +3617,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"
@@ -3624,10 +3653,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"
@@ -3642,10 +3671,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 ""
+msgstr "Escriure el registre del sistema al fitxer"
 
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
index c217b0c..d754cfe 100644 (file)
@@ -1478,7 +1478,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"
index 183e495..d95a600 100644 (file)
@@ -1507,7 +1507,7 @@ msgstr "IPv6-über-IPv4 (6to4)"
 msgid "Identity"
 msgstr "Identität"
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr "Aktiviert die Benutzung von 1DES, wenn ausgewählt"
 
 msgid "If checked, encryption is disabled"
index b385651..4460938 100644 (file)
@@ -1491,7 +1491,7 @@ msgstr ""
 msgid "Identity"
 msgstr "Ταυτότητα"
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 0420733..0b50d4b 100644 (file)
@@ -1465,7 +1465,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"
index 626e374..18adcfa 100644 (file)
@@ -1487,7 +1487,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"
index b0b4b43..704acfa 100644 (file)
@@ -1499,7 +1499,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"
index 2c2c5d2..7c956b8 100644 (file)
@@ -1448,7 +1448,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 8f5aee4..0fb435c 100644 (file)
@@ -1488,7 +1488,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"
index ea7578e..8bb0da6 100644 (file)
@@ -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 <a.mux@inwind.it>\n"
+"PO-Revision-Date: 2017-09-05 00:33+0100\n"
+"Last-Translator: bubu83 <bubu83@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
@@ -159,6 +159,8 @@ msgid ""
 "<br/>Note: you need to manually restart the cron service if the crontab file "
 "was empty before editing."
 msgstr ""
+"<br/>Nota: devi riavviare manualmente il servizio cron se il file crontab "
+"era vuoto prima delle modifiche."
 
 msgid "A43C + J43 + A43"
 msgstr ""
@@ -240,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"
@@ -280,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 "
@@ -445,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"
@@ -582,7 +584,7 @@ msgid "Cancel"
 msgstr "Annulla"
 
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 msgid "Chain"
 msgstr "Catena"
@@ -603,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"
@@ -626,7 +628,7 @@ msgid ""
 "Choose the network(s) you want to attach to this wireless interface or fill "
 "out the <em>create</em> 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 <em>crea<em> per definire una nuova rete."
 
 msgid "Cipher"
@@ -642,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"
@@ -715,7 +717,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"
@@ -745,7 +747,7 @@ msgstr ""
 "abbr> del sistema se possibile."
 
 msgid "DHCP Leases"
-msgstr "Contratta DHCP"
+msgstr "Contratti DHCP"
 
 msgid "DHCP Server"
 msgstr "Server DHCP"
@@ -754,16 +756,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 ""
@@ -847,7 +849,7 @@ msgid "Description"
 msgstr "Descrizione"
 
 msgid "Design"
-msgstr "Disegno"
+msgstr "Tema"
 
 msgid "Destination"
 msgstr "Destinazione"
@@ -859,10 +861,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"
@@ -887,13 +889,13 @@ msgid "Disable DNS setup"
 msgstr "Disabilita il setup dei DNS"
 
 msgid "Disable Encryption"
-msgstr ""
+msgstr "Disabilita Crittografia"
 
 msgid "Disabled"
 msgstr "Disabilitato"
 
 msgid "Disabled (default)"
-msgstr ""
+msgstr "Disabilitato (default)"
 
 msgid "Discard upstream RFC1918 responses"
 msgstr "Ignora risposte RFC1918 upstream"
@@ -941,7 +943,7 @@ msgid "Domain whitelist"
 msgstr "Elenco Domini consentiti"
 
 msgid "Don't Fragment"
-msgstr ""
+msgstr "Non Frammentare"
 
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
@@ -1016,7 +1018,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"
@@ -1025,10 +1027,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"
@@ -1037,19 +1039,19 @@ msgid "Enable VLAN functionality"
 msgstr "Abilita la funzionalità VLAN"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "Abilita pulsante WPS, richiede WPA(2)-PSK"
 
 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"
@@ -1110,7 +1112,7 @@ msgstr "Scadenze"
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
 msgstr ""
-"Tempo di scadenza di indirizzi localizzati, il minimo è di 2 minuti (<code> "
+"Tempo di scadenza di indirizzi a contratto, il minimo è di 2 minuti (<code> "
 "2m </code>)."
 
 msgid "External"
@@ -1218,10 +1220,10 @@ msgid "Force TKIP and CCMP (AES)"
 msgstr "Forza TKIP e CCMP (AES)"
 
 msgid "Force link"
-msgstr ""
+msgstr "Forza collegamento"
 
 msgid "Force use of NAT-T"
-msgstr ""
+msgstr "Forza uso del NAT-T"
 
 msgid "Form token mismatch"
 msgstr ""
@@ -1274,10 +1276,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"
@@ -1291,7 +1293,7 @@ msgstr ""
 "non è stata cambiata!"
 
 msgid "Global Settings"
-msgstr ""
+msgstr "Impostazioni Globali"
 
 msgid "Global network options"
 msgstr "Opzioni rete globale"
@@ -1372,13 +1374,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"
@@ -1414,7 +1416,7 @@ msgid "IPv4 only"
 msgstr "Solo IPv4"
 
 msgid "IPv4 prefix"
-msgstr ""
+msgstr "Prefisso IPv4"
 
 msgid "IPv4 prefix length"
 msgstr "Lunghezza prefisso IPv4"
@@ -1435,7 +1437,7 @@ msgid "IPv6 Neighbours"
 msgstr ""
 
 msgid "IPv6 Settings"
-msgstr ""
+msgstr "Impostazioni IPv6"
 
 msgid "IPv6 ULA-Prefix"
 msgstr ""
@@ -1471,7 +1473,7 @@ msgid "IPv6 routed prefix"
 msgstr ""
 
 msgid "IPv6 suffix"
-msgstr ""
+msgstr "Suffisso IPv6"
 
 msgid "IPv6-Address"
 msgstr "Indirizzo-IPv6"
@@ -1491,11 +1493,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"
@@ -1600,7 +1602,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."
@@ -1615,7 +1617,7 @@ msgid "Interfaces"
 msgstr "Interfacce"
 
 msgid "Internal"
-msgstr ""
+msgstr "Interno"
 
 msgid "Internal Server Error"
 msgstr "Errore del Server Interno"
@@ -1633,7 +1635,7 @@ msgid "Invalid username and/or password! Please try again."
 msgstr "Username o password non validi! Per favore riprova."
 
 msgid "Isolate Clients"
-msgstr ""
+msgstr "Isola Clienti"
 
 #, fuzzy
 msgid ""
@@ -1659,10 +1661,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"
@@ -1704,16 +1706,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"
+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"
@@ -1875,7 +1877,7 @@ msgid "MAC-Address"
 msgstr ""
 
 msgid "MAC-Address Filter"
-msgstr "Filtro dei MAC-Address"
+msgstr "Filtro indirizzo MAC"
 
 msgid "MAC-Filter"
 msgstr "Filtro MAC"
@@ -1904,7 +1906,7 @@ msgid ""
 msgstr ""
 
 msgid "Manual"
-msgstr ""
+msgstr "Manuale"
 
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
@@ -1922,7 +1924,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/"
@@ -1930,7 +1932,7 @@ msgid ""
 msgstr ""
 
 msgid "Maximum number of leased addresses."
-msgstr ""
+msgstr "Numero massimo indirizzi in contratto"
 
 msgid "Mbit/s"
 msgstr ""
@@ -1939,7 +1941,7 @@ msgid "Memory"
 msgstr "Memoria"
 
 msgid "Memory usage (%)"
-msgstr "Uso Memory (%)"
+msgstr "Uso Memoria (%)"
 
 msgid "Metric"
 msgstr "Metrica"
@@ -1963,7 +1965,7 @@ msgid "Mode"
 msgstr "Modalità"
 
 msgid "Model"
-msgstr ""
+msgstr "Modello"
 
 msgid "Modem device"
 msgstr "Dispositivo modem"
@@ -1975,19 +1977,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 "
@@ -2006,19 +2008,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 ""
+msgstr "Muovi su"
 
 msgid "Multicast address"
-msgstr ""
+msgstr "Indirizzo Multicast"
 
 msgid "NAS ID"
 msgstr "ID della NAS"
@@ -2039,10 +2041,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"
@@ -2075,7 +2077,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 ""
@@ -2099,25 +2101,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 ""
@@ -2132,22 +2134,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 ""
@@ -2197,7 +2199,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 ""
@@ -2266,7 +2268,7 @@ msgid "Other:"
 msgstr "Altro:"
 
 msgid "Out"
-msgstr ""
+msgstr "Uscita"
 
 msgid "Outbound:"
 msgstr "In uscita:"
@@ -2275,30 +2277,32 @@ 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"
@@ -2361,7 +2365,7 @@ msgid "Packets"
 msgstr "Pacchetti"
 
 msgid "Part of zone %q"
-msgstr ""
+msgstr "Parte della zona %q"
 
 msgid "Password"
 msgstr "Password"
@@ -2445,7 +2449,7 @@ msgid "Port"
 msgstr "Porta"
 
 msgid "Port status:"
-msgstr ""
+msgstr "Status porta:"
 
 msgid "Power Management Mode"
 msgstr ""
@@ -2489,7 +2493,7 @@ msgid "Processes"
 msgstr "Processi"
 
 msgid "Profile"
-msgstr ""
+msgstr "Profilo"
 
 msgid "Prot."
 msgstr "Prot."
@@ -2498,25 +2502,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 ""
@@ -2525,7 +2529,7 @@ msgid "QMI Cellular"
 msgstr ""
 
 msgid "Quality"
-msgstr ""
+msgstr "Qualità"
 
 msgid "R0 Key Lifetime"
 msgstr ""
@@ -2543,7 +2547,7 @@ msgid "RX"
 msgstr ""
 
 msgid "RX Rate"
-msgstr ""
+msgstr "Velocità RX"
 
 msgid "RaLink 802.11%s Wireless Controller"
 msgstr ""
@@ -2584,7 +2588,7 @@ msgid ""
 msgstr ""
 
 msgid "Really reset all changes?"
-msgstr ""
+msgstr "Azzerare veramente tutte le modifiche?"
 
 #, fuzzy
 msgid ""
@@ -2600,22 +2604,22 @@ 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 ""
+msgstr "Wireless in Tempo Reale"
 
 msgid "Reassociation Deadline"
 msgstr ""
@@ -2627,7 +2631,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"
@@ -2636,7 +2640,7 @@ msgid "Receive"
 msgstr "Ricezione"
 
 msgid "Receiver Antenna"
-msgstr "Antenna ricevente"
+msgstr "Antenna Ricevente"
 
 msgid "Recommended. IP addresses of the WireGuard interface."
 msgstr ""
@@ -2648,7 +2652,7 @@ msgid "Reconnecting interface"
 msgstr "Sto ricollegando l'interfaccia"
 
 msgid "References"
-msgstr ""
+msgstr "Riferimenti"
 
 msgid "Relay"
 msgstr ""
@@ -2672,25 +2676,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 ""
+msgstr "Richiesto"
 
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
@@ -2724,7 +2728,7 @@ msgid "Reset Counters"
 msgstr "Azzera Contatori"
 
 msgid "Reset to defaults"
-msgstr ""
+msgstr "Azzera a default"
 
 msgid "Resolv and Hosts Files"
 msgstr ""
@@ -2742,7 +2746,7 @@ msgid "Restore backup"
 msgstr "Ripristina backup"
 
 msgid "Reveal/hide password"
-msgstr ""
+msgstr "Rivela/nascondi password"
 
 msgid "Revert"
 msgstr "Ripristina"
@@ -2782,10 +2786,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 ""
@@ -2826,7 +2830,7 @@ msgid "Save & Apply"
 msgstr "Salva & applica"
 
 msgid "Save &#38; Apply"
-msgstr ""
+msgstr "Salva &#38; Applica"
 
 msgid "Scan"
 msgstr "Scan"
@@ -2835,13 +2839,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 "
@@ -2852,7 +2856,7 @@ msgid "Separate Clients"
 msgstr "Isola utenti"
 
 msgid "Server Settings"
-msgstr ""
+msgstr "Impostazioni Server"
 
 msgid "Server password"
 msgstr ""
@@ -2953,7 +2957,7 @@ msgstr ""
 "specifici."
 
 msgid "Sort"
-msgstr "Elenca"
+msgstr "Ordina"
 
 msgid "Source"
 msgstr "Origine"
@@ -3016,7 +3020,7 @@ msgid "Static IPv6 Routes"
 msgstr "Instradamento statico IPv6"
 
 msgid "Static Leases"
-msgstr "Leases statici"
+msgstr "Contratti statici"
 
 msgid "Static Routes"
 msgstr "Instradamenti Statici"
@@ -3029,10 +3033,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 "
+"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 con lease corrispondente "
-"servito vengono serviti."
+"configurazione non dinamici, dove solo gli host col contratto corrispondente "
+"vengono serviti."
 
 msgid "Status"
 msgstr "Stato"
@@ -3087,7 +3091,7 @@ msgid "System"
 msgstr "Sistema"
 
 msgid "System Log"
-msgstr "Log di sistema"
+msgstr "Registro di Sistema"
 
 msgid "System Properties"
 msgstr "Proprietà di Sistema"
@@ -3108,7 +3112,7 @@ msgid "TX"
 msgstr "TX"
 
 msgid "TX Rate"
-msgstr "Velocità di TX"
+msgstr "Velocità TX"
 
 msgid "Table"
 msgstr "Tabella"
@@ -3261,16 +3265,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 "
@@ -3352,10 +3356,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"
@@ -3364,6 +3368,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 ""
@@ -3432,10 +3438,10 @@ msgid "UMTS/GPRS/EV-DO"
 msgstr ""
 
 msgid "USB Device"
-msgstr ""
+msgstr "Periferica USB"
 
 msgid "USB Ports"
-msgstr ""
+msgstr "Porte USB"
 
 msgid "UUID"
 msgstr ""
@@ -3447,25 +3453,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. "
@@ -3480,7 +3486,7 @@ msgid "Upload archive..."
 msgstr "Carica archivio..."
 
 msgid "Uploaded File"
-msgstr "Invia file"
+msgstr "File Inviato"
 
 msgid "Uptime"
 msgstr "Tempo di attività"
@@ -3535,9 +3541,11 @@ msgid ""
 "standard host-specific lease time, e.g. 12h, 3d or infinite."
 msgstr ""
 "Utilizzare il pulsante <em>Aggiungi</em> per aggiungere una nuova voce di "
-"locazione. L'<em>Indirizzo-MAC</em> identifica l'host, l'<em>Indirizzo-IPv4</"
-"em> specifica l'indirizzo fisso da utilizzare e il <em> Nome Host</em> è "
-"assegnato come nome simbolico alla richiesta dell'host."
+"contratto. L'<em>Indirizzo-MAC</em> identifica l'host, l'<em>Indirizzo-IPv4</"
+"em> specifica l'indirizzo fisso da utilizzare e il <em>Nome Host</em> è "
+"assegnato come nome simbolico alla richiesta dell'host. L'opzionale "
+"<em>tempo di Contratto</em> 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"
@@ -3635,6 +3643,7 @@ 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 ..."
@@ -3700,7 +3709,7 @@ msgid "Write received DNS requests to syslog"
 msgstr "Scrittura delle richiesta DNS ricevute nel syslog"
 
 msgid "Write system log to file"
-msgstr ""
+msgstr "Scrivi registro di sistema su file"
 
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
@@ -3753,7 +3762,7 @@ msgid "disable"
 msgstr "disabilita"
 
 msgid "disabled"
-msgstr ""
+msgstr "disabilitato"
 
 msgid "expired"
 msgstr "scaduto"
@@ -3762,8 +3771,8 @@ msgid ""
 "file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr>-leases will be stored"
 msgstr ""
-"file dove vengono salvati le richieste <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> assegnate"
+"file dove vengono salvati i contratti <abbr title=\"Dynamic Host "
+"Configuration Protocol\">DHCP</abbr> dati"
 
 msgid "forward"
 msgstr "inoltro"
@@ -3781,7 +3790,7 @@ msgid "hidden"
 msgstr "nascosto"
 
 msgid "hybrid mode"
-msgstr ""
+msgstr "modo ibrido"
 
 msgid "if target is a network"
 msgstr "se la destinazione è una rete"
@@ -3877,7 +3886,7 @@ msgid "« Back"
 msgstr "« Indietro"
 
 #~ msgid "Leasetime"
-#~ msgstr "Tempo di lease"
+#~ msgstr "Tempo di contratto"
 
 #, fuzzy
 #~ msgid "automatic"
index 7d23abe..7639f4b 100644 (file)
@@ -1489,7 +1489,7 @@ 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"
index 770a49c..0352004 100644 (file)
@@ -1464,7 +1464,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index c2f6272..63c4e0b 100644 (file)
@@ -1435,7 +1435,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"
index 6a6e818..db2ece2 100644 (file)
@@ -1474,7 +1474,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"
index e364616..77ab4bf 100644 (file)
@@ -1511,7 +1511,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"
index 87c32bf..4012349 100644 (file)
@@ -1558,7 +1558,7 @@ msgstr "IPv6-sobre-IPv4 (6to4)"
 msgid "Identity"
 msgstr "Identidade PEAP"
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr "Se marcado, a cifragem 1DES será habilitada"
 
 msgid "If checked, encryption is disabled"
index bea93f5..8861417 100644 (file)
@@ -1495,7 +1495,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"
index 2ee8537..305d723 100644 (file)
@@ -1442,7 +1442,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"
index 6515772..51f8feb 100644 (file)
@@ -1494,7 +1494,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"
index ab876ce..5b434b9 100644 (file)
@@ -1420,7 +1420,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 803ac28..058fcb5 100644 (file)
@@ -1426,7 +1426,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 1aa1816..a8a336a 100644 (file)
@@ -1413,7 +1413,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 3c814cd..5efad9e 100644 (file)
@@ -1433,7 +1433,7 @@ msgstr ""
 msgid "Identity"
 msgstr ""
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
index 83e5501..d2db414 100644 (file)
@@ -1502,7 +1502,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"
index 7bd7868..2294c9c 100644 (file)
@@ -1440,7 +1440,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"
index 0ea00ff..f0eef12 100644 (file)
@@ -1446,7 +1446,7 @@ msgstr "IPv6-over-IPv4 (6to4)"
 msgid "Identity"
 msgstr "鉴权"
 
-msgid "If checked, 1DES is enaled"
+msgid "If checked, 1DES is enabled"
 msgstr "选中以启用 1DES"
 
 msgid "If checked, encryption is disabled"
index 7b2792e..53afa72 100644 (file)
@@ -1451,7 +1451,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"
index a47ce15..d8217ce 100644 (file)
@@ -67,7 +67,7 @@ enable_no_enc.default = enable_no_enc.disabled
 
 enable_single_des = section:taboption("general", Flag, "enable_single_des",
        translate("Enable Single DES"),
-       translate("If checked, 1DES is enaled"))
+       translate("If checked, 1DES is enabled"))
 enable_no_enc.default = enable_single_des.disabled
 
 dpd_idle = section:taboption("general", Value, "dpd_idle", translate("DPD Idle Timeout"))