diff options
Diffstat (limited to 'applications/luci-app-dnscrypt-proxy')
14 files changed, 1287 insertions, 0 deletions
diff --git a/applications/luci-app-dnscrypt-proxy/Makefile b/applications/luci-app-dnscrypt-proxy/Makefile new file mode 100644 index 0000000000..d34fec87d7 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/Makefile @@ -0,0 +1,13 @@ +# Copyright 2017 Dirk Brenken (dev@brenken.org) +# This is free software, licensed under the Apache License, Version 2.0 +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI support for DNSCrypt-Proxy +LUCI_DEPENDS:=+uclient-fetch +dnscrypt-proxy +luci-lib-httpprotoutils +LUCI_PKGARCH:=all + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua new file mode 100644 index 0000000000..ca078f0cd3 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua @@ -0,0 +1,38 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +module("luci.controller.dnscrypt-proxy", package.seeall) + +local util = require("luci.util") +local i18n = require("luci.i18n") +local templ = require("luci.template") + +function index() + if not nixio.fs.access("/etc/config/dnscrypt-proxy") then + nixio.fs.writefile("/etc/config/dnscrypt-proxy", "") + end + entry({"admin", "services", "dnscrypt-proxy"}, firstchild(), _("DNSCrypt-Proxy"), 60).dependent = false + entry({"admin", "services", "dnscrypt-proxy", "tab_from_cbi"}, cbi("dnscrypt-proxy/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced"}, firstchild(), _("Advanced"), 100) + entry({"admin", "services", "dnscrypt-proxy", "advanced", "configuration"}, form("dnscrypt-proxy/configuration_tab"), _("Edit DNSCrypt-Proxy Configuration"), 110).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_dnsmasq"}, form("dnscrypt-proxy/cfg_dnsmasq_tab"), _("Edit Dnsmasq Configuration"), 120).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_resolvcrypt"}, form("dnscrypt-proxy/cfg_resolvcrypt_tab"), _("Edit Resolvcrypt Configuration"), 130).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "view_reslist"}, call("view_reslist"), _("View Resolver List"), 140).leaf = true +end + +function view_reslist() + local reslist = util.trim(util.exec("cat /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv")) + templ.render("dnscrypt-proxy/view_reslist", {title = i18n.translate("DNSCrypt-Proxy Resolver List"), content = reslist}) +end + +function logread() + local logfile + + if nixio.fs.access("/var/log/messages") then + logfile = util.trim(util.exec("cat /var/log/messages | grep 'dnscrypt-proxy'")) + else + logfile = util.trim(util.exec("logread -e 'dnscrypt-proxy'")) + end + templ.render("dnscrypt-proxy/logread", {title = i18n.translate("DNSCrypt-Proxy Logfile"), content = logfile}) +end diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua new file mode 100644 index 0000000000..6e75ac9f97 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua @@ -0,0 +1,39 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local nxfs = require("nixio.fs") +local util = require("luci.util") +local uci_input = "/etc/config/dhcp" + +if not nxfs.access(uci_input) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false + return m +end + +m = SimpleForm("input", nil) +m:append(Template("dnscrypt-proxy/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main Dnsmasq configuration file (/etc/config/dhcp).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nxfs.readfile(uci_input) or "" +end + +function f.write(self, section, data) + return nxfs.writefile(uci_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua new file mode 100644 index 0000000000..f172b15f81 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua @@ -0,0 +1,39 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local nxfs = require("nixio.fs") +local util = require("luci.util") +local res_input = "/etc/resolv-crypt.conf" + +if not nxfs.access(res_input) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false + return m +end + +m = SimpleForm("input", nil) +m:append(Template("dnscrypt-proxy/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the resolv-crypt configuration file (/etc/resolv-crypt.conf).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nxfs.readfile(res_input) or "" +end + +function f.write(self, section, data) + return nxfs.writefile(res_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua new file mode 100644 index 0000000000..f1842731d5 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua @@ -0,0 +1,39 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local nxfs = require("nixio.fs") +local util = require("luci.util") +local uci_input = "/etc/config/dnscrypt-proxy" + +if not nxfs.access(uci_input) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false + return m +end + +m = SimpleForm("input", nil) +m:append(Template("dnscrypt-proxy/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main DNSCrypt-Proxy configuration file (/etc/config/dnscrypt-proxy).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nxfs.readfile(uci_input) or "" +end + +function f.write(self, section, data) + return nxfs.writefile(uci_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua new file mode 100644 index 0000000000..8f0e3224b4 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua @@ -0,0 +1,263 @@ +-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local uci = require("luci.model.uci").cursor() +local util = require("luci.util") +local res_input = "/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv" +local res_dir = fs.dirname(res_input) +local dump = util.ubus("network.interface", "dump", {}) +local plug_cnt = tonumber(luci.sys.exec("env -i /usr/sbin/dnscrypt-proxy --version | grep 'Support for plugins: present' | wc -l")) +local res_list = {} +local url = "https://raw.githubusercontent.com/dyne/dnscrypt-proxy/master/dnscrypt-resolvers.csv" + +local _, date = pcall(require, "luci.http.date") +if not date then + _, date = pcall(require, "luci.http.protocol.date") +end + +if not fs.access(res_input) then + if not fs.access("/lib/libustream-ssl.so") then + m = SimpleForm("error", nil, translate("No default resolver list and no SSL support available.<br />") + .. translate("Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv' to use this package.")) + m.submit = false + m.reset = false + return m + else + luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") + end +end + +if not uci:get_first("dnscrypt-proxy", "global") then + uci:add("dnscrypt-proxy", "global") + uci:save("dnscrypt-proxy") + uci:commit("dnscrypt-proxy") +end + +if fs.access(res_input) then + for line in io.lines(res_input) or {} do + local name, + location, + dnssec, + nolog = line:match("^([^,]+),.-,\".-\",\"*(.-)\"*,.-,[0-9],\"*([yesno]+)\"*,\"*([yesno]+)\"*,.*") + if name ~= "" and name ~= "Name" then + if location == "" then + location = "-" + end + if dnssec == "" then + dnssec = "-" + end + if nolog == "" then + nolog = "-" + end + res_list[#res_list + 1] = { name = name, location = location, dnssec = dnssec, nolog = nolog } + end + end +end + +m = Map("dnscrypt-proxy", translate("DNSCrypt-Proxy"), + translate("Configuration of the DNSCrypt-Proxy package. ") + .. translatef("For further information " + .. "<a href=\"%s\" target=\"_blank\">" + .. "see the wiki online</a>", "https://wiki.openwrt.org/inbox/dnscrypt")) +m:chain("dhcp") + +function m.on_after_commit(self) + function d1.validate(self, value, s1) + if value == "1" then + uci:commit("dnscrypt-proxy") + uci:set("dhcp", s1, "noresolv", 1) + if not fs.access("/etc/resolv-crypt.conf") or fs.stat("/etc/resolv-crypt.conf").size == 0 then + uci:set("dhcp", s1, "resolvfile", "/tmp/resolv.conf.auto") + else + uci:set("dhcp", s1, "resolvfile", "/etc/resolv-crypt.conf") + end + local server_list = {} + local cnt = 1 + uci:foreach("dnscrypt-proxy", "dnscrypt-proxy", function(s) + server_list[cnt] = s['address'] .. "#" .. s['port'] + cnt = cnt + 1 + end) + server_list[cnt] = "/pool.ntp.org/8.8.8.8" + uci:set_list("dhcp", s1, "server", server_list) + if cnt > 2 then + uci:set("dhcp", s1, "allservers", 1) + else + uci:set("dhcp", s1, "allservers", 0) + end + uci:save("dhcp") + uci:commit("dhcp") + end + return value + end + luci.sys.call("env -i /etc/init.d/dnscrypt-proxy restart >/dev/null 2>&1") + luci.sys.call("env -i /etc/init.d/dnsmasq restart >/dev/null 2>&1") +end + +s = m:section(TypedSection, "global", translate("General Options")) +s.anonymous = true + +-- Main dnscrypt-proxy resource list + +o1 = s:option(DummyValue, "", translate("Default Resolver List")) +o1.template = "dnscrypt-proxy/res_options" +o1.value = res_input + +o2 = s:option(DummyValue, "", translate("File Date")) +o2.template = "dnscrypt-proxy/res_options" +if fs.access(res_input) then + o2.value = date.to_http(fs.stat(res_input).mtime) +else + o2.value = "-" +end + +o3 = s:option(DummyValue, "", translate("File Checksum")) +o3.template = "dnscrypt-proxy/res_options" +if fs.access(res_input) then + o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'") +else + o3.value = "-" +end + +if fs.access("/lib/libustream-ssl.so") then + btn1 = s:option(Button, "", translate("Refresh Resolver List"), + translate("Download the current resolver list from 'github.com/dyne/dnscrypt-proxy'.")) + btn1.inputtitle = translate("Refresh List") + btn1.inputstyle = "apply" + btn1.disabled = false + function btn1.write() + if not fs.access(res_dir) then + fs.mkdir(res_dir) + end + luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) + end +else + btn1 = s:option(Button, "", translate("Refresh Resolver List"), + translate("No SSL support available.<br />") + .. translate("Please install a 'libustream-ssl' library to download the current resolver list from 'github.com/dyne/dnscrypt-proxy'.")) + btn1.inputtitle = translate("-------") + btn1.inputstyle = "button" + btn1.disabled = true +end + +if not fs.access("/etc/resolv-crypt.conf") or fs.stat("/etc/resolv-crypt.conf").size == 0 then + btn2 = s:option(Button, "", translate("Create Custom Config File"), + translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances.<br />") + .. translatef("For further information " + .. "<a href=\"%s\" target=\"_blank\">" + .. "see the wiki online</a>", "https://wiki.openwrt.org/inbox/dnscrypt")) + btn2.inputtitle = translate("Create Config File") + btn2.inputstyle = "apply" + btn2.disabled = false + function btn2.write() + luci.sys.call("env -i echo 'options timeout:1' > '/etc/resolv-crypt.conf'") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) + end +else + btn2 = s:option(Button, "", translate("Create Custom Config File"), + translate("The config file '/etc/resolv-crypt.conf' already exist.<br />") + .. translate("Please edit the file manually in the 'Advanced' section.")) + btn2.inputtitle = translate("-------") + btn2.inputstyle = "button" + btn2.disabled = true +end + +-- Trigger settings + +t = s:option(ListValue, "procd_trigger", translate("Startup Trigger"), + translate("By default the DNSCrypt-Proxy startup will be triggered by ifup events of 'All' available network interfaces.<br />") + .. translate("To restrict the trigger, select only the relevant network interface. Usually the 'wan' interface should work for most users.")) +t:value("", "All") +if dump then + local i, v + for i, v in ipairs(dump.interface) do + if v.interface ~= "loopback" then + t:value(v.interface) + end + end +end +t.default = procd_trigger or "All" +t.rmempty = true + +-- Mandatory options per instance + +s = m:section(TypedSection, "dnscrypt-proxy", translate("Instance Options")) +s.anonymous = true +s.addremove = true + +i1 = s:option(Value, "address", translate("IP Address"), + translate("The local IPv4 or IPv6 address. The latter one should be specified within brackets, e.g. '[::1]'.")) +i1.default = address or "127.0.0.1" +i1.rmempty = false + +i2 = s:option(Value, "port", translate("Port"), + translate("The listening port for DNS queries.")) +i2.datatype = "port" +i2.default = port +i2.rmempty = false + +i3 = s:option(ListValue, "resolver", translate("Resolver (LOC/SEC/NOLOG)"), + translate("Name of the remote DNS service for resolving queries incl. Location, DNSSEC- and NOLOG-Flag.")) +i3.datatype = "hostname" +i3.widget = "select" +local i, v +for i, v in ipairs(res_list) do + if v.name then + i3:value(v.name, v.name .. " (" .. v.location .. "/" .. v.dnssec .. "/" .. v.nolog .. ")") + end +end +i3.default = resolver +i3.rmempty = false + +-- Extra options per instance + +e1 = s:option(Value, "resolvers_list", translate("Alternate Resolver List"), + translate("Specify a non-default Resolver List.")) +e1.datatype = "file" +e1.optional = true + +e2 = s:option(Value, "ephemeral_keys", translate("Ephemeral Keys"), + translate("Improve privacy by using an ephemeral public key for each query. ") + .. translate("This option requires extra CPU cycles and is useless with most DNSCrypt server.")) +e2.datatype = "bool" +e2.value = 1 +e2.optional = true + +if plug_cnt > 0 then + e3 = s:option(DynamicList, "blacklist", translate("Blacklist"), + translate("Local blacklists allow you to block abuse sites by domains or ip addresses. ") + .. translate("The value for this property is the blocklist type and path to the file, e.g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'.")) + e3.optional = true + + e4 = s:option(Value, "block_ipv6", translate("Block IPv6"), + translate("Disable IPv6 to speed up DNSCrypt-Proxy.")) + e4.datatype = "bool" + e4.value = 1 + e4.optional = true + + e5 = s:option(Value, "local_cache", translate("Local Cache"), + translate("Enable Caching to speed up DNSCcrypt-Proxy.")) + e5.datatype = "bool" + e5.value = 1 + e5.optional = true + + e6 = s:option(Value, "query_log_file", translate("DNS Query Logfile"), + translate("Log the received DNS queries to a file, so you can watch in real-time what is happening on the network.")) + e6.optional = true +end + +-- Dnsmasq options + +m1 = Map("dhcp") + +s1 = m1:section(TypedSection, "dnsmasq", translate("Dnsmasq Options")) +s1.anonymous = true + +d1 = s1:option(Flag, "", translate("Transfer Options To Dnsmasq"), + translate("Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.<br />") + .. translate("Please note: This may change the values for 'noresolv', 'resolvfile', 'allservers' and the list 'server' settings.")) +d1.default = d1.enabled +d1.rmempty = false + +return m, m1 diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm new file mode 100644 index 0000000000..2233a15e31 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm @@ -0,0 +1,13 @@ +<style type="text/css"> + textarea + { + border: 1px solid #cccccc; + padding: 5px; + font-size: 12px; + font-family: monospace; + resize: none; + white-space: pre; + overflow-wrap: normal; + overflow-x: scroll; + } +</style> diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm new file mode 100644 index 0000000000..5c5ac6f81f --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm @@ -0,0 +1,15 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+header%> + +<div class="cbi-map"> + <fieldset class="cbi-section"> + <div class="cbi-section-descr"><%:This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related messages only.%></div> + <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> + </fieldset> +</div> + +<%+footer%> diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm new file mode 100644 index 0000000000..04dc37bc9d --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm @@ -0,0 +1,10 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+cbi/valueheader%> + +<input name="reslist" id="reslist" type="text" class="cbi-input-text" style="background:transparent;border:none;box-shadow:none;color:#0069d6;width:500px" value="<%=self:cfgvalue(section)%>" disabled="disabled" /> + +<%+cbi/valuefooter%> diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm new file mode 100644 index 0000000000..76a2300932 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm @@ -0,0 +1,15 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+header%> + +<div class="cbi-map"> + <fieldset class="cbi-section"> + <div class="cbi-section-descr"><%:This form shows the content of the current DNSCrypt Resolver List.%></div> + <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> + </fieldset> +</div> + +<%+footer%> diff --git a/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po b/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po new file mode 100644 index 0000000000..e35efa871b --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po @@ -0,0 +1,281 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.7\n" +"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ja\n" + +msgid "-------" +msgstr "(利用不可)" + +msgid "Advanced" +msgstr "詳細" + +msgid "Alternate Resolver List" +msgstr "代替 リゾルバ リスト" + +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.<br />" +msgstr "Dnsmasq の構成に、DNSCrypt-Proxy を指定する設定を適用します。<br />" + +msgid "Blacklist" +msgstr "ブラックリスト" + +msgid "Block IPv6" +msgstr "IPv6 のブロック" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"'All' available network interfaces.<br />" +msgstr "" +"デフォルトでは、 DNSCrypt-Proxy は利用可能な全ネットワーク インターフェース" +"の ifup イベントによりトリガされ起動します。<br />" + +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.<br />" +msgstr "" +"複数の DNSCrypt インスタンスで DNS アップストリーム タイムアウトの設定値を共" +"用するため、 'options timeout:1' を含めた '/etc/resolv-crypt.conf' を作成しま" +"す。<br />" + +msgid "Create Config File" +msgstr "設定ファイルの作成" + +msgid "Create Custom Config File" +msgstr "カスタム設定ファイルの作成" + +msgid "DNS Query Logfile" +msgstr "DNS クエリ ログファイル" + +msgid "DNSCrypt-Proxy" +msgstr "DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "DNSCrypt-Proxy ログファイル" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "DNSCrypt-Proxy リゾルバ リスト" + +msgid "Default Resolver List" +msgstr "デフォルト リゾルバ リスト" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "DNSCrypt-Proxy の高速化のため、IPv6 を無効化します。" + +msgid "Dnsmasq Options" +msgstr "Dnsmasq オプション" + +msgid "" +"Download the current resolver list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" +"現在のリゾルバ リストを 'github.com/dyne/dnscrypt-proxy' からダウンロードしま" +"す。" + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "DNSCrypt-Proxy 設定の編集" + +msgid "Edit Dnsmasq Configuration" +msgstr "Dnsmasq 設定の編集" + +msgid "Edit Resolvcrypt Configuration" +msgstr "Resolvcrypt 設定の編集" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "DNSCrypt-Proxy の高速化のため、キャッシュ機能を有効化します。" + +msgid "Ephemeral Keys" +msgstr "一時的なキー" + +msgid "File Checksum" +msgstr "ファイル チェックサム" + +msgid "File Date" +msgstr "ファイル日付" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see the wiki " +"online</a>" +msgstr "" +"詳細な情報は <a href=\"%s\" target=\"_blank\">オンライン Wiki</a> を確認して" +"ください。" + +msgid "General Options" +msgstr "全般オプション" + +msgid "IP Address" +msgstr "IP アドレス" + +msgid "Improve privacy by using an ephemeral public key for each query." +msgstr "" +"クエリ毎に一時的な公開鍵を使用することにより、プライバシーを向上します。" + +msgid "Input file not found, please check your configuration." +msgstr "入力ファイルが見つかりません。設定を確認してください。" + +msgid "Instance Options" +msgstr "インスタンス オプション" + +msgid "Local Cache" +msgstr "ローカル キャッシュ" + +msgid "" +"Local blacklists allow you to block abuse sites by domains or ip addresses." +msgstr "" +"ローカル ブラックリストは、不正なサイトをドメイン名または IP アドレスによって" +"ブロックすることが可能です。" + +msgid "" +"Log the received DNS queries to a file, so you can watch in real-time what " +"is happening on the network." +msgstr "" +"受信した DNS クエリをファイルに記録します。これにより、ネットワークで何が起き" +"ているかをリアルタイムに把握することが可能です。" + +msgid "" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." +msgstr "" +"クエリの名前解決を行う、ロケーション, DNSSECの有無, NOLOG フラグを含めたリ" +"モート DNS サービスの名前です。" + +msgid "No SSL support available.<br />" +msgstr "利用可能な SSL サポートがありません。<br />" + +msgid "No default resolver list and no SSL support available.<br />" +msgstr "" +"デフォルトのリゾルバ リストと、利用可能な SSL サポートがありません。<br />" + +msgid "Overview" +msgstr "概要" + +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "'詳細' タブで手動でファイルを編集してください。" + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" +"現在のリゾルバ リストを 'github.com/dyne/dnscrypt-proxy' からダウンロードする" +"ために、 'libustream-ssl' ライブラリをインストールしてください。" + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" +"このパッケージを利用するには、リゾルバ リストを '/usr/share/dnscrypt-proxy/" +"dnscrypt-resolvers.csv' にインストールしてください。" + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" +"注: これは、 'noresolv' および 'resolvfile', 'allservers', 'list server' の設" +"定値を変更する場合があります。" + +msgid "Port" +msgstr "ポート" + +msgid "Refresh List" +msgstr "リストのリフレッシュ" + +msgid "Refresh Resolver List" +msgstr "リゾルバ リストのリフレッシュ" + +msgid "Resolver (LOC/SEC/NOLOG)" +msgstr "リゾルバ(LOC/SEC/NOLOG)" + +msgid "Save" +msgstr "保存" + +msgid "Specify a non-default Resolver List." +msgstr "デフォルトとは異なるリゾルバ リストを設定します。" + +msgid "Startup Trigger" +msgstr "スタートアップ トリガ" + +msgid "The config file '/etc/resolv-crypt.conf' already exist.<br />" +msgstr "設定ファイル '/etc/resolv-crypt.conf' は既に存在しています。<br />" + +msgid "The listening port for DNS queries." +msgstr "DNS クエリを待ち受けるポートです。" + +msgid "" +"The local IPv4 or IPv6 address. The latter one should be specified within " +"brackets, e.g. '[::1]'." +msgstr "" +"ローカルの IPv4 または IPv6 アドレスです。 IPv6 アドレスの場合、ブラケット " +"\"[ ]\" を含めて記述される必要があります(例: '[::1]')。" + +msgid "" +"The value for this property is the blocklist type and path to the file, e." +"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'." +msgstr "" +"このプロパティの値は、ブロックリストのタイプ及びファイルへのパスの組み合わせ" +"です。(例: 'domains:/path/to/domainlist.txt' または 'ips:/path/to/iplist." +"txt')" + +msgid "" +"This form allows you to modify the content of the main DNSCrypt-Proxy " +"configuration file (/etc/config/dnscrypt-proxy)." +msgstr "" +"このフォームでは、メインの DNSCrypt-Proxy 設定ファイル (/etc/config/dnscrypt-" +"proxy) の内容を変更することができます。" + +msgid "" +"This form allows you to modify the content of the main Dnsmasq configuration " +"file (/etc/config/dhcp)." +msgstr "" +"このフォームでは、メインの Dnsmasq 設定ファイル (/etc/config/dhcp) の内容を変" +"更することができます。" + +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" +"このフォームでは、 resolv-crypt 設定ファイル(/etc/resolv-crypt.conf)の内容" +"を変更することができます。" + +msgid "This form shows the content of the current DNSCrypt Resolver List." +msgstr "" +"このフォームには、現在の DNSCrypt リゾルバ リストの内容が表示されます。" + +msgid "" +"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related " +"messages only." +msgstr "" +"このフォームには、システムログ内の DNSCrypt-Proxy に関連するメッセージのみが" +"表示されます。" + +msgid "" +"This option requires extra CPU cycles and is useless with most DNSCrypt " +"server." +msgstr "" +"このオプションは、通常よりも CPU リソースを多く使用するほか、ほとんどの " +"DNSCrypt サーバーでは不要なものです。" + +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." +msgstr "" +"トリガを限定するには、適切なインターフェースを選択してください。通常、 'wan' " +"インターフェースがほとんどのユーザーに適しています。" + +msgid "Transfer Options To Dnsmasq" +msgstr "Dnsmasq の転送オプション" + +msgid "View Logfile" +msgstr "ログファイルの確認" + +msgid "View Resolver List" +msgstr "リゾルバ リストの確認" diff --git a/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po b/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po new file mode 100644 index 0000000000..1b5e364dde --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po @@ -0,0 +1,282 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: dnscrypt-proxy\n" +"POT-Creation-Date: 2017-10-17 14:30+0300\n" +"PO-Revision-Date: 2018-01-24 14:58+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" +"Project-Info: Это технический перевод, не дословный. Главное-удобный русский " +"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n" + +msgid "-------" +msgstr "-------" + +msgid "Advanced" +msgstr "Дополнительно" + +msgid "Alternate Resolver List" +msgstr "Альтернативный список разрешенных серверов" + +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.<br />" +msgstr "" +"Применить специальные настройки DNSCrypt-Proxy для Dnsmasq config файла.<br /" +">" + +msgid "Blacklist" +msgstr "Чёрный список" + +msgid "Block IPv6" +msgstr "Блокировать IPv6" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"'All' available network interfaces.<br />" +msgstr "" +"По дефолту DNSCrypt-Proxy стартует на всех доступных интерфейсах 'All'.<br />" + +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.<br />" +msgstr "" +"Создать config файл /etc/resolv-crypt.none со строкой 'options timeout:1' " +"для уменьшения времени ожидания ответов DNS серверов внешней сети с " +"многократной обработкой запросов DNSCrypt-ом.<br />" + +msgid "Create Config File" +msgstr "Создать сonfig файл" + +msgid "Create Custom Config File" +msgstr "Создать config" + +msgid "DNS Query Logfile" +msgstr "Файл системного журнала запроса DNS" + +msgid "DNSCrypt-Proxy" +msgstr "DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "Файл системного журнала DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "DNSCrypt-Proxy список разрешенных серверов" + +msgid "Default Resolver List" +msgstr "Дефолтный список разрешенных серверов" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "Отключить IPv6 для DNSCrypt-Proxy." + +msgid "Dnsmasq Options" +msgstr "Настройка Dnsmasq" + +msgid "" +"Download the current resolver list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" +"Загрузить текущий список клиентов из 'github.com/dyne/dnscrypt-proxy'." + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "Настройка config файла DNSCrypt-Proxy" + +msgid "Edit Dnsmasq Configuration" +msgstr "Настройка config файла Dnsmasq" + +msgid "Edit Resolvcrypt Configuration" +msgstr "Настройка config файла Resolvcrypt" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "Включить кэширование для ускорения DNSCcrypt-Proxy." + +msgid "Ephemeral Keys" +msgstr "Эфемерные ключи" + +msgid "File Checksum" +msgstr "Контрольная сумма файла" + +msgid "File Date" +msgstr "Дата и время<br />создания файла" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see the wiki " +"online</a>" +msgstr "" +"Для более подробной информации <a href=\"%s\" target=\"_blank\">обратитесь к " +"wiki онлайн</a>." + +msgid "General Options" +msgstr "Основные настройки" + +msgid "IP Address" +msgstr "IP-Адрес" + +msgid "Improve privacy by using an ephemeral public key for each query." +msgstr "" +"Улучшить безопасность, используя эфемерный Публичный ключ для каждого " +"запроса." + +msgid "Input file not found, please check your configuration." +msgstr "Config файл не найден, настройте config файл." + +msgid "Instance Options" +msgstr "Дополнительные настройки" + +msgid "Local Cache" +msgstr "Локальный кэш" + +msgid "" +"Local blacklists allow you to block abuse sites by domains or ip addresses." +msgstr "" +"Локальные Черные списки, позволяют блокировать сайты по их доменам или IP-" +"адресам." + +msgid "" +"Log the received DNS queries to a file, so you can watch in real-time what " +"is happening on the network." +msgstr "" +"Записывайте в журнал полученные запросы DNS. Таким образом, Вы сможете " +"наблюдать в режиме реального времени, что происходит в сети." + +msgid "" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." +msgstr "" +"Имя удаленного сервера DNS для разрешения запросов к нему.<br /" +">Расположение, DNSSEC- и NOLOG-Flag (LOC/SEC/NOLOG)." + +msgid "No SSL support available.<br />" +msgstr "Отсутствует поддержка SSL.<br />" + +msgid "No default resolver list and no SSL support available.<br />" +msgstr "Отсутствует список разрешенных серверов и не поддерживается SSL.<br />" + +msgid "Overview" +msgstr "Главное меню" + +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "Отредактируйте файл вручную в разделе 'Дополнительно'." + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" +"Установите библиотеку 'libustream-ssl', чтобы скачать текущий список " +"клиентов с адреса 'github.com/dyne/dnscrypt-proxy'." + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" +"Установите список разрешенных серверов в /usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv для использования данного сервиса." + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" +"Примечание: Этот режим, может изменить значения для 'noresolv', " +"'resolvfile', 'allservers' и параметры настройки списка 'серверов'." + +msgid "Port" +msgstr "Порт" + +msgid "Refresh List" +msgstr "Обновить список" + +msgid "Refresh Resolver List" +msgstr "Обновить список разрешенных серверов" + +msgid "Resolver (LOC/SEC/NOLOG)" +msgstr "Разрешено<br />(LOC/SEC/NOLOG)" + +msgid "Save" +msgstr "Сохранить" + +msgid "Specify a non-default Resolver List." +msgstr "Специальный не дефолтный список разрешенных серверов." + +msgid "Startup Trigger" +msgstr "Назначить" + +msgid "The config file '/etc/resolv-crypt.conf' already exist.<br />" +msgstr "Config файл /etc/resolv-crypt.conf уже существует.<br />" + +msgid "The listening port for DNS queries." +msgstr "Прослушивание порта для DNS запросов." + +msgid "" +"The local IPv4 or IPv6 address. The latter one should be specified within " +"brackets, e.g. '[::1]'." +msgstr "" +"Локальные IPv4 или IPv6 адреса. Заключить в скобки, как образец '[::1]'." + +msgid "" +"The value for this property is the blocklist type and path to the file, e." +"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'." +msgstr "" +"Обозначить содержимое Черного списка, используя в его названии содержимое " +"его списка и указав путь к файлу соответствующим образом 'domains:/path/to/" +"dbl.txt' или 'ips:/path/to/ipbl.txt'." + +msgid "" +"This form allows you to modify the content of the main DNSCrypt-Proxy " +"configuration file (/etc/config/dnscrypt-proxy)." +msgstr "" +"Страница позволяет изменять содержимое config файла DNSCrypt-Proxy (/etc/" +"config/dnscrypt-proxy)." + +msgid "" +"This form allows you to modify the content of the main Dnsmasq configuration " +"file (/etc/config/dhcp)." +msgstr "" +"Страница позволяет изменять содержимое config файла Dnsmasq (/etc/config/" +"dhcp)." + +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" +"Страница позволяет изменять содержимое config файла resolv-crypt (/etc/" +"resolv-crypt.conf)." + +msgid "This form shows the content of the current DNSCrypt Resolver List." +msgstr "" +"Страница демонстрирует содержимое DNSCrypt списка разрешенных серверов." + +msgid "" +"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related " +"messages only." +msgstr "" +"Страница показывает вывод системного журнала, предварительно фильтруемый " +"только для DNSCrypt-Proxy." + +msgid "" +"This option requires extra CPU cycles and is useless with most DNSCrypt " +"server." +msgstr "" +"Этот режим нагружает CPU и большинством DNSCrypt серверов не поддерживается." + +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." +msgstr "" +"Выберите только соответствующий сетевой интерфейс.<br />Обычно интерфейса " +"'wan', достаточно для большинства пользователей." + +msgid "Transfer Options To Dnsmasq" +msgstr "Режим передачи Dnsmasq-у" + +msgid "View Logfile" +msgstr "Показать системный журнал" + +msgid "View Resolver List" +msgstr "Список разрешенных серверов" diff --git a/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot b/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot new file mode 100644 index 0000000000..8302f48ec2 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot @@ -0,0 +1,229 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "-------" +msgstr "" + +msgid "Advanced" +msgstr "" + +msgid "Alternate Resolver List" +msgstr "" + +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.<br />" +msgstr "" + +msgid "Blacklist" +msgstr "" + +msgid "Block IPv6" +msgstr "" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"'All' available network interfaces.<br />" +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.<br />" +msgstr "" + +msgid "Create Config File" +msgstr "" + +msgid "Create Custom Config File" +msgstr "" + +msgid "DNS Query Logfile" +msgstr "" + +msgid "DNSCrypt-Proxy" +msgstr "" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "" + +msgid "Default Resolver List" +msgstr "" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "" + +msgid "Dnsmasq Options" +msgstr "" + +msgid "" +"Download the current resolver list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "" + +msgid "Edit Dnsmasq Configuration" +msgstr "" + +msgid "Edit Resolvcrypt Configuration" +msgstr "" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "" + +msgid "Ephemeral Keys" +msgstr "" + +msgid "File Checksum" +msgstr "" + +msgid "File Date" +msgstr "" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see the wiki " +"online</a>" +msgstr "" + +msgid "General Options" +msgstr "" + +msgid "IP Address" +msgstr "" + +msgid "Improve privacy by using an ephemeral public key for each query." +msgstr "" + +msgid "Input file not found, please check your configuration." +msgstr "" + +msgid "Instance Options" +msgstr "" + +msgid "Local Cache" +msgstr "" + +msgid "" +"Local blacklists allow you to block abuse sites by domains or ip addresses." +msgstr "" + +msgid "" +"Log the received DNS queries to a file, so you can watch in real-time what " +"is happening on the network." +msgstr "" + +msgid "" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." +msgstr "" + +msgid "No SSL support available.<br />" +msgstr "" + +msgid "No default resolver list and no SSL support available.<br />" +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "" + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'github.com/dyne/dnscrypt-proxy'." +msgstr "" + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" + +msgid "Port" +msgstr "" + +msgid "Refresh List" +msgstr "" + +msgid "Refresh Resolver List" +msgstr "" + +msgid "Resolver (LOC/SEC/NOLOG)" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Specify a non-default Resolver List." +msgstr "" + +msgid "Startup Trigger" +msgstr "" + +msgid "The config file '/etc/resolv-crypt.conf' already exist.<br />" +msgstr "" + +msgid "The listening port for DNS queries." +msgstr "" + +msgid "" +"The local IPv4 or IPv6 address. The latter one should be specified within " +"brackets, e.g. '[::1]'." +msgstr "" + +msgid "" +"The value for this property is the blocklist type and path to the file, e." +"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main DNSCrypt-Proxy " +"configuration file (/etc/config/dnscrypt-proxy)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main Dnsmasq configuration " +"file (/etc/config/dhcp)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" + +msgid "This form shows the content of the current DNSCrypt Resolver List." +msgstr "" + +msgid "" +"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related " +"messages only." +msgstr "" + +msgid "" +"This option requires extra CPU cycles and is useless with most DNSCrypt " +"server." +msgstr "" + +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." +msgstr "" + +msgid "Transfer Options To Dnsmasq" +msgstr "" + +msgid "View Logfile" +msgstr "" + +msgid "View Resolver List" +msgstr "" diff --git a/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy b/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy new file mode 100755 index 0000000000..ec4da17c9a --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@dnscrypt-proxy[-1] + add ucitrack dnscrypt-proxy + set ucitrack.@dnscrypt-proxy[-1].init=dnscrypt-proxy + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 |