From: Hannu Nyman Date: Sun, 8 Oct 2017 07:36:18 +0000 (+0300) Subject: Merge pull request #1386 from dibdot/dnscrypt-proxy X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=2d011a5e9794ddb7e001e7bc2bda15c2942b0db5;hp=1f79a51aa963e2ab4ca94b181e20ff352e5936bc Merge pull request #1386 from dibdot/dnscrypt-proxy luci-app-dnscrypt-proxy: fix resolver selection --- diff --git a/applications/luci-app-adblock/luasrc/controller/adblock.lua b/applications/luci-app-adblock/luasrc/controller/adblock.lua index efa99b5b8..b74858400 100644 --- a/applications/luci-app-adblock/luasrc/controller/adblock.lua +++ b/applications/luci-app-adblock/luasrc/controller/adblock.lua @@ -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 diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua index aa5701487..e2ef1ef21 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua @@ -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 " + .. "" + .. "here", "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", "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.
") + .. 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.
") + .. 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.
") + .. 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 (< 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 (< 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 diff --git a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm index ee3a4553a..0221a75ed 100644 --- a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm +++ b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm @@ -5,6 +5,6 @@ This is free software, licensed under the Apache License, Version 2.0 <%+cbi/valueheader%> - + <%+cbi/valuefooter%> diff --git a/applications/luci-app-adblock/po/it/adblock.po b/applications/luci-app-adblock/po/it/adblock.po new file mode 100644 index 000000000..190122863 --- /dev/null +++ b/applications/luci-app-adblock/po/it/adblock.po @@ -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 \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 " +"(< 64 MB RAM)" +msgstr "" +"Attiva l'ordinamento globale / rimozione duplicati stressante per la memoria " +"su dispositivi con poca memoria (< 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 see online " +"documentation" +msgstr "" +"Per ulteriori informazioni vedi " +"documentazione online" + +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 here" +msgstr "" +"In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-" +"esistente file di configurazione o scarica una nuova configurazione di " +"default da qui" + +msgid "Input file not found, please check your configuration." +msgstr "File di input non trovato, per favore controlla la tua configurazione." + +msgid "Invalid domain specified!" +msgstr "Dominio invalido specificato!" + +msgid "Last Run" +msgstr "Ultimo Avvio" + +msgid "" +"List URLs and Shallalist category selections are configurable in the " +"'Advanced' section.
" +msgstr "" +"Le selezioni degli URL delle liste e categorie Shallalist sono configurabili " +"nella sezione 'Avanzato'.
" + +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" +msgstr "" +"Lista delle interfacce di rete disponibili. Per default l'avvio sarà " +"innescato dall'interfaccia 'wan'.
" + +msgid "" +"List of supported DNS backends with their default list export directory.
" +msgstr "" +"Lista dei backend DNS supportati con la loro directory di default di esporto " +"della lista.
" + +msgid "Loading" +msgstr "Caricando" + +msgid "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 (> 512 KB)." +msgstr "" +"La grandezza del file è troppo grande per modificarla online in LuCI (> " +"512 KB)." + +msgid "" +"This form allows you to modify the content of the adblock blacklist (%s)." +"
" +msgstr "" +"Questo form ti consente di modificare il contenuto della lista nera di " +"adblock (%s).
" + +msgid "" +"This form allows you to modify the content of the adblock whitelist (%s)." +"
" +msgstr "" +"Questo form ti consente di modificare il contenuto della lista bianca di " +"adblock (%s).
" + +msgid "" +"This form allows you to modify the content of the main adblock configuration " +"file (/etc/config/adblock)." +msgstr "" +"Questo form ti consente di modificare il contenuto del file principale di " +"configurazione di adblock (/etc/config/adblock)." + +msgid "" +"This form allows you to query active block lists for certain domains, e.g. " +"for whitelisting." +msgstr "" +"Questo form ti consente di interrogare le liste di blocco attive per " +"determinati domini, p.e. per metterli nella lista bianca." + +msgid "" +"This form shows the syslog output, pre-filtered for adblock related messages " +"only." +msgstr "" +"Questo form mostra l'output del registro, prefiltrato per messaggi relativi " +"solo ad adblock." + +msgid "" +"To overwrite the default path use the 'DNS Directory' option in the extra " +"section below." +msgstr "" +"Per sovrascrivere il percorso di default usa l'opzione 'Directory DNS' nella " +"sezione aggiuntiva sotto." + +msgid "Trigger Delay" +msgstr "Ritardo Innesco" + +msgid "Verbose Debug Logging" +msgstr "Registro di Debug Dettagliato" + +msgid "View Logfile" +msgstr "Vedi Registro" + +msgid "Waiting for command to complete..." +msgstr "Aspettando che il comando venga completato..." + +msgid "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" diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po index b3e139e12..86ff36379 100644 --- a/applications/luci-app-adblock/po/ja/adblock.po +++ b/applications/luci-app-adblock/po/ja/adblock.po @@ -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 "" "詳細な情報はオンライン ドキュメントを確" "認してください。" +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 here" +msgstr "" +"OPKGで '--force-maintainer' オプションを使用して既存の設定ファイルを上書きす" +"るか、 ここ からデフォルトの設定ファイル" +"をダウンロードしてください。" 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.
" +msgstr "" +"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション" +"で設定することができます。
" + +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" +msgstr "" +"利用可能なネットワーク インターフェースの一覧です。デフォルトでは 'wan' イン" +"ターフェースによりスタートアップがトリガされます。" + +msgid "" +"List of supported DNS backends with their default list export directory.
" +msgstr "" +"サポートされる DNS バックエンドと、それぞれのデフォルトのリスト出力先ディレク" +"トリのリストです
" msgid "Loading" msgstr "読込中" @@ -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 (> 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 "一時停止" diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po index 586c31801..b4c8675f0 100644 --- a/applications/luci-app-adblock/po/pt-br/adblock.po +++ b/applications/luci-app-adblock/po/pt-br/adblock.po @@ -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 \n" +"Last-Translator: Luís Gabriel Lima Silva \n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Language: pt_BR\n" +msgid "-------" +msgstr "" + msgid "Adblock" msgstr "Adblock" msgid "Adblock Logfile" -msgstr "" +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 " "(< 64 MB RAM)" msgstr "" +"Ativar tipo geral intenso de memória / duplicar remoção em dispositivos com " +"pouca memória (< 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 see online " "documentation" msgstr "" +"Para outras informações veja a documentação " +"online" + +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 here" 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.
" msgstr "" -msgid "No" +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" 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.
" 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 (> 512 KB)." msgstr "" +"O tamanho do arquivo é muito grande para edição online no LuCI (> 512 KB)." msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." "
" msgstr "" +"Esse formulário permite que você modifique o conteúdo das listas de bloqueio " +"do adblock (%s).
" msgid "" "This form allows you to modify the content of the adblock whitelist (%s)." "
" msgstr "" +"Esse formulário permite que você modifique o conteúdo das listas de " +"permissão do adblock (%s).
" msgid "" "This form allows you to modify the content of the main adblock configuration " "file (/etc/config/adblock)." msgstr "" +"Esse formulário permite que você modifique o conteúdo das do arquivo de " +"configuração principal (/etc/config/adblock)." msgid "" "This form allows you to query active block lists for certain domains, e.g. " "for whitelisting." msgstr "" +"Esse formulário permite que você consulte listas de blocos ativos para " +"certos domínios, e.x. para listas de permissão." msgid "" "This form shows the syslog output, pre-filtered for adblock related messages " "only." msgstr "" +"Esse formulário mostra a saída do syslog, pré-filtrado para mensagens do " +"adblock apenas." -msgid "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" diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po index a70a1a1d6..4cb932c60 100644 --- a/applications/luci-app-adblock/po/sv/adblock.po +++ b/applications/luci-app-adblock/po/sv/adblock.po @@ -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 "" "(< 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 see online " "documentation" msgstr "" +"För mer information se dokumentationen på " +"internet" + +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 here" +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.
" +msgstr "" + +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" +msgstr "" + +msgid "" +"List of supported DNS backends with their default list export directory.
" msgstr "" msgid "Loading" msgstr "Laddar" msgid "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 (> 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 (> 512 KB)." +msgstr "Filstorleken är för stor för online-redigering i LuCi (> 512 KB)." + msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." "
" msgstr "" +"Det här formuläret tillåter dig att förändra innehållet i adblock's " +"svartlista (%s).
" msgid "" "This form allows you to modify the content of the adblock whitelist (%s)." "
" msgstr "" +"Det här formuläret tillåter dig att förändra innehållet i adblock's vitlista " +"(%s).
" msgid "" "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 "." diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot index 3b61036e0..c6ad66baa 100644 --- a/applications/luci-app-adblock/po/templates/adblock.pot +++ b/applications/luci-app-adblock/po/templates/adblock.pot @@ -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 "" "(< 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" 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 here" 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.
" +msgstr "" + +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" +msgstr "" + +msgid "" +"List of supported DNS backends with their default list export directory.
" msgstr "" msgid "Loading" @@ -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 (> 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 "" diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po index 534e8f5cc..d5f5104a0 100644 --- a/applications/luci-app-adblock/po/zh-cn/adblock.po +++ b/applications/luci-app-adblock/po/zh-cn/adblock.po @@ -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 "" "(< 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" 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 here" 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.
" +msgstr "" + +msgid "" +"List of available network interfaces. By default the startup will be " +"triggered by the 'wan' interface.
" +msgstr "" + +msgid "" +"List of supported DNS backends with their default list export directory.
" msgstr "" msgid "Loading" @@ -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 (> 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 index 000000000..cac09d76a --- /dev/null +++ b/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po @@ -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.
DO NOT POWER OFF THE DEVICE!
Wait a " +"few minutes before you try to reconnect. It might be necessary to renew the " +"address of your computer to reach the device again, depending on your " +"settings." +msgstr "" + +msgid "" +"The system is rebooting to an alternative partition now.
DO NOT POWER " +"OFF THE DEVICE!
Wait a few minutes before you try to reconnect. It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" + +msgid "" +"The system is shutting down now.
DO NOT POWER OFF THE DEVICE!
It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" +"Systemet stänger ner nu.
STÄNG INTE AV ENHETEN!
Beroende +"på dina inställningar så kan det vara nödvändigt att förnya din dators adress " +"för att nå enheten igen." + +msgid "" +"WARNING: An alternative partition might have its own settings and completely " +"different firmware.

As your network configuration and WiFi SSID/" +"password on alternative partition might be different, you might have to " +"adjust your computer settings to be able to access your device once it " +"reboots.

Please also be aware that alternative partition " +"firmware might not provide an easy way to switch active partition and boot " +"back to the currently active partition.

Click \"Proceed\" below " +"to reboot device to an alternative partition." +msgstr "" + +msgid "" +"WARNING: Power off might result in a reboot on a device which doesn't " +"support power off.

Click \"Proceed\" below to power off your " +"device." +msgstr "" +"VARNING: Att stänga av kan resultera i en omstart i en enhet som inte " +"har stöd för avstängning.

Klicka på \"Fortsätt\" nedanför för att stänga av din " +"enhet." + +msgid "Warning: There are unsaved changes that will get lost on reboot!" +msgstr "Varning: Det finns osparade ändringar som kommer att förloras vid omstart!" + +msgid "Warning: This system does not have two partitions!" +msgstr "Varning: Det här systemet har inte två partitioner!" + +msgid "Warning: This system does not support powering off!" +msgstr "Varning: Det här systemet har inte stöd för avstängning!" diff --git a/applications/luci-app-ahcp/po/sv/ahcp.po b/applications/luci-app-ahcp/po/sv/ahcp.po index a7c7a38f7..db1cc35ec 100644 --- a/applications/luci-app-ahcp/po/sv/ahcp.po +++ b/applications/luci-app-ahcp/po/sv/ahcp.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "PO-Revision-Date: 2014-04-27 22:52+0200\n" -"Last-Translator: Umeaboy \n" +"Last-Translator: Umeaboy \n" "Language-Team: none\n" "Language: sv\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgid "" "networks where it is difficult or impossible to configure a server within " "every link-layer broadcast domain, for example mobile ad-hoc networks." msgstr "" +"AHCP är ett autokonfigurationsprotokoll för IPv6 och dual-stack IPv6/IPv4- " +"nätverk designade för att användas vid upptäckt av router eller DHCP på " +"nätverk där det är svårt eller omöjligt att ställa in en server inom " +"varje sändningslänkslags-domän, till exempel mobila ad-hocnätverk." msgid "Active AHCP Leases" msgstr "Aktiva AHCP-hyror" diff --git a/applications/luci-app-aria2/po/sv/aria2.po b/applications/luci-app-aria2/po/sv/aria2.po index 3a129364c..33613faca 100644 --- a/applications/luci-app-aria2/po/sv/aria2.po +++ b/applications/luci-app-aria2/po/sv/aria2.po @@ -25,10 +25,10 @@ msgstr "Status för Aria2" msgid "" "Aria2 is a multi-protocol & multi-source download utility, here you can " "configure the settings." -msgstr "Aria2 är ett verktyg för multiprotokoll & 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." diff --git a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm index 1edafa7c7..1e423b49f 100644 --- a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm +++ b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm @@ -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%>

<%:Attended Sysupgrade%>

@@ -6,6 +81,12 @@
+
+ +
+ +
+