diff options
Diffstat (limited to 'applications')
52 files changed, 1134 insertions, 149 deletions
diff --git a/applications/luci-app-dnscrypt-proxy/Makefile b/applications/luci-app-dnscrypt-proxy/Makefile new file mode 100644 index 000000000..4b632b8d0 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/Makefile @@ -0,0 +1,13 @@ +# Copyright 2017 Dirk Brenken (dev@brenken.org) +# This is free software, licensed under the Apache License, Version 2.0 +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI support for DNSCrypt-Proxy +LUCI_DEPENDS:=+uclient-fetch +dnscrypt-proxy +LUCI_PKGARCH:=all + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua new file mode 100644 index 000000000..6d6790a83 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua @@ -0,0 +1,32 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +module("luci.controller.dnscrypt-proxy", package.seeall) + +local util = require("luci.util") +local i18n = require("luci.i18n") +local templ = require("luci.template") + +function index() + if not nixio.fs.access("/etc/config/dnscrypt-proxy") then + nixio.fs.writefile("/etc/config/dnscrypt-proxy", "") + end + entry({"admin", "services", "dnscrypt-proxy"}, firstchild(), _("DNSCrypt-Proxy"), 60).dependent = false + entry({"admin", "services", "dnscrypt-proxy", "tab_from_cbi"}, cbi("dnscrypt-proxy/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced"}, firstchild(), _("Advanced"), 100) + entry({"admin", "services", "dnscrypt-proxy", "advanced", "configuration"}, cbi("dnscrypt-proxy/configuration_tab"), _("Edit DNSCrypt-Proxy Configuration"), 110).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_dnsmasq"}, cbi("dnscrypt-proxy/cfg_dnsmasq_tab"), _("Edit Dnsmasq Configuration"), 120).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "view_reslist"}, call("view_reslist"), _("View Resolver List"), 130).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 = util.trim(util.exec("logread -e 'dnscrypt-proxy'")) + 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 000000000..d22abbfd3 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua @@ -0,0 +1,37 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local 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.")) + 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/configuration_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua new file mode 100644 index 000000000..f1842731d --- /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 000000000..7ab84ab7f --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua @@ -0,0 +1,177 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local uci = require("luci.model.uci").cursor() +local util = require("luci.util") +local date = require("luci.http.protocol.date") +local res_input = "/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv" +local dump = util.ubus("network.interface", "dump", {}) +local plug_cnt = tonumber(luci.sys.exec("env -i /usr/sbin/dnscrypt-proxy --version | grep 'Support for plugins: present' | wc -l")) +local res_list = {} +local url = "https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv" + +if not fs.access("/lib/libustream-ssl.so") then + m = SimpleForm("error", nil, translate("SSL support not available, please install an libustream-ssl variant to use this package.")) + m.submit = false + m.reset = false + return m +end + +if not fs.access(res_input) then + luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") +end + +if not uci:get_first("dnscrypt-proxy", "global") then + uci:add("dnscrypt-proxy", "global") + uci:save("dnscrypt-proxy") + uci:commit("dnscrypt-proxy") +end + +for line in io.lines(res_input) do + local name = line:match("^[%w_.-]*") + res_list[#res_list + 1] = { name = name } +end + +m = Map("dnscrypt-proxy", translate("DNSCrypt-Proxy"), + translate("Configuration of the DNSCrypt-Proxy package. ") + .. translate("Keep in mind to configure Dnsmasq as well. ") + .. translatef("For further information " + .. "<a href=\"%s\" target=\"_blank\">" + .. "see the wiki online</a>", "https://wiki.openwrt.org/inbox/dnscrypt")) + +function m.on_after_commit(self) + luci.sys.call("env -i /etc/init.d/dnsmasq restart >/dev/null 2>&1") + luci.sys.call("env -i /etc/init.d/dnscrypt-proxy restart >/dev/null 2>&1") +end + +s = m:section(TypedSection, "global", translate("General options")) +s.anonymous = true + +-- Main dnscrypt-proxy resource list + +o1 = s:option(DummyValue, "", translate("Default Resolver List")) +o1.template = "dnscrypt-proxy/res_options" +o1.value = res_input + +o2 = s:option(DummyValue, "", translate("File Date")) +o2.template = "dnscrypt-proxy/res_options" +o2.value = date.to_http(nixio.fs.stat(res_input).mtime) + +o3 = s:option(DummyValue, "", translate("File Checksum")) +o3.template = "dnscrypt-proxy/res_options" +o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'") + +btn = s:option(Button, "", translate("Refresh Resolver List")) +btn.inputtitle = translate("Refresh List") +btn.inputstyle = "apply" +btn.disabled = false +function btn.write(self, section, value) + 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 + +-- Trigger settings + +t = s:option(DynamicList, "procd_trigger", translate("Startup Trigger"), + translate("By default the DNSCrypt-Proxy startup will be triggered by ifup events of multiple network interfaces. ") + .. translate("To restrict the trigger, add only the relevant network interface(s). ") + .. translate("Usually the 'wan' interface should work for most users.")) +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.rmempty = true + +-- Extra options + +ds = s:option(DummyValue, "_dummy", translate("Extra options"), + translate("Options for further tweaking in case the defaults are not suitable for you.")) +ds.template = "cbi/nullsection" + +btn = s:option(Button, "", translate("Create custom config file"), + translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances. ") + .. translatef("For further information " + .. "<a href=\"%s\" target=\"_blank\">" + .. "see the wiki online</a>", "https://wiki.openwrt.org/inbox/dnscrypt")) +btn.inputtitle = translate("Create Config File") +btn.inputstyle = "apply" +btn.disabled = false +function btn.write(self, section, value) + if not fs.access("/etc/resolv-crypt.conf") then + luci.sys.call("env -i echo 'options timeout:1' > '/etc/resolv-crypt.conf'") + end +end + +-- Mandatory options per instance + +s = m:section(TypedSection, "dnscrypt-proxy", translate("Instance options")) +s.anonymous = true +s.addremove = true + +o1 = 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]'.")) +o1.default = address or "127.0.0.1" +o1.rmempty = false + +o2 = s:option(Value, "port", translate("Port"), + translate("The listening port for DNS queries.")) +o2.datatype = "port" +o2.default = port +o2.rmempty = false + +o3 = s:option(ListValue, "resolver", translate("Resolver"), + translate("Name of the remote DNS service for resolving queries.")) +o3.datatype = "hostname" +o3.widget = "select" +local i, v +for i, v in ipairs(res_list) do + if v.name ~= "Name" then + o3:value(v.name) + end +end +o3.default = resolver +o3.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 + +return m 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 000000000..2233a15e3 --- /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 000000000..5c5ac6f81 --- /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 000000000..04dc37bc9 --- /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 000000000..76a230093 --- /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 000000000..0328df227 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po @@ -0,0 +1,232 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" +"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ja\n" + +msgid "Advanced" +msgstr "詳細" + +msgid "Alternate Resolver List" +msgstr "代替 リゾルバ リスト" + +msgid "Blacklist" +msgstr "ブラックリスト" + +msgid "Block IPv6" +msgstr "IPv6 のブロック" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"multiple network interfaces." +msgstr "" +"デフォルトでは、 DNSCrypt-Proxy は全ネットワーク インターフェースの ifup イベ" +"ントによりトリガされ起動します。" + +msgid "Configuration of the DNSCrypt-Proxy package." +msgstr "DNSCrypt-Proxy パッケージの設定です。" + +msgid "" +"Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS " +"upstream timeouts with multiple DNSCrypt instances." +msgstr "" +"複数の DNSCrypt インスタンスで DNS アップストリーム タイムアウトの設定値を共" +"用するため、 'options timeout:1' を含めた '/etc/resolv-crypt.conf' を作成しま" +"す。" + +msgid "Create Config File" +msgstr "設定ファイルの作成" + +msgid "Create custom config file" +msgstr "カスタム設定ファイルの作成" + +msgid "DNS Query Logfile" +msgstr "DNS クエリ ログファイル" + +msgid "DNSCrypt-Proxy" +msgstr "DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "DNSCrypt-Proxy ログファイル" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "DNSCrypt-Proxy リゾルバ リスト" + +msgid "Default Resolver List" +msgstr "デフォルト リゾルバ リスト" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "DNSCrypt-Proxy の高速化のため、IPv6 を無効化します。" + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "DNSCrypt-Proxy 設定の編集" + +msgid "Edit Dnsmasq Configuration" +msgstr "Dnsmasq 設定の編集" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "DNSCrypt-Proxy の高速化のため、キャッシュ機能を有効化します。" + +msgid "Ephemeral Keys" +msgstr "一時的なキー" + +msgid "Extra options" +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 "Keep in mind to configure Dnsmasq as well." +msgstr "Dnsmasq を適切に設定する必要があることに留意してください。" + +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." +msgstr "クエリの名前解決を行う、リモートの DNS サービス名です。" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。" + +msgid "Overview" +msgstr "概要" + +msgid "Port" +msgstr "ポート" + +msgid "Refresh List" +msgstr "リストのリフレッシュ" + +msgid "Refresh Resolver List" +msgstr "リゾルバ リストのリフレッシュ" + +msgid "Resolver" +msgstr "リゾルバ" + +msgid "" +"SSL support not available, please install an libustream-ssl variant to use " +"this package." +msgstr "" +"SSL サポートが利用できません。このパッケージを使用するには libustream-ssl 等" +"をインストールし、 SSL サポートを有効にしてください。" + +msgid "Save" +msgstr "保存" + +msgid "Specify a non-default Resolver List." +msgstr "デフォルトとは異なるリゾルバ リストを設定します。" + +msgid "Startup Trigger" +msgstr "スタートアップ トリガ" + +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 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, add only the relevant network interface(s)." +msgstr "" +"トリガを限定するには、適切なネットワーク インターフェースのみを追加してくださ" +"い。" + +msgid "Usually the 'wan' interface should work for most users." +msgstr "通常、 'wan' インターフェースがほとんどのユーザーに適しています。" + +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 000000000..ea83e7a18 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot @@ -0,0 +1,191 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Advanced" +msgstr "" + +msgid "Alternate Resolver List" +msgstr "" + +msgid "Blacklist" +msgstr "" + +msgid "Block IPv6" +msgstr "" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"multiple network interfaces." +msgstr "" + +msgid "Configuration of the DNSCrypt-Proxy package." +msgstr "" + +msgid "" +"Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS " +"upstream timeouts with multiple DNSCrypt instances." +msgstr "" + +msgid "Create Config File" +msgstr "" + +msgid "Create custom config file" +msgstr "" + +msgid "DNS Query Logfile" +msgstr "" + +msgid "DNSCrypt-Proxy" +msgstr "" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "" + +msgid "Default Resolver List" +msgstr "" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "" + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "" + +msgid "Edit Dnsmasq Configuration" +msgstr "" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "" + +msgid "Ephemeral Keys" +msgstr "" + +msgid "Extra options" +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 "Keep in mind to configure Dnsmasq as well." +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." +msgstr "" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "Port" +msgstr "" + +msgid "Refresh List" +msgstr "" + +msgid "Refresh Resolver List" +msgstr "" + +msgid "Resolver" +msgstr "" + +msgid "" +"SSL support not available, please install an libustream-ssl variant to use " +"this package." +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Specify a non-default Resolver List." +msgstr "" + +msgid "Startup Trigger" +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 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, add only the relevant network interface(s)." +msgstr "" + +msgid "Usually the 'wan' interface should work for most users." +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 000000000..ec4da17c9 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@dnscrypt-proxy[-1] + add ucitrack dnscrypt-proxy + set ucitrack.@dnscrypt-proxy[-1].init=dnscrypt-proxy + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua index 0e7b8b11d..1b9708021 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua @@ -1,55 +1,40 @@ -- ------ hotplug script configuration ------ -- fs = require "nixio.fs" -sys = require "luci.sys" ut = require "luci.util" -script = "/etc/hotplug.d/iface/16-mwancustom" -scriptBackup = "/etc/hotplug.d/iface/16-mwancustombak" - -if luci.http.formvalue("cbid.luci.1._restorebak") then -- restore button has been clicked - luci.http.redirect(luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript") .. "?restore=yes") -elseif luci.http.formvalue("restore") == "yes" then -- restore script from backup - os.execute("cp -f " .. scriptBackup .. " " .. script) -end - +script = "/etc/mwan3.user" m5 = SimpleForm("luci", nil) m5:append(Template("mwan/advanced_hotplugscript")) -- highlight current tab f = m5:section(SimpleSection, nil, - translate("This section allows you to modify the contents of /etc/hotplug.d/iface/16-mwancustom<br />" .. - "This is useful for running system commands and/or scripts based on interface ifup or ifdown hotplug events<br /><br />" .. + translate("This section allows you to modify the content of \"/etc/mwan3.user\".<br />" .. + "The file is also preserved during sysupgrade.<br />" .. + "<br />" .. "Notes:<br />" .. - "The first line of the script must be "#!/bin/sh" without quotes<br />" .. - "Lines beginning with # are comments and are not executed<br /><br />" .. - "Available variables:<br />" .. - "$ACTION is the hotplug event (ifup, ifdown)<br />" .. - "$INTERFACE is the interface name (wan1, wan2, etc.)<br />" .. - "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)")) - - -restore = f:option(Button, "_restorebak", translate("Restore default hotplug script")) - restore.inputtitle = translate("Restore...") - restore.inputstyle = "apply" + "This file is interpreted as a shell script.<br />" .. + "The first line of the script must be "#!/bin/sh" without quotes.<br />" .. + "Lines beginning with # are comments and are not executed.<br />" .. + "Put your custom mwan3 action here, they will<br />" .. + "be executed with each netifd hotplug interface event<br />" .. + "on interfaces for which mwan3 is enabled.<br />" .. + "<br />" .. + "There are three main environment variables that are passed to this script.<br />" .. + "<br />" .. + "$ACTION Either \"ifup\" or \"ifdown\"<br />" .. + "$INTERFACE Name of the interface which went up or down (e.g. \"wan\" or \"wwan\")<br />" .. + "$DEVICE Physical device name which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br />" .. + "<br />")) t = f:option(TextValue, "lines") t.rmempty = true t.rows = 20 - function t.cfgvalue() - local hps = fs.readfile(script) - if not hps or hps == "" then -- if script does not exist or is blank restore from backup - sys.call("cp -f " .. scriptBackup .. " " .. script) - return fs.readfile(script) - else - return hps - end + return fs.readfile(script) end - function t.write(self, section, data) -- format and write new data to script return fs.writefile(script, ut.trim(data:gsub("\r\n", "\n")) .. "\n") end - return m5 diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua index 54d20bdcb..919ed46cd 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/globalsconfig.lua @@ -29,4 +29,12 @@ for _, net in ipairs(net:get_networks()) do end n.rmempty = false +mask = s:option( + Value, + "mmx_mask", + translate("Firewall mask"), + translate("Enter value in hex, starting with <code>0x</code>")) +mask.datatype = "hex(4)" +mask.default = "0xff00" + return m diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua index aeabc6361..c8c122ad4 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua @@ -147,6 +147,16 @@ track_ip = mwan_interface:option(DummyValue, "track_ip", translate("Tracking IP" end end +track_method = mwan_interface:option(DummyValue, "track_method", translate("Tracking method")) + track_method.rawhtml = true + function track_method.cfgvalue(self, s) + if tracked then + return self.map:get(s, "track_method") or "—" + else + return "—" + end + end + reliability = mwan_interface:option(DummyValue, "reliability", translate("Tracking reliability")) reliability.rawhtml = true function reliability.cfgvalue(self, s) diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua index ab44ba697..0318091d6 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua @@ -117,6 +117,12 @@ track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking ho translate("This hostname or IP address will be pinged to determine if the link is up or down. Leave blank to assume interface is always online")) track_ip.datatype = "host" +track_method = mwan_interface:option(ListValue, "track_method", translate("Tracking method")) + track_method.default = "ping" + track_method:value("ping") + track_method:value("arping") + track_method:value("httping") + reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"), translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up")) reliability.datatype = "range(1, 100)" diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po index 89fa5ea02..72c5dddab 100644 --- a/applications/luci-app-mwan3/po/ja/mwan3.po +++ b/applications/luci-app-mwan3/po/ja/mwan3.po @@ -88,6 +88,9 @@ msgstr "" msgid "Enabled" msgstr "有効" +msgid "Enter value in hex, starting with <code>0x</code>" +msgstr "<code>0x</code> で始まる16進数の値を入力してください。" + msgid "Error collecting troubleshooting information" msgstr "トラブルシューティング情報の収集エラー" @@ -95,11 +98,14 @@ msgid "Errors" msgstr "エラー" msgid "Expect interface state on up event" -msgstr "" +msgstr "Up イベント時に予想されるインターフェースの状態です。" msgid "Failure interval" msgstr "障害検出 インターバル" +msgid "Firewall mask" +msgstr "ファイアウォール マスク" + msgid "Flush conntrack table" msgstr "" @@ -107,10 +113,10 @@ msgid "Flush global firewall conntrack table on interface events" msgstr "" msgid "Globals" -msgstr "" +msgstr "全般" msgid "Globals mwan3 options" -msgstr "" +msgstr "MWAN3 全般オプション" msgid "Hotplug Script" msgstr "ホットプラグ スクリプト" @@ -131,7 +137,7 @@ msgid "IPv6" msgstr "IPv6" msgid "Initial state" -msgstr "" +msgstr "初期状態" msgid "Interface" msgstr "インターフェース" @@ -299,7 +305,7 @@ msgid "Offline" msgstr "オフライン" msgid "Online" -msgstr "" +msgstr "オンライン" msgid "Online (tracking active)" msgstr "オンライン(追跡実行中)" @@ -320,7 +326,7 @@ msgid "Ping interval" msgstr "Ping インターバル" msgid "Ping interval during failure detection" -msgstr "障害検出動作中の Ping 実行間隔です。" +msgstr "障害検出中の Ping 実行間隔です。" msgid "Ping interval during failure recovering" msgstr "障害復旧中の Ping 実行間隔です。" @@ -370,12 +376,6 @@ msgstr "障害復旧 インターバル" msgid "Restart MWAN" msgstr "MWAN の再起動" -msgid "Restore default hotplug script" -msgstr "デフォルトのホットプラグ スクリプトの復元" - -msgid "Restore..." -msgstr "復元..." - msgid "Rule" msgstr "ルール" @@ -443,6 +443,31 @@ msgstr "" "に対して Ping の送信が行われます。常にオンラインとする場合、空欄のままにしま" "す。" +msgid "" +"This section allows you to modify the content of \"/etc/mwan3.user\".<br /" +">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This " +"file is interpreted as a shell script.<br />The first line of the script " +"must be "#!/bin/sh" without quotes.<br />Lines beginning with # are " +"comments and are not executed.<br />Put your custom mwan3 action here, they " +"will<br />be executed with each netifd hotplug interface event<br />on " +"interfaces for which mwan3 is enabled.<br /><br />There are three main " +"environment variables that are passed to this script.<br /><br />$ACTION " +"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which " +"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name " +"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />" +msgstr "" +"このセクションでは、 \"/etc/mwan3.user\" の内容を変更することができます。" +"<br />このファイルは、 sysupgrade 時に保持されます。<br /><br />注意: <br />" +"このファイルは、シェルスクリプトとして解釈されます。<br />スクリプトの1行目" +"は、"#!bin/sh" である必要があります(クォーテーション不要)。<br /># " +"で始まる行はコメントであり、実行されません。<br />mwan3 のカスタム動作をここ" +"に入力してください。これらは、 mwan3 が有効なインターフェースの<br />netifd " +"ホットプラグ インターフェース イベント毎に実行されます。<br /><br />主に3つの" +"環境変数が利用可能です。<br /><br />$ACTION - \"ifup\" および \"ifdown\"<br /" +">$INTERFACE - Up または Down が行われたインターフェース名(例: \"wan\" や " +"\"wwan\")<br />$DEVICE - Up または Down が行われた物理デバイス名(例: " +"\"eth0\" や \"wwan0\")<br /><br />" + msgid "This section allows you to modify the contents of /etc/config/mwan3" msgstr "" "このセクションでは、 /etc/config/mwan3 の内容を変更することができます。" @@ -455,32 +480,15 @@ msgid "This section allows you to modify the contents of /etc/config/wireless" msgstr "" "このセクションでは、 /etc/config/wireless の内容を変更することができます。" -msgid "" -"This section allows you to modify the contents of /etc/hotplug.d/iface/16-" -"mwancustom<br />This is useful for running system commands and/or scripts " -"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The " -"first line of the script must be "#!/bin/sh" without quotes<br /" -">Lines beginning with # are comments and are not executed<br /><br /" -">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />" -"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the " -"device name attached to the interface (eth0.1, eth1, etc.)" -msgstr "" -"このセクションでは、 /etc/hotplug.d/iface/16-mwancustom の内容を変更すること" -"ができます。<br />これは、インターフェースの ifup または ifdown ホットプラグ " -"イベント時にシステムコマンドまたはスクリプト、もしくはその両方を実行すること" -"に役立ちます。<br /><br />注意:<br />スクリプトの1行目は、"#!bin/sh" " -"である必要があります(クオーテーション不要)。<br /># で始まる行はコメントと" -"して認識され、実行されません。<br /><br />利用可能な変数:<br />$ACTION - ホッ" -"トプラグ イベント (ifup, ifdown)<br />$INTERFACE - インターフェース名(wan1, " -"wan2, その他)<br />$DEVICE - インターフェースにアタッチされたデバイスの名前" -"(eth0.1, eth1, その他)" - msgid "Tracking IP" msgstr "追跡 IP" msgid "Tracking hostname or IP address" msgstr "追跡ホスト名または IP アドレス" +msgid "Tracking method" +msgstr "追跡方式" + msgid "Tracking reliability" msgstr "追跡の信頼性" @@ -505,6 +513,8 @@ msgid "" "Use the IP address of this interface as source IP address for traffic " "initiated by the router itself" msgstr "" +"ルーター自身によって発生するトラフィックのアクセス元 IP アドレスとして、この" +"インターフェースの IP アドレスが使用されます。" msgid "View the contents of /etc/protocols for protocol descriptions" msgstr "プロトコルの説明については、 /etc/protocols の内容を確認してください。" @@ -653,10 +663,3 @@ msgstr "停止" msgid "unreachable (reject)" msgstr "unreachable (reject)" - -#~ msgid "" -#~ "This IP address will be pinged to dermine if the link is up or down. " -#~ "Leave blank to assume interface is always online" -#~ msgstr "" -#~ "これらは、リンクの Up または Down を判定するために Ping が送信されるIP ア" -#~ "ドレスです。常にオンラインとする場合、空欄のままにします。" diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot index 869429872..e63d8adc2 100644 --- a/applications/luci-app-mwan3/po/templates/mwan3.pot +++ b/applications/luci-app-mwan3/po/templates/mwan3.pot @@ -73,6 +73,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Enter value in hex, starting with <code>0x</code>" +msgstr "" + msgid "Error collecting troubleshooting information" msgstr "" @@ -85,6 +88,9 @@ msgstr "" msgid "Failure interval" msgstr "" +msgid "Firewall mask" +msgstr "" + msgid "Flush conntrack table" msgstr "" @@ -330,12 +336,6 @@ msgstr "" msgid "Restart MWAN" msgstr "" -msgid "Restore default hotplug script" -msgstr "" - -msgid "Restore..." -msgstr "" - msgid "Rule" msgstr "" @@ -389,6 +389,20 @@ msgid "" "down. Leave blank to assume interface is always online" msgstr "" +msgid "" +"This section allows you to modify the content of \"/etc/mwan3.user\".<br /" +">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This " +"file is interpreted as a shell script.<br />The first line of the script " +"must be "#!/bin/sh" without quotes.<br />Lines beginning with # are " +"comments and are not executed.<br />Put your custom mwan3 action here, they " +"will<br />be executed with each netifd hotplug interface event<br />on " +"interfaces for which mwan3 is enabled.<br /><br />There are three main " +"environment variables that are passed to this script.<br /><br />$ACTION " +"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which " +"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name " +"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />" +msgstr "" + msgid "This section allows you to modify the contents of /etc/config/mwan3" msgstr "" @@ -398,23 +412,15 @@ msgstr "" msgid "This section allows you to modify the contents of /etc/config/wireless" msgstr "" -msgid "" -"This section allows you to modify the contents of /etc/hotplug.d/iface/16-" -"mwancustom<br />This is useful for running system commands and/or scripts " -"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The " -"first line of the script must be "#!/bin/sh" without quotes<br /" -">Lines beginning with # are comments and are not executed<br /><br /" -">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />" -"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the " -"device name attached to the interface (eth0.1, eth1, etc.)" -msgstr "" - msgid "Tracking IP" msgstr "" msgid "Tracking hostname or IP address" msgstr "" +msgid "Tracking method" +msgstr "" + msgid "Tracking reliability" msgstr "" diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po index 3c505d847..b133e8b1d 100644 --- a/applications/luci-app-mwan3/po/zh-cn/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po @@ -76,6 +76,9 @@ msgstr "当 Ping 成功次数达到这个数值后,已经被认为离线的接 msgid "Enabled" msgstr "启用" +msgid "Enter value in hex, starting with <code>0x</code>" +msgstr "" + msgid "Error collecting troubleshooting information" msgstr "收集故障排除信息时出错" @@ -88,6 +91,9 @@ msgstr "" msgid "Failure interval" msgstr "故障检测间隔" +msgid "Firewall mask" +msgstr "" + msgid "Flush conntrack table" msgstr "刷新连接跟踪表" @@ -350,12 +356,6 @@ msgstr "故障恢复间隔" msgid "Restart MWAN" msgstr "重启 MWAN" -msgid "Restore default hotplug script" -msgstr "恢复默认的 hotplug 脚本" - -msgid "Restore..." -msgstr "恢复..." - msgid "Rule" msgstr "规则" @@ -416,6 +416,20 @@ msgid "" "down. Leave blank to assume interface is always online" msgstr "通过 ping 此主机或 IP 地址来确定链路是否在线。留空则认为接口始终在线" +msgid "" +"This section allows you to modify the content of \"/etc/mwan3.user\".<br /" +">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This " +"file is interpreted as a shell script.<br />The first line of the script " +"must be "#!/bin/sh" without quotes.<br />Lines beginning with # are " +"comments and are not executed.<br />Put your custom mwan3 action here, they " +"will<br />be executed with each netifd hotplug interface event<br />on " +"interfaces for which mwan3 is enabled.<br /><br />There are three main " +"environment variables that are passed to this script.<br /><br />$ACTION " +"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which " +"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name " +"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />" +msgstr "" + msgid "This section allows you to modify the contents of /etc/config/mwan3" msgstr "这里允许你修改 /etc/config/mwan3 的内容" @@ -425,29 +439,15 @@ msgstr "这里允许你修改 /etc/config/network 的内容" msgid "This section allows you to modify the contents of /etc/config/wireless" msgstr "这里允许你修改 /etc/config/wireless 的内容" -msgid "" -"This section allows you to modify the contents of /etc/hotplug.d/iface/16-" -"mwancustom<br />This is useful for running system commands and/or scripts " -"based on interface ifup or ifdown hotplug events<br /><br />Notes:<br />The " -"first line of the script must be "#!/bin/sh" without quotes<br /" -">Lines beginning with # are comments and are not executed<br /><br /" -">Available variables:<br />$ACTION is the hotplug event (ifup, ifdown)<br />" -"$INTERFACE is the interface name (wan1, wan2, etc.)<br />$DEVICE is the " -"device name attached to the interface (eth0.1, eth1, etc.)" -msgstr "" -"这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容<br />这可以在接口 " -"ifup 或 ifdown Hotplug 事件时运行系统命令或脚本<br /><br />注意:<br />脚本的" -"第一行必须是 "#!/bin/sh" 不含引号<br />以#开头的行是注释,不会执行" -"<br /><br />可用变量:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)<br />" -"$INTERFACE 是接口名称(wan1、wan2 等)<br />$DEVICE 是连接到接口的设备名称 " -"(eth0.1、eth1 等)" - msgid "Tracking IP" msgstr "追踪的 IP" msgid "Tracking hostname or IP address" msgstr "追踪的主机或 IP 地址" +msgid "Tracking method" +msgstr "" + msgid "Tracking reliability" msgstr "追踪可靠性" @@ -590,3 +590,26 @@ msgstr "" msgid "unreachable (reject)" msgstr "不可达(拒绝)" + +#~ msgid "Restore default hotplug script" +#~ msgstr "恢复默认的 hotplug 脚本" + +#~ msgid "Restore..." +#~ msgstr "恢复..." + +#~ msgid "" +#~ "This section allows you to modify the contents of /etc/hotplug.d/iface/16-" +#~ "mwancustom<br />This is useful for running system commands and/or scripts " +#~ "based on interface ifup or ifdown hotplug events<br /><br />Notes:<br /" +#~ ">The first line of the script must be "#!/bin/sh" without " +#~ "quotes<br />Lines beginning with # are comments and are not executed<br /" +#~ "><br />Available variables:<br />$ACTION is the hotplug event (ifup, " +#~ "ifdown)<br />$INTERFACE is the interface name (wan1, wan2, etc.)<br />" +#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)" +#~ msgstr "" +#~ "这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容<br />这可以在接" +#~ "口 ifup 或 ifdown Hotplug 事件时运行系统命令或脚本<br /><br />注意:<br />" +#~ "脚本的第一行必须是 "#!/bin/sh" 不含引号<br />以#开头的行是注释," +#~ "不会执行<br /><br />可用变量:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)" +#~ "<br />$INTERFACE 是接口名称(wan1、wan2 等)<br />$DEVICE 是连接到接口的设" +#~ "备名称 (eth0.1、eth1 等)" diff --git a/applications/luci-app-samba/po/ca/samba.po b/applications/luci-app-samba/po/ca/samba.po index fadcbdfdb..eb6be15cd 100644 --- a/applications/luci-app-samba/po/ca/samba.po +++ b/applications/luci-app-samba/po/ca/samba.po @@ -65,6 +65,11 @@ msgstr "Comparticions de xarxa" msgid "Path" msgstr "Ruta" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Només lectura" diff --git a/applications/luci-app-samba/po/cs/samba.po b/applications/luci-app-samba/po/cs/samba.po index 4a00124fb..d66d87674 100644 --- a/applications/luci-app-samba/po/cs/samba.po +++ b/applications/luci-app-samba/po/cs/samba.po @@ -63,6 +63,11 @@ msgstr "Síťová sdílení" msgid "Path" msgstr "Cesta" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Pouze pro čtení" diff --git a/applications/luci-app-samba/po/de/samba.po b/applications/luci-app-samba/po/de/samba.po index 1bcac0c9b..4e8da53b5 100644 --- a/applications/luci-app-samba/po/de/samba.po +++ b/applications/luci-app-samba/po/de/samba.po @@ -65,6 +65,11 @@ msgstr "Netzwerkfreigaben" msgid "Path" msgstr "Pfad" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Nur Lesen" diff --git a/applications/luci-app-samba/po/el/samba.po b/applications/luci-app-samba/po/el/samba.po index 9a15ad1e0..878416a63 100644 --- a/applications/luci-app-samba/po/el/samba.po +++ b/applications/luci-app-samba/po/el/samba.po @@ -61,6 +61,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/en/samba.po b/applications/luci-app-samba/po/en/samba.po index 94cfdb516..642580e9d 100644 --- a/applications/luci-app-samba/po/en/samba.po +++ b/applications/luci-app-samba/po/en/samba.po @@ -61,6 +61,11 @@ msgstr "Network Shares" msgid "Path" msgstr "Path" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Read-only" diff --git a/applications/luci-app-samba/po/es/samba.po b/applications/luci-app-samba/po/es/samba.po index c14ebd2c3..57c4b862d 100644 --- a/applications/luci-app-samba/po/es/samba.po +++ b/applications/luci-app-samba/po/es/samba.po @@ -63,6 +63,11 @@ msgstr "Comparticiones de red" msgid "Path" msgstr "Dirección" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Solo lectura" diff --git a/applications/luci-app-samba/po/fr/samba.po b/applications/luci-app-samba/po/fr/samba.po index ff040b50d..63960fca1 100644 --- a/applications/luci-app-samba/po/fr/samba.po +++ b/applications/luci-app-samba/po/fr/samba.po @@ -63,6 +63,11 @@ msgstr "Partages réseau" msgid "Path" msgstr "Chemin" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Lecture seule" diff --git a/applications/luci-app-samba/po/he/samba.po b/applications/luci-app-samba/po/he/samba.po index 620f56cf8..010d2b248 100644 --- a/applications/luci-app-samba/po/he/samba.po +++ b/applications/luci-app-samba/po/he/samba.po @@ -56,6 +56,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/hu/samba.po b/applications/luci-app-samba/po/hu/samba.po index 38a9a0843..0263edb6c 100644 --- a/applications/luci-app-samba/po/hu/samba.po +++ b/applications/luci-app-samba/po/hu/samba.po @@ -63,6 +63,11 @@ msgstr "Hálózati megosztások" msgid "Path" msgstr "Elérési út" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Csak olvasható" diff --git a/applications/luci-app-samba/po/it/samba.po b/applications/luci-app-samba/po/it/samba.po index a2bb9b673..8e5b062a0 100644 --- a/applications/luci-app-samba/po/it/samba.po +++ b/applications/luci-app-samba/po/it/samba.po @@ -64,6 +64,11 @@ msgstr "Condivisioni di rete" msgid "Path" msgstr "Percorso" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Solo lettura" diff --git a/applications/luci-app-samba/po/ja/samba.po b/applications/luci-app-samba/po/ja/samba.po index 9f338defb..eca10efcc 100644 --- a/applications/luci-app-samba/po/ja/samba.po +++ b/applications/luci-app-samba/po/ja/samba.po @@ -1,17 +1,17 @@ msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2011-11-03 18:09+0200\n" -"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" +"PO-Revision-Date: 2017-08-16 00:41+0900\n" +"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.4\n" +"X-Generator: Poedit 2.0.3\n" +"Language-Team: \n" msgid "Allow guests" msgstr "ゲストアクセスを許可" @@ -61,6 +61,13 @@ msgstr "ネットワーク共有" msgid "Path" msgstr "パス" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" +"共有するディレクトリを追加してください。マウントされたデバイス等のディレクト" +"リを設定し、公開することができます。" + msgid "Read-only" msgstr "読み込みのみ" diff --git a/applications/luci-app-samba/po/ms/samba.po b/applications/luci-app-samba/po/ms/samba.po index de4ed7c36..d5f1ce15e 100644 --- a/applications/luci-app-samba/po/ms/samba.po +++ b/applications/luci-app-samba/po/ms/samba.po @@ -55,6 +55,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/no/samba.po b/applications/luci-app-samba/po/no/samba.po index 7059d7748..349f6b9de 100644 --- a/applications/luci-app-samba/po/no/samba.po +++ b/applications/luci-app-samba/po/no/samba.po @@ -52,6 +52,11 @@ msgstr "Nettverks Mapper" msgid "Path" msgstr "Fysisk bane" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Skrivebeskyttet" diff --git a/applications/luci-app-samba/po/pl/samba.po b/applications/luci-app-samba/po/pl/samba.po index bf54e78c3..d997268cd 100644 --- a/applications/luci-app-samba/po/pl/samba.po +++ b/applications/luci-app-samba/po/pl/samba.po @@ -62,6 +62,11 @@ msgstr "Udziały sieciowe" msgid "Path" msgstr "Ścieżka" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Tylko do odczytu" diff --git a/applications/luci-app-samba/po/pt-br/samba.po b/applications/luci-app-samba/po/pt-br/samba.po index 43ea3b9b9..a2e6e220c 100644 --- a/applications/luci-app-samba/po/pt-br/samba.po +++ b/applications/luci-app-samba/po/pt-br/samba.po @@ -63,6 +63,11 @@ msgstr "Compartilhamentos de Rede" msgid "Path" msgstr "Caminho" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Somente leitura" diff --git a/applications/luci-app-samba/po/pt/samba.po b/applications/luci-app-samba/po/pt/samba.po index 6d4f00386..f58b58818 100644 --- a/applications/luci-app-samba/po/pt/samba.po +++ b/applications/luci-app-samba/po/pt/samba.po @@ -63,6 +63,11 @@ msgstr "Partilhas da Rede" msgid "Path" msgstr "Caminho" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Apenas Leitura" diff --git a/applications/luci-app-samba/po/ro/samba.po b/applications/luci-app-samba/po/ro/samba.po index 78c55e4eb..7cfcda7d1 100644 --- a/applications/luci-app-samba/po/ro/samba.po +++ b/applications/luci-app-samba/po/ro/samba.po @@ -62,6 +62,11 @@ msgstr "Partajari pe retea" msgid "Path" msgstr "Cale" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Doar citire" diff --git a/applications/luci-app-samba/po/ru/samba.po b/applications/luci-app-samba/po/ru/samba.po index 4823dc46d..534770f5f 100644 --- a/applications/luci-app-samba/po/ru/samba.po +++ b/applications/luci-app-samba/po/ru/samba.po @@ -64,6 +64,11 @@ msgstr "Сетевые ресурсы" msgid "Path" msgstr "Путь" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Только для чтения" diff --git a/applications/luci-app-samba/po/sk/samba.po b/applications/luci-app-samba/po/sk/samba.po index 2c511c815..21f102d32 100644 --- a/applications/luci-app-samba/po/sk/samba.po +++ b/applications/luci-app-samba/po/sk/samba.po @@ -56,6 +56,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/sv/samba.po b/applications/luci-app-samba/po/sv/samba.po index 549a69c5c..f58f8b87d 100644 --- a/applications/luci-app-samba/po/sv/samba.po +++ b/applications/luci-app-samba/po/sv/samba.po @@ -58,6 +58,11 @@ msgstr "Nätverksdelningar" msgid "Path" msgstr "Genväg" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Endast läsbar" diff --git a/applications/luci-app-samba/po/templates/samba.pot b/applications/luci-app-samba/po/templates/samba.pot index 9e4ab7ff1..674ed331c 100644 --- a/applications/luci-app-samba/po/templates/samba.pot +++ b/applications/luci-app-samba/po/templates/samba.pot @@ -49,6 +49,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/tr/samba.po b/applications/luci-app-samba/po/tr/samba.po index 486768f2e..98d47beec 100644 --- a/applications/luci-app-samba/po/tr/samba.po +++ b/applications/luci-app-samba/po/tr/samba.po @@ -56,6 +56,11 @@ msgstr "" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "" diff --git a/applications/luci-app-samba/po/uk/samba.po b/applications/luci-app-samba/po/uk/samba.po index 077315e21..a4469f961 100644 --- a/applications/luci-app-samba/po/uk/samba.po +++ b/applications/luci-app-samba/po/uk/samba.po @@ -63,6 +63,11 @@ msgstr "Загальні мережеві ресурси" msgid "Path" msgstr "Шлях" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "Тільки читання" diff --git a/applications/luci-app-samba/po/vi/samba.po b/applications/luci-app-samba/po/vi/samba.po index c5f6e02df..7c088cebe 100644 --- a/applications/luci-app-samba/po/vi/samba.po +++ b/applications/luci-app-samba/po/vi/samba.po @@ -69,6 +69,11 @@ msgstr "Mạng chia sẻ" msgid "Path" msgstr "" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + #, fuzzy msgid "Read-only" msgstr "Chỉ đọc " diff --git a/applications/luci-app-samba/po/zh-cn/samba.po b/applications/luci-app-samba/po/zh-cn/samba.po index 2294b611a..b6fd8f31d 100644 --- a/applications/luci-app-samba/po/zh-cn/samba.po +++ b/applications/luci-app-samba/po/zh-cn/samba.po @@ -61,6 +61,11 @@ msgstr "网络共享" msgid "Path" msgstr "目录" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "只读" diff --git a/applications/luci-app-samba/po/zh-tw/samba.po b/applications/luci-app-samba/po/zh-tw/samba.po index bfa2d7d6d..ed0dabb80 100644 --- a/applications/luci-app-samba/po/zh-tw/samba.po +++ b/applications/luci-app-samba/po/zh-tw/samba.po @@ -59,6 +59,11 @@ msgstr "網路分享" msgid "Path" msgstr "路徑" +msgid "" +"Please add directories to share. Each directory refers to a folder on a " +"mounted device." +msgstr "" + msgid "Read-only" msgstr "唯讀" diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua index 5df59cb0a..998579017 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua @@ -19,7 +19,7 @@ m = Map("shadowsocks-libev", local sdata = m:get('ss_rules') if not sdata then m:set('ss_rules', nil, 'ss_rules') - m:set('ss_rules', 'ss_rules', 'disabled', true) + m:set('ss_rules', 'disabled', true) end s = m:section(NamedSection, "ss_rules", "ss_rules") @@ -39,8 +39,12 @@ ss.values_redir(o, 'udp') o = s:taboption('general', ListValue, "local_default", translate("Local-out default"), - translate("Default action for locally generated packets")) + translate("Default action for locally generated TCP packets")) ss.values_actions(o) +o = s:taboption('general', DynamicList, "ifnames", + translate("Ingress interfaces"), + translate("Only apply rules on packets from these network interfaces")) +ss.values_ifnames(o) s:taboption('general', Value, "ipt_args", translate("Extra arguments"), translate("Passes additional arguments to iptables. Use with care!")) @@ -74,5 +78,9 @@ s:taboption('dstip', FileBrowser, "dst_ips_forward_file", translate("Dst ip forward file"), translate("File containing ip addresses for the purposes as with <em>Dst ip forward</em>")) o.datatype = "file" +o = s:taboption('dstip', ListValue, "dst_default", + translate("Dst default"), + translate("Default action for packets whose destination addresses do not match any of the destination ip list")) +ss.values_actions(o) return m diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua index 6608ee8d3..650ff6356 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua @@ -14,8 +14,10 @@ module("luci.model.shadowsocks-libev", function(m) end) function values_actions(o) - for _, a in ipairs(actions) do - o:value(a) + o:value("bypass") + o:value("forward") + if o.option ~= "dst_default" then + o:value("checkdst") end end @@ -43,7 +45,6 @@ function values_serverlist(o) end function values_ipaddr(o) - local keys, vals = {}, {} for _, v in ipairs(nw:get_interfaces()) do for _, a in ipairs(v:ipaddrs()) do o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() }) @@ -51,6 +52,14 @@ function values_ipaddr(o) end end +function values_ifnames(o) + for _, v in ipairs(nw:get_interfaces()) do + if v.dev then + o:value(v.dev.name) + end + end +end + function options_client(s, tab) local o @@ -226,17 +235,13 @@ modes = { "udp_only", } -actions = { - "bypass", - "forward", - "checkdst", -} - methods = { -- aead "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", + "chacha20-ietf-poly1305", + "xchacha20-ietf-poly1305", -- stream "table", "rc4", diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua index add52317b..27971dfda 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua @@ -163,24 +163,25 @@ e = m:section(NamedSection, "global", "travelmate", translate("Extra options"), translate("Options for further tweaking in case the defaults are not suitable for you.")) e1 = e:option(Value, "trm_radio", translate("Radio selection"), - translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'")) + translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'.")) e1.datatype = "and(uciname,rangelength(6,6))" e1.rmempty = true e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"), - translate("How many times should travelmate try to connect to an Uplink")) + translate("How many times should travelmate try to connect to an Uplink. ") + .. translate("To disable this feature set it to '0' which means unlimited retries.")) e2.default = 3 -e2.datatype = "range(1,10)" +e2.datatype = "range(0,30)" e2.rmempty = false e3 = e:option(Value, "trm_maxwait", translate("Interface Timeout"), - translate("How long should travelmate wait for a successful wlan interface reload")) + translate("How long should travelmate wait for a successful wlan interface reload.")) e3.default = 30 e3.datatype = "range(5,60)" e3.rmempty = false e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"), - translate("Timeout in seconds between retries in 'automatic' mode")) + translate("Timeout in seconds between retries in 'automatic' mode.")) e4.default = 60 e4.datatype = "range(60,300)" e4.rmempty = false diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po index 70561533d..febdbd583 100644 --- a/applications/luci-app-travelmate/po/ja/travelmate.po +++ b/applications/luci-app-travelmate/po/ja/travelmate.po @@ -107,12 +107,12 @@ msgstr "" "詳細な情報は <a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a> を" "確認してください。" -msgid "How long should travelmate wait for a successful wlan interface reload" +msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" "無線LAN インターフェースのリロードが成功するまでの、Travelmate の待機時間で" "す。" -msgid "How many times should travelmate try to connect to an Uplink" +msgid "How many times should travelmate try to connect to an Uplink." msgstr "Travelmate がアップリンクへの接続を試行する回数です。" msgid "Input file not found, please check your configuration." @@ -188,8 +188,8 @@ msgstr "再スキャン" msgid "Rescan" msgstr "再スキャン" -msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'" -msgstr "Travelmate が指定された無線に接続するよう制限します。例: 'radio0'" +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." +msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')" msgid "Runtime information" msgstr "実行情報" @@ -256,9 +256,13 @@ msgstr "" "このフォームには、システムログ内の Travelmate に関するメッセージのみが表示さ" "れます。" -msgid "Timeout in seconds between retries in 'automatic' mode" +msgid "Timeout in seconds between retries in 'automatic' mode." msgstr "'automatic' モード時に接続を確認または再試行する間隔(秒)です。" +msgid "To disable this feature set it to '0' which means unlimited retries." +msgstr "" +"この機能を無効にして接続の再試行を無制限にする場合、 '0' を設定します。" + msgid "Travelmate" msgstr "Travelmate" diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po index 282dda8da..41fab7014 100644 --- a/applications/luci-app-travelmate/po/pt-br/travelmate.po +++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po @@ -102,10 +102,10 @@ msgid "" "documentation</a>" msgstr "" -msgid "How long should travelmate wait for a successful wlan interface reload" +msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" -msgid "How many times should travelmate try to connect to an Uplink" +msgid "How many times should travelmate try to connect to an Uplink." msgstr "" msgid "Input file not found, please check your configuration." @@ -173,7 +173,7 @@ msgstr "" msgid "Rescan" msgstr "" -msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'" +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." msgstr "" msgid "Runtime information" @@ -231,7 +231,10 @@ msgid "" "messages only." msgstr "" -msgid "Timeout in seconds between retries in 'automatic' mode" +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "" + +msgid "To disable this feature set it to '0' which means unlimited retries." msgstr "" msgid "Travelmate" diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot index 219005568..a9ceafe23 100644 --- a/applications/luci-app-travelmate/po/templates/travelmate.pot +++ b/applications/luci-app-travelmate/po/templates/travelmate.pot @@ -91,10 +91,10 @@ msgid "" "documentation</a>" msgstr "" -msgid "How long should travelmate wait for a successful wlan interface reload" +msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" -msgid "How many times should travelmate try to connect to an Uplink" +msgid "How many times should travelmate try to connect to an Uplink." msgstr "" msgid "Input file not found, please check your configuration." @@ -162,7 +162,7 @@ msgstr "" msgid "Rescan" msgstr "" -msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'" +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." msgstr "" msgid "Runtime information" @@ -220,7 +220,10 @@ msgid "" "messages only." msgstr "" -msgid "Timeout in seconds between retries in 'automatic' mode" +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "" + +msgid "To disable this feature set it to '0' which means unlimited retries." msgstr "" msgid "Travelmate" diff --git a/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua b/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua index 03821ad9b..883e1bb63 100644 --- a/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua +++ b/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua @@ -202,14 +202,17 @@ o = ucs:taboption("advanced", Value, "max_requests", translate("Maximum number o o.optional = true o.datatype = "uinteger" -local s = m:section(NamedSection, "px5g", "cert", translate("uHTTPd Self-signed Certificate Parameters")) +local s = m:section(TypedSection, "cert", translate("uHTTPd Self-signed Certificate Parameters")) + +s.template = "cbi/tsection" +s.anonymous = true o = s:option(Value, "days", translate("Valid for # of Days")) o.default = 730 o.datatype = "uinteger" o = s:option(Value, "bits", translate("Length of key in bits")) -o.default = 1024 +o.default = 2048 o.datatype = "min(1024)" o = s:option(Value, "commonname", translate("Server Hostname"), translate("a.k.a CommonName")) @@ -222,6 +225,6 @@ o = s:option(Value, "state", translate("State")) o.default = "Unknown" o = s:option(Value, "location", translate("Location")) -o.default = "Somewhere" +o.default = "Unknown" return m |