diff options
206 files changed, 4873 insertions, 2675 deletions
diff --git a/applications/luci-app-simple-adblock/Makefile b/applications/luci-app-adblock-fast/Makefile index 47b9623c5b..7dcb82ba73 100644 --- a/applications/luci-app-simple-adblock/Makefile +++ b/applications/luci-app-adblock-fast/Makefile @@ -1,15 +1,15 @@ -# Copyright 2017-2022 Stan Grishin (stangri@melmac.ca) +# Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca) # This is free software, licensed under the GNU General Public License v3. include $(TOPDIR)/rules.mk PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca> -PKG_VERSION:=1.9.5-3 +PKG_VERSION:=1.0.0-1 -LUCI_TITLE:=Simple Adblock Web UI -LUCI_DESCRIPTION:=Provides Web UI for simple-adblock service. -LUCI_DEPENDS:=+luci-base +simple-adblock +jsonfilter +LUCI_TITLE:=AdBlock-Fast Web UI +LUCI_DESCRIPTION:=Provides Web UI for adblock-fast service. +LUCI_DEPENDS:=+luci-base +adblock-fast +jsonfilter LUCI_PKGARCH:=all include ../../luci.mk diff --git a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js new file mode 100644 index 0000000000..901d3d9f26 --- /dev/null +++ b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js @@ -0,0 +1,479 @@ +// Copyright MOSSDeF, 2023 Stan Grishin <stangri@melmac.ca> +// This code wouldn't have been possible without help from: +// - [@vsviridov](https://github.com/vsviridov) + +"require ui"; +"require rpc"; +"require form"; +"require baseclass"; + +var pkg = { + get Name() { + return "adblock-fast"; + }, + get URL() { + return "https://docs.openwrt.melmac.net/" + pkg.Name + "/"; + }, +}; + +var getFileUrlFilesizes = rpc.declare({ + object: "luci." + pkg.Name, + method: "getFileUrlFilesizes", + params: ["name", "url"], +}); + +var getInitList = rpc.declare({ + object: "luci." + pkg.Name, + method: "getInitList", + params: ["name"], +}); + +var getInitStatus = rpc.declare({ + object: "luci." + pkg.Name, + method: "getInitStatus", + params: ["name"], +}); + +var getPlatformSupport = rpc.declare({ + object: "luci." + pkg.Name, + method: "getPlatformSupport", + params: ["name"], +}); + +var _setInitAction = rpc.declare({ + object: "luci." + pkg.Name, + method: "setInitAction", + params: ["name", "action"], + expect: { result: false }, +}); + +var RPC = { + listeners: [], + on: function (event, callback) { + var pair = { event: event, callback: callback }; + this.listeners.push(pair); + return function unsubscribe() { + this.listeners = this.listeners.filter(function (listener) { + return listener !== pair; + }); + }.bind(this); + }, + emit: function (event, data) { + this.listeners.forEach(function (listener) { + if (listener.event === event) { + listener.callback(data); + } + }); + }, + setInitAction: function (name, action) { + _setInitAction(name, action).then( + function (result) { + this.emit("setInitAction", result); + }.bind(this) + ); + }, +}; + +var status = baseclass.extend({ + render: function () { + return Promise.all([L.resolveDefault(getInitStatus(pkg.Name), {})]).then( + function (data) { + var reply = { + status: (data[0] && data[0][pkg.Name]) || { + enabled: false, + status: null, + running: null, + version: null, + errors: [], + warnings: [], + force_dns_active: null, + force_dns_ports: [], + entries: null, + dns: null, + outputFile: null, + outputCache: null, + outputGzip: null, + outputFileExists: null, + outputCacheExists: null, + outputGzipExists: null, + leds: [], + }, + }; + var text = ""; + var outputFile = reply.status.outputFile; + var outputCache = reply.status.outputCache; + var statusTable = { + statusNoInstall: _("%s is not installed or not found").format( + pkg.Name + ), + statusStopped: _("Stopped"), + statusStarting: _("Starting"), + statusProcessing: _("Processing lists"), + statusRestarting: _("Restarting"), + statusForceReloading: _("Force Reloading"), + statusDownloading: _("Downloading lists"), + statusError: _("Error"), + statusWarning: _("Warning"), + statusFail: _("Fail"), + statusSuccess: _("Active"), + }; + + var header = E("h2", {}, _("AdBlock-Fast - Status")); + var statusTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Status") + ); + if (reply.status.version) { + text += _("Version %s").format(reply.status.version) + " - "; + switch (reply.status.status) { + case "statusSuccess": + text += statusTable[reply.status.status] + "."; + text += + "<br />" + + _("Blocking %s domains (with %s).").format( + reply.status.entries, + reply.status.dns + ); + if (reply.status.outputGzipExists) { + text += "<br />" + _("Compressed cache file created."); + } + if (reply.status.force_dns_active) { + text += "<br />" + _("Force DNS ports:"); + reply.status.force_dns_ports.forEach((element) => { + text += " " + element; + }); + text += "."; + } + break; + case "statusStopped": + if (reply.status.enabled) { + text += statusTable[reply.status.status] + "."; + } else { + text += + statusTable[reply.status.status] + + " (" + + _("Disabled") + + ")."; + } + if (reply.status.outputCacheExists) { + text += "<br />" + _("Cache file found."); + } else if (reply.status.outputGzipExists) { + text += "<br />" + _("Compressed cache file found."); + } + break; + case "statusRestarting": + case "statusForceReloading": + case "statusDownloading": + case "statusProcessing": + text += statusTable[reply.status.status] + "..."; + break; + default: + text += statusTable[reply.status.status] + "."; + break; + } + } else { + text = _("Not installed or not found"); + } + var statusText = E("div", {}, text); + var statusField = E("div", { class: "cbi-value-field" }, statusText); + var statusDiv = E("div", { class: "cbi-value" }, [ + statusTitle, + statusField, + ]); + + var warningsDiv = []; + if (reply.status.warnings && reply.status.warnings.length) { + var warningTable = { + warningExternalDnsmasqConfig: _( + "Use of external dnsmasq config file detected, please set '%s' option to '%s'" + ).format("dns", "dnsmasq.conf"), + warningMissingRecommendedPackages: _( + "Some recommended packages are missing" + ), + }; + var warningsTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Warnings") + ); + var text = ""; + reply.status.warnings.forEach((element) => { + text += + warningTable[element.id].format(element.extra || " ") + "<br />"; + }); + var warningsText = E("div", {}, text); + var warningsField = E( + "div", + { class: "cbi-value-field" }, + warningsText + ); + warningsDiv = E("div", { class: "cbi-value" }, [ + warningsTitle, + warningsField, + ]); + } + + var errorsDiv = []; + if (reply.status.errors && reply.status.errors.length) { + var errorTable = { + errorConfigValidationFail: _( + "Config (%s) validation failure!" + ).format("/etc/config/" + pkg.Name), + errorServiceDisabled: _("%s is currently disabled").format( + pkg.Name + ), + errorNoDnsmasqIpset: _( + "The dnsmasq ipset support is enabled, but dnsmasq is either not installed or installed dnsmasq does not support ipset" + ), + errorNoIpset: _( + "The dnsmasq ipset support is enabled, but ipset is either not installed or installed ipset does not support '%s' type" + ).format("hash:net"), + errorNoDnsmasqNftset: _( + "The dnsmasq nft set support is enabled, but dnsmasq is either not installed or installed dnsmasq does not support nft set" + ), + errorNoNft: _( + "The dnsmasq nft sets support is enabled, but nft is not installed" + ), + errorNoWanGateway: _( + "The %s failed to discover WAN gateway" + ).format(pkg.Name), + errorOutputDirCreate: _("Failed to create directory for %s file"), + errorOutputFileCreate: _("Failed to create '%s' file").format( + outputFile + ), + errorFailDNSReload: _("Failed to restart/reload DNS resolver"), + errorSharedMemory: _("Failed to access shared memory"), + errorSorting: _("Failed to sort data file"), + errorOptimization: _("Failed to optimize data file"), + errorAllowListProcessing: _("Failed to process allow-list"), + errorDataFileFormatting: _("Failed to format data file"), + errorMovingDataFile: _( + "Failed to move temporary data file to '%s'" + ).format(outputFile), + errorCreatingCompressedCache: _( + "Failed to create compressed cache" + ), + errorRemovingTempFiles: _("Failed to remove temporary files"), + errorRestoreCompressedCache: _("Failed to unpack compressed cache"), + errorRestoreCache: _("Failed to move '%s' to '%s'").format( + outputCache, + outputFile + ), + errorOhSnap: _( + "Failed to create block-list or restart DNS resolver" + ), + errorStopping: _("Failed to stop %s").format(pkg.Name), + errorDNSReload: _("Failed to reload/restart DNS resolver"), + errorDownloadingConfigUpdate: _( + "Failed to download Config Update file" + ), + errorDownloadingList: _("Failed to download %s"), + errorParsingConfigUpdate: _("Failed to parse Config Update file"), + errorParsingList: _("Failed to parse"), + errorNoSSLSupport: _("No HTTPS/SSL support on device"), + errorCreatingDirectory: _( + "Failed to create output/cache/gzip file directory" + ), + }; + var errorsTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Errors") + ); + var text = ""; + reply.status.errors.forEach((element) => { + text += + errorTable[element.id].format(element.extra || " ") + "<br />"; + }); + text += _("Errors encountered, please check the %sREADME%s!").format( + "<a href='" + pkg.URL + '" target="_blank">', + "</a><br />" + ); + var errorsText = E("div", {}, text); + var errorsField = E("div", { class: "cbi-value-field" }, errorsText); + errorsDiv = E("div", { class: "cbi-value" }, [ + errorsTitle, + errorsField, + ]); + } + + var btn_gap = E("span", {}, "  "); + var btn_gap_long = E( + "span", + {}, + "        " + ); + + var btn_start = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Starting %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "start"); + }, + }, + _("Start") + ); + + var btn_action = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Force re-downloading %s block lists").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "dl"); + }, + }, + _("Force Re-Download") + ); + + var btn_stop = E( + "button", + { + class: "btn cbi-button cbi-button-reset", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Stopping %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "stop"); + }, + }, + _("Stop") + ); + + var btn_enable = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Enabling %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "enable"); + }, + }, + _("Enable") + ); + + var btn_disable = E( + "button", + { + class: "btn cbi-button cbi-button-reset", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Disabling %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "disable"); + }, + }, + _("Disable") + ); + + if (reply.status.enabled) { + btn_enable.disabled = true; + btn_disable.disabled = false; + switch (reply.status.status) { + case "statusSuccess": + btn_start.disabled = true; + btn_action.disabled = false; + btn_stop.disabled = false; + break; + case "statusStopped": + btn_start.disabled = false; + btn_action.disabled = true; + btn_stop.disabled = true; + break; + default: + btn_start.disabled = false; + btn_action.disabled = true; + btn_stop.disabled = false; + btn_enable.disabled = true; + btn_disable.disabled = true; + break; + } + } else { + btn_start.disabled = true; + btn_action.disabled = true; + btn_stop.disabled = true; + btn_enable.disabled = false; + btn_disable.disabled = true; + } + + var buttonsDiv = []; + var buttonsTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Control") + ); + var buttonsText = E("div", {}, [ + btn_start, + btn_gap, + btn_action, + btn_gap, + btn_stop, + btn_gap_long, + btn_enable, + btn_gap, + btn_disable, + ]); + var buttonsField = E("div", { class: "cbi-value-field" }, buttonsText); + if (reply.status.version) { + buttonsDiv = E("div", { class: "cbi-value" }, [ + buttonsTitle, + buttonsField, + ]); + } + + return E("div", {}, [ + header, + statusDiv, + warningsDiv, + errorsDiv, + buttonsDiv, + ]); + } + ); + }, +}); + +RPC.on("setInitAction", function (reply) { + ui.hideModal(); + location.reload(); +}); + +return L.Class.extend({ + status: status, + getFileUrlFilesizes: getFileUrlFilesizes, + getPlatformSupport: getPlatformSupport, +}); diff --git a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js new file mode 100644 index 0000000000..92caf6b35d --- /dev/null +++ b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js @@ -0,0 +1,385 @@ +// Copyright 2023 MOSSDeF, Stan Grishin <stangri@melmac.ca> +// This code wouldn't have been possible without help from: +// - [@stokito](https://github.com/stokito) +// - [@vsviridov](https://github.com/vsviridov) + +"use strict"; +"require form"; +"require uci"; +"require view"; +"require adblock-fast.status as adb"; + +var pkg = { + get Name() { + return "adblock-fast"; + }, + get URL() { + return "https://docs.openwrt.melmac.net/" + pkg.Name + "/"; + }, + humanFileSize: function (bytes, si = false, dp = 2) { + return `%${si ? 1000 : 1024}.${dp ?? 0}mB`.format(bytes); + }, +}; + +return view.extend({ + load: function () { + return Promise.all([ + L.resolveDefault(adb.getFileUrlFilesizes(pkg.Name), {}), + L.resolveDefault(adb.getPlatformSupport(pkg.Name), {}), + uci.load(pkg.Name), + uci.load("dhcp"), + ]); + }, + + render: function (data) { + var reply = { + sizes: (data[0] && data[0][pkg.Name] && data[0][pkg.Name]["sizes"]) || [], + platform: (data[1] && data[1][pkg.Name]) || { + ipset_installed: false, + nft_installed: false, + dnsmasq_installed: false, + unbound_installed: false, + dnsmasq_ipset_support: false, + dnsmasq_nftset_support: false, + leds: [], + }, + }; + var status, m, s1, s2, s3, o; + + status = new adb.status(); + m = new form.Map(pkg.Name, _("AdBlock-Fast - Configuration")); + s1 = m.section(form.NamedSection, "config", pkg.Name); + s1.tab("tab_basic", _("Basic Configuration")); + s1.tab("tab_advanced", _("Advanced Configuration")); + + var text = _( + "DNS resolution option, see the %sREADME%s for details." + ).format( + '<a href="' + pkg.URL + '#dns-resolver-option" target="_blank">', + "</a>" + ); + if (!reply.platform.dnsmasq_installed) { + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.addnhosts</i>" + ); + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.conf</i>" + ); + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.ipset</i>" + ); + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.servers</i>" + ); + } else { + if (!reply.platform.dnsmasq_ipset_support) { + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.ipset</i>" + ); + } + if (!reply.platform.dnsmasq_nftset_support) { + text += + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>dnsmasq.nftset</i>" + ); + } + } + if (!reply.platform.unbound_installed) { + text = + text + + "<br />" + + _("Please note that %s is not supported on this system.").format( + "<i>unbound.adb_list</i>" + ); + } + + o = s1.taboption( + "tab_basic", + form.ListValue, + "dns", + _("DNS Service"), + text + ); + if (reply.platform.dnsmasq_installed) { + o.value("dnsmasq.addnhosts", _("dnsmasq additional hosts")); + o.value("dnsmasq.conf", _("dnsmasq config")); + if (reply.platform.dnsmasq_ipset_support) { + o.value("dnsmasq.ipset", _("dnsmasq ipset")); + } + if (reply.platform.dnsmasq_nftset_support) { + o.value("dnsmasq.nftset", _("dnsmasq nft set")); + } + o.value("dnsmasq.servers", _("dnsmasq servers file")); + } + if (reply.platform.unbound_installed) { + o.value("unbound.adb_list", _("unbound adblock list")); + } + o.default = ("dnsmasq.servers", _("dnsmasq servers file")); + + o = s1.taboption( + "tab_basic", + form.Value, + "dnsmasq_config_file_url", + _("Dnsmasq Config File URL"), + _( + "URL to the external dnsmasq config file, see the %sREADME%s for details." + ).format( + '<a href="' + pkg.URL + '#dnsmasq_config_file_url" target="_blank">', + "</a>" + ) + ); + o.depends("dns", "dnsmasq.conf"); + + o = s1.taboption( + "tab_basic", + form.ListValue, + "dnsmasq_instance", + _("Use AdBlocking on the dnsmasq instance(s)"), + _( + "You can limit the AdBlocking to a specific dnsmasq instance(s) (%smore information%s)." + ).format( + '<a href="' + pkg.URL + "#dnsmasq_instance" + '" target="_blank">', + "</a>" + ) + ); + o.value("*", _("AdBlock on all instances")); + var sections = uci.sections("dhcp", "dnsmasq"); + sections.forEach((element) => { + var description; + var key; + if (element[".name"] === uci.resolveSID("dhcp", element[".name"])) { + key = element[".index"]; + description = "dnsmasq[" + element[".index"] + "]"; + } else { + key = element[".name"]; + description = element[".name"]; + } + o.value(key, _("AdBlock on %s only").format(description)); + }); + o.value("-", _("No AdBlock on dnsmasq")); + o.default = "*"; + o.depends("dns", "dnsmasq.addnhosts"); + o.depends("dns", "dnsmasq.servers"); + o.retain = true; + + o = s1.taboption( + "tab_basic", + form.ListValue, + "force_dns", + _("Force Router DNS"), + _("Forces Router DNS use on local devices, also known as DNS Hijacking.") + ); + o.value("0", _("Let local devices use their own DNS servers if set")); + o.value("1", _("Force Router DNS server to all local devices")); + o.default = ("1", _("Force Router DNS server to all local devices")); + + o = s1.taboption( + "tab_basic", + form.ListValue, + "verbosity", + _("Output Verbosity Setting"), + _("Controls system log and console output verbosity.") + ); + o.value("0", _("Suppress output")); + o.value("1", _("Some output")); + o.value("2", _("Verbose output")); + o.default = ("2", _("Verbose output")); + + if (reply.platform.leds.length) { + o = s1.taboption( + "tab_basic", + form.ListValue, + "led", + _("LED to indicate status"), + _( + "Pick the LED not already used in %sSystem LED Configuration%s." + ).format('<a href="' + L.url("admin", "system", "leds") + '">', "</a>") + ); + o.value("", _("none")); + reply.platform.leds.forEach((element) => { + o.value(element); + }); + } + o = s1.taboption( + "tab_advanced", + form.ListValue, + "config_update_enabled", + _("Automatic Config Update"), + _("Perform config update before downloading the block/allow-lists.") + ); + o.value("0", _("Disable")); + o.value("1", _("Enable")); + o.default = ("0", _("Disable")); + + o = s1.taboption( + "tab_advanced", + form.ListValue, + "ipv6_enabled", + _("IPv6 Support"), + _("Add IPv6 entries to block-list.") + ); + o.value("", _("Do not add IPv6 entries")); + o.value("1", _("Add IPv6 entries")); + o.depends("dns", "dnsmasq.addnhosts"); + o.depends("dns", "dnsmasq.nftset"); + o.default = ("", _("Do not add IPv6 entries")); + o.rmempty = true; + o.retain = true; + + o = s1.taboption( + "tab_advanced", + form.Value, + "download_timeout", + _("Download time-out (in seconds)"), + _("Stop the download if it is stalled for set number of seconds.") + ); + o.default = "20"; + o.datatype = "range(1,60)"; + + o = s1.taboption( + "tab_advanced", + form.Value, + "curl_max_file_size", + _("Curl maximum file size (in bytes)"), + _( + "If curl is installed and detected, it would not download files bigger than this." + ) + ); + o.default = ""; + o.datatype = "uinteger"; + o.rmempty = true; + + o = s1.taboption( + "tab_advanced", + form.Value, + "curl_retry", + _("Curl download retry"), + _( + "If curl is installed and detected, it would retry download this many times on timeout/fail." + ) + ); + o.default = "3"; + o.datatype = "range(0,30)"; + + o = s1.taboption( + "tab_advanced", + form.ListValue, + "parallel_downloads", + _("Simultaneous processing"), + _( + "Launch all lists downloads and processing simultaneously, reducing service start time." + ) + ); + o.value("0", _("Do not use simultaneous processing")); + o.value("1", _("Use simultaneous processing")); + o.default = ("1", _("Use simultaneous processing")); + + o = s1.taboption( + "tab_advanced", + form.ListValue, + "compressed_cache", + _("Store compressed cache file on router"), + _( + "Attempt to create a compressed cache of block-list in the persistent memory." + ) + ); + o.value("0", _("Do not store compressed cache")); + o.value("1", _("Store compressed cache")); + o.default = ("0", _("Do not store compressed cache")); + + o = s1.taboption( + "tab_advanced", + form.Value, + "compressed_cache_dir", + _("Directory for compressed cache file"), + _( + "Directory for compressed cache file of block-list in the persistent memory." + ) + ); + o.datatype = "string"; + o.rmempty = true; + o.default = "/etc"; + o.depends("compressed_cache", "1"); + o.retain = true; + + o = s1.taboption( + "tab_advanced", + form.ListValue, + "debug", + _("Enable Debugging"), + _("Enables debug output to /tmp/adblock-fast.log.") + ); + o.value("0", _("Disable Debugging")); + o.value("1", _("Enable Debugging")); + o.default = ("0", _("Disable Debugging")); + + s2 = m.section( + form.NamedSection, + "config", + "adblock-fast", + _("AdBlock-Fast - Allowed and Blocked Domains") + ); + o.addremove = true; + o.rmempty = true; + o = s2.option( + form.DynamicList, + "allowed_domain", + _("Allowed Domains"), + _("Individual domains to be allowed.") + ); + + o.addremove = true; + o = s2.option( + form.DynamicList, + "blocked_domain", + _("Blocked Domains"), + _("Individual domains to be blocked.") + ); + o.addremove = true; + + s3 = m.section( + form.GridSection, + "file_url", + _("AdBlock-Fast - Allowed and Blocked Lists URLs"), + _("URLs to file(s) containing lists to be allowed or blocked.") + ); + s3.rowcolors = true; + s3.sortable = true; + s3.anonymous = true; + s3.addremove = true; + o = s3.option(form.DummyValue, "_size", "Size"); + o.modalonly = false; + o.cfgvalue = function (section_id) { + let url = uci.get(pkg.Name, section_id, "url"); + let ret = _("Unknown"); + reply.sizes.forEach((element) => { + if (element.url === url) { + ret = element.size === 0 ? ret : pkg.humanFileSize(element.size); + } + }); + return _("Size: %s").format(ret); + }; + o = s3.option(form.Flag, "enabled", _("Enable")); + o.editable = true; + o.default = "1"; + o = s3.option(form.ListValue, "action", _("Action")); + o.value("allow", _("Allow")); + o.value("block", _("Block")); + o.default = "block"; + o = s3.option(form.Value, "url", _("URL")); + o.optional = false; + + return Promise.all([status.render(), m.render()]); + }, +}); diff --git a/applications/luci-app-simple-adblock/po/ar/simple-adblock.po b/applications/luci-app-adblock-fast/po/ar/adblock-fast.po index fb15dab8b7..fb15dab8b7 100644 --- a/applications/luci-app-simple-adblock/po/ar/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ar/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/bg/simple-adblock.po b/applications/luci-app-adblock-fast/po/bg/adblock-fast.po index c03c902b48..c03c902b48 100644 --- a/applications/luci-app-simple-adblock/po/bg/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/bg/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/bn_BD/simple-adblock.po b/applications/luci-app-adblock-fast/po/bn_BD/adblock-fast.po index 21493bd49e..21493bd49e 100644 --- a/applications/luci-app-simple-adblock/po/bn_BD/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/bn_BD/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ca/simple-adblock.po b/applications/luci-app-adblock-fast/po/ca/adblock-fast.po index 758a163a02..758a163a02 100644 --- a/applications/luci-app-simple-adblock/po/ca/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ca/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/cs/simple-adblock.po b/applications/luci-app-adblock-fast/po/cs/adblock-fast.po index 9b92709bc8..9b92709bc8 100644 --- a/applications/luci-app-simple-adblock/po/cs/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/cs/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/da/simple-adblock.po b/applications/luci-app-adblock-fast/po/da/adblock-fast.po index 858d27b0a5..858d27b0a5 100644 --- a/applications/luci-app-simple-adblock/po/da/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/da/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/de/simple-adblock.po b/applications/luci-app-adblock-fast/po/de/adblock-fast.po index e002b28f0c..e002b28f0c 100644 --- a/applications/luci-app-simple-adblock/po/de/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/de/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/el/simple-adblock.po b/applications/luci-app-adblock-fast/po/el/adblock-fast.po index c00f060c37..c00f060c37 100644 --- a/applications/luci-app-simple-adblock/po/el/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/el/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/en/simple-adblock.po b/applications/luci-app-adblock-fast/po/en/adblock-fast.po index 16a31bf6a0..16a31bf6a0 100644 --- a/applications/luci-app-simple-adblock/po/en/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/en/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/es/simple-adblock.po b/applications/luci-app-adblock-fast/po/es/adblock-fast.po index d8b3a82010..d8b3a82010 100644 --- a/applications/luci-app-simple-adblock/po/es/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/es/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/fi/simple-adblock.po b/applications/luci-app-adblock-fast/po/fi/adblock-fast.po index 3e87f8886b..3e87f8886b 100644 --- a/applications/luci-app-simple-adblock/po/fi/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/fi/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/fr/simple-adblock.po b/applications/luci-app-adblock-fast/po/fr/adblock-fast.po index 79af6281f5..79af6281f5 100644 --- a/applications/luci-app-simple-adblock/po/fr/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/fr/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/he/simple-adblock.po b/applications/luci-app-adblock-fast/po/he/adblock-fast.po index 52f35c48e5..52f35c48e5 100644 --- a/applications/luci-app-simple-adblock/po/he/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/he/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/hi/simple-adblock.po b/applications/luci-app-adblock-fast/po/hi/adblock-fast.po index 2cfb9553ff..2cfb9553ff 100644 --- a/applications/luci-app-simple-adblock/po/hi/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/hi/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/hu/simple-adblock.po b/applications/luci-app-adblock-fast/po/hu/adblock-fast.po index 26c8ca1e2e..26c8ca1e2e 100644 --- a/applications/luci-app-simple-adblock/po/hu/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/hu/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/it/simple-adblock.po b/applications/luci-app-adblock-fast/po/it/adblock-fast.po index f281df43b6..f281df43b6 100644 --- a/applications/luci-app-simple-adblock/po/it/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/it/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ja/simple-adblock.po b/applications/luci-app-adblock-fast/po/ja/adblock-fast.po index 8c236dc99d..8c236dc99d 100644 --- a/applications/luci-app-simple-adblock/po/ja/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ja/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ko/simple-adblock.po b/applications/luci-app-adblock-fast/po/ko/adblock-fast.po index e034445448..e034445448 100644 --- a/applications/luci-app-simple-adblock/po/ko/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ko/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/lt/simple-adblock.po b/applications/luci-app-adblock-fast/po/lt/adblock-fast.po index dda29bce15..dda29bce15 100644 --- a/applications/luci-app-simple-adblock/po/lt/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/lt/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/mr/simple-adblock.po b/applications/luci-app-adblock-fast/po/mr/adblock-fast.po index 7474db64ea..7474db64ea 100644 --- a/applications/luci-app-simple-adblock/po/mr/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/mr/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ms/simple-adblock.po b/applications/luci-app-adblock-fast/po/ms/adblock-fast.po index f638a96f14..f638a96f14 100644 --- a/applications/luci-app-simple-adblock/po/ms/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ms/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/nb_NO/simple-adblock.po b/applications/luci-app-adblock-fast/po/nb_NO/adblock-fast.po index c3e1a7fc4c..c3e1a7fc4c 100644 --- a/applications/luci-app-simple-adblock/po/nb_NO/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/nb_NO/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/pl/simple-adblock.po b/applications/luci-app-adblock-fast/po/pl/adblock-fast.po index 918ca107b7..918ca107b7 100644 --- a/applications/luci-app-simple-adblock/po/pl/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/pl/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/pt/simple-adblock.po b/applications/luci-app-adblock-fast/po/pt/adblock-fast.po index db029ffa17..db029ffa17 100644 --- a/applications/luci-app-simple-adblock/po/pt/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/pt/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/pt_BR/simple-adblock.po b/applications/luci-app-adblock-fast/po/pt_BR/adblock-fast.po index ab6395c232..ab6395c232 100644 --- a/applications/luci-app-simple-adblock/po/pt_BR/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/pt_BR/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ro/simple-adblock.po b/applications/luci-app-adblock-fast/po/ro/adblock-fast.po index 8fb5bb2d17..8fb5bb2d17 100644 --- a/applications/luci-app-simple-adblock/po/ro/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ro/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/ru/simple-adblock.po b/applications/luci-app-adblock-fast/po/ru/adblock-fast.po index aa90c9252a..aa90c9252a 100644 --- a/applications/luci-app-simple-adblock/po/ru/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/ru/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/sk/simple-adblock.po b/applications/luci-app-adblock-fast/po/sk/adblock-fast.po index 50243f556a..50243f556a 100644 --- a/applications/luci-app-simple-adblock/po/sk/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/sk/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/sv/simple-adblock.po b/applications/luci-app-adblock-fast/po/sv/adblock-fast.po index 142f670773..142f670773 100644 --- a/applications/luci-app-simple-adblock/po/sv/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/sv/adblock-fast.po diff --git a/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot b/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot new file mode 100644 index 0000000000..3a51e0a37f --- /dev/null +++ b/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot @@ -0,0 +1,586 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:223 +msgid "%s is currently disabled" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:106 +msgid "%s is not installed or not found" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:376 +msgid "Action" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:118 +msgid "Active" +msgstr "" + +#: applications/luci-app-adblock-fast/root/usr/share/luci/menu.d/luci-app-adblock-fast.json:3 +msgid "AdBlock Fast" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:168 +msgid "AdBlock on %s only" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:156 +msgid "AdBlock on all instances" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:331 +msgid "AdBlock-Fast - Allowed and Blocked Domains" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:354 +msgid "AdBlock-Fast - Allowed and Blocked Lists URLs" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:50 +msgid "AdBlock-Fast - Configuration" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:121 +msgid "AdBlock-Fast - Status" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:233 +msgid "Add IPv6 entries" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:230 +msgid "Add IPv6 entries to block-list." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:53 +msgid "Advanced Configuration" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:377 +msgid "Allow" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:338 +msgid "Allowed Domains" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:294 +msgid "" +"Attempt to create a compressed cache of block-list in the persistent memory." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:218 +msgid "Automatic Config Update" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:52 +msgid "Basic Configuration" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:378 +msgid "Block" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:346 +msgid "Blocked Domains" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:134 +msgid "Blocking %s domains (with %s)." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:160 +msgid "Cache file found." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:139 +msgid "Compressed cache file created." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:162 +msgid "Compressed cache file found." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:221 +msgid "Config (%s) validation failure!" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:192 +msgid "Controls system log and console output verbosity." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:267 +msgid "Curl download retry" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:254 +msgid "Curl maximum file size (in bytes)" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:111 +msgid "DNS Service" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:56 +msgid "DNS resolution option, see the %sREADME%s for details." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:305 +msgid "Directory for compressed cache file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:307 +msgid "" +"Directory for compressed cache file of block-list in the persistent memory." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:400 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:221 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:223 +msgid "Disable" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:323 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:325 +msgid "Disable Debugging" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:156 +msgid "Disabled" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:394 +msgid "Disabling %s service" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:134 +msgid "Dnsmasq Config File URL" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:232 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:236 +msgid "Do not add IPv6 entries" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:297 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:299 +msgid "Do not store compressed cache" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:284 +msgid "Do not use simultaneous processing" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:244 +msgid "Download time-out (in seconds)" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:114 +msgid "Downloading lists" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:381 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:222 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:373 +msgid "Enable" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:320 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:324 +msgid "Enable Debugging" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:321 +msgid "Enables debug output to /tmp/adblock-fast.log." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:375 +msgid "Enabling %s service" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:115 +msgid "Error" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:289 +msgid "Errors encountered, please check the %sREADME%s!" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:117 +msgid "Fail" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:246 +msgid "Failed to access shared memory" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:242 +msgid "Failed to create '%s' file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:264 +msgid "Failed to create block-list or restart DNS resolver" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:255 +msgid "Failed to create compressed cache" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:241 +msgid "Failed to create directory for %s file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:276 +msgid "Failed to create output/cache/gzip file directory" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:271 +msgid "Failed to download %s" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:269 +msgid "Failed to download Config Update file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:250 +msgid "Failed to format data file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:259 +msgid "Failed to move '%s' to '%s'" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:252 +msgid "Failed to move temporary data file to '%s'" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:248 +msgid "Failed to optimize data file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:273 +msgid "Failed to parse" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:272 +msgid "Failed to parse Config Update file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:249 +msgid "Failed to process allow-list" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:267 +msgid "Failed to reload/restart DNS resolver" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:257 +msgid "Failed to remove temporary files" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:245 +msgid "Failed to restart/reload DNS resolver" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:247 +msgid "Failed to sort data file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:266 +msgid "Failed to stop %s" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:258 +msgid "Failed to unpack compressed cache" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:142 +msgid "Force DNS ports:" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:343 +msgid "Force Re-Download" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:113 +msgid "Force Reloading" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:180 +msgid "Force Router DNS" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:184 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:185 +msgid "Force Router DNS server to all local devices" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:337 +msgid "Force re-downloading %s block lists" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:181 +msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." +msgstr "" + +#: applications/luci-app-adblock-fast/root/usr/share/rpcd/acl.d/luci-app-adblock-fast.json:3 +msgid "Grant UCI and file access for luci-app-adblock-fast" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:229 +msgid "IPv6 Support" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:256 +msgid "" +"If curl is installed and detected, it would not download files bigger than " +"this." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:269 +msgid "" +"If curl is installed and detected, it would retry download this many times " +"on timeout/fail." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:339 +msgid "Individual domains to be allowed." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:347 +msgid "Individual domains to be blocked." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:204 +msgid "LED to indicate status" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:281 +msgid "" +"Launch all lists downloads and processing simultaneously, reducing service " +"start time." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:183 +msgid "Let local devices use their own DNS servers if set" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:170 +msgid "No AdBlock on dnsmasq" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:274 +msgid "No HTTPS/SSL support on device" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:176 +msgid "Not installed or not found" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:191 +msgid "Output Verbosity Setting" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:219 +msgid "Perform config update before downloading the block/allow-lists." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:206 +msgid "Pick the LED not already used in %sSystem LED Configuration%s." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:64 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:69 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:74 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:79 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:86 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:93 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:102 +msgid "Please note that %s is not supported on this system." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:111 +msgid "Processing lists" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:112 +msgid "Restarting" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:437 +msgid "Service Control" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:282 +msgid "Service Errors" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:125 +msgid "Service Status" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:198 +msgid "Service Warnings" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:279 +msgid "Simultaneous processing" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:371 +msgid "Size: %s" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:195 +msgid "Some output" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:192 +msgid "Some recommended packages are missing" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:324 +msgid "Start" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:110 +msgid "Starting" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:318 +msgid "Starting %s service" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:362 +msgid "Stop" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:245 +msgid "Stop the download if it is stalled for set number of seconds." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:109 +msgid "Stopped" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:356 +msgid "Stopping %s service" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:298 +msgid "Store compressed cache" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:292 +msgid "Store compressed cache file on router" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:194 +msgid "Suppress output" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:239 +msgid "The %s failed to discover WAN gateway" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:227 +msgid "" +"The dnsmasq ipset support is enabled, but dnsmasq is either not installed or " +"installed dnsmasq does not support ipset" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:230 +msgid "" +"The dnsmasq ipset support is enabled, but ipset is either not installed or " +"installed ipset does not support '%s' type" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:233 +msgid "" +"The dnsmasq nft set support is enabled, but dnsmasq is either not installed " +"or installed dnsmasq does not support nft set" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:236 +msgid "The dnsmasq nft sets support is enabled, but nft is not installed" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:380 +msgid "URL" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:136 +msgid "" +"URL to the external dnsmasq config file, see the %sREADME%s for details." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:355 +msgid "URLs to file(s) containing lists to be allowed or blocked." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:365 +msgid "Unknown" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:148 +msgid "Use AdBlocking on the dnsmasq instance(s)" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:189 +msgid "" +"Use of external dnsmasq config file detected, please set '%s' option to '%s'" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:285 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:286 +msgid "Use simultaneous processing" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:196 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:197 +msgid "Verbose output" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:128 +msgid "Version %s" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:116 +msgid "Warning" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:150 +msgid "" +"You can limit the AdBlocking to a specific dnsmasq instance(s) (%smore " +"information%s)." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:115 +msgid "dnsmasq additional hosts" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:116 +msgid "dnsmasq config" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:118 +msgid "dnsmasq ipset" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:121 +msgid "dnsmasq nft set" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:123 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:128 +msgid "dnsmasq servers file" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:209 +msgid "none" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:126 +msgid "unbound adblock list" +msgstr "" diff --git a/applications/luci-app-simple-adblock/po/tr/simple-adblock.po b/applications/luci-app-adblock-fast/po/tr/adblock-fast.po index 8136a07c0b..8136a07c0b 100644 --- a/applications/luci-app-simple-adblock/po/tr/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/tr/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/uk/simple-adblock.po b/applications/luci-app-adblock-fast/po/uk/adblock-fast.po index 3758d4305c..3758d4305c 100644 --- a/applications/luci-app-simple-adblock/po/uk/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/uk/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/vi/simple-adblock.po b/applications/luci-app-adblock-fast/po/vi/adblock-fast.po index f4c1988d28..f4c1988d28 100644 --- a/applications/luci-app-simple-adblock/po/vi/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/vi/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/zh_Hans/simple-adblock.po b/applications/luci-app-adblock-fast/po/zh_Hans/adblock-fast.po index 3b701d57fe..3b701d57fe 100644 --- a/applications/luci-app-simple-adblock/po/zh_Hans/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/zh_Hans/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/po/zh_Hant/simple-adblock.po b/applications/luci-app-adblock-fast/po/zh_Hant/adblock-fast.po index 3a9460ba38..3a9460ba38 100644 --- a/applications/luci-app-simple-adblock/po/zh_Hant/simple-adblock.po +++ b/applications/luci-app-adblock-fast/po/zh_Hant/adblock-fast.po diff --git a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock b/applications/luci-app-adblock-fast/root/etc/uci-defaults/40_luci-adblock-fast index 080086891a..080086891a 100644 --- a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock +++ b/applications/luci-app-adblock-fast/root/etc/uci-defaults/40_luci-adblock-fast diff --git a/applications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock b/applications/luci-app-adblock-fast/root/usr/libexec/rpcd/luci.adblock-fast index 8cd40ca72a..b85a93f2e6 100755 --- a/applications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock +++ b/applications/luci-app-adblock-fast/root/usr/libexec/rpcd/luci.adblock-fast @@ -1,21 +1,22 @@ #!/bin/sh -# Copyright 2022 Stan Grishin (stangri@melmac.ca) +# Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca) # shellcheck disable=SC1091,SC2018,SC2019,SC2039,SC3043,SC3057,SC3060 # TechRef: https://openwrt.org/docs/techref/rpcd # TESTS -# ubus -v list luci.simple-adblock -# ubus -S call luci.simple-adblock getInitList '{"name": "simple-adblock" }' -# ubus -S call luci.simple-adblock getInitStatus '{"name": "simple-adblock" }' -# ubus -S call luci.simple-adblock setInitAction '{"name": "simple-adblock", "action": "start" }' -# ubus -S call luci.simple-adblock setInitAction '{"name": "simple-adblock", "action": "stop" }' -# ubus -S call luci.simple-adblock getPlatformSupport '{"name": "simple-adblock" }' +# ubus -v list luci.adblock-fast +# ubus -S call luci.adblock-fast getFileUrlFilesizes '{"name": "adblock-fast" }' +# ubus -S call luci.adblock-fast getInitList '{"name": "adblock-fast" }' +# ubus -S call luci.adblock-fast getInitStatus '{"name": "adblock-fast" }' +# ubus -S call luci.adblock-fast getPlatformSupport '{"name": "adblock-fast" }' +# ubus -S call luci.adblock-fast setInitAction '{"name": "adblock-fast", "action": "start" }' +# ubus -S call luci.adblock-fast setInitAction '{"name": "adblock-fast", "action": "stop" }' . /lib/functions.sh . /lib/functions/network.sh . /usr/share/libubox/jshn.sh -readonly packageName="simple-adblock" +readonly packageName="adblock-fast" readonly dnsmasqAddnhostsFile="/var/run/${packageName}/dnsmasq.addnhosts" readonly dnsmasqAddnhostsCache="/var/run/${packageName}/dnsmasq.addnhosts.cache" readonly dnsmasqAddnhostsGzip="${packageName}.dnsmasq.addnhosts.gz" @@ -34,7 +35,7 @@ readonly dnsmasqServersGzip="${packageName}.dnsmasq.servers.gz" readonly unboundFile="/var/lib/unbound/adb_list.${packageName}" readonly unboundCache="/var/run/${packageName}/unbound.cache" readonly unboundGzip="${packageName}.unbound.gz" -readonly jsonFile="/var/run/${packageName}/${packageName}.json" +readonly jsonFile="/dev/shm/$packageName-status.json" str_contains() { [ -n "$1" ] &&[ -n "$2" ] && [ "${1//$2}" != "$1" ]; } str_contains_word() { echo "$1" | grep -q -w "$2"; } @@ -43,10 +44,12 @@ str_to_upper() { echo "$1" | tr 'a-z' 'A-Z'; } is_enabled() { uci -q get "${1}.config.enabled"; } get_version() { grep -m1 -A2 -w "^Package: $1$" /usr/lib/opkg/status | sed -n 's/Version: //p'; } print_json_bool() { json_init; json_add_boolean "$1" "$2"; json_dump; json_cleanup; } +print_json_int() { json_init; json_add_int "$1" "$2"; json_dump; json_cleanup; } print_json_string() { json_init; json_add_string "$1" "$2"; json_dump; json_cleanup; } logger() { /usr/bin/logger -t "$packageName" "$@"; } ubus_get_status() { ubus call service list "{ 'name': '$packageName' }" | jsonfilter -e "@['${packageName}'].instances.main.data.${1}"; } ubus_get_ports() { ubus call service list "{ 'name': '$packageName' }" | jsonfilter -e "@['${packageName}'].instances.main.data.firewall.*.dest_port"; } +is_present() { command -v "$1" >/dev/null 2>&1; } sanitize_dir() { [ -d "$(readlink -fn "$1")" ] && readlink -fn "$1"; } json() { # shellcheck disable=SC2034 @@ -68,6 +71,39 @@ json() { esac } +get_url_filesize() { + local url="$1" size size_command + [ -n "$url" ] || { print_json_int 'size' '0'; return 0; } + is_present 'curl' || { print_json_int 'size' '0'; return 0; } + size_command='curl --silent --insecure --fail --head --request GET' + size="$($size_command "$url" | grep -i 'content-length:' | awk '{print $2}'; )" + echo "$size" +} + +_get_file_url_size() { + local url size + config_get url "$1" 'url' + config_get size "$1" 'size' + [ -n "$size" ] || size="$(get_url_filesize "$url")" + json_add_object + json_add_string 'url' "$url" + json_add_int 'size' "$size" + json_close_object +} + +get_file_url_filesizes() { + local name="$1" i + json_init + json_add_object "$name" + json_add_array 'sizes' + config_load "$name" + config_foreach _get_file_url_size 'file_url' + json_close_array + json_close_object + json_dump + json_cleanup +} + get_init_list() { local name name="$(basename "$1")" @@ -123,9 +159,6 @@ get_init_status() { else compressed_cache_dir="/etc" fi - errors="$(ubus_get_status errors)" - warnings="$(ubus_get_status warnings)" - ports="$(ubus_get_ports)" if [ -n "$(uci -q get $packageName.config.dnsmasq_config_file_url)" ]; then dns="dnsmasq.conf" else @@ -178,6 +211,7 @@ get_init_status() { json_add_boolean 'running' '0' fi json_add_string 'version' "$(get_version "$name")" + errors="$(ubus_get_status errors)" json_add_array 'errors' if [ -n "$errors" ]; then for i in $errors; do @@ -195,6 +229,7 @@ get_init_status() { done fi json_close_array + warnings="$(ubus_get_status warnings)" json_add_array 'warnings' if [ -n "$warnings" ]; then for i in $warnings; do @@ -213,6 +248,7 @@ get_init_status() { fi json_close_array + ports="$(ubus_get_ports)" if [ -n "$ports" ]; then json_add_boolean 'force_dns_active' '1' json_add_array 'force_dns_ports' @@ -313,6 +349,9 @@ get_platform_support() { case "$1" in list) json_init + json_add_object "getFileUrlFilesizes" + json_add_string 'name' 'name' + json_close_object json_add_object "getInitList" json_add_string 'name' 'name' json_close_object @@ -331,6 +370,13 @@ case "$1" in ;; call) case "$2" in + getFileUrlFilesizes) + read -r input + json_load "$input" + json_get_var name 'name' + json_cleanup + get_file_url_filesizes "$name" + ;; getInitList) read -r input json_load "$input" diff --git a/applications/luci-app-adblock-fast/root/usr/share/luci/menu.d/luci-app-adblock-fast.json b/applications/luci-app-adblock-fast/root/usr/share/luci/menu.d/luci-app-adblock-fast.json new file mode 100644 index 0000000000..542a75988c --- /dev/null +++ b/applications/luci-app-adblock-fast/root/usr/share/luci/menu.d/luci-app-adblock-fast.json @@ -0,0 +1,17 @@ +{ + "admin/services/adblock-fast": { + "title": "AdBlock Fast", + "action": { + "type": "view", + "path": "adblock-fast/overview" + }, + "depends": { + "acl": [ + "luci-app-adblock-fast" + ], + "uci": { + "adblock-fast": true + } + } + } +} diff --git a/applications/luci-app-adblock-fast/root/usr/share/rpcd/acl.d/luci-app-adblock-fast.json b/applications/luci-app-adblock-fast/root/usr/share/rpcd/acl.d/luci-app-adblock-fast.json new file mode 100644 index 0000000000..4ae446af6f --- /dev/null +++ b/applications/luci-app-adblock-fast/root/usr/share/rpcd/acl.d/luci-app-adblock-fast.json @@ -0,0 +1,32 @@ +{ + "luci-app-adblock-fast": { + "description": "Grant UCI and file access for luci-app-adblock-fast", + "read": { + "file": { + "/dev/shm/adblock-fast-status.json": [ "list", "read" ] + }, + "ubus": { + "luci.adblock-fast": [ + "getFileUrlFilesizes", + "getInitList", + "getInitStatus", + "getPlatformSupport" + ] + }, + "uci": [ + "adblock-fast", + "dhcp" + ] + }, + "write": { + "uci": [ + "adblock-fast" + ], + "ubus": { + "luci.adblock-fast": [ + "setInitAction" + ] + } + } + } +} diff --git a/applications/luci-app-dockerman/po/de/dockerman.po b/applications/luci-app-dockerman/po/de/dockerman.po index 4db22bebdb..e7f52d5b9a 100644 --- a/applications/luci-app-dockerman/po/de/dockerman.po +++ b/applications/luci-app-dockerman/po/de/dockerman.po @@ -1,14 +1,14 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-06-20 16:23+0000\n" -"Last-Translator: ssantos <ssantos@web.de>\n" +"PO-Revision-Date: 2023-09-02 23:33+0000\n" +"Last-Translator: Felix Baumann <felix.bau@gmx.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsdockerman/de/>\n" "Language: de\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/newcontainer.lua:604 msgid "A list of kernel capabilities to add to the container" @@ -559,7 +559,7 @@ msgstr "MAC-VLAN" #: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:581 #: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/newcontainer.lua:629 msgid "Memory" -msgstr "Speicher" +msgstr "Arbeitsspeicher" #: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:774 msgid "Memory Useage" diff --git a/applications/luci-app-firewall/po/ka/firewall.po b/applications/luci-app-firewall/po/ka/firewall.po new file mode 100644 index 0000000000..0564ba40f1 --- /dev/null +++ b/applications/luci-app-firewall/po/ka/firewall.po @@ -0,0 +1,1420 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-30 17:00+0200\n" +"PO-Revision-Date: 2023-09-03 12:32+0000\n" +"Last-Translator: Alan <georgianization@outlook.com>\n" +"Language-Team: Georgian <https://hosted.weblate.org/projects/openwrt/" +"luciapplicationsfirewall/ka/>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.0.1-dev\n" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:48 +msgid "" +"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and " +"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol " +"%{proto#%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item." +"name}<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }" +"<var>%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark " +"<var%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? " +"with mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value " +"with %{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp." +"inv?<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp." +"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper " +"%{helper.inv?<var data-tooltip=\"Match any helper except "%{helper.name}" +""\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper." +"val}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:461 +msgid "-- add IP --" +msgstr "-- დაემატოს IP --" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:519 +msgid "-- add MAC --" +msgstr "-- დაემატოს MAC --" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:192 +msgid "0" +msgstr "0" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:175 +msgid "1024" +msgstr "1024" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:118 +msgid "" +"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93 +msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>" +msgstr "<var data-tooltip=\"ACCEPT\">წყაროს გადაწერის არიდება</var>" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:85 +msgid "" +"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP " +"<var>%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}" +msgstr "" +"<var data-tooltip=\"DNAT\">გადამისამართება</var> %{dest}%{dest_ip? IP-" +"მისამართზე <var>%{dest_ip}</var>}%{dest_port? პორტი <var>%{dest_port}</var>}" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:115 +msgid "" +"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:133 +msgid "" +"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}" +"</var>" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:127 +msgid "" +"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper " +"<var%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:130 +msgid "" +"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark " +"<var>%{set_mark?:%{set_xmark}}</var>" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:90 +msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:124 +msgid "" +"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:" +"output}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:121 +msgid "" +"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:87 +msgid "" +"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP " +"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:302 +msgid "A rewrite IP must be specified!" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288 +msgid "ACCEPT - Disable address rewriting" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:220 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:410 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:283 +msgid "Action" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:316 +msgid "" +"Additional raw <em>iptables</em> arguments to classify zone destination " +"traffic, e.g. <code>-p tcp --dport 443</code> to only match outbound HTTPS " +"traffic." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:306 +msgid "" +"Additional raw <em>iptables</em> arguments to classify zone source traffic, " +"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:107 +msgid "Address family, Internal IP address must match" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135 +msgid "" +"Address family, source address, destination address, rewrite IP address must " +"match" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:161 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:182 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:108 +msgid "Advanced Settings" +msgstr "გაფართოებული პარამეტრები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:277 +msgid "Allow \"invalid\" traffic" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:379 +msgid "Allow forward from <em>source zones</em>:" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:338 +msgid "Allow forward to <em>destination zones</em>:" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:549 +msgid "Any" +msgstr "ნებისმიერი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:478 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:494 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:348 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364 +msgid "Any day" +msgstr "ნებისმიერი დღე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316 +msgid "" +"Apply a bitwise XOR of the given value and the existing mark value on " +"established connections. Format is value[/mask]. If a mask is specified then " +"those bits set in the mask are zeroed out." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263 +msgid "Apply the given DSCP class or value to established connections." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438 +msgid "Assign the specified connection tracking helper to matched traffic." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:280 +msgid "Automatic helper assignment" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:280 +msgid "" +"Automatically assign conntrack helpers based on traffic protocol and port" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:54 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:55 +msgid "Comment" +msgstr "შენიშვნა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:109 +msgid "Conntrack Settings" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:284 +msgid "Conntrack helpers" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:16 +msgid "Contents have been saved." +msgstr "შიგთავსი შენახულია" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:698 +msgid "Continue" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:197 +msgid "Counters" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:225 +msgid "Covered devices" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:177 +msgid "Covered networks" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:230 +msgid "Covered subnets" +msgstr "" + +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:62 +msgid "Custom Rules" +msgstr "მითითებული წესები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:26 +msgid "" +"Custom rules allow you to execute arbitrary iptables commands which are not " +"otherwise covered by the firewall framework. The commands are executed after " +"each firewall restart, right after the default ruleset has been loaded." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:420 +msgid "DSCP classification" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:262 +msgid "DSCP mark" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:296 +msgid "DSCP mark required" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:401 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266 +msgid "Destination address" +msgstr "საბოლოო მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:403 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:274 +msgid "Destination port" +msgstr "საბოლოო პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395 +msgid "Destination zone" +msgstr "საბოლოო არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268 +msgid "Device name" +msgstr "მოწყობილობის სახელი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:277 +msgid "" +"Do not install extra rules to reject forwarded traffic with conntrack state " +"<em>invalid</em>. This may be required for complex asymmetric route setups." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:59 +msgid "Drop invalid packets" +msgstr "გაუმართავი კრებულების აცილება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:228 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:209 +msgid "Enable" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:302 +msgid "Enable NAT Loopback" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45 +msgid "Enable SYN-flood protection" +msgstr "SYN-flood-დაცვის ჩართვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:290 +msgid "Enable logging on this zone" +msgstr "აღრიცხვის ჩართვა ამ არესთვის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:162 +msgid "" +"Enable network address and port translation IPv4 (NAT4 or NAPT4) for " +"outbound traffic on this zone. This is typically enabled on the <em>wan</em> " +"zone." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:237 +msgid "" +"Enable network address and port translation IPv6 (NAT6 or NAPT6) for " +"outbound traffic on this zone." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:204 +msgid "Enabled" +msgstr "მოქმედია" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:198 +msgid "Enables packet and byte count tracking for the set." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:338 +msgid "Expecting: %s" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77 +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "საცდელი შესაძლებლობა. სრულად თავსებადი არ იქნება QoS/SQM." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:284 +msgid "Explicitly choses allowed connection tracking helpers for zone traffic" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270 +msgid "External IP address" +msgstr "გარე IP-მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275 +msgid "External port" +msgstr "გარე პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:345 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:469 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:338 +msgid "Extra arguments" +msgstr "დამატებითი არგუმენტები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:316 +msgid "Extra destination arguments" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:110 +msgid "Extra iptables arguments" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:306 +msgid "Extra source arguments" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:60 +msgid "Family" +msgstr "ჯგუფი" + +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:3 +msgid "Firewall" +msgstr "ქსელის ფარი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:25 +msgid "Firewall - Custom Rules" +msgstr "ქსელის ფარი - მითითებული წესები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:20 +msgid "Firewall - IP sets" +msgstr "ქსელის ფარი - IP-ნაკრები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172 +msgid "Firewall - NAT Rules" +msgstr "ქსელის ფარი - NAT-წესები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152 +msgid "Firewall - Port Forwards" +msgstr "ქსელის ფარი - პორტის გადამისამართება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173 +msgid "Firewall - Traffic Rules" +msgstr "ქსელის ფარი - მიმოცვლის წესები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:38 +msgid "Firewall - Zone Settings" +msgstr "ქსელის ფარი - არეების გამართვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:691 +msgid "Firewall configuration migration" +msgstr "ქსელის ფარის გამართვის გადატანა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:64 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:147 +msgid "Forward" +msgstr "გადაგზავნა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:34 +msgid "" +"Forwarded %{ipv6?%{ipv4?<var>IPv4</var> and <var>IPv6</var>:<var>IPv6</var>}:" +"<var>IPv4</var>}%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</" +"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except " +"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-" +"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}" +"</var>}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:484 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:354 +msgid "Friday" +msgstr "პარასკევი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:45 +msgid "" +"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP " +"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except " +"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }" +"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item." +"ival}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64 +msgid "" +"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP " +"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except " +"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }" +"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item." +"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-" +"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint." +"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}" +"</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52 +msgid "" +"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-" +"tooltip=\"Match IP addresses except %{item.val}.\"}>%{item.ival}</" +"var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-" +"tooltip=\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, " +"MAC %{src_mac#%{next?, }<var%{item.inv? data-tooltip=\"Match MACs except " +"%{item.val}%{item.hint.name? a.k.a. %{item.hint.name}}.\":%{item.hint.name? " +"data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:160 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:180 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:41 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:107 +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:17 +msgid "General Settings" +msgstr "ზოგადი პარამეტრები" + +#: applications/luci-app-firewall/root/usr/share/rpcd/acl.d/luci-app-firewall.json:3 +msgid "Grant access to firewall configuration" +msgstr "ქსელის ფარის გამართვასთან წვდომის ნებართვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88 +msgid "Hardware flow offloading" +msgstr "ნაკადის აპარატურული განტვირთვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:137 +msgid "IP (range)" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:32 +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:53 +msgid "IP Sets" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:145 +msgid "IPs/Networks" +msgstr "IP-ები/ქსელები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:100 +msgid "IPs/Networks/MACs" +msgstr "IP-ები/ქსელები/MAC-ები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:61 +msgid "IPv4" +msgstr "IPv4" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:279 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:250 +msgid "IPv4 and IPv6" +msgstr "IPv4 და IPv6" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:190 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:280 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:218 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:251 +msgid "IPv4 only" +msgstr "IPv4 მხოლოდ" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:62 +msgid "IPv6" +msgstr "IPv6" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:236 +msgid "IPv6 Masquerading" +msgstr "IPv6 შენიღბვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:191 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:252 +msgid "IPv6 only" +msgstr "IPv6 მხოლოდ" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:251 +msgid "Inbound device" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:180 +msgid "Include File" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:40 +msgid "" +"Incoming %{ipv6?%{ipv4?<var>IPv4</var> and <var>IPv6</var>:<var>IPv6</var>}:" +"<var>IPv4</var>}%{proto?, protocol %{proto#%{next?, }%{item.types?<var " +"class=\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP " +"with types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:" +"<var>%{item.name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match " +"fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark." +"mask? data-tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}" +">%{mark.val}</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match " +"any helper except "%{helper.name}"\">%{helper.val}</var>:<var data-" +"tooltip=\"%{helper.name}\">%{helper.val}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:173 +msgid "Initial Hash Size" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:62 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:145 +msgid "Input" +msgstr "შემავალი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:288 +msgid "Internal IP address" +msgstr "შიდა IP-მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:293 +msgid "Internal port" +msgstr "შიდა პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:283 +msgid "Internal zone" +msgstr "შიდა არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:304 +msgid "Invalid DSCP mark" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:372 +msgid "Invalid limit value" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:382 +msgid "Limit burst" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:293 +msgid "Limit log messages" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:348 +msgid "Limit matching" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:79 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:74 +msgid "" +"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</" +"var>%{limit.burst? burst <var>%{limit.burst}</var>}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:169 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:244 +msgid "Limited masquerading enabled" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349 +msgid "Limits traffic matching to the specified rate." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307 +msgid "Loopback source IP" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:287 +msgid "MASQUERADE - Automatically rewrite to outbound interface IP" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:174 +msgid "MSS clamping" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:161 +msgid "Masquerading" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:209 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:213 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:192 +msgid "Match" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:262 +msgid "Match DSCP" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:292 +msgid "Match ICMP type" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:248 +msgid "Match device" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267 +msgid "Match forwarded traffic directed at the given IP address." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:275 +msgid "" +"Match forwarded traffic directed at the given destination port or port range." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250 +msgid "Match forwarded traffic from this IP or range." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:258 +msgid "" +"Match forwarded traffic originating from the given source port or port range." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:322 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:445 +msgid "Match helper" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276 +msgid "" +"Match incoming traffic directed at the given destination port or port range " +"on this host" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 +msgid "Match mark" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:322 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:445 +msgid "Match traffic using the specified connection tracking helper." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:318 +msgid "Matches a specific firewall mark or a range of different marks." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:328 +msgid "Matches forwarded traffic using the specified outbound network device." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263 +msgid "Matches traffic carrying the specified DSCP marking." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:106 +msgid "Max Entries" +msgstr "ჩანაწერის უდიდესი რაოდ." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:165 +msgid "Max Length" +msgstr "უმაღლესი სიგრძე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383 +msgid "" +"Maximum initial number of packets to match: this number gets recharged by " +"one every time the limit specified above is not reached, up to this number." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:480 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:350 +msgid "Monday" +msgstr "ორშაბათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:490 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360 +msgid "Month Days" +msgstr "თვის დღეები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:175 +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:44 +msgid "NAT Rules" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:173 +msgid "" +"NAT rules allow fine grained control over the source IP to use for outbound " +"or forwarded traffic." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:41 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:45 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:188 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123 +msgid "Name" +msgstr "სახელი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:159 +msgid "Netmask" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:271 +msgid "Only match incoming traffic directed at the given IP address." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:252 +msgid "Only match incoming traffic from these MACs." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:257 +msgid "Only match incoming traffic from this IP or range." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:262 +msgid "" +"Only match incoming traffic originating from the given source port or port " +"range on the client host" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:327 +msgid "Outbound device" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:242 +msgid "Outbound zone" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:63 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:146 +msgid "Output" +msgstr "გამომავალი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:68 +msgid "Packet Field Match" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:69 +msgid "" +"Packet fields to match upon.<br />Syntax: <em>direction_datatype</em>. e.g.: " +"<code>src_port, dest_net</code>.<br />Directions: <code>src, dst</code>. " +"Datatypes: <code>ip, port, mac, net, set</code>.<br />Direction prefixes are " +"optional.<br />*Note: datatype <code>set</code> is unsupported in fw4." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:346 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:339 +msgid "Passes additional arguments to iptables. Use with care!" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:303 +msgid "" +"Passing raw iptables arguments to source and destination traffic " +"classification rules allows to match packets based on other criteria than " +"interfaces or subnets. These options should be used with extreme care as " +"invalid values could render the firewall ruleset broken, completely exposing " +"all services." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:181 +msgid "Path to file of CIDRs, subnets, host IPs, etc.<br />" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:155 +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:26 +msgid "Port Forwards" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153 +msgid "" +"Port forwarding allows remote computers on the Internet to connect to a " +"specific computer or service within the private LAN." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:151 +msgid "Port range" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:233 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238 +msgid "Protocol" +msgstr "ოქმი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:294 +msgid "" +"Redirect matched incoming traffic to the given port on the internal host" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:289 +msgid "Redirect matched incoming traffic to the specified internal host" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:115 +msgid "Refer To External Set" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:316 +msgid "Reflection zones" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:89 +msgid "Requires hardware NAT support." +msgstr "ესაჭიროება აპარატურული NAT-მხარდაჭერა." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:266 +msgid "Restrict Masquerading to given destination subnets" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:255 +msgid "Restrict Masquerading to given source subnets" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:249 +msgid "Restrict to address family" +msgstr "მისამართის ჯგუფის შეზღუდვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:293 +msgid "Rewrite IP address" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:294 +msgid "Rewrite matched traffic to the specified source IP address." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:308 +msgid "Rewrite matched traffic to the specified source port or port range." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:307 +msgid "Rewrite port" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:76 +msgid "Routing/NAT Offloading" +msgstr "დამისამართება/NAT-განტვირთვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:286 +msgid "SNAT - Rewrite to specific source IP or port" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:355 +msgid "Saturday" +msgstr "შაბათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 +msgid "Set mark" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:317 +msgid "" +"Set the given mark value on established connections. Format is value[/mask]. " +"If a mask is specified then only those bits set in the mask are modified." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:84 +msgid "Software based offloading for routing/NAT" +msgstr "პროგრამული სახით განიტვირთება დამისამართება/NAT" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:83 +msgid "Software flow offloading" +msgstr "ნაკადის პროგრამული განტვირთვა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:256 +msgid "Source IP address" +msgstr "საწყისი IP-მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:251 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385 +msgid "Source MAC address" +msgstr "საწყისი MAC-მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:386 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249 +msgid "Source address" +msgstr "საწყისი მისამართი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:261 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:257 +msgid "Source port" +msgstr "საწყისი პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:237 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:371 +msgid "Source zone" +msgstr "საწყისი არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269 +msgid "" +"Specifies whether to tie this traffic rule to a specific inbound or outbound " +"network device." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307 +msgid "" +"Specifies whether to use the external or the internal IP address for " +"reflected traffic." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:509 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:379 +msgid "Start Date (yyyy-mm-dd)" +msgstr "დაწყების თარიღი (yyyy-mm-dd)" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:501 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:371 +msgid "Start Time (hh:mm:ss)" +msgstr "დაწყების დრო (hh:mm:ss)" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:513 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:383 +msgid "Stop Date (yyyy-mm-dd)" +msgstr "შეწყვეტის თარიღი (yyyy-mm-dd)" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:505 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:375 +msgid "Stop Time (hh:mm:ss)" +msgstr "შეწყვეტის დრო (hh:mm:ss)" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:123 +msgid "Storage Method" +msgstr "შენახვის ხერხი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:479 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:349 +msgid "Sunday" +msgstr "კვირა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:692 +msgid "" +"The existing firewall configuration needs to be changed for LuCI to function " +"properly." +msgstr "" +"ქსელის ფარის არსებული გამართვა უნდა შეიცვალოს, რომ LuCI სათანადოდ მუშაობდეს." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39 +msgid "" +"The firewall creates zones over your network interfaces to control network " +"traffic flow." +msgstr "" +"ქსელის ფარი ქმნის არეებს ქსელის მაკავშირებლებს შორის მიმოცვლილი მონაცემების " +"სამართავად." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:221 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:334 +msgid "" +"The options below control the forwarding policies between this zone (%s) and " +"other zones. <em>Destination zones</em> cover forwarded traffic " +"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded " +"traffic from other zones <strong>targeted at %q</strong>. The forwarding " +"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does " +"<em>not</em> imply a permission to forward from wan to lan as well." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:119 +msgid "" +"This section defines common properties of %q. The <em>input</em> and " +"<em>output</em> options set the default policies for traffic entering and " +"leaving this zone while the <em>forward</em> option describes the policy for " +"forwarded traffic between different networks within the zone. <em>Covered " +"networks</em> specifies which available networks are members of this zone." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:483 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:353 +msgid "Thursday" +msgstr "ოთხშაბათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:183 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:182 +msgid "Time Restrictions" +msgstr "დროის შეზღუდვები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:517 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:387 +msgid "Time in UTC" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:243 +msgid "Time restrictions are enabled for this rule" +msgstr "დროის შეზღუდვები ამოქმედებულია ამ წესისთვის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:189 +msgid "Timeout" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77 +msgid "" +"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP " +"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except " +"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }" +"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item." +"ival}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:55 +msgid "" +"To %{dest}%{dest_device?, via interface <var>%{dest_device}</" +"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match " +"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port " +"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except " +"%{item.val}.\"}>%{item.ival}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:61 +msgid "" +"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-" +"tooltip=\"Match IP addresses except %{item.val}.\"}>%{item.ival}</" +"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-" +"tooltip=\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438 +msgid "Tracking helper" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:176 +#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:35 +msgid "Traffic Rules" +msgstr "მიმოცვლის წესები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174 +msgid "" +"Traffic rules define policies for packets traveling between different zones, " +"for example to reject traffic between certain hosts or to open WAN ports on " +"the router." +msgstr "" +"მიმოცვლის წესები განსაზღვრავს დებულებებს კრებულებისთვის, რომლებიც იგზავნება " +"სხვადასხვა არეებს შორის, მაგალითად, ცალკეული წყაროდან მომავალი მონაცემების " +"უარსაყოფად ან WAN-პორტების გასახსნელად როუტერზე." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:351 +msgid "Tuesday" +msgstr "სამშაბათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:19 +msgid "Unable to save contents: %s" +msgstr "ვერ შეინახა შიგთავსი: %s" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:190 +msgid "" +"Unit: seconds. Default <code>0</code> means the entry is added permanently " +"to the set.<br />Max: 2147483 seconds." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:337 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460 +msgid "Unknown or not installed conntrack helper \"%s\"" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:189 +msgid "Unnamed NAT" +msgstr "უსახელო NAT" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:168 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:183 +msgid "Unnamed forward" +msgstr "უსახელო გადამისამართება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:190 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210 +msgid "Unnamed rule" +msgstr "უსახელო წესი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:50 +msgid "Unnamed set" +msgstr "უსახელო ნაკრები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:124 +msgid "Unnamed zone" +msgstr "უსახელო არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:595 +msgid "Unrecognized protocol" +msgstr "დაუდგენელი ოქმი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:693 +msgid "" +"Upon pressing \"Continue\", \"redirect\" sections with target \"SNAT\" will " +"be converted to \"nat\" sections and the firewall will be restarted to apply " +"the updated configuration." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:311 +msgid "Use external IP address" +msgstr "გარე IP-მისამართის გამოყენება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:310 +msgid "Use internal IP address" +msgstr "შიდა IP-მისამართის გამოყენება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:243 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:377 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:318 +msgid "Use ipset" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:225 +msgid "" +"Use this option to classify zone traffic by raw, non-<em>uci</em> managed " +"network devices." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:230 +msgid "" +"Use this option to classify zone traffic by source or destination subnet " +"instead of networks or devices." +msgstr "" +"ამ პარამეტრის გამოყენება არეებში მიმოცვლის დასახარისხებლად საწყისი ან " +"საბოლოო ქვექსელით, ნაცვლად ქსელებით ან მოწყობილობებით." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:330 +msgid "Valid firewall mark required" +msgstr "ქსელის ფარის მართებული ნიშანია საჭირო" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:482 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352 +msgid "Wednesday" +msgstr "ოთხშაბათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:474 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:344 +msgid "Week Days" +msgstr "კვირის დღეები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:419 +msgid "XOR firewall mark" +msgstr "ქსელის ფარის XOR-ნიშანი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 +msgid "XOR mark" +msgstr "XOR-ნიშანი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:28 +msgid "Your device does not run firewall4." +msgstr "თქვენს მოწყობილობაზე არაა გაშვებული firewall4." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:26 +msgid "Your device runs firewall4." +msgstr "თქვენს მოწყობილობაზე გაშვებულია firewall4." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:137 +msgid "Zone ⇒ Forwardings" +msgstr "არე ⇒ გადამისამართება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:95 +msgid "Zones" +msgstr "არეები" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:316 +msgid "" +"Zones from which reflection rules shall be created. If unset, only the " +"destination zone is used." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:70 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:153 +msgid "accept" +msgstr "მიღება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267 +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:461 +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:484 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:266 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:297 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:324 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:406 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:440 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:278 +msgid "any" +msgstr "ნებისმიერი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:86 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:65 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:78 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:46 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:56 +msgid "any zone" +msgstr "ნებისმიერი არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:297 +msgid "any/all" +msgstr "ნებისმიერი/ყველა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418 +msgid "apply firewall mark" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417 +msgid "assign conntrack helper" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:220 +msgid "automatic" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:124 +msgid "bitmap" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:130 +msgid "bitmap is ipv4 only" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67 +msgid "day" +msgstr "დღე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:86 +msgid "dest_ip: Destination IP" +msgstr "dest_ip: საბოლოო IP" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:88 +msgid "dest_mac: Destination MAC addr" +msgstr "dest_mac: საბოლოო MAC-მის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:89 +msgid "dest_net: Destination (sub)net" +msgstr "dest_net: საბოლოო (ქვე)ქსელი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:87 +msgid "dest_port: Destination Port" +msgstr "dest_port: საბოლოო პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:91 +msgid "dest_set: Destination ipset*" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311 +msgid "do not rewrite" +msgstr "გადაწერის გარეშე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416 +msgid "don't track" +msgstr "მიდევნების გარეშე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:69 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:152 +msgid "drop" +msgstr "აცილება" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:21 +msgid "" +"firewall4 supports referencing and creating IP sets to simplify matching of " +"large address lists without the need to create one rule per item to match. " +"Port ranges in ipsets are unsupported by firewall4.<br />" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:152 +msgid "fromport-toport" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:125 +msgid "hash" +msgstr "ჰეში" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67 +msgid "hour" +msgstr "საათი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:74 +msgid "ip: IP addr" +msgstr "ip: IP-მის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:146 +msgid "ip[/cidr]<br />" +msgstr "ip[/cidr]<br />" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:138 +msgid "ip[/cidr]<br />For use with Match datatypes: <code>*_ip</code>." +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:63 +msgid "ipv4" +msgstr "ipv4" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:126 +msgid "list" +msgstr "სია" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:76 +msgid "mac: MAC addr" +msgstr "mac: MAC-მის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:101 +msgid "macaddr|ip[/cidr]<br />" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67 +msgid "minute" +msgstr "წუთი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:77 +msgid "net: (sub)net" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:75 +msgid "port: Port" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:415 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:68 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:151 +msgid "reject" +msgstr "უარყოფა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67 +msgid "second" +msgstr "წამი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:79 +msgid "set: ipset*" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:85 +msgid "src_Set: Source ipset*" +msgstr "" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:80 +msgid "src_ip: Source IP" +msgstr "src_ip: საწყისი IP" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:82 +msgid "src_mac: Source MAC addr" +msgstr "src_mac: საწყისი MAC-მის" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:83 +msgid "src_net: Source (sub)net" +msgstr "src_net: საწყისი (ქვე)ქსელი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:81 +msgid "src_port: Source Port" +msgstr "src_port: საწყისი პორტი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:86 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:65 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:78 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:56 +msgid "this device" +msgstr "ეს მოწყობილობა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:118 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:220 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:333 +msgid "this new zone" +msgstr "ახალი არე" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:353 +msgid "unlimited" +msgstr "შეუზღუდავი" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:250 +msgid "unspecified" +msgstr "არ მითითებულა" + +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:107 +#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/ipsets.js:166 +msgid "up to 65536 entries." +msgstr "65536 ჩანაწერამდე." + +#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:338 +msgid "valid firewall mark" +msgstr "" diff --git a/applications/luci-app-firewall/po/ro/firewall.po b/applications/luci-app-firewall/po/ro/firewall.po index fb6a46e32c..8f3c1819ab 100644 --- a/applications/luci-app-firewall/po/ro/firewall.po +++ b/applications/luci-app-firewall/po/ro/firewall.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2023-08-26 23:26+0000\n" +"PO-Revision-Date: 2023-09-02 13:20+0000\n" "Last-Translator: Simona Iacob <s@zp1.net>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsfirewall/ro/>\n" @@ -1370,6 +1370,8 @@ msgid "" "Zones from which reflection rules shall be created. If unset, only the " "destination zone is used." msgstr "" +"Zonele din care se creează reguli de reflecție. Dacă nu este setată, se " +"utilizează numai zona de destinație." #: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414 #: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:70 diff --git a/applications/luci-app-firewall/po/zh_Hans/firewall.po b/applications/luci-app-firewall/po/zh_Hans/firewall.po index 84477a56ea..09bbeb9f10 100644 --- a/applications/luci-app-firewall/po/zh_Hans/firewall.po +++ b/applications/luci-app-firewall/po/zh_Hans/firewall.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"PO-Revision-Date: 2023-07-27 06:17+0000\n" -"Last-Translator: Eric <hamburger2048@users.noreply.hosted.weblate.org>\n" +"PO-Revision-Date: 2023-09-02 17:29+0000\n" +"Last-Translator: MkQtS <MkQtS@users.noreply.hosted.weblate.org>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "openwrt/luciapplicationsfirewall/zh_Hans/>\n" "Language: zh_Hans\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:48 msgid "" @@ -1286,7 +1286,7 @@ msgstr "区域" msgid "" "Zones from which reflection rules shall be created. If unset, only the " "destination zone is used." -msgstr "应从中创建反射规则的区域。如威慑hi,将仅使用目标区域。" +msgstr "应从中创建反射规则的区域。若未设置,将仅使用目标区域。" #: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414 #: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:70 diff --git a/applications/luci-app-https-dns-proxy/Makefile b/applications/luci-app-https-dns-proxy/Makefile index 6661542eae..4ed8b88163 100644 --- a/applications/luci-app-https-dns-proxy/Makefile +++ b/applications/luci-app-https-dns-proxy/Makefile @@ -5,11 +5,11 @@ include $(TOPDIR)/rules.mk PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca> -PKG_VERSION:=2022-10-15-14 +PKG_VERSION:=2023-05-25-4 LUCI_TITLE:=DNS Over HTTPS Proxy Web UI LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy -LUCI_DEPENDS:=+luci-compat +luci-base +https-dns-proxy +LUCI_DEPENDS:=+luci-base +https-dns-proxy LUCI_PKGARCH:=all include ../../luci.mk diff --git a/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js b/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js new file mode 100644 index 0000000000..bdc99fcbda --- /dev/null +++ b/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js @@ -0,0 +1,436 @@ +// Copyright MOSSDeF, 2023 Stan Grishin <stangri@melmac.ca> +// This code wouldn't have been possible without help from: +// - [@stokito](https://github.com/stokito) +// - [@vsviridov](https://github.com/vsviridov) + +"require ui"; +"require rpc"; +"require uci"; +"require form"; +"require baseclass"; + +var pkg = { + get Name() { + return "https-dns-proxy"; + }, + get URL() { + return "https://docs.openwrt.melmac.net/" + pkg.Name + "/"; + }, + templateToRegexp: function (template) { + return RegExp( + "^" + + template + .split(/(\{\w+\})/g) + .map((part) => { + let placeholder = part.match(/^\{(\w+)\}$/); + if (placeholder) return `(?<${placeholder[1]}>.*?)`; + else return part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + }) + .join("") + + "$" + ); + }, +}; + +var getInitList = rpc.declare({ + object: "luci." + pkg.Name, + method: "getInitList", + params: ["name"], +}); + +var getInitStatus = rpc.declare({ + object: "luci." + pkg.Name, + method: "getInitStatus", + params: ["name"], +}); + +var getPlatformSupport = rpc.declare({ + object: "luci." + pkg.Name, + method: "getPlatformSupport", + params: ["name"], +}); + +var getProviders = rpc.declare({ + object: "luci." + pkg.Name, + method: "getProviders", + params: ["name"], +}); + +var getRuntime = rpc.declare({ + object: "luci." + pkg.Name, + method: "getRuntime", + params: ["name"], +}); + +var _setInitAction = rpc.declare({ + object: "luci." + pkg.Name, + method: "setInitAction", + params: ["name", "action"], + expect: { result: false }, +}); + +var RPC = { + listeners: [], + on: function (event, callback) { + var pair = { event: event, callback: callback }; + this.listeners.push(pair); + return function unsubscribe() { + this.listeners = this.listeners.filter(function (listener) { + return listener !== pair; + }); + }.bind(this); + }, + emit: function (event, data) { + this.listeners.forEach(function (listener) { + if (listener.event === event) { + listener.callback(data); + } + }); + }, + getInitList: function (name) { + getInitList(name).then( + function (result) { + this.emit("getInitList", result); + }.bind(this) + ); + }, + getInitStatus: function (name) { + getInitStatus(name).then( + function (result) { + this.emit("getInitStatus", result); + }.bind(this) + ); + }, + getPlatformSupport: function (name) { + getPlatformSupport(name).then( + function (result) { + this.emit("getPlatformSupport", result); + }.bind(this) + ); + }, + getProviders: function (name) { + getProviders(name).then( + function (result) { + this.emit("getProviders", result); + }.bind(this) + ); + }, + getRuntime: function (name) { + getRuntime(name).then( + function (result) { + this.emit("getRuntime", result); + }.bind(this) + ); + }, + setInitAction: function (name, action) { + _setInitAction(name, action).then( + function (result) { + this.emit("setInitAction", result); + }.bind(this) + ); + }, +}; + +var status = baseclass.extend({ + render: function () { + return Promise.all([ + L.resolveDefault(getInitStatus(pkg.Name), {}), + L.resolveDefault(getProviders(pkg.Name), {}), + L.resolveDefault(getRuntime(pkg.Name), {}), + ]).then(function (data) { + var text; + var reply = { + status: (data[0] && data[0][pkg.Name]) || { + enabled: null, + running: null, + force_dns_active: null, + version: null, + }, + providers: (data[1] && data[1][pkg.Name]) || { providers: [] }, + runtime: (data[2] && data[2][pkg.Name]) || { instances: [] }, + }; + reply.providers.sort(function (a, b) { + return _(a.title).localeCompare(_(b.title)); + }); + reply.providers.push({ + title: "Custom", + template: "{option}", + params: { option: { type: "text" } }, + }); + + var header = E("h2", {}, _("HTTPS DNS Proxy - Status")); + var statusTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Status") + ); + if (reply.status.version) { + if (reply.status.running) { + text = _("Version %s - Running.").format(reply.status.version); + if (reply.status.force_dns_active) { + text += "<br />" + _("Force DNS ports:"); + reply.status.force_dns_ports.forEach((element) => { + text += " " + element; + }); + text += "."; + } + } else { + if (reply.status.enabled) { + text = _("Version %s - Stopped.").format(reply.status.version); + } else { + text = _("Version %s - Stopped (Disabled).").format( + reply.status.version + ); + } + } + } else { + text = _("Not installed or not found"); + } + var statusText = E("div", {}, text); + var statusField = E("div", { class: "cbi-value-field" }, statusText); + var statusDiv = E("div", { class: "cbi-value" }, [ + statusTitle, + statusField, + ]); + + var instancesDiv = []; + if (reply.runtime.instances) { + var instancesTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Instances") + ); + text = _("See the %sREADME%s for details.").format( + '<a href="' + + pkg.URL + + '#a-word-about-default-routing " target="_blank">', + "</a>" + ); + var instancesDescr = E("div", { class: "cbi-value-description" }, ""); + + text = ""; + Object.values(reply.runtime.instances).forEach((element) => { + var resolver; + var address; + var port; + var name; + var option; + var found; + element.command.forEach((param, index, arr) => { + if (param === "-r") resolver = arr[index + 1]; + if (param === "-a") address = arr[index + 1]; + if (param === "-p") port = arr[index + 1]; + }); + resolver = resolver || "Unknown"; + address = address || "127.0.0.1"; + port = port || "Unknown"; + reply.providers.forEach((prov) => { + let regexp = pkg.templateToRegexp(prov.template); + if (!found && regexp.test(resolver)) { + found = true; + name = _(prov.title); + let match = resolver.match(regexp); + if (match[1] != null) { + if ( + prov.params && + prov.params.option && + prov.params.option.options + ) { + prov.params.option.options.forEach((opt) => { + if (opt.value === match[1]) option = _(opt.description); + }); + name += " (" + option + ")"; + } else { + if (match[1] != "") name += " (" + match[1] + ")"; + } + } + } + }); + if (address === "127.0.0.1") + text += _("%s%s%s proxy on port %s.%s").format( + "<strong>", + name, + "</strong>", + port, + "<br />" + ); + else + text += _("%s%s%s proxy at %s on port %s.%s").format( + "<strong>", + name, + "</strong>", + address, + port, + "<br />" + ); + }); + var instancesText = E("div", {}, text); + var instancesField = E("div", { class: "cbi-value-field" }, [ + instancesText, + instancesDescr, + ]); + instancesDiv = E("div", { class: "cbi-value" }, [ + instancesTitle, + instancesField, + ]); + } + + var btn_gap = E("span", {}, "  "); + var btn_gap_long = E( + "span", + {}, + "        " + ); + var btn_start = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Starting %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "start"); + }, + }, + _("Start") + ); + + var btn_action = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Restarting %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "restart"); + }, + }, + _("Restart") + ); + + var btn_stop = E( + "button", + { + class: "btn cbi-button cbi-button-reset", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Stopping %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "stop"); + }, + }, + _("Stop") + ); + + var btn_enable = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Enabling %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "enable"); + }, + }, + _("Enable") + ); + + var btn_disable = E( + "button", + { + class: "btn cbi-button cbi-button-reset", + disabled: true, + click: function (ev) { + ui.showModal(null, [ + E( + "p", + { class: "spinning" }, + _("Disabling %s service").format(pkg.Name) + ), + ]); + return RPC.setInitAction(pkg.Name, "disable"); + }, + }, + _("Disable") + ); + + if (reply.status.enabled) { + btn_enable.disabled = true; + btn_disable.disabled = false; + if (reply.status.running) { + btn_start.disabled = true; + btn_action.disabled = false; + btn_stop.disabled = false; + } else { + btn_start.disabled = false; + btn_action.disabled = true; + btn_stop.disabled = true; + } + } else { + btn_start.disabled = true; + btn_action.disabled = true; + btn_stop.disabled = true; + btn_enable.disabled = false; + btn_disable.disabled = true; + } + + var buttonsTitle = E( + "label", + { class: "cbi-value-title" }, + _("Service Control") + ); + var buttonsText = E("div", {}, [ + btn_start, + btn_gap, + btn_action, + btn_gap, + btn_stop, + btn_gap_long, + btn_enable, + btn_gap, + btn_disable, + ]); + var buttonsField = E("div", { class: "cbi-value-field" }, buttonsText); + var buttonsDiv = reply.status.version ? + E('div', {class: 'cbi-value'}, [ + buttonsTitle, + buttonsField, + ]) : ''; + return E("div", {}, [header, statusDiv, instancesDiv, buttonsDiv]); + }); + }, +}); + +RPC.on("setInitAction", function (reply) { + ui.hideModal(); + location.reload(); +}); + +return L.Class.extend({ + status: status, + getPlatformSupport: getPlatformSupport, + getProviders: getProviders, + getRuntime: getRuntime, +}); diff --git a/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js b/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js new file mode 100644 index 0000000000..a0d809cd32 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js @@ -0,0 +1,383 @@ +// Copyright 2023 MOSSDeF, Stan Grishin <stangri@melmac.ca> +// This code wouldn't have been possible without help from: +// - [@jow-](https://github.com/jow-) +// - [@stokito](https://github.com/stokito) +// - [@vsviridov](https://github.com/vsviridov) + +"use strict"; +"require form"; +"require rpc"; +"require uci"; +"require view"; +"require https-dns-proxy.status as hdp"; + +var pkg = { + get Name() { + return "https-dns-proxy"; + }, + get URL() { + return "https://docs.openwrt.melmac.net/" + pkg.Name + "/"; + }, + templateToRegexp: function (template) { + return RegExp( + "^" + + template + .split(/(\{\w+\})/g) + .map((part) => { + let placeholder = part.match(/^\{(\w+)\}$/); + if (placeholder) return `(?<${placeholder[1]}>.*?)`; + else return part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + }) + .join("") + + "$" + ); + }, + templateToResolver: function (template, args) { + return template.replace(/{(\w+)}/g, (_, v) => args[v]); + }, +}; + +return view.extend({ + load: function () { + return Promise.all([ + L.resolveDefault(hdp.getPlatformSupport(pkg.Name), {}), + L.resolveDefault(hdp.getProviders(pkg.Name), {}), + uci.load(pkg.Name), + uci.load("dhcp"), + ]); + }, + + render: function (data) { + var reply = { + platform: (data[0] && data[0][pkg.Name]) || { + http2_support: null, + http3_support: null, + }, + providers: (data[1] && data[1][pkg.Name]) || { providers: [] }, + }; + reply.providers.sort(function (a, b) { + return _(a.title).localeCompare(_(b.title)); + }); + reply.providers.push({ + title: "Custom", + template: "{option}", + params: { option: { type: "text" } }, + }); + + var status, m, s, o, p; + var text; + + status = new hdp.status(); + + m = new form.Map(pkg.Name, _("HTTPS DNS Proxy - Configuration")); + + s = m.section(form.NamedSection, "config", pkg.Name); + o = s.option( + form.ListValue, + "dnsmasq_config_update", + _("Update DNSMASQ Config on Start/Stop"), + _( + "If update option is selected, the %s'DNS forwardings' section of DHCP and DNS%s will be automatically updated to use selected DoH providers (%smore information%s)." + ).format( + '<a href="' + L.url("admin", "network", "dhcp") + '">', + "</a>", + '<a href="' + pkg.URL + "#default-settings" + '" target="_blank">', + "</a>" + ) + ); + o.value("*", _("Update all configs")); + var sections = uci.sections("dhcp", "dnsmasq"); + sections.forEach((element) => { + var description; + var key; + if (element[".name"] === uci.resolveSID("dhcp", element[".name"])) { + key = element[".index"]; + description = "dnsmasq[" + element[".index"] + "]"; + } else { + key = element[".name"]; + description = element[".name"]; + } + o.value(key, _("Update %s only").format(description)); + }); + o.value("-", _("Do not update configs")); + o.default = "*"; + + o = s.option( + form.ListValue, + "force_dns", + _("Force Router DNS"), + _("Forces Router DNS use on local devices, also known as DNS Hijacking.") + ); + o.value("0", _("Let local devices use their own DNS servers if set")); + o.value("1", _("Force Router DNS server to all local devices")); + o.default = "1"; + + o = s.option( + form.ListValue, + "canary_domains_icloud", + _("Canary Domains iCloud"), + _( + "Blocks access to iCloud Private Relay resolvers, forcing local devices to use router for DNS resolution (%smore information%s)." + ).format( + '<a href="' + pkg.URL + "#canary_domains_icloud" + '" target="_blank">', + "</a>" + ) + ); + o.value("0", _("Let local devices use iCloud Private Relay")); + o.value("1", _("Force Router DNS server to all local devices")); + o.depends("force_dns", "1"); + o.default = "1"; + + o = s.option( + form.ListValue, + "canary_domains_mozilla", + _("Canary Domains Mozilla"), + _( + "Blocks access to Mozilla Encrypted resolvers, forcing local devices to use router for DNS resolution (%smore information%s)." + ).format( + '<a href="' + + pkg.URL + + "#canary_domains_mozilla" + + '" target="_blank">', + "</a>" + ) + ); + o.value("0", _("Let local devices use Mozilla Private Relay")); + o.value("1", _("Force Router DNS server to all local devices")); + o.depends("force_dns", "1"); + o.default = "1"; + + text = ""; + if (!reply.platform.http2_support) + text += + _( + "Please note that %s is not supported on this system (%smore information%s)." + ).format( + "<i>HTTP/2</i>", + '<a href="' + pkg.URL + "#http2-support" + '" target="_blank">', + "</a>" + ) + "<br />"; + if (!reply.platform.http3_support) + text += + _( + "Please note that %s is not supported on this system (%smore information%s)." + ).format( + "<i>HTTP/3 (QUIC)</i>", + '<a href="' + pkg.URL + "#http3-quic-support" + '" target="_blank">', + "</a>" + ) + "<br />"; + + s = m.section( + form.GridSection, + "https-dns-proxy", + _("HTTPS DNS Proxy - Instances"), + text + ); + s.rowcolors = true; + s.sortable = true; + s.anonymous = true; + s.addremove = true; + + s.sectiontitle = (section_id) => { + var provText; + var found; + reply.providers.forEach((prov) => { + var option; + let regexp = pkg.templateToRegexp(prov.template); + let resolver = uci.get(pkg.Name, section_id, "resolver_url"); + resolver = resolver === undefined ? null : resolver; + if (!found && resolver && regexp.test(resolver)) { + found = true; + provText = _(prov.title); + let match = resolver.match(regexp); + if (match[1] != null) { + if ( + prov.params && + prov.params.option && + prov.params.option.options + ) { + prov.params.option.options.forEach((opt) => { + if (opt.value === match[1]) { + option = _(opt.description); + } + }); + provText += " (" + option + ")"; + } else { + if (match[1] !== "") provText += " (" + match[1] + ")"; + } + } + } + }); + return provText || _("Unknown"); + }; + + var _provider; + _provider = s.option(form.ListValue, "_provider", _("Provider")); + _provider.modalonly = true; + _provider.cfgvalue = function (section_id) { + let resolver = this.map.data.get( + this.map.config, + section_id, + "resolver_url" + ); + if (resolver === undefined || resolver === null) return null; + let found; + let ret; + reply.providers.forEach((prov, i) => { + let regexp = pkg.templateToRegexp(prov.template); + if (!found && regexp.test(resolver)) { + found = true; + ret = prov.template; + } + }); + return ret || ""; + }; + _provider.write = function (section_id, formvalue) { + uci.set(pkg.Name, section_id, "resolver_url", formvalue); + }; + + reply.providers.forEach((prov, i) => { + if (prov.http2_only && !reply.platform.http2_support) return; + if (prov.http3_only && !reply.platform.http3_support) return; + _provider.value(prov.template, _(prov.title)); + if ( + prov.params && + prov.params.option && + prov.params.option.type && + prov.params.option.type === "select" + ) { + let optName = prov.params.option.description || _("Parameter"); + var _paramList = s.option(form.ListValue, "_paramList_" + i, optName); + _paramList.template = prov.template; + _paramList.modalonly = true; + if (prov.params.option.default) { + _paramList.default = prov.params.option.default; + } + prov.params.option.options.forEach((opt) => { + let val = opt.value || ""; + let descr = opt.description || ""; + _paramList.value(val, descr); + }); + _paramList.depends("_provider", prov.template); + _paramList.write = function (section_id, formvalue) { + let template = this.map.data.get( + this.map.config, + section_id, + "resolver_url" + ); + if (_paramList.template !== template) return 0; + let resolver = pkg.templateToResolver(template, { + option: formvalue || "", + }); + uci.set(pkg.Name, section_id, "resolver_url", resolver); + }; + _paramList.remove = _paramList.write; + } else if ( + prov.params && + prov.params.option && + prov.params.option.type && + prov.params.option.type === "text" + ) { + let optName = prov.params.option.description || _("Parameter"); + var _paramText = s.option(form.Value, "_paramText_" + i, optName); + _paramText.template = prov.template; + _paramText.modalonly = true; + _paramText.depends("_provider", prov.template); + _paramText.optional = !( + prov.params.option.default && prov.params.option.default !== "" + ); + _paramText.cfgvalue = function (section_id) { + let resolver = this.map.data.get( + this.map.config, + section_id, + "resolver_url" + ); + if (resolver === undefined || resolver === null) return null; + let regexp = pkg.templateToRegexp(prov.template); + let match = resolver.match(regexp); + return (match && match[1]) || null; + }; + _paramText.write = function (section_id, formvalue) { + let template = this.map.data.get( + this.map.config, + section_id, + "resolver_url" + ); + if (_paramText.template !== template) return 0; + let resolver = pkg.templateToResolver(template, { + option: formvalue || "", + }); + uci.set(pkg.Name, section_id, "resolver_url", resolver); + }; + _paramText.remove = _paramText.write; + } + }); + + o = s.option(form.Value, "bootstrap_dns", _("Bootstrap DNS")); + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "listen_addr", _("Listen Address")); + o.datatype = "ipaddr"; + o.default = ""; + o.optional = true; + o.placeholder = "127.0.0.1"; + var n = 0; + o = s.option(form.Value, "listen_port", _("Listen Port")); + o.datatype = "port"; + o.default = ""; + o.optional = true; + o.placeholder = n + 5053; + o = s.option(form.Value, "user", _("Run As User")); + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "group", _("Run As Group")); + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "dscp_codepoint", _("DSCP Codepoint")); + o.datatype = "and(uinteger, range(0,63))"; + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "verbosity", _("Logging Verbosity")); + o.datatype = "and(uinteger, range(0,4))"; + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "logfile", _("Logging File Path")); + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "polling_interval", _("Polling Interval")); + o.datatype = "and(uinteger, range(5,3600))"; + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.Value, "proxy_server", _("Proxy Server")); + o.default = ""; + o.modalonly = true; + o.optional = true; + o = s.option(form.ListValue, "use_http1", _("Use HTTP/1")); + o.modalonly = true; + o.optional = true; + o.rmempty = true; + o.value("", _("Use negotiated HTTP version")); + o.value("1", _("Force use of HTTP/1")); + o.default = ""; + o = s.option( + form.ListValue, + "use_ipv6_resolvers_only", + _("Use IPv6 resolvers") + ); + o.modalonly = true; + o.optional = true; + o.rmempty = true; + o.value("", _("Use any family DNS resolvers")); + o.value("1", _("Force use of IPv6 DNS resolvers")); + o.default = ""; + + return Promise.all([status.render(), m.render()]); + }, +}); diff --git a/applications/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua b/applications/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua deleted file mode 100644 index f7122df478..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua +++ /dev/null @@ -1,27 +0,0 @@ -module("luci.controller.https-dns-proxy", package.seeall) -function index() - if nixio.fs.access("/etc/config/https-dns-proxy") then - entry({"admin", "services", "https-dns-proxy"}, cbi("https-dns-proxy"), _("DNS HTTPS Proxy")).acl_depends = { "luci-app-https-dns-proxy" } - entry({"admin", "services", "https-dns-proxy", "action"}, call("https_dns_proxy_action"), nil).leaf = true - end -end - -function https_dns_proxy_action(name) - local packageName = "https-dns-proxy" - local http = require "luci.http" - local sys = require "luci.sys" - local util = require "luci.util" - if name == "start" then - sys.init.start(packageName) - elseif name == "action" then - util.exec("/etc/init.d/" .. packageName .. " reload >/dev/null 2>&1") - elseif name == "stop" then - sys.init.stop(packageName) - elseif name == "enable" then - sys.init.enable(packageName) - elseif name == "disable" then - sys.init.disable(packageName) - end - http.prepare_content("text/plain") - http.write("0") -end diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns1.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns1.lua deleted file mode 100644 index 2fa9985592..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns1.lua +++ /dev/null @@ -1,8 +0,0 @@ -return{ - name="DnsCryptCa-DNS1", - label=_("DNSCrypt.ca (DNS1)"), - resolver_url="https://dns1.dnscrypt.ca:453/dns-query", - bootstrap_dns="45.76.37.222,185.112.145.13,93.95.226.53,2001:19f0:5001:185a:5400:ff:fe50:56d5", - help_link="https://dnscrypt.ca/", - help_link_text="dnscrypt.ca" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns2.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns2.lua deleted file mode 100644 index f31dd38a23..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns2.lua +++ /dev/null @@ -1,8 +0,0 @@ -return{ - name="DnsCryptCa-DNS2", - label=_("DNSCrypt.ca (DNS2)"), - resolver_url="https://dns2.dnscrypt.ca:453/dns-query", - bootstrap_dns="45.76.37.222,185.112.145.13,93.95.226.53,2001:19f0:5001:185a:5400:ff:fe50:56d5", - help_link="https://dnscrypt.ca/", - help_link_text="dnscrypt.ca" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.doh.lua deleted file mode 100644 index e3d8d1e11f..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.tiar.app", - label = _("Tiarap Public DNS - SG"), - resolver_url = "https://doh.tiar.app/dns-query", - bootstrap_dns = "174.138.21.128,2400:6180:0:d0::5f6e:4001", - help_link = "https://tiarap.org/", - help_link_text = "Tiarap.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.jp.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.jp.lua deleted file mode 100644 index 06885628c5..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.jp.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.tiar.jp", - label = _("Tiarap Public DNS - JP"), - resolver_url = "https://doh.tiar.jp/dns-query", - bootstrap_dns = "172.104.93.80,2400:8902::f03c:91ff:feda:c514", - help_link = "https://tiarap.org/", - help_link_text = "Tiarap.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.family.lua deleted file mode 100644 index dfe1af44c0..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "family.canadianshield.cira.ca", - label = _("CIRA Canadian Shield (Family)"), - resolver_url = "https://family.canadianshield.cira.ca/dns-query", - bootstrap_dns = "149.112.121.30,149.112.122.30,2620:10A:80BB::30,2620:10A:80BC::30", - help_link = "https://www.cira.ca/cybersecurity-services/canadian-shield/", - help_link_text = "CIRA Canadian Shield" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.private.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.private.lua deleted file mode 100644 index 5b37a9a4ca..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.private.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "private.canadianshield.cira.ca", - label = _("CIRA Canadian Shield (Private)"), - resolver_url = "https://private.canadianshield.cira.ca/dns-query", - bootstrap_dns = "149.112.121.10,149.112.122.10,2620:10A:80BB::10,2620:10A:80BC::10", - help_link = "https://www.cira.ca/cybersecurity-services/canadian-shield/", - help_link_text = "CIRA Canadian Shield" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.protected.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.protected.lua deleted file mode 100644 index 810f479bda..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.protected.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "protected.canadianshield.cira.ca", - label = _("CIRA Canadian Shield (Protected)"), - resolver_url = "https://protected.canadianshield.cira.ca/dns-query", - bootstrap_dns = "149.112.121.20,149.112.122.20,2620:10A:80BB::20,2620:10A:80BC::20", - help_link = "https://www.cira.ca/cybersecurity-services/canadian-shield/", - help_link_text = "CIRA Canadian Shield" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.lua deleted file mode 100644 index 3253cf49ea..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - name = "dns.digitale-gesellschaft.ch", - label = _("Digitale Gesellschaft - CH"), - resolver_url = "https://dns.digitale-gesellschaft.ch/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - http2_only = true, - help_link = "https://www.digitale-gesellschaft.ch/dns/", - help_link_text = "Digitale Gesellschaft" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.switch.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.switch.dns.lua deleted file mode 100644 index 9f0c594e0a..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.switch.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.switch.ch", - label = _("Switch DNS - CH"), - resolver_url = "https://dns.switch.ch/dns-query", - bootstrap_dns = "130.59.31.248,2001:620:0:ff::2", - help_link = "https://www.switch.ch/security/info/public-dns/", - help_link_text = "Switch.ch" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.360.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.360.doh.lua deleted file mode 100644 index f582a821ff..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.360.doh.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "doh.360.cn", - label = _("360 Secure DNS - CN"), - resolver_url = "https://doh.360.cn/dns-query", - bootstrap_dns = "101.226.4.6,218.30.118.6,123.125.81.6,140.207.198.6" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.edu.tsinghua.tuna.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.edu.tsinghua.tuna.dns.lua deleted file mode 100644 index 6e40de3b13..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.edu.tsinghua.tuna.dns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "dns.tuna.tsinghua.edu.cn", - label = _("Tsinghua University Secure DNS - CN"), - resolver_url = "https://dns.tuna.tsinghua.edu.cn:8443/dns-query", - bootstrap_dns = "208.67.222.222,208.67.220.220", -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.rubyfish.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.rubyfish.dns.lua deleted file mode 100644 index b64bd9ceb8..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.rubyfish.dns.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - name = "dns.rubyfish.cn", - label = _("rubyfish.cn"), - resolver_url = "https://dns.rubyfish.cn/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - http2_only = true -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/co.osxz.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/co.osxz.dns.lua deleted file mode 100644 index f54c912e7f..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/co.osxz.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.oszx.co", - label = _("OSZX DNS - UK"), - resolver_url = "https://dns.oszx.co/dns-query", - bootstrap_dns = "51.38.83.141,2001:41d0:801:2000::d64", - help_link = "https://dns.oszx.co/#mdoh", - help_link_text = "OSZX.co" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua deleted file mode 100644 index 0c2a4d8156..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns-family.adguard.com", - label = _("AdGuard (Family Protection)"), - resolver_url = "https://dns-family.adguard.com/dns-query", - bootstrap_dns = "176.103.130.132,176.103.130.134", - help_link = "https://adguard.com/en/adguard-dns/overview.html", - help_link_text = "AdGuard.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua deleted file mode 100644 index 79db2029dd..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.adguard.com", - label = _("AdGuard (Standard)"), - resolver_url = "https://dns.adguard.com/dns-query", - bootstrap_dns = "176.103.130.130,176.103.130.131", - help_link = "https://adguard.com/en/adguard-dns/overview.html", - help_link_text = "AdGuard.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.ahadns.blitz.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.ahadns.blitz.lua deleted file mode 100644 index 5a67fcbdb7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.ahadns.blitz.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "blitz.ahadns.com", - label = _("AhaDNS Blitz (Configurable)"), - resolver_url = "https://blitz.ahadns.com/", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blitz-setup.ahadns.com/", - help_link_text = "AhaDNS Blitz" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.alidns.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.alidns.dns.lua deleted file mode 100644 index 1654feab0b..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.alidns.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name="dns.alidns.com", - label=_("AliDNS - CN"), - resolver_url="https://dns.alidns.com/dns-query", - bootstrap_dns="223.5.5.5,223.6.6.6,2400:3200::1,2400:3200:baba::1", - help_link = "https://alidns.com/", - help_link_text = "AliDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-ch.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-ch.lua deleted file mode 100644 index 8e22f59bb2..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-ch.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-ch.blahdns.com", - label = _("BlahDNS - CH"), - resolver_url = "https://doh-ch.blahdns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blahdns.com/", - help_link_text = "BlahDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-de.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-de.lua deleted file mode 100644 index d252c521ac..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-de.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-de.blahdns.com", - label = _("BlahDNS - DE"), - resolver_url = "https://doh-de.blahdns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blahdns.com/", - help_link_text = "BlahDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-fi.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-fi.lua deleted file mode 100644 index 75f01ed17c..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-fi.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-fi.blahdns.com", - label = _("BlahDNS - FI"), - resolver_url = "https://doh-fi.blahdns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blahdns.com/", - help_link_text = "BlahDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-jp.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-jp.lua deleted file mode 100644 index 3cb783d42e..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-jp.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-jp.blahdns.com", - label = _("BlahDNS - JP"), - resolver_url = "https://doh-jp.blahdns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blahdns.com/", - help_link_text = "BlahDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-sg.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-sg.lua deleted file mode 100644 index 32b684d261..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-sg.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-sg.blahdns.com", - label = _("BlahDNS - SG"), - resolver_url = "https://doh-sg.blahdns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://blahdns.com/", - help_link_text = "BlahDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.family.lua deleted file mode 100644 index 69fe4d2d24..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "family.cloudflare-dns.com", - label = _("Cloudflare (Family Protection)"), - resolver_url = "https://family.cloudflare-dns.com/dns-query", - bootstrap_dns = "1.1.1.3,1.0.0.3,2606:4700:4700::1113,2606:4700:4700::1003", - help_link = "https://one.one.one.one/family/", - help_link_text = "Cloudflare.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua deleted file mode 100644 index eb78366ac2..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - name = "cloudflare-dns.com", - label = _("Cloudflare"), - resolver_url = "https://cloudflare-dns.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001", - help_link = "https://one.one.one.one/family/", - help_link_text = "Cloudflare.com", - default = true -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.security.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.security.lua deleted file mode 100644 index 3013305bd5..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.security.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "security.cloudflare-dns.com", - label = _("Cloudflare (Security Protection)"), - resolver_url = "https://security.cloudflare-dns.com/dns-query", - bootstrap_dns = "1.1.1.2,1.0.0.2,2606:4700:4700::1112,2606:4700:4700::1002", - help_link = "https://one.one.one.one/family/", - help_link_text = "Cloudflare.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.family.lua deleted file mode 100644 index e7d6ffda93..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "freedns.controld.com-family", - label = _("ControlD (Family)"), - resolver_url = "https://freedns.controld.com/family", - bootstrap_dns = "76.76.2.4,2606:1a40::4", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads-social.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads-social.lua deleted file mode 100644 index 4b8ee02729..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads-social.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "ControlD-Malware-Ads-Social", - label = _("ControlD (Block Malware + Ads + Social)"), - resolver_url = "https://freedns.controld.com/p3", - bootstrap_dns = "76.76.2.3,2606:1a40::3", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads.lua deleted file mode 100644 index 947ed59a1c..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "ControlD-Malware-Ads", - label = _("ControlD (Block Malware + Ads)"), - resolver_url = "https://freedns.controld.com/p2", - bootstrap_dns = "76.76.2.2,2606:1a40::2", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware.lua deleted file mode 100644 index 77f062b1b4..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "ControlD-Malware", - label = _("ControlD (Block Malware)"), - resolver_url = "https://freedns.controld.com/p1", - bootstrap_dns = "76.76.2.1,2606:1a40::1", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p0.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p0.lua deleted file mode 100644 index a520c9694f..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p0.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "freedns.controld.com-p0", - label = _("ControlD (Unfiltered)"), - resolver_url = "https://freedns.controld.com/p0", - bootstrap_dns = "76.76.2.0,2606:1a40::0", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p1.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p1.lua deleted file mode 100644 index eac144e92d..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p1.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "freedns.controld.com-p1", - label = _("ControlD (Block Malware)"), - resolver_url = "https://freedns.controld.com/p1", - bootstrap_dns = "76.76.2.1,2606:1a40::1", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p2.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p2.lua deleted file mode 100644 index 0e7c846a6a..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p2.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "freedns.controld.com-p2", - label = _("ControlD (Block Malware + Ads)"), - resolver_url = "https://freedns.controld.com/p2", - bootstrap_dns = "76.76.2.2,2606:1a40::2", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p3.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p3.lua deleted file mode 100644 index 0249678de0..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p3.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "freedns.controld.com-p3", - label = _("ControlD (Block Malware + Ads + Social)"), - resolver_url = "https://freedns.controld.com/p3", - bootstrap_dns = "76.76.2.3,2606:1a40::3", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.unfiltered.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.unfiltered.lua deleted file mode 100644 index d4128df343..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.unfiltered.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "ControlD-Unfiltered", - label = _("ControlD (Unfiltered)"), - resolver_url = "https://freedns.controld.com/p0", - bootstrap_dns = "76.76.2.0,2606:1a40::0", - help_link = "https://kb.controld.com/tutorials", - help_link_text = "ControlD" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.decloudus.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.decloudus.dns.lua deleted file mode 100644 index 1135c093d8..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.decloudus.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.decloudus.com", - label = _("DeCloudUs DNS"), - resolver_url = "https://dns.decloudus.com/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://decloudus.com/", - help_link_text = "DeCloudUs.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnsforfamily.dns-doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnsforfamily.dns-doh.lua deleted file mode 100644 index 41b63ffbd7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnsforfamily.dns-doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dnsforfamily", - label = _("DNS For Family"), - resolver_url = "https://dns-doh.dnsforfamily.com/dns-query", - bootstrap_dns = "94.130.180.225,78.47.64.161", - help_link = "https://dnsforfamily.com/#DNS_Servers_DNS_Over_HTTPS", - help_link_text = "DNSForFamily.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnslify.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnslify.doh.lua deleted file mode 100644 index e531bcc8d4..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnslify.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.dnslify.com", - label = _("DNSlify DNS"), - resolver_url = "https://doh.dnslify.com/dns-query", - bootstrap_dns = "185.235.81.1,185.235.81.2,2a0d:4d00:81::1,2a0d:4d00:81::2", - help_link = "https://www.dnslify.com/services/doh/", - help_link_text = "DNSlify.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.doh.lua deleted file mode 100644 index 16a833110f..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.opendns.com", - label = _("OpenDNS"), - resolver_url = "https://doh.opendns.com/dns-query", - bootstrap_dns = "208.67.222.222,208.67.220.220", - help_link = "https://support.opendns.com/hc/en-us/articles/360038086532-Using-DNS-over-HTTPS-DoH-with-OpenDNS", - help_link_text = "OpenDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.familyshield.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.familyshield.doh.lua deleted file mode 100644 index 8686d8c5f5..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.familyshield.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.familyshield.opendns.com", - label = _("OpenDNS (Family Shield)"), - resolver_url = "https://doh.familyshield.opendns.com/dns-query", - bootstrap_dns = "208.67.222.123,208.67.220.123", - help_link = "https://support.opendns.com/hc/en-us/articles/360038086532-Using-DNS-over-HTTPS-DoH-with-OpenDNS", - help_link_text = "OpenDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.pumplex.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.pumplex.dns.lua deleted file mode 100644 index b61630af26..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.pumplex.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.pumplex.com", - label = _("OSZX DNS (Pumplex)"), - resolver_url = "https://dns.pumplex.com/dns-query", - bootstrap_dns = "51.38.82.198,2001:41d0:801:2000::1b28", - help_link = "https://dns.oszx.co/#mdoh", - help_link_text = "OSZX.co" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.rethinkdns.basic.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.rethinkdns.basic.lua deleted file mode 100644 index 966ccd757a..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.rethinkdns.basic.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "basic.rethinkdns.com", - label = _("Rethink DNS (Configurable)"), - resolver_url = "https://basic.rethinkdns.com/", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://www.rethinkdns.com/configure", - help_link_text = "RethinkDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua deleted file mode 100644 index 5568fc7bbb..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "odvr.nic.cz", - label = _("ODVR (nic.cz)"), - resolver_url = "https://odvr.nic.cz/doh", - bootstrap_dns = "193.17.47.1,185.43.135.1,2001:148f:ffff::1,2001:148f:fffe::1", - help_link = "https://www.nic.cz/odvr/", - help_link_text = "nic.cz" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/de.dnsforge.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/de.dnsforge.lua deleted file mode 100644 index a6fe548fc1..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/de.dnsforge.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dnsforge.de", - label = _("DNS Forge - DE"), - resolver_url = "https://dnsforge.de/dns-query", - bootstrap_dns = "176.9.93.198,176.9.1.117,2a01:4f8:151:34aa::198,2a01:4f8:141:316d::117", - help_link = "https://dnsforge.de/", - help_link_text = "DNSForge.de" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/fi.lelux.resolver-eu.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/fi.lelux.resolver-eu.lua deleted file mode 100644 index 5954ea78cf..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/fi.lelux.resolver-eu.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "resolver-eu.lelux.fi", - label = _("Lelux DNS - FI"), - resolver_url = "https://resolver-eu.lelux.fi/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://lelux.fi/resolver/", - help_link_text = "Lelux.fi" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua deleted file mode 100644 index a23e9e5318..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "dns.google", - label = _("Google"), - resolver_url = "https://dns.google/dns-query", - bootstrap_dns = "8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua deleted file mode 100644 index 63e4290f00..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.libredns.gr-ads", - label = _("LibreDNS - GR (No Ads)"), - resolver_url = "https://doh.libredns.gr/ads", - bootstrap_dns = "116.202.176.26,1.1.1.1", - help_link = "https://libredns.gr/", - help_link_text = "LibreDNS.gr" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua deleted file mode 100644 index 67f9e5ffd7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.libredns.gr", - label = _("LibreDNS - GR"), - resolver_url = "https://doh.libredns.gr/dns-query", - bootstrap_dns = "116.202.176.26,1.1.1.1", - help_link = "https://libredns.gr/", - help_link_text = "LibreDNS.gr" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-family.lua deleted file mode 100644 index eecb562da7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns-family.adguard.com", - label = _("AdGuard (Family Protection)"), - resolver_url = "https://dns-family.adguard.com/dns-query", - bootstrap_dns = "94.140.14.140,94.140.14.141,2a10:50c0::1:ff,2a10:50c0::2:ff", - help_link = "https://adguard-dns.io/en/public-dns.html", - help_link_text = "AdGuard.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-nonfiltering.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-nonfiltering.lua deleted file mode 100644 index cfa938db83..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-nonfiltering.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns-unfiltered.adguard.com", - label = _("AdGuard (Non-filtering)"), - resolver_url = "https://dns-unfiltered.adguard.com/dns-query", - bootstrap_dns = "94.140.14.140,94.140.14.141,2a10:50c0::1:ff,2a10:50c0::2:ff", - help_link = "https://adguard-dns.io/en/public-dns.html", - help_link_text = "AdGuard.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns.lua deleted file mode 100644 index 90269504e0..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.adguard.com", - label = _("AdGuard (Standard)"), - resolver_url = "https://dns.adguard.com/dns-query", - bootstrap_dns = "94.140.14.140,94.140.14.141,2a10:50c0::1:ff,2a10:50c0::2:ff", - help_link = "https://adguard-dns.io/en/public-dns.html", - help_link_text = "AdGuard.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.nextdns.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.nextdns.dns.lua deleted file mode 100644 index 53aca92edd..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.nextdns.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.nextdns.io", - label = _("NextDNS.io (Configurable)"), - resolver_url = "https://dns.nextdns.io/", - bootstrap_dns = "45.90.28.49,45.90.30.49", - help_link = " https://my.nextdns.io", - help_link_text = "NextDNS.io" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.seby.doh-2.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.seby.doh-2.lua deleted file mode 100644 index 6746e50573..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.seby.doh-2.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh-2.seby.io", - label = _("Seby DNS - AU"), - resolver_url = "https://doh-2.seby.io/dns-query", - bootstrap_dns = "45.76.113.31,139.99.222.72", - help_link = "https://dns.seby.io/", - help_link_text = "Seby.io" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/jp.iij.dns.public.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/jp.iij.dns.public.lua deleted file mode 100644 index bd7660e116..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/jp.iij.dns.public.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "public.dns.iij.jp", - label = _("IIJ Public DNS - JP"), - resolver_url = "https://public.dns.iij.jp/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://www.iij.ad.jp/", - help_link_text = "IIJ.ad.jp" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/lu.restena.kaitain.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/lu.restena.kaitain.lua deleted file mode 100644 index 474a47bdaa..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/lu.restena.kaitain.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "kaitain.restena.lu", - label = _("Restena DNS - LU"), - resolver_url = "https://kaitain.restena.lu/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://www.restena.lu/en/service/public-dns-resolver", - help_link_text = "Restena.lu" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.au.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.au.doh.lua deleted file mode 100644 index 4105111cf9..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.au.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.au.ahadns.net", - label = _("AhaDNS - AU (Block Malware + Ads)"), - resolver_url = "https://doh.au.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.chi.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.chi.doh.lua deleted file mode 100644 index 382893edcc..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.chi.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.chi.ahadns.net", - label = _("AhaDNS - US/Chicago (Block Malware + Ads)"), - resolver_url = "https://doh.chi.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.es.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.es.doh.lua deleted file mode 100644 index 3ebbcc43c1..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.es.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.es.ahadns.net", - label = _("AhaDNS - ES (Block Malware + Ads)"), - resolver_url = "https://doh.es.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.in.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.in.doh.lua deleted file mode 100644 index c2a128e2fd..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.in.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.in.ahadns.net", - label = _("AhaDNS - IN (Block Malware + Ads)"), - resolver_url = "https://doh.in.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.it.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.it.doh.lua deleted file mode 100644 index 7c2d1a51c7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.it.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.it.ahadns.net", - label = _("AhaDNS - IT (Block Malware + Ads)"), - resolver_url = "https://doh.it.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.la.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.la.doh.lua deleted file mode 100644 index 7d643cfa24..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.la.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.la.ahadns.net", - label = _("AhaDNS - US/Los Angeles (Block Malware + Ads)"), - resolver_url = "https://doh.la.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.nl.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.nl.doh.lua deleted file mode 100644 index ce709d1520..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.nl.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.nl.ahadns.net", - label = _("AhaDNS - NL (Block Malware + Ads)"), - resolver_url = "https://doh.nl.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.no.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.no.doh.lua deleted file mode 100644 index d89ccfb572..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.no.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.no.ahadns.net", - label = _("AhaDNS - NO (Block Malware + Ads)"), - resolver_url = "https://doh.no.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.ny.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.ny.doh.lua deleted file mode 100644 index 6451ae9109..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.ny.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.ny.ahadns.net", - label = _("AhaDNS - US/New York (Block Malware + Ads)"), - resolver_url = "https://doh.ny.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.pl.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.pl.doh.lua deleted file mode 100644 index f5563a5937..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.pl.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.pl.ahadns.net", - label = _("AhaDNS - PL (Block Malware + Ads)"), - resolver_url = "https://doh.pl.ahadns.net/dns-query", - bootstrap_dns = "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", - help_link = "https://ahadns.com/dns-over-https/", - help_link_text = "AhaDNS.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.applied-privacy.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.applied-privacy.lua deleted file mode 100644 index 11f738cc48..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.applied-privacy.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.applied-privacy.net", - label = _("Applied Privacy DNS - AT/DE"), - resolver_url = "https://doh.applied-privacy.net/query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://applied-privacy.net/services/dns/", - help_link_text = "Applied-Privacy.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.cfiec.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.cfiec.dns.lua deleted file mode 100644 index d64f5c085a..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.cfiec.dns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "dns.cfiec.net", - label = _("CFIEC Public DNS (IPv6 Only)"), - resolver_url = "https://dns.cfiec.net/dns-query", - bootstrap_dns = "240C::6666,240C::6644" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ffmuc.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ffmuc.doh.lua deleted file mode 100644 index 83582082c0..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ffmuc.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.ffmuc.net", - label = _("FFMUC DNS - DE"), - resolver_url = "https://doh.ffmuc.net/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://ffmuc.net/wiki/doku.php?id=knb:dohdot", - help_link_text = "FFMUC.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.he.ordns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.he.ordns.lua deleted file mode 100644 index 24a4f40763..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.he.ordns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "ordns.he.net", - label = _("Hurricane Electric"), - resolver_url = "https://ordns.he.net/dns-query", - bootstrap_dns = "74.82.42.42,2001:470:20::2", - help_link = "https://forums.he.net/index.php?topic=3996.0", - help_link_text = "he.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.idnet.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.idnet.doh.lua deleted file mode 100644 index 9213b9988d..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.idnet.doh.lua +++ /dev/null @@ -1,6 +0,0 @@ -return{ - name = "doh.idnet.net", - label = _("IDNet.net - UK"), - resolver_url = "https://doh.idnet.net/dns-query", - bootstrap_dns = "212.69.36.23,212.69.40.23" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.adblocker.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.adblocker.lua deleted file mode 100644 index f5a37fa4a8..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.adblocker.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - name="adblock.doh.mullvad.net", - label=_("Mullvad (AdBlock)"), - resolver_url="https://adblock.doh.mullvad.net/dns-query", - bootstrap_dns="1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link="https://mullvad.net/en/help/dns-over-https-and-dns-over-tls/", - help_link_text="Mullvad.net", - http2_only = true -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.lua deleted file mode 100644 index 2857f642d2..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - name="doh.mullvad.net", - label=_("Mullvad"), - resolver_url="https://doh.mullvad.net/dns-query", - bootstrap_dns="1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link="https://mullvad.net/en/help/dns-over-https-and-dns-over-tls/", - help_link_text="Mullvad.net", - http2_only = true -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua deleted file mode 100644 index c627be3d68..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.quad9.net", - label = _("Quad 9 (Recommended)"), - resolver_url = "https://dns.quad9.net/dns-query", - bootstrap_dns = "9.9.9.9,149.112.112.112,2620:fe::fe,2620:fe::9", - help_link = "https://www.quad9.net/doh-quad9-dns-servers/", - help_link_text = "Quad9.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua deleted file mode 100644 index 7abbdc4efc..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns10.quad9.net", - label = _("Quad 9 (Unsecured)"), - resolver_url = "https://dns10.quad9.net/dns-query", - bootstrap_dns = "9.9.9.10,149.112.112.10,2620:fe::10,2620:fe::fe:10", - help_link = "https://www.quad9.net/doh-quad9-dns-servers/", - help_link_text = "Quad9.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua deleted file mode 100644 index 7e7dcdd56c..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns11.quad9.net", - label = _("Quad 9 (Secured with ECS Support)"), - resolver_url = "https://dns11.quad9.net/dns-query", - bootstrap_dns = "9.9.9.11,149.112.112.11,2620:fe::11,2620:fe::fe:11", - help_link = "https://www.quad9.net/doh-quad9-dns-servers/", - help_link_text = "Quad9.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua deleted file mode 100644 index 6c2994ab41..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns9.quad9.net", - label = _("Quad 9 (Secured)"), - resolver_url = "https://dns9.quad9.net/dns-query", - bootstrap_dns = "9.9.9.9,149.112.112.9,2620:fe::fe,2620:fe::9", - help_link = "https://www.quad9.net/doh-quad9-dns-servers/", - help_link_text = "Quad9.net" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.dns.lua deleted file mode 100644 index fe42ae3014..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.dns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "dns.comss.one", - label = _("Comss.ru DNS (West)"), - resolver_url = "https://dns.comss.one/dns-query", - bootstrap_dns = "92.38.152.163,93.115.24.204,2a03:90c0:56::1a5,2a02:7b40:5eb0:e95d::1" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.east.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.east.dns.lua deleted file mode 100644 index 9aff7f23df..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.east.dns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - name = "dns.east.comss.one", - label = _("Comss.ru DNS (East)"), - resolver_url = "https://dns.east.comss.one/dns-query", - bootstrap_dns = "92.223.109.31,91.230.211.67,2a03:90c0:b5::1a,2a04:2fc0:39::47" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua deleted file mode 100644 index 09b3e250b7..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.cleanbrowsing.org-doh-adult-filter", - label = _("CleanBrowsing (Adult Filter)"), - resolver_url = "https://doh.cleanbrowsing.org/doh/adult-filter/", - bootstrap_dns = "185.228.168.168,1.1.1.1", - help_link = "https://cleanbrowsing.org/guides/dnsoverhttps", - help_link_text = "CleanBrowsing.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua deleted file mode 100644 index cd55277978..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.cleanbrowsing.org-doh-family-filter", - label = _("CleanBrowsing (Family Filter)"), - resolver_url = "https://doh.cleanbrowsing.org/doh/family-filter/", - bootstrap_dns = "185.228.168.168,1.1.1.1", - help_link = "https://cleanbrowsing.org/guides/dnsoverhttps", - help_link_text = "CleanBrowsing.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua deleted file mode 100644 index 339a0c2361..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "doh.cleanbrowsing.org-doh-security-filter", - label = _("CleanBrowsing (Security Filter)"), - resolver_url = "https://doh.cleanbrowsing.org/doh/security-filter/", - bootstrap_dns = "185.228.168.168,1.1.1.1", - help_link = "https://cleanbrowsing.org/guides/dnsoverhttps", - help_link_text = "CleanBrowsing.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.snopyta.dns.doh.fi.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.snopyta.dns.doh.fi.lua deleted file mode 100644 index b89b27da91..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.snopyta.dns.doh.fi.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "fi.doh.dns.snopyta.org", - label = _("Snopyta DNS - FI"), - resolver_url = "https://fi.doh.dns.snopyta.org/dns-query", - bootstrap_dns = "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", - help_link = "https://snopyta.org/service/dns/", - help_link_text = "Snopyta.org" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/pub.doh.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/pub.doh.lua deleted file mode 100644 index 1dfee88707..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/pub.doh.lua +++ /dev/null @@ -1,8 +0,0 @@ -return{ - name = "doh.pub", - label = _("DNSPod Public DNS - CN"), - resolver_url = "https://doh.pub/dns-query", - bootstrap_dns = "119.29.29.29,119.28.28.28", - help_link = "https://www.dnspod.com/Products/Public.DNS", - help_link_text = "DNSPod.com" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/sb.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/sb.dns.lua deleted file mode 100644 index 5b23d3dd46..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/sb.dns.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - name = "doh.dns.sb", - label = _("DNS.SB"), - resolver_url = "https://doh.dns.sb/dns-query", - bootstrap_dns = "185.222.222.222,185.184.222.222", - http2_only = true, - help_link = "https://dns.sb/doh/", - help_link_text = "DNS.sb" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/tw.twnic.dns.lua b/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/tw.twnic.dns.lua deleted file mode 100644 index 628dd8be57..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/tw.twnic.dns.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - name = "dns.twnic.tw", - label = _("Quad 101 - TW"), - resolver_url = "https://dns.twnic.tw/dns-query", - bootstrap_dns = "101.101.101.101,101.102.103.104,2001:de4::101,2001:de4::102", - help_link = "https://blog.twnic.tw/2018/12/28/1803/", - help_link_text = "TWNIC.tw" -} diff --git a/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua b/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua deleted file mode 100644 index 8fa613a3d5..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua +++ /dev/null @@ -1,212 +0,0 @@ -local sys = require "luci.sys" -local util = require "luci.util" -local fs = require "nixio.fs" -local dispatcher = require "luci.dispatcher" -local i18n = require "luci.i18n" -local uci = require("luci.model.uci").cursor() - -local packageName = "https-dns-proxy" -local readmeURL = "https://docs.openwrt.melmac.net/" .. packageName .. "/" -local providers_dir = "/usr/lib/lua/luci/" .. packageName .. "/providers/" -local helperText = "" -local http2Supported = false - -function getPackageVersion() - local opkgFile = "/usr/lib/opkg/status" - local line - local flag = false - for line in io.lines(opkgFile) do - if flag then - return line:match('[%d%.$-]+') or "" - elseif line:find("Package: " .. packageName:gsub("%-", "%%%-")) then - flag = true - end - end - return "" -end - -function createHelperText() - local initText = translate("For more information on different options check") .. " " - for filename in fs.dir(providers_dir) do - local p_func = loadfile(providers_dir .. filename) - setfenv(p_func, { _ = i18n.translate }) - local p = p_func() - if p.help_link and (not p.http2_only or http2Supported) then - local url, domain - url = p.help_link - domain = p.help_link_text or url:match('^%w+://([^/]+)') - if not helperText:find(domain) then - if helperText == "" then - helperText = initText - else - helperText = helperText .. ", " - end - helperText = helperText .. [[<a href="]] .. url .. [[" target="_blank">]] .. domain .. [[</a>]] - end - end - end - if helperText ~= "" then - local a = helperText:gsub('(.*),%s.*$', '%1') - helperText = a .. " " .. translate("and") .. helperText:sub(#a + 2) .. "." - end -end - -function getProviderName(value) - for filename in fs.dir(providers_dir) do - local p_func = loadfile(providers_dir .. filename) - setfenv(p_func, { _ = i18n.translate }) - local p = p_func() - value = value:gsub('[%p%c%s]', '') - p.url_match = p.resolver_url:gsub('[%p%c%s]', '') - if value:match(p.url_match) then - return p.label - end - end - return translate("Unknown Provider") -end - -local packageStatus, packageStatusCode -local ubusStatus = util.ubus("service", "list", { name = packageName }) -local packageVersion = getPackageVersion() - -if packageVersion == "" then - packageStatusCode, packageStatus = -1, translatef("%s is not installed or not found", packageName) -else - packageStatusCode, packageStatus = 1, "" - for n = 1,20 do - if ubusStatus and ubusStatus[packageName] and - ubusStatus[packageName]["instances"] and - ubusStatus[packageName]["instances"]["instance" .. n] and - ubusStatus[packageName]["instances"]["instance" .. n]["running"] then - local value, k, v, url, url_flag, la, la_flag, lp, lp_flag - for k, v in pairs(ubusStatus[packageName]["instances"]["instance" .. n]["command"]) do - if la_flag then la, la_flag = v, false end - if lp_flag then lp, lp_flag = v, false end - if url_flag then url, url_flag = v, false end - if v == "-a" then la_flag = true end - if v == "-p" then lp_flag = true end - if v == "-r" then url_flag = true end - end - la = la or "127.0.0.1" - lp = lp or n + 5053 - packageStatus = packageStatus .. translatef("%s DoH at %s:%s", getProviderName(url), la, lp) .. "\n" - else - break - end - end - if packageStatus == "" then - packageStatusCode = 0 - packageStatus = translate("Stopped") - if not sys.init.enabled(packageName) then - packageStatus = packageStatus .. " (" .. translate("disabled") .. ")" - end - end -end - -if sys.call("grep -q 'Provides: libnghttp2' /usr/lib/opkg/status") == 0 then - http2Supported = true -end - -m = Map("https-dns-proxy", translate("DNS HTTPS Proxy Settings")) - -h = m:section(TypedSection, "_dummy", translatef("Service Status [%s %s]", packageName, packageVersion)) -h.template = "cbi/nullsection" -ss = h:option(DummyValue, "_dummy", translate("Service Status")) -ss.template = packageName .. "/status" -ss.value = packageStatus -if packageStatusCode ~= -1 then - buttons = h:option(DummyValue, "_dummy", translate("Service Control")) - buttons.template = packageName .. "/buttons" -end - -c = m:section(NamedSection, "config", "https-dns-proxy", translate("Configuration")) -d1 = c:option(ListValue, "dnsmasq_config_update", translate("Update DNSMASQ Config on Start/Stop"), translatef("If update option is selected, the 'DNS forwardings' section of %sDHCP and DNS%s will be automatically updated to use selected DoH providers (%smore information%s).", "<a href=\"" .. dispatcher.build_url("admin/network/dhcp") .. "\">", "</a>", "<a href=\"" .. readmeURL .. "#default-settings" .. "\" target=\"_blank\">", "</a>")) -d1:value('*', translate("Update all configs")) -local dnsmasq_num = 0 -uci:foreach("dhcp", "dnsmasq", function(s) -d1:value(tostring(dnsmasq_num), translatef("Update %s config", "dhcp.@dnsmasq[" .. tostring(dnsmasq_num) .. "]")) -dnsmasq_num = dnsmasq_num + 1 -end) -d1:value('-', translate("Do not update configs")) -d1.default = '*' -f1 = c:option(ListValue, "force_dns", translate("Force Router DNS"), translate("Forces Router DNS use on local devices, also known as DNS Hijacking.")) -f1:value("0", translate("Let local devices use their own DNS servers if set")) -f1:value("1", translate("Force Router DNS server to all local devices")) -f1.default = "1" -cdi = c:option(ListValue, "canary_domains_icloud", translate("Canary Domains iCloud"), translatef("Blocks access to iCloud Private Relay resolvers, forcing local devices to use router for DNS resolution (%smore information%s).", "<a href=\"" .. readmeURL .. "#canary_domains_icloud" .. "\" target=\"_blank\">", "</a>")) -cdi:value("0", translate("Let local devices use iCloud Private Relay")) -cdi:value("1", translate("Force Router DNS server to all local devices")) -cdi:depends({force_dns="1"}) -cdi.default = "1" -cdm = c:option(ListValue, "canary_domains_mozilla", translate("Canary Domains Mozilla"), translatef("Blocks access to Mozilla resolvers, forcing local devices to use router for DNS resolution (%smore information%s).", "<a href=\"" .. readmeURL .. "#canary_domains_mozilla" .. "\" target=\"_blank\">", "</a>")) -cdm:value("0", translate("Let local devices use Mozilla resolvers")) -cdm:value("1", translate("Force Router DNS server to all local devices")) -cdm:depends({force_dns="1"}) -cdm.default = "1" - -createHelperText() -s3 = m:section(TypedSection, "https-dns-proxy", translate("Instances"), - helperText) -s3.template = "cbi/tblsection" -s3.sortable = false -s3.anonymous = true -s3.addremove = true - -prov = s3:option(ListValue, "resolver_url", translate("Resolver")) -for filename in fs.dir(providers_dir) do - local p_func = loadfile(providers_dir .. filename) - setfenv(p_func, { _ = i18n.translate }) - local p = p_func() - if not p.http2_only or http2Supported then - prov:value(p.resolver_url, p.label) - end - if p.default then - prov.default = p.resolver_url - end -end -prov.forcewrite = true -prov.write = function(self, section, value) - if not value then return end - for filename in fs.dir(providers_dir) do - local p_func = loadfile(providers_dir .. filename) - setfenv(p_func, { _ = i18n.translate }) - local p = p_func() - value = value:gsub('[%p%c%s]', '') - p.url_match = p.resolver_url:gsub('[%p%c%s]', '') - if value:match(p.url_match) then - if p.bootstrap_dns then - uci:set(packageName, section, "bootstrap_dns", p.bootstrap_dns) - end - if p.resolver_url then - uci:set(packageName, section, "resolver_url", p.resolver_url) - end - end - end - uci:save(packageName) -end - -la = s3:option(Value, "listen_addr", translate("Listen Address")) -la.datatype = "host" -la.placeholder = "127.0.0.1" -la.rmempty = true - -local n = 0 -uci:foreach(packageName, packageName, function(s) - if s[".name"] == section then - return false - end - n = n + 1 -end) - -lp = s3:option(Value, "listen_port", translate("Listen Port")) -lp.datatype = "port" -lp.value = n + 5053 - -dscp = s3:option(Value, "dscp_codepoint", translate("DSCP Codepoint")) -dscp.datatype = "range(0,63)" -dscp.rmempty = true - -ps = s3:option(Value, "proxy_server", translate("Proxy Server")) -ps.rmempty = true - -return m diff --git a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm b/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm deleted file mode 100644 index 6fd7ebd355..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm +++ /dev/null @@ -1,75 +0,0 @@ -<%# Copyright 2020 Stan Grishin <stangri@melmac.ca> -%> - -<%+https-dns-proxy/css%> -<%+https-dns-proxy/js%> - -<%- - local packageName = "https-dns-proxy" - local serviceRunning, serviceEnabled = false, false; - - serviceEnabled = luci.sys.init.enabled(packageName) - local ubusStatus = luci.util.ubus("service", "list", { name = packageName }) - if ubusStatus and ubusStatus[packageName] then - serviceRunning = true - end - - if serviceEnabled then - btn_start_status = true - btn_action_status = true - btn_stop_status = true - btn_enable_status = false - btn_disable_status = true - else - btn_start_status = false - btn_action_status = false - btn_stop_status = false - btn_enable_status = true - btn_disable_status = false - end - if serviceRunning then - btn_start_status = false - btn_action_status = true - btn_stop_status = true - else - btn_action_status = false - btn_stop_status = false - end --%> - -<%+cbi/valueheader%> - <input type="button" class="btn cbi-button cbi-button-apply" id="btn_start" name="start" value="<%:Start%>" - onclick="button_action(this)" /> - <span id="btn_start_spinner" class="btn_spinner"></span> - <input type="button" class="btn cbi-button cbi-button-apply" id="btn_action" name="action" value="<%:Reload%>" - onclick="button_action(this)" /> - <span id="btn_action_spinner" class="btn_spinner"></span> - <input type="button" class="btn cbi-button cbi-button-reset" id="btn_stop" name="stop" value="<%:Stop%>" - onclick="button_action(this)" /> - <span id="btn_stop_spinner" class="btn_spinner"></span> -   -   -   -   - <input type="button" class="btn cbi-button cbi-button-apply" id="btn_enable" name="enable" value="<%:Enable%>" - onclick="button_action(this)" /> - <span id="btn_enable_spinner" class="btn_spinner"></span> - <input type="button" class="btn cbi-button cbi-button-reset" id="btn_disable" name="disable" value="<%:Disable%>" - onclick="button_action(this)" /> - <span id="btn_disable_spinner" class="btn_spinner"></span> -<%+cbi/valuefooter%> - -<%-if not btn_start_status then%> -<script type="text/javascript">document.getElementById("btn_start").disabled = true;</script> -<%-end%> -<%-if not btn_action_status then%> -<script type="text/javascript">document.getElementById("btn_action").disabled = true;</script> -<%-end%> -<%-if not btn_stop_status then%> -<script type="text/javascript">document.getElementById("btn_stop").disabled = true;</script> -<%-end%> -<%-if not btn_enable_status then%> -<script type="text/javascript">document.getElementById("btn_enable").disabled = true;</script> -<%-end%> -<%-if not btn_disable_status then%> -<script type="text/javascript">document.getElementById("btn_disable").disabled = true;</script> -<%-end%> diff --git a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/css.htm b/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/css.htm deleted file mode 100644 index 6fb3d51d3b..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/css.htm +++ /dev/null @@ -1,9 +0,0 @@ -<style type="text/css"> - .btn_spinner - { - display: inline-block; - width: 0px; - height: 16px; - margin: 0 0px; - } -</style> diff --git a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm b/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm deleted file mode 100644 index fac92a3925..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm +++ /dev/null @@ -1,60 +0,0 @@ - -<script type="text/javascript"> -//<![CDATA[ - function button_action(action) { - var xhr = new XHR(false); - var btn_start = document.getElementById("btn_start"); - var btn_action = document.getElementById("btn_action"); - var btn_stop = document.getElementById("btn_stop"); - var btn_enable = document.getElementById("btn_enable"); - var btn_disable = document.getElementById("btn_disable"); - var btn_spinner; - switch (action.name) { - case "start": - btn_spinner = document.getElementById("btn_start_spinner"); - break; - case "action": - btn_spinner = document.getElementById("btn_action_spinner"); - break; - case "stop": - btn_spinner = document.getElementById("btn_stop_spinner"); - break; - case "enable": - btn_spinner = document.getElementById("btn_enable_spinner"); - break; - case "disable": - btn_spinner = document.getElementById("btn_disable_spinner"); - break; - } - btn_start.disabled = true; - btn_action.disabled = true; - btn_stop.disabled = true; - btn_enable.disabled = true; - btn_disable.disabled = true; - spinner(btn_spinner, 1); - xhr.get('<%=luci.dispatcher.build_url("admin", "services", "https-dns-proxy", "action")%>/' + action.name, null, - function (x) { - if (!x) { - return; - } - btn_start.disabled = false; - btn_action.disabled = false; - btn_stop.disabled = false; - btn_enable.disabled = false; - btn_disable.disabled = false; - spinner(btn_spinner, 0); - location.reload(); - }); -} -function spinner(element, state) { - if (state === 1) { - element.style.width = "16px"; - element.innerHTML = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" />'; - } - else { - element.style.width = "0px"; - element.innerHTML = ''; - } -} -//]]> -</script> diff --git a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status-textarea.htm b/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status-textarea.htm deleted file mode 100644 index 3840cd19d4..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status-textarea.htm +++ /dev/null @@ -1,13 +0,0 @@ -<%# -Copyright 2017-2019 Stan Grishin (stangri@melmac.net) -This is free software, licensed under the Apache License, Version 2.0 --%> - -<%+cbi/valueheader%> - -<textarea rows="<%=select(2, self:cfgvalue(section):gsub('\n', ''))%>" - style="border:none;box-shadow:none;background:transparent;font-weight:bold;line-height:20px;width:50em;padding:none;margin:6px;resize:none;overflow:hidden;" - disabled="disabled"><%=self:cfgvalue(section)%> -</textarea> - -<%+cbi/valuefooter%> diff --git a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status.htm b/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status.htm deleted file mode 100644 index b02c7faa82..0000000000 --- a/applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status.htm +++ /dev/null @@ -1,12 +0,0 @@ -<%# -Copyright 2017-2018 Dirk Brenken (dev@brenken.org) -This is free software, licensed under the Apache License, Version 2.0 --%> - -<%+cbi/valueheader%> - -<div style="font-weight:bold;"> - <%=self:cfgvalue(section):gsub('\n', '<br />' )%> -</div> - -<%+cbi/valuefooter%> diff --git a/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot b/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot index 13ad80e724..f2019142fb 100644 --- a/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot +++ b/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot @@ -1,493 +1,258 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:92 -msgid "%s DoH at %s:%s" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:258 +msgid "%s%s%s proxy at %s on port %s.%s" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:73 -msgid "%s is not installed or not found" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:250 +msgid "%s%s%s proxy on port %s.%s" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.360.doh.lua:3 -msgid "360 Secure DNS - CN" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-family.lua:3 -msgid "AdGuard (Family Protection)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns-nonfiltering.lua:3 -msgid "AdGuard (Non-filtering)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.adguard-dns.dns.lua:3 -msgid "AdGuard (Standard)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.au.doh.lua:3 -msgid "AhaDNS - AU (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.es.doh.lua:3 -msgid "AhaDNS - ES (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.in.doh.lua:3 -msgid "AhaDNS - IN (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.it.doh.lua:3 -msgid "AhaDNS - IT (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.nl.doh.lua:3 -msgid "AhaDNS - NL (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.no.doh.lua:3 -msgid "AhaDNS - NO (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.pl.doh.lua:3 -msgid "AhaDNS - PL (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.chi.doh.lua:3 -msgid "AhaDNS - US/Chicago (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.la.doh.lua:3 -msgid "AhaDNS - US/Los Angeles (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ahadns.ny.doh.lua:3 -msgid "AhaDNS - US/New York (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.ahadns.blitz.lua:3 -msgid "AhaDNS Blitz (Configurable)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.alidns.dns.lua:3 -msgid "AliDNS - CN" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.applied-privacy.lua:3 -msgid "Applied Privacy DNS - AT/DE" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-ch.lua:3 -msgid "BlahDNS - CH" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-de.lua:3 -msgid "BlahDNS - DE" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-fi.lua:3 -msgid "BlahDNS - FI" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-jp.lua:3 -msgid "BlahDNS - JP" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.blahdns.doh-sg.lua:3 -msgid "BlahDNS - SG" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:141 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:136 msgid "" -"Blocks access to Mozilla resolvers, forcing local devices to use router for " -"DNS resolution (%smore information%s)." +"Blocks access to Mozilla Encrypted resolvers, forcing local devices to use " +"router for DNS resolution (%smore information%s)." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:136 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:120 msgid "" "Blocks access to iCloud Private Relay resolvers, forcing local devices to " "use router for DNS resolution (%smore information%s)." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.cfiec.dns.lua:3 -msgid "CFIEC Public DNS (IPv6 Only)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:316 +msgid "Bootstrap DNS" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.family.lua:3 -msgid "CIRA Canadian Shield (Family)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.private.lua:3 -msgid "CIRA Canadian Shield (Private)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ca.cira.canadianshield.protected.lua:3 -msgid "CIRA Canadian Shield (Protected)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:141 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:134 msgid "Canary Domains Mozilla" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:136 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:118 msgid "Canary Domains iCloud" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua:3 -msgid "CleanBrowsing (Adult Filter)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua:3 -msgid "CleanBrowsing (Family Filter)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua:3 -msgid "CleanBrowsing (Security Filter)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua:3 -msgid "Cloudflare" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.family.lua:3 -msgid "Cloudflare (Family Protection)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.security.lua:3 -msgid "Cloudflare (Security Protection)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.east.dns.lua:3 -msgid "Comss.ru DNS (East)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/one.comss.dns.lua:3 -msgid "Comss.ru DNS (West)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:122 -msgid "Configuration" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads-social.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p3.lua:3 -msgid "ControlD (Block Malware + Ads + Social)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware-ads.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p2.lua:3 -msgid "ControlD (Block Malware + Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.malware.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p1.lua:3 -msgid "ControlD (Block Malware)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.family.lua:3 -msgid "ControlD (Family)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.p0.lua:3 -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.controld.freedns.unfiltered.lua:3 -msgid "ControlD (Unfiltered)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnsforfamily.dns-doh.lua:3 -msgid "DNS For Family" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/de.dnsforge.lua:3 -msgid "DNS Forge - DE" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua:4 -msgid "DNS HTTPS Proxy" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:110 -msgid "DNS HTTPS Proxy Settings" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/sb.dns.lua:3 -msgid "DNS.SB" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns1.lua:3 -msgid "DNSCrypt.ca (DNS1)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ca.dnscrypt.dns2.lua:3 -msgid "DNSCrypt.ca (DNS2)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/pub.doh.lua:3 -msgid "DNSPod Public DNS - CN" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.dnslify.doh.lua:3 -msgid "DNSlify DNS" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:205 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:339 msgid "DSCP Codepoint" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.decloudus.dns.lua:3 -msgid "DeCloudUs DNS" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.lua:3 -msgid "Digitale Gesellschaft - CH" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:376 +msgid "Disable" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:56 -msgid "Disable" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:370 +msgid "Disabling %s service" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:130 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:102 msgid "Do not update configs" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:53 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:357 msgid "Enable" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.ffmuc.doh.lua:3 -msgid "FFMUC DNS - DE" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:351 +msgid "Enabling %s service" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:29 -msgid "For more information on different options check" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:171 +msgid "Force DNS ports:" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:132 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:108 msgid "Force Router DNS" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:134 -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:138 -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:143 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:112 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:127 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:146 msgid "Force Router DNS server to all local devices" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:132 -msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:367 +msgid "Force use of HTTP/1" +msgstr "" + +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:378 +msgid "Force use of IPv6 DNS resolvers" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua:3 -msgid "Google" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:109 +msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." msgstr "" #: applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json:3 msgid "Grant UCI and file access for luci-app-https-dns-proxy" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.he.ordns.lua:3 -msgid "Hurricane Electric" +#: applications/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json:3 +msgid "HTTPS DNS Proxy" +msgstr "" + +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:72 +msgid "HTTPS DNS Proxy - Configuration" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.idnet.doh.lua:3 -msgid "IDNet.net - UK" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:173 +msgid "HTTPS DNS Proxy - Instances" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/jp.iij.dns.public.lua:3 -msgid "IIJ Public DNS - JP" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:161 +msgid "HTTPS DNS Proxy - Status" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:123 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:80 msgid "" -"If update option is selected, the 'DNS forwardings' section of %sDHCP and " +"If update option is selected, the %s'DNS forwardings' section of DHCP and " "DNS%s will be automatically updated to use selected DoH providers (%smore " "information%s)." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:148 -msgid "Instances" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/fi.lelux.resolver-eu.lua:3 -msgid "Lelux DNS - FI" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:145 +msgid "Let local devices use Mozilla Private Relay" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:142 -msgid "Let local devices use Mozilla resolvers" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:137 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:126 msgid "Let local devices use iCloud Private Relay" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:133 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:111 msgid "Let local devices use their own DNS servers if set" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua:3 -msgid "LibreDNS - GR" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua:3 -msgid "LibreDNS - GR (No Ads)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:188 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:320 msgid "Listen Address" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:201 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:326 msgid "Listen Port" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm:52 -msgid "Loading" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.lua:3 -msgid "Mullvad" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:349 +msgid "Logging File Path" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.mullvad.doh.adblocker.lua:3 -msgid "Mullvad (AdBlock)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:344 +msgid "Logging Verbosity" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.nextdns.dns.lua:3 -msgid "NextDNS.io (Configurable)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:187 +msgid "Not installed or not found" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua:3 -msgid "ODVR (nic.cz)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:249 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:281 +msgid "Parameter" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.pumplex.dns.lua:3 -msgid "OSZX DNS (Pumplex)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/co.osxz.dns.lua:3 -msgid "OSZX DNS - UK" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:154 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:163 +msgid "" +"Please note that %s is not supported on this system (%smore information%s)." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.doh.lua:3 -msgid "OpenDNS" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:353 +msgid "Polling Interval" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.opendns.familyshield.doh.lua:3 -msgid "OpenDNS (Family Shield)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:215 +msgid "Provider" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:209 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:358 msgid "Proxy Server" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/tw.twnic.dns.lua:3 -msgid "Quad 101 - TW" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua:3 -msgid "Quad 9 (Recommended)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua:3 -msgid "Quad 9 (Secured with ECS Support)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua:3 -msgid "Quad 9 (Secured)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua:3 -msgid "Quad 9 (Unsecured)" -msgstr "" - -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:43 -msgid "Reload" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:319 +msgid "Restart" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:155 -msgid "Resolver" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:313 +msgid "Restarting %s service" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/lu.restena.kaitain.lua:3 -msgid "Restena DNS - LU" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:335 +msgid "Run As Group" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.rethinkdns.basic.lua:3 -msgid "Rethink DNS (Configurable)" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:331 +msgid "Run As User" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/io.seby.doh-2.lua:3 -msgid "Seby DNS - AU" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:203 +msgid "See the %sREADME%s for details." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:118 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:402 msgid "Service Control" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:114 -msgid "Service Status" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:201 +msgid "Service Instances" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:112 -msgid "Service Status [%s %s]" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:165 +msgid "Service Status" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.snopyta.dns.doh.fi.lua:3 -msgid "Snopyta DNS - FI" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:300 +msgid "Start" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:40 -msgid "Start" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:294 +msgid "Starting %s service" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:46 +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:338 msgid "Stop" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:99 -msgid "Stopped" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:332 +msgid "Stopping %s service" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/ch.switch.dns.lua:3 -msgid "Switch DNS - CH" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:211 +msgid "Unknown" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.jp.lua:3 -msgid "Tiarap Public DNS - JP" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:100 +msgid "Update %s only" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/app.tiar.doh.lua:3 -msgid "Tiarap Public DNS - SG" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:78 +msgid "Update DNSMASQ Config on Start/Stop" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.edu.tsinghua.tuna.dns.lua:3 -msgid "Tsinghua University Secure DNS - CN" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:88 +msgid "Update all configs" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:65 -msgid "Unknown Provider" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:362 +msgid "Use HTTP/1" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:127 -msgid "Update %s config" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:372 +msgid "Use IPv6 resolvers" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:123 -msgid "Update DNSMASQ Config on Start/Stop" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:377 +msgid "Use any family DNS resolvers" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:124 -msgid "Update all configs" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/view/https-dns-proxy/overview.js:366 +msgid "Use negotiated HTTP version" msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:50 -msgid "and" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:169 +msgid "Version %s - Running." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:101 -msgid "disabled" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:181 +msgid "Version %s - Stopped (Disabled)." msgstr "" -#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cn.rubyfish.dns.lua:3 -msgid "rubyfish.cn" +#: applications/luci-app-https-dns-proxy/htdocs/luci-static/resources/https-dns-proxy/status.js:179 +msgid "Version %s - Stopped." msgstr "" diff --git a/applications/luci-app-https-dns-proxy/root/usr/libexec/rpcd/luci.https-dns-proxy b/applications/luci-app-https-dns-proxy/root/usr/libexec/rpcd/luci.https-dns-proxy new file mode 100755 index 0000000000..8400af5f1f --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/libexec/rpcd/luci.https-dns-proxy @@ -0,0 +1,206 @@ +#!/bin/sh +# Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca) +# shellcheck disable=SC1091,SC2039,SC3043 + +# TechRef: https://openwrt.org/docs/techref/rpcd + +# ubus -v list luci.https-dns-proxy +# ubus -S call luci.https-dns-proxy getInitList '{"name": "https-dns-proxy" }' +# ubus -S call luci.https-dns-proxy getInitStatus '{"name": "https-dns-proxy" }' +# ubus -S call luci.https-dns-proxy getPlatformSupport '{"name": "https-dns-proxy" }' +# ubus -S call luci.https-dns-proxy getProviders '{"name": "https-dns-proxy" }' +# ubus -S call luci.https-dns-proxy getRuntime '{"name": "https-dns-proxy" }' + +readonly packageName="https-dns-proxy" +readonly providersDir="/usr/share/${packageName}/providers" + +. /lib/functions.sh +. /usr/share/libubox/jshn.sh + +is_enabled() { "/etc/init.d/${1}" enabled; } +is_running() { [ "$(ubus call service list "{ 'name': '$1' }" | jsonfilter -q -e "@['$1'].instances[*].running" | uniq)" = 'true' ]; } +get_version() { grep -m1 -A2 -w "^Package: $1$" /usr/lib/opkg/status | sed -n 's/Version: //p'; } +check_http2() { grep -q 'Provides: libnghttp2' /usr/lib/opkg/status; } +check_http3() { grep -q 'Provides: libnghttp3' /usr/lib/opkg/status; } +ubus_get_ports() { ubus call service list "{ 'name': '$packageName' }" | jsonfilter -e "@['${packageName}'].instances[*].data.firewall.*.dest_port"; } +logger() { /usr/bin/logger -t "$packageName" "$@"; } +print_json_bool() { json_init; json_add_boolean "$1" "$2"; json_dump; json_cleanup; } + +get_init_list() { + local name="$1" + json_init + json_add_object "$name" + if is_enabled "$name"; then + json_add_boolean 'enabled' '1' + else + json_add_boolean 'enabled' '0' + fi + if is_running "$name"; then + json_add_boolean 'running' '1' + else + json_add_boolean 'running' '0' + fi + json_close_object + json_dump + json_cleanup +} + +get_init_status() { + local name + local i ports + local version + name="$(basename "$1")" + name="${name:-$packageName}" + ports="$(ubus_get_ports)" + [ -z "$version" ] && version="$(get_version "$name")" + json_init + json_add_object "$name" + if is_enabled "$name"; then + json_add_boolean 'enabled' '1' + else + json_add_boolean 'enabled' '0' + fi + if is_running "$name"; then + json_add_boolean 'running' '1' + else + json_add_boolean 'running' '0' + fi + if [ -n "$ports" ]; then + json_add_boolean 'force_dns_active' '1' + json_add_array 'force_dns_ports' + for i in $ports; do json_add_int '' "$i"; done + json_close_array + else + json_add_boolean 'force_dns_active' '0' + fi + json_add_string 'version' "$version" + json_close_array + json_close_object + json_dump + json_cleanup +} + +get_platform_support() { + local name + name="$(basename "$1")" + name="${name:-$packageName}" + json_init + json_add_object "$name" + if check_http2; then + json_add_boolean 'http2_support' '1' + else + json_add_boolean 'http2_support' '0' + fi + if check_http3; then + json_add_boolean 'http3_support' '1' + else + json_add_boolean 'http3_support' '0' + fi + json_close_object + json_dump + json_cleanup +} + +get_providers() { + local f + echo '{"https-dns-proxy":[' + for f in "$providersDir"/*; do + cat "$f" + echo ',' + done +# echo '{ "title": "Custom", "template": "{option}", "params": { "option": { "type": "text", }, }, },' + echo ']}' +} + +get_runtime() { ubus call service list "{ 'verbose': true, 'name': '$1' }"; } + +set_init_action() { + local name="$1" action="$2" cmd + case $action in + enable) + cmd="/etc/init.d/${name} enable";; + disable) + cmd="/etc/init.d/${name} disable";; + start|stop|restart) + cmd="/etc/init.d/${name} ${action}";; + esac + if [ -n "$cmd" ] && eval "${cmd}" >/dev/null 2>&1; then + print_json_bool "result" '1' + else + print_json_bool "result" '0' + fi +} + +case "$1" in + list) + json_init + json_add_object "getInitList" + json_add_string 'name' "name" + json_close_object + json_add_object "getInitStatus" + json_add_string 'name' 'name' + json_close_object + json_add_object "getPlatformSupport" + json_add_string 'name' 'name' + json_close_object + json_add_object "getProviders" + json_add_string 'name' "name" + json_close_object + json_add_object "getRuntime" + json_add_string 'name' "name" + json_close_object + json_add_object "setInitAction" + json_add_string 'name' "name" + json_add_string 'action' "action" + json_close_object + json_dump + json_cleanup + ;; + call) + case "$2" in + getInitList) + read -r input + json_load "$input" + json_get_var name "name" + json_cleanup + get_init_list "$name" + ;; + getInitStatus) + read -r input + json_load "$input" + json_get_var name 'name' + json_cleanup + get_init_status "$name" + ;; + getPlatformSupport) + read -r input + json_load "$input" + json_get_var name 'name' + json_cleanup + get_platform_support "$name" + ;; + getProviders) + read -r input + json_load "$input" + json_get_var name "name" + json_cleanup + get_providers "$name" + ;; + getRuntime) + read -r input + json_load "$input" + json_get_var name "name" + json_cleanup + get_runtime "$name" + ;; + setInitAction) + read -r input + json_load "$input" + json_get_var name "name" + json_get_var action "action" + json_cleanup + set_init_action "$name" "$action" + ;; + esac + ;; +esac diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json new file mode 100644 index 0000000000..6fe4ec72d5 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/app.tiarap.doh.json @@ -0,0 +1,24 @@ +{ + "title": "Tiarap Public DNS (JP)", + "template": "https://doh.{option}/dns-query", + "bootstrap_dns": "172.104.93.80,2400:8902::f03c:91ff:feda:c514", + "help_link": "https://tiarap.org/", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(tiar.app|tiarap.org)", + "options": [ + { + "value": "tiar.app", + "description": "Direct" + }, + { + "value": "tiarap.org", + "description": "Cloudlfare Cached" + } + ], + "default": "tiar.app" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json new file mode 100644 index 0000000000..9fd0f9a8d9 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ca.cira.canadianshield.json @@ -0,0 +1,28 @@ +{ + "title": "CIRA Canadian Shield", + "template": "https://{option}.canadianshield.cira.ca/dns-query", + "bootstrap_dns": "149.112.121.30,149.112.122.30,2620:10A:80BB::30,2620:10A:80BC::30", + "help_link": "https://www.cira.ca/cybersecurity-services/canadian-shield/", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(family|private|protected)", + "options": [ + { + "value": "family", + "description": "Family Filter" + }, + { + "value": "private", + "description": "Private Filter" + }, + { + "value": "Protected", + "description": "Protected Filter" + } + ], + "default": "private" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.json new file mode 100644 index 0000000000..ec3b9466cc --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.digitale-gesellschaft.dns.json @@ -0,0 +1,7 @@ +{ + "title": "Digitale Gesellschaft (CH)", + "template": "https://dns.digitale-gesellschaft.ch/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "http2_only": true, + "help_link": "https://www.digitale-gesellschaft.ch/dns/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.switch.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.switch.dns.json new file mode 100644 index 0000000000..19e36079df --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/ch.switch.dns.json @@ -0,0 +1,6 @@ +{ + "title": "Switch DNS (CH)", + "template": "https://dns.switch.ch/dns-query", + "bootstrap_dns": "130.59.31.248,2001:620:0:ff::2", + "help_link": "https://www.switch.ch/security/info/public-dns/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.360.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.360.doh.json new file mode 100644 index 0000000000..ef97fa27e5 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.360.doh.json @@ -0,0 +1,5 @@ +{ + "title": "DoH 360 DNS (CN)", + "template": "https://doh.360.cn/dns-query", + "bootstrap_dns": "101.226.4.6,218.30.118.6,123.125.81.6,140.207.198.6" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.rubyfish.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.rubyfish.dns.json new file mode 100644 index 0000000000..ee75e953a2 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cn.rubyfish.dns.json @@ -0,0 +1,6 @@ +{ + "title": "RubyFish (CN)", + "template": "https://dns.rubyfish.cn/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "http2_only": true +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json new file mode 100644 index 0000000000..943aca80bc --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/co.oszx.dns.json @@ -0,0 +1,24 @@ +{ + "title": "OSZX DNS (UK)", + "template": "https://doh.{option}/dns-query", + "bootstrap_dns": "51.38.82.198,2001:41d0:801:2000::1b28", + "help_link": "https://dns.oszx.co/#mdoh", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(oszx.co|pumplex.com)", + "options": [ + { + "value": "oszx.co", + "description": "AdBlocking Filter" + }, + { + "value": "pumplex.com", + "description": "Standard" + } + ], + "default": "oszx.co" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json new file mode 100644 index 0000000000..f685ba4d60 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.adguard.dns.json @@ -0,0 +1,24 @@ +{ + "title": "AdGuard", + "template": "https://dns{option}.adguard.com/dns-query", + "bootstrap_dns": "176.103.130.130,176.103.130.131", + "help_link": "https://adguard.com/en/adguard-dns/overview.html", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(-family|)", + "options": [ + { + "value": "-family", + "description": "Family Filter" + }, + { + "value": "", + "description": "Standard" + } + ], + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.ahadns.blitz.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.ahadns.blitz.json new file mode 100644 index 0000000000..b2c463fd1a --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.ahadns.blitz.json @@ -0,0 +1,13 @@ +{ + "title": "AhaDNS Blitz", + "template": "https://blitz.ahadns.com/{option}", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://blitz-setup.ahadns.com/", + "params": { + "option": { + "description": "Filters", + "type": "text", + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.alidns.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.alidns.dns.json new file mode 100644 index 0000000000..b32694b417 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.alidns.dns.json @@ -0,0 +1,5 @@ +{ + "title": "AliDNS", + "template": "https://dns.alidns.com/dns-query", + "bootstrap_dns": "223.5.5.5,223.6.6.6,2400:3200::1,2400:3200:baba::1" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json new file mode 100644 index 0000000000..a101c9030d --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.blahdns.doh.json @@ -0,0 +1,36 @@ +{ + "title": "BlahDNS", + "template": "https://doh-{option}.blahdns.com/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://blahdns.com/", + "params": { + "option": { + "description": "Location", + "type": "select", + "regex": "(ch|de|fi|jp|sg)", + "options": [ + { + "value": "ch", + "description": "Switzerland" + }, + { + "value": "de", + "description": "Germany" + }, + { + "value": "fi", + "description": "Finland" + }, + { + "value": "jp", + "description": "Japan" + }, + { + "value": "sg", + "description": "Singapore" + } + ], + "default": "ch" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json new file mode 100644 index 0000000000..16f668911d --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.cloudflare-dns.json @@ -0,0 +1,28 @@ +{ + "title": "Cloudflare", + "template": "https://{option}cloudflare-dns.com/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001", + "help_link": "https://one.one.one.one/", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(family.||security.)", + "options": [ + { + "value": "family.", + "description": "Family Filter" + }, + { + "value": "", + "description": "Standard" + }, + { + "value": "security.", + "description": "Security Filter" + } + ], + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json new file mode 100644 index 0000000000..8ee2dc3804 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.controld.freedns.json @@ -0,0 +1,36 @@ +{ + "title": "ControlD", + "template": "https://freedns.controld.com/{option}", + "bootstrap_dns": "76.76.2.0,2606:1a40::0", + "help_link": "https://kb.controld.com/tutorials", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(family|p0|p1|p2|p3)", + "options": [ + { + "value": "family", + "description": "Family Filter" + }, + { + "value": "p0", + "description": "Standard" + }, + { + "value": "p1", + "description": "Malware Filter" + }, + { + "value": "p2", + "description": "Ads + Malware Filter" + }, + { + "value": "p3", + "description": "Ads + Malware + Social Filter" + } + ], + "default": "p0" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.decloudus.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.decloudus.dns.json new file mode 100644 index 0000000000..9d7053c5eb --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.decloudus.dns.json @@ -0,0 +1,6 @@ +{ + "title": "DeCloudUs DNS", + "template": "https://dns.decloudus.com/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://decloudus.com/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnsforfamily.dns-doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnsforfamily.dns-doh.json new file mode 100644 index 0000000000..c39427dade --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnsforfamily.dns-doh.json @@ -0,0 +1,6 @@ +{ + "title": "DNS For Family", + "template": "https://dns-doh.dnsforfamily.com/dns-query", + "bootstrap_dns": "94.130.180.225,78.47.64.161", + "help_link": "https://dnsforfamily.com/#DNS_Servers_DNS_Over_HTTPS" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnslify.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnslify.doh.json new file mode 100644 index 0000000000..73421f5c66 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.dnslify.doh.json @@ -0,0 +1,6 @@ +{ + "title": "DNSlify DNS", + "template": "https://doh.dnslify.com/dns-query", + "bootstrap_dns": "185.235.81.1,185.235.81.2,2a0d:4d00:81::1,2a0d:4d00:81::2", + "help_link": "https://www.dnslify.com/services/doh/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json new file mode 100644 index 0000000000..b9989d5383 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.opendns.doh.json @@ -0,0 +1,24 @@ +{ + "title": "OpenDNS", + "template": "https://doh.{option}opendns.com/dns-query", + "bootstrap_dns": "208.67.222.222,208.67.220.220", + "help_link": "https://support.opendns.com/hc/en-us/articles/360038086532-Using-DNS-over-HTTPS-DoH-with-OpenDNS", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(family.|)", + "options": [ + { + "value": "family.", + "description": "Family Filter" + }, + { + "value": "", + "description": "Standard" + } + ], + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.rethinkdns.sky.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.rethinkdns.sky.json new file mode 100644 index 0000000000..890438966f --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/com.rethinkdns.sky.json @@ -0,0 +1,13 @@ +{ + "title": "Rethink DNS", + "template": "https://sky.rethinkdns.com/{option}", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://www.rethinkdns.com/configure", + "params": { + "option": { + "description": "Filters", + "type": "text", + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cz.nic.odvr.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cz.nic.odvr.json new file mode 100644 index 0000000000..296f38ae0d --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/cz.nic.odvr.json @@ -0,0 +1,5 @@ +{ + "title": "ODVR (CZ)", + "template": "https://odvr.nic.cz/doh", + "bootstrap_dns": "193.17.47.1,185.43.135.1" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/de.dnsforge.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/de.dnsforge.json new file mode 100644 index 0000000000..a334e6a677 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/de.dnsforge.json @@ -0,0 +1,6 @@ +{ + "title": "DNS Forge (DE)", + "template": "https://dnsforge.de/dns-query", + "bootstrap_dns": "176.9.93.198,176.9.1.117,2a01:4f8:151:34aa::198,2a01:4f8:141:316d::117", + "help_link": "https://dnsforge.de/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/fi.lelux.resolver-eu.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/fi.lelux.resolver-eu.json new file mode 100644 index 0000000000..6372c9e5ac --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/fi.lelux.resolver-eu.json @@ -0,0 +1,6 @@ +{ + "title": "Lelux DNS (FI)", + "template": "https://resolver-eu.lelux.fi/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://lelux.fi/resolver/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/google.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/google.dns.json new file mode 100644 index 0000000000..64d8e86f24 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/google.dns.json @@ -0,0 +1,6 @@ +{ + "title": "Google", + "template": "https://dns.google/dns-query", + "bootstrap_dns": "8.8.8.8,8.8.4.4", + "default": true +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json new file mode 100644 index 0000000000..037289f515 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/gr.libredns.doh.json @@ -0,0 +1,24 @@ +{ + "title": "LibreDNS (GR)", + "template": "https://doh.libredns.gr/{option}", + "bootstrap_dns": "116.202.176.26", + "help_link": "https://libredns.gr/", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(ads|dns-query)", + "options": [ + { + "value": "ads", + "description": "AdBlocking Filter" + }, + { + "value": "dns-query", + "description": "Standard" + } + ], + "default": "dns-query" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.nextdns.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.nextdns.dns.json new file mode 100644 index 0000000000..753b78523c --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.nextdns.dns.json @@ -0,0 +1,13 @@ +{ + "title": "NextDNS.io", + "template": "https://dns.nextdns.io/{option}", + "bootstrap_dns": "45.90.28.49,45.90.30.49", + "help_link": "https://my.nextdns.io", + "params": { + "option": { + "description": "Username", + "type": "text", + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.seby.doh-2.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.seby.doh-2.json new file mode 100644 index 0000000000..90b6be7927 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/io.seby.doh-2.json @@ -0,0 +1,6 @@ +{ + "title": "Seby DNS (AU)", + "template": "https://doh-2.seby.io/dns-query", + "bootstrap_dns": "45.76.113.31,139.99.222.72", + "help_link": "https://dns.seby.io/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/jp.iij.dns.public.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/jp.iij.dns.public.json new file mode 100644 index 0000000000..ffd8be7515 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/jp.iij.dns.public.json @@ -0,0 +1,6 @@ +{ + "title": "IIJ Public DNS (JP)", + "template": "https://public.dns.iij.jp/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://www.iij.ad.jp/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/lu.restena.kaitain.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/lu.restena.kaitain.json new file mode 100644 index 0000000000..1dcc11f903 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/lu.restena.kaitain.json @@ -0,0 +1,7 @@ +{ + "title": "Restena DNS (LU)", + "template": "https://kaitain.restena.lu/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://www.restena.lu/en/service/public-dns-resolver", + "http2_only": true +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json new file mode 100644 index 0000000000..2acdcee955 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ahadns.doh.json @@ -0,0 +1,56 @@ +{ + "title": "AhaDNS Regional", + "template": "https://doh.{option}.ahadns.net/dns-query", + "bootstrap_dns": "185.213.26.187,45.67.219.208,5.2.75.75,45.79.120.233,2a0d:5600:33:3::3,2a04:bdc7:100:70::70,2a04:52c0:101:75::75,2400:8904:e001:43::43", + "help_link": "https://ahadns.com/dns-over-https/", + "params": { + "option": { + "description": "Location", + "type": "select", + "regex": "(au|chi|es|in|it|la|nl|no|ny|pl)", + "options": [ + { + "value": "au", + "description": "Australia" + }, + { + "value": "chi", + "description": "US/Chicago" + }, + { + "value": "es", + "description": "Spain" + }, + { + "value": "in", + "description": "India" + }, + { + "value": "it", + "description": "Italy" + }, + { + "value": "la", + "description": "US/Los Angeles" + }, + { + "value": "nl", + "description": "Netherlands" + }, + { + "value": "no", + "description": "Norway" + }, + { + "value": "ny", + "description": "US/New York" + }, + { + "value": "pl", + "description": "Poland" + } + ], + "default": "chi" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.applied-privacy.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.applied-privacy.doh.json new file mode 100644 index 0000000000..d24e7f1016 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.applied-privacy.doh.json @@ -0,0 +1,6 @@ +{ + "title": "Applied Privacy DNS (AT)", + "template": "https://doh.applied-privacy.net/query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://applied-privacy.net/services/dns/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.cfiec.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.cfiec.dns.json new file mode 100644 index 0000000000..fcca173586 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.cfiec.dns.json @@ -0,0 +1,5 @@ +{ + "title": "CFIEC Public IPv6 Only DNS (CN)", + "template": "https://dns.cfiec.net/dns-query", + "bootstrap_dns": "240C::6666,240C::6644" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ffmuc.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ffmuc.doh.json new file mode 100644 index 0000000000..5c0d6a0416 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.ffmuc.doh.json @@ -0,0 +1,6 @@ +{ + "title": "FFMUC DNS (DE)", + "template": "https://doh.ffmuc.net/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://ffmuc.net/wiki/doku.php?id=knb:dohdot" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.he.ordns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.he.ordns.json new file mode 100644 index 0000000000..6a2be8c6c6 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.he.ordns.json @@ -0,0 +1,6 @@ +{ + "title": "Hurricane Electric", + "template": "https://ordns.he.net/dns-query", + "bootstrap_dns": "74.82.42.42,2001:470:20::2", + "help_link": "https://forums.he.net/index.php?topic=3996.0" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.idnet.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.idnet.doh.json new file mode 100644 index 0000000000..9e6fdf779f --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.idnet.doh.json @@ -0,0 +1,5 @@ +{ + "title": "IDNet (UK)", + "template": "https://doh.idnet.net/dns-query", + "bootstrap_dns": "212.69.36.23,212.69.40.23" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json new file mode 100644 index 0000000000..18dad9c214 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.mullvad.doh.json @@ -0,0 +1,25 @@ +{ + "title": "Mullvad", + "template": "https://{option}doh.mullvad.net/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://mullvad.net/en/help/dns-over-https-and-dns-over-tls/", + "http2_only": true, + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(adblock.|)", + "options": [ + { + "value": "adblock.", + "description": "AdBlocking Filter" + }, + { + "value": "", + "description": "Standard" + } + ], + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json new file mode 100644 index 0000000000..b3b5d6f92f --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/net.quad9.json @@ -0,0 +1,32 @@ +{ + "title": "Quad 9", + "template": "https://{option}.quad9.net/dns-query", + "bootstrap_dns": "9.9.9.9,149.112.112.112,2620:fe::fe,2620:fe::9", + "help_link": "https://www.quad9.net/doh-quad9-dns-servers/", + "params": { + "option": { + "description": "Variant", + "type": "select", + "regex": "(dns|dns9|dns10|dns11)", + "options": [ + { + "value": "dns", + "description": "Standard" + }, + { + "value": "dns9", + "description": "Secured" + }, + { + "value": "dns10", + "description": "Unsecured" + }, + { + "value": "dns11", + "description": "Secured with ECS Support" + } + ], + "default": "dns" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json new file mode 100644 index 0000000000..85dd5cc663 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/one.comss.dns.json @@ -0,0 +1,23 @@ +{ + "title": "Comss DNS (RU)", + "template": "https://dns.{option}comss.one/dns-query", + "bootstrap_dns": "92.38.152.163,93.115.24.204,2a03:90c0:56::1a5,2a02:7b40:5eb0:e95d::1", + "params": { + "option": { + "description": "Location", + "type": "select", + "regex": "(east.|)", + "options": [ + { + "value": "east.", + "description": "Siberia" + }, + { + "value": "", + "description": "Moscow, St Petersburg" + } + ], + "default": "" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json new file mode 100644 index 0000000000..fa21e53b24 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.cleanbrowsing.doh.json @@ -0,0 +1,28 @@ +{ + "title": "CleanBrowsing", + "template": "https://doh.cleanbrowsing.org/doh/{option}-filter/", + "bootstrap_dns": "185.228.168.168", + "help_link": "https://cleanbrowsing.org/guides/dnsoverhttps", + "params": { + "option": { + "description": "Filter", + "type": "select", + "regex": "(adult|family|security)", + "options": [ + { + "value": "adult", + "description": "Adult Content Filter" + }, + { + "value": "family", + "description": "Family Filter" + }, + { + "value": "security", + "description": "Security Filter" + } + ], + "default": "security" + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.snopyta.dns.doh.fi.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.snopyta.dns.doh.fi.json new file mode 100644 index 0000000000..521933c52d --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/org.snopyta.dns.doh.fi.json @@ -0,0 +1,6 @@ +{ + "title": "Snopyta DNS (FI)", + "template": "https://fi.doh.dns.snopyta.org/dns-query", + "bootstrap_dns": "1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001,8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844", + "help_link": "https://snopyta.org/service/dns/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/pub.doh.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/pub.doh.json new file mode 100644 index 0000000000..0a381b1fdd --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/pub.doh.json @@ -0,0 +1,5 @@ +{ + "title": "DNSPod Public DNS (CN)", + "template": "https://doh.pub/dns-query", + "bootstrap_dns": "119.29.29.29,119.28.28.28" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/sb.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/sb.dns.json new file mode 100644 index 0000000000..f061b17a6b --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/sb.dns.json @@ -0,0 +1,7 @@ +{ + "title": "DoH DNS (SB)", + "template": "https://doh.dns.sb/dns-query", + "bootstrap_dns": "185.222.222.222,185.184.222.222", + "help_link": "https://dns.sb/doh/", + "http2_only": true +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/tw.twnic.dns.json b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/tw.twnic.dns.json new file mode 100644 index 0000000000..ddcd9a3a49 --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers/tw.twnic.dns.json @@ -0,0 +1,6 @@ +{ + "title": "Quad 101 (TW)", + "template": "https://dns.twnic.tw/dns-query", + "bootstrap_dns": "101.101.101.101,101.102.103.104,2001:de4::101,2001:de4::102", + "help_link": "https://blog.twnic.tw/2018/12/28/1803/" +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json b/applications/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json new file mode 100644 index 0000000000..4b221459bb --- /dev/null +++ b/applications/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json @@ -0,0 +1,15 @@ +{ + "admin/services/https-dns-proxy": { + "title": "HTTPS DNS Proxy", + "order": 90, + "action": { + "type": "view", + "path": "https-dns-proxy/overview" + }, + "depends": { + "acl": [ + "luci-app-https-dns-proxy" + ] + } + } +} diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json b/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json index 97f8c6df41..6603d3596a 100644 --- a/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json +++ b/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json @@ -2,28 +2,29 @@ "luci-app-https-dns-proxy": { "description": "Grant UCI and file access for luci-app-https-dns-proxy", "read": { - "cgi-io": [ - "exec" - ], - "file": { - "/usr/lib/opkg/status": [ - "read" - ], - "/usr/lib/lua/luci/https-dns-proxy/providers/*": [ - "read" - ], - "/etc/init.d/https-dns-proxy *": [ - "exec" + "ubus": { + "luci.https-dns-proxy": [ + "getInitList", + "getInitStatus", + "getPlatformSupport", + "getProviders", + "getRuntime" ] }, "uci": [ + "dhcp", "https-dns-proxy" ] }, "write": { "uci": [ "https-dns-proxy" - ] + ], + "ubus": { + "luci.https-dns-proxy": [ + "setInitAction" + ] + } } } } diff --git a/applications/luci-app-ksmbd/po/sk/ksmbd.po b/applications/luci-app-ksmbd/po/sk/ksmbd.po index bece863174..1ff4ff6dac 100644 --- a/applications/luci-app-ksmbd/po/sk/ksmbd.po +++ b/applications/luci-app-ksmbd/po/sk/ksmbd.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-10-30 15:06+0000\n" +"PO-Revision-Date: 2023-09-02 23:33+0000\n" "Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsksmbd/sk/>\n" @@ -8,7 +8,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.2-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js:87 msgid "Allow guests" @@ -69,7 +69,7 @@ msgstr "Všeobecné nastavenia" #: applications/luci-app-ksmbd/root/usr/share/rpcd/acl.d/luci-app-ksmbd.json:3 #, fuzzy msgid "Grant access to LuCI app ksmbd" -msgstr "Povoliť prístup pre aplikáciu LuCI ksmbd" +msgstr "Udeliť prístup pre aplikáciu LuCI ksmbd" #: applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js:98 msgid "Hide dot files" diff --git a/applications/luci-app-minidlna/po/sk/minidlna.po b/applications/luci-app-minidlna/po/sk/minidlna.po index d2d5d2c5b0..158d483967 100644 --- a/applications/luci-app-minidlna/po/sk/minidlna.po +++ b/applications/luci-app-minidlna/po/sk/minidlna.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2023-07-10 15:50+0000\n" +"PO-Revision-Date: 2023-09-03 01:39+0000\n" "Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsminidlna/sk/>\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:51 msgid "Advanced Settings" @@ -18,15 +18,15 @@ msgstr "Pokročilé nastavenia" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:80 msgid "Album art names" -msgstr "" +msgstr "Názvy obrázkov albumov" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:95 msgid "Allow wide links" -msgstr "" +msgstr "Povoliť široké odkazy" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:107 msgid "Announced UUID" -msgstr "" +msgstr "Ohlásené UUID" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:110 msgid "Announced model number" @@ -37,12 +37,13 @@ msgid "Announced serial number" msgstr "Ohlásené sériové číslo" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:73 +#, fuzzy msgid "Browse directory" -msgstr "" +msgstr "Prezerať adresár" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:88 msgid "Database directory" -msgstr "" +msgstr "Adresár databázy" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:53 msgid "Enable" @@ -54,7 +55,7 @@ msgstr "Povoliť TIVO" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:90 msgid "Enable inotify" -msgstr "" +msgstr "Povoliť inotify" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:69 msgid "Friendly name" @@ -66,7 +67,7 @@ msgstr "Všeobecné nastavenia" #: applications/luci-app-minidlna/root/usr/share/rpcd/acl.d/luci-app-minidlna.json:3 msgid "Grant access to minidlna status and configuration" -msgstr "" +msgstr "Udeliť prístup k stavu a konfigurácii miniDLNA" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:59 msgid "Interfaces" @@ -81,12 +82,15 @@ msgid "" "MiniDLNA is server software with the aim of being fully compliant with DLNA/" "UPnP-AV clients." msgstr "" +"MiniDLNA je serverový softvér s cieľom byť plne kompatibilný s klientmi DLNA/" +"UPnP-AV." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:110 msgid "" "Model number the miniDLNA daemon will report to clients in its XML " "description." msgstr "" +"Číslo modelu, ktoré miniDLNA démon bude hlásiť klientom vo svojom XML popise." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:74 msgid "Music" @@ -114,7 +118,7 @@ msgstr "Port" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:56 msgid "Port for HTTP (descriptions, SOAP, media transfer) traffic." -msgstr "" +msgstr "Port pre prenos HTTP (popisy, SOAP, prenos médií)." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:99 msgid "Presentation URL" @@ -122,18 +126,22 @@ msgstr "Prezentačná URL" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:71 msgid "Root container" -msgstr "" +msgstr "Koreňový (root) kontajner" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:104 msgid "" "Serial number the miniDLNA daemon will report to clients in its XML " "description." msgstr "" +"Sériové číslo, ktoré miniDLNA démon bude hlásiť klientom vo svojom XML " +"popise." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:69 +#, fuzzy msgid "" "Set this if you want to customize the name that shows up on your clients." msgstr "" +"Toto nastavte, ak chcete prispôsobiť názov, ktorý sa zobrazí na klientoch." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:88 msgid "" @@ -174,11 +182,11 @@ msgstr "" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:113 msgid "Specify the path to the MiniSSDPd socket." -msgstr "" +msgstr "Zadajte cestu k socketu MiniSSDPd." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:72 msgid "Standard container" -msgstr "" +msgstr "Štandardný kontajner" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:39 msgid "Status" @@ -190,10 +198,13 @@ msgstr "Prísne podľa štandardu DLNA" #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:25 #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/status/include/80_minidlna.js:28 +#, fuzzy msgid "" "The miniDLNA service is active, serving %d audio, %d video and %d image " "files." msgstr "" +"Služba miniDLNA je aktívna, poskytuje %d audio, %d video a %d obrázkových " +"súborov." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:18 #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/status/include/80_minidlna.js:22 @@ -203,6 +214,7 @@ msgstr "Služba miniDLNA nie je spustená." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:80 msgid "This is a list of file names to check for when searching for album art." msgstr "" +"Toto je zoznam názvov súborov na kontrolu pri vyhľadávaní obrázkov albumov." #: applications/luci-app-minidlna/htdocs/luci-static/resources/view/minidlna.js:75 msgid "Video" diff --git a/applications/luci-app-mjpg-streamer/po/pl/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/pl/mjpg-streamer.po index ebdec45fb9..1521202e9d 100644 --- a/applications/luci-app-mjpg-streamer/po/pl/mjpg-streamer.po +++ b/applications/luci-app-mjpg-streamer/po/pl/mjpg-streamer.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-05-10 19:15+0000\n" +"PO-Revision-Date: 2023-09-02 03:54+0000\n" "Last-Translator: Matthaiks <kitynska@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsmjpg-streamer/pl/>\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.12.1\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:249 msgid "Allow ringbuffer to exceed limit by this amount" @@ -198,7 +198,7 @@ msgstr "" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:216 msgid "Stream unavailable" -msgstr "" +msgstr "Strumień niedostępny" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:127 msgid "TCP port for this HTTP server" diff --git a/applications/luci-app-mjpg-streamer/po/ro/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/ro/mjpg-streamer.po index da3e6219e2..32a317ede9 100644 --- a/applications/luci-app-mjpg-streamer/po/ro/mjpg-streamer.po +++ b/applications/luci-app-mjpg-streamer/po/ro/mjpg-streamer.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-04-23 07:04+0000\n" -"Last-Translator: olimpiumarius <oliver_magnum44@yahoo.com>\n" +"PO-Revision-Date: 2023-09-02 13:20+0000\n" +"Last-Translator: Simona Iacob <s@zp1.net>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsmjpg-streamer/ro/>\n" "Language: ro\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:249 msgid "Allow ringbuffer to exceed limit by this amount" @@ -198,7 +198,7 @@ msgstr "" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:216 msgid "Stream unavailable" -msgstr "" +msgstr "Fluxul nu este disponibil" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:127 msgid "TCP port for this HTTP server" diff --git a/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po index f6926dc3cc..e29b43ee69 100644 --- a/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po +++ b/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: LuCI: mjpg-streamer\n" "POT-Creation-Date: 2017-10-17 14:30+0300\n" -"PO-Revision-Date: 2023-04-03 07:17+0000\n" -"Last-Translator: AHOHNMYC <lqwh2h2cwa@protonmail.com>\n" +"PO-Revision-Date: 2023-09-03 13:31+0000\n" +"Last-Translator: st7105 <st7105@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsmjpg-streamer/ru/>\n" "Language: ru\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.17-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" "Project-Info: Это технический перевод, не дословный. Главное-удобный русский " "интерфейс, все проверялось в графическом режиме, совместим с другими apps\n" @@ -205,7 +205,7 @@ msgstr "" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:216 msgid "Stream unavailable" -msgstr "" +msgstr "Поток недоступен" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:127 msgid "TCP port for this HTTP server" diff --git a/applications/luci-app-mjpg-streamer/po/zh_Hans/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/zh_Hans/mjpg-streamer.po index 70e494cd49..398e97eb5a 100644 --- a/applications/luci-app-mjpg-streamer/po/zh_Hans/mjpg-streamer.po +++ b/applications/luci-app-mjpg-streamer/po/zh_Hans/mjpg-streamer.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: luci-app-mjpg-streamer\n" "POT-Creation-Date: 2015-06-11 21:11+0100\n" -"PO-Revision-Date: 2023-05-08 14:25+0000\n" -"Last-Translator: Keen <keen_kwuo@msn.com>\n" +"PO-Revision-Date: 2023-09-02 03:54+0000\n" +"Last-Translator: Eric <hamburger2048@users.noreply.hosted.weblate.org>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "openwrt/luciapplicationsmjpg-streamer/zh_Hans/>\n" "Language: zh_Hans\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" "X-Poedit-SourceCharset: UTF-8\n" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:249 @@ -198,7 +198,7 @@ msgstr "设置品质(百分比)。此设置会开启 YUYV 格式输出,关 #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:216 msgid "Stream unavailable" -msgstr "" +msgstr "流不可用" #: applications/luci-app-mjpg-streamer/htdocs/luci-static/resources/view/mjpg-streamer/mjpg-streamer.js:127 msgid "TCP port for this HTTP server" diff --git a/applications/luci-app-nlbwmon/po/sk/nlbwmon.po b/applications/luci-app-nlbwmon/po/sk/nlbwmon.po index 3da9a20f56..dbda122b24 100644 --- a/applications/luci-app-nlbwmon/po/sk/nlbwmon.po +++ b/applications/luci-app-nlbwmon/po/sk/nlbwmon.po @@ -1,14 +1,14 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-08-03 19:09+0000\n" -"Last-Translator: Marek Ľach <graweeld@googlemail.com>\n" +"PO-Revision-Date: 2023-09-03 01:39+0000\n" +"Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsnlbwmon/sk/>\n" "Language: sk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.8-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:563 msgid "%d IPv4-only hosts" @@ -184,7 +184,7 @@ msgstr "" #: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:169 msgid "Database directory" -msgstr "" +msgstr "Adresár databázy" #: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:170 msgid "" diff --git a/applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js b/applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js deleted file mode 100644 index 6c5ef19c11..0000000000 --- a/applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js +++ /dev/null @@ -1,323 +0,0 @@ -// Copyright 2022 Stan Grishin <stangri@melmac.ca> -// This code wouldn't have been possible without help from [@vsviridov](https://github.com/vsviridov) - -"require ui"; -"require rpc"; -"require form"; -"require baseclass"; - -var pkg = { - get Name() { return 'simple-adblock'; }, - get URL() { return 'https://docs.openwrt.melmac.net/' + pkg.Name + '/'; }, -}; - -var getInitList = rpc.declare({ - object: "luci." + pkg.Name, - method: "getInitList", - params: ["name"], -}); - -var getInitStatus = rpc.declare({ - object: "luci." + pkg.Name, - method: "getInitStatus", - params: ["name"], -}); - -var getPlatformSupport = rpc.declare({ - object: "luci." + pkg.Name, - method: "getPlatformSupport", - params: ["name"], -}); - -var _setInitAction = rpc.declare({ - object: "luci." + pkg.Name, - method: "setInitAction", - params: ["name", "action"], - expect: { result: false }, -}); - -var RPC = { - listeners: [], - on: function on(event, callback) { - var pair = { event: event, callback: callback } - this.listeners.push(pair); - return function unsubscribe() { - this.listeners = this.listeners.filter(function (listener) { - return listener !== pair; - }); - }.bind(this); - }, - emit: function emit(event, data) { - this.listeners.forEach(function (listener) { - if (listener.event === event) { - listener.callback(data); - } - }); - }, - getInitList: function getInitList(name) { - getInitList(name).then(function (result) { - this.emit('getInitList', result); - }.bind(this)); - }, - getInitStatus: function getInitStatus(name) { - getInitStatus(name).then(function (result) { - this.emit('getInitStatus', result); - }.bind(this)); - }, - getPlatformSupport: function getPlatformSupport(name) { - getPlatformSupport(name).then(function (result) { - this.emit('getPlatformSupport', result); - }.bind(this)); - }, - setInitAction: function setInitAction(name, action) { - _setInitAction(name, action).then(function (result) { - this.emit('setInitAction', result); - }.bind(this)); - }, -} - -var status = baseclass.extend({ - render: function () { - return Promise.all([ - L.resolveDefault(getInitStatus(pkg.Name), {}), - ]).then(function (data) { - var replyStatus = data[0]; - var text =""; - var reply = replyStatus[pkg.Name]; - var outputFile = reply.outputFile; - var outputCache = reply.outputCache; - var statusTable = { - statusNoInstall: _("%s is not installed or not found").format(pkg.Name), - statusStopped: _("Stopped"), - statusStarting: _("Starting"), - statusProcessing: _("Processing lists"), - statusRestarting: _("Restarting"), - statusForceReloading: _("Force Reloading"), - statusDownloading: _("Downloading lists"), - statusError: _("Error"), - statusWarning: _("Warning"), - statusFail: _("Fail"), - statusSuccess: _("Active") - }; - - var header = E('h2', {}, _("Simple AdBlock - Status")) - var statusTitle = E('label', { class: 'cbi-value-title' }, _("Service Status")); - if (reply.version) { - text += _("Version %s").format(reply.version) + " - "; - switch (reply.status) { - case 'statusSuccess': - text += statusTable[reply.status] + "."; - text += "<br />" + _("Blocking %s domains (with %s).").format(reply.entries, reply.dns); - if (reply.outputGzipExists) { - text += "<br />" + _("Compressed cache file created."); - } - if (reply.force_dns_active) { - text += "<br />" + _("Force DNS ports:"); - reply.force_dns_ports.forEach(element => { - text += " " + element; - }); - text += "."; - } - break; - case 'statusStopped': - if (reply.enabled) { - text += statusTable[reply.status] + "."; - } - else { - text += statusTable[reply.status] + _("disabled") + "." - } - if (reply.outputCacheExists) { - text += "<br />" + _("Cache file found."); - } - else if (reply.outputGzipExists) { - text += "<br />" + _("Compressed cache file found."); - } - break; - case 'statusRestarting': - case 'statusForceReloading': - case 'statusDownloading': - case 'statusProcessing': - text += statusTable[reply.status] + "..."; - break; - default: - text += statusTable[reply.status] + "."; - break; - } - } - else { - text = _("Not installed or not found"); - } - var statusText = E('div', {}, text); - var statusField = E('div', { class: 'cbi-value-field' }, statusText); - var statusDiv = E('div', { class: 'cbi-value' }, [statusTitle, statusField]); - - var warningsDiv = []; - if (reply.warnings && reply.warnings.length) { - var warningTable = { - warningExternalDnsmasqConfig: _("use of external dnsmasq config file detected, please set '%s' option to '%s'").format("dns", "dnsmasq.conf"), - warningMissingRecommendedPackages: _("some recommended packages are missing") - } - var warningsTitle = E('label', { class: 'cbi-value-title' }, _("Service Warnings")); - var text = ""; - (reply.warnings).forEach(element => { - text += (warningTable[element.id]).format(element.extra || ' ') + "<br />"; - }); - var warningsText = E('div', {}, text); - var warningsField = E('div', { class: 'cbi-value-field' }, warningsText); - warningsDiv = E('div', { class: 'cbi-value' }, [warningsTitle, warningsField]); - } - - var errorsDiv = []; - if (reply.errors && reply.errors.length) { - var errorTable = { - errorConfigValidationFail: _("config (%s) validation failure!").format('/etc/config/' + pkg.Name), - errorServiceDisabled: _("%s is currently disabled").format(pkg.Name), - errorNoDnsmasqIpset: _("dnsmasq ipset support is enabled, but dnsmasq is either not installed or installed dnsmasq does not support ipset"), - errorNoIpset: _("dnsmasq ipset support is enabled, but ipset is either not installed or installed ipset does not support '%s' type").format("hash:net"), - errorNoDnsmasqNftset: _("dnsmasq nft set support is enabled, but dnsmasq is either not installed or installed dnsmasq does not support nft set"), - errorNoNft: _("dnsmasq nft sets support is enabled, but nft is not installed"), - errorNoWanGateway: _("the %s failed to discover WAN gateway").format(pkg.Name), - errorOutputDirCreate: _("failed to create directory for %s file"), - errorOutputFileCreate: _("failed to create '%s' file").format(outputFile), - errorFailDNSReload: _("failed to restart/reload DNS resolver"), - errorSharedMemory: _("failed to access shared memory"), - errorSorting: _("failed to sort data file"), - errorOptimization: _("failed to optimize data file"), - errorAllowListProcessing: _("failed to process allow-list"), - errorDataFileFormatting: _("failed to format data file"), - errorMovingDataFile: _("failed to move temporary data file to '%s'").format(outputFile), - errorCreatingCompressedCache: _("failed to create compressed cache"), - errorRemovingTempFiles: _("failed to remove temporary files"), - errorRestoreCompressedCache: _("failed to unpack compressed cache"), - errorRestoreCache: _("failed to move '%s' to '%s'").format(outputCache, outputFile), - errorOhSnap: _("failed to create block-list or restart DNS resolver"), - errorStopping: _("failed to stop %s").format(pkg.Name), - errorDNSReload: _("failed to reload/restart DNS resolver"), - errorDownloadingConfigUpdate: _("failed to download Config Update file"), - errorDownloadingList: _("failed to download"), - errorParsingConfigUpdate: _("failed to parse Config Update file"), - errorParsingList: _("failed to parse"), - errorNoSSLSupport: _("no HTTPS/SSL support on device"), - errorCreatingDirectory: _("failed to create output/cache/gzip file directory") - } - var errorsTitle = E('label', { class: 'cbi-value-title' }, _("Service Errors")); - var text = ""; - (reply.errors).forEach(element => { - text += (errorTable[element.id]).format(element.extra || ' ') + "<br />"; - }); - var errorsText = E('div', {}, text); - var errorsField = E('div', { class: 'cbi-value-field' }, errorsText); - errorsDiv = E('div', { class: 'cbi-value' }, [errorsTitle, errorsField]); - } - - var btn_gap = E('span', {}, '  '); - var btn_gap_long = E('span', {}, '        '); - - var btn_start = E('button', { - 'class': 'btn cbi-button cbi-button-apply', - disabled: true, - click: function (ev) { - ui.showModal(null, [ - E('p', { 'class': 'spinning' }, _('Starting %s service').format(pkg.Name)) - ]); - return RPC.setInitAction(pkg.Name, 'start'); - } - }, _('Start')); - - var btn_action = E('button', { - 'class': 'btn cbi-button cbi-button-apply', - disabled: true, - click: function (ev) { - ui.showModal(null, [ - E('p', { 'class': 'spinning' }, _('Force re-downloading %s block lists').format(pkg.Name)) - ]); - return RPC.setInitAction(pkg.Name, 'dl'); - } - }, _('Force Re-Download')); - - var btn_stop = E('button', { - 'class': 'btn cbi-button cbi-button-reset', - disabled: true, - click: function (ev) { - ui.showModal(null, [ - E('p', { 'class': 'spinning' }, _('Stopping %s service').format(pkg.Name)) - ]); - return RPC.setInitAction(pkg.Name, 'stop'); - } - }, _('Stop')); - - var btn_enable = E('button', { - 'class': 'btn cbi-button cbi-button-apply', - disabled: true, - click: function (ev) { - ui.showModal(null, [ - E('p', { 'class': 'spinning' }, _('Enabling %s service').format(pkg.Name)) - ]); - return RPC.setInitAction(pkg.Name, 'enable'); - } - }, _('Enable')); - - var btn_disable = E('button', { - 'class': 'btn cbi-button cbi-button-reset', - disabled: true, - click: function (ev) { - ui.showModal(null, [ - E('p', { 'class': 'spinning' }, _('Disabling %s service').format(pkg.Name)) - ]); - return RPC.setInitAction(pkg.Name, 'disable'); - } - }, _('Disable')); - - if (reply.enabled) { - btn_enable.disabled = true; - btn_disable.disabled = false; - switch (reply.status) { - case 'statusSuccess': - btn_start.disabled = true; - btn_action.disabled = false; - btn_stop.disabled = false; - break; - case 'statusStopped': - btn_start.disabled = false; - btn_action.disabled = true; - btn_stop.disabled = true; - break; - default: - btn_start.disabled = false; - btn_action.disabled = true; - btn_stop.disabled = false; - btn_enable.disabled = true; - btn_disable.disabled = true; - break; - } - } - else { - btn_start.disabled = true; - btn_action.disabled = true; - btn_stop.disabled = true; - btn_enable.disabled = false; - btn_disable.disabled = true; - } - - var buttonsDiv = []; - var buttonsTitle = E('label', { class: 'cbi-value-title' }, _("Service Control")) - var buttonsText = E('div', {}, [btn_start, btn_gap, btn_action, btn_gap, btn_stop, btn_gap_long, btn_enable, btn_gap, btn_disable]); - var buttonsField = E('div', { class: 'cbi-value-field' }, buttonsText); - if (reply.version) { - buttonsDiv = E('div', { class: 'cbi-value' }, [buttonsTitle, buttonsField]); - } - - return E('div', {}, [header, statusDiv, warningsDiv, errorsDiv, buttonsDiv]); - }); - }, -}); - -RPC.on('setInitAction', function (reply) { - ui.hideModal(); - location.reload(); -}); - -return L.Class.extend({ - status: status, - getPlatformSupport: getPlatformSupport -}); diff --git a/applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js b/applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js deleted file mode 100644 index c0066dd100..0000000000 --- a/applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2022 Stan Grishin <stangri@melmac.ca> -// This code wouldn't have been possible without help from [@vsviridov](https://github.com/vsviridov) - -'use strict'; -'require form'; -'require uci'; -'require view'; -'require simple-adblock.status as adb'; - -var pkg = { - get Name() { return 'simple-adblock'; }, - get URL() { return 'https://docs.openwrt.melmac.net/' + pkg.Name + '/'; } -}; - -return view.extend({ - load: function () { - return Promise.all([ - uci.load(pkg.Name) - ]); - }, - - render: function () { - return Promise.all([ - L.resolveDefault(adb.getPlatformSupport(pkg.Name), {}), - ]).then(function (data) { - var replyPlatform = data[0]; - var status, m, s, o; - - status = new adb.status(); - m = new form.Map(pkg.Name, _("Simple AdBlock - Configuration")); - s = m.section(form.NamedSection, 'config', pkg.Name); - s.tab("tab_basic", _("Basic Configuration")); - s.tab("tab_advanced", _("Advanced Configuration")); - - o = s.taboption("tab_basic", form.ListValue, "config_update_enabled", _("Automatic Config Update"), - _("Perform config update before downloading the block/allow-lists.")); - o.value("0", _("Disable")); - o.value("1", _("Enable")); - o.default = ("0", _("Disable")); - - o = s.taboption("tab_basic", form.ListValue, "verbosity", _("Output Verbosity Setting"), - _("Controls system log and console output verbosity.")); - o.value("0", _("Suppress output")); - o.value("1", _("Some output")); - o.value("2", _("Verbose output")); - o.default = ("2", _("Verbose output")); - - o = s.taboption("tab_basic", form.ListValue, "force_dns", _("Force Router DNS"), - _("Forces Router DNS use on local devices, also known as DNS Hijacking.")); - o.value("0", _("Let local devices use their own DNS servers if set")); - o.value("1", _("Force Router DNS server to all local devices")); - o.default = ("1", _("Force Router DNS server to all local devices")); - - - if ((replyPlatform[pkg.Name].leds).length) { - o = s.taboption("tab_basic", form.ListValue, "led", _("LED to indicate status"), - _("Pick the LED not already used in %sSystem LED Configuration%s.").format("<a href=\"" + - L.url("admin", "system", "leds") + "\">", "</a>")); - o.value("", _("none")); - (replyPlatform[pkg.Name].leds).forEach(element => { - o.value(element); - }); - } - var text = _("DNS resolution option, see the %sREADME%s for details.") - .format("<a href=\"" + pkg.URL + "#dns-resolution-option\" target=\"_blank\">", "</a>"); - if (!(replyPlatform[pkg.Name].dnsmasq_installed)) { - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.addnhosts</i>"); - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.conf</i>"); - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.ipset</i>"); - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.servers</i>"); - } - else { - if (!(replyPlatform[pkg.Name].dnsmasq_ipset_support)) { - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.ipset</i>"); - } - if (!(replyPlatform[pkg.Name].dnsmasq_nftset_support)) { - text += "<br />" + _("Please note that %s is not supported on this system.").format("<i>dnsmasq.nftset</i>"); - } - } - if (!(replyPlatform[pkg.Name].unbound_installed)) { - text = text + "<br />" + _("Please note that %s is not supported on this system.") - .format("<i>unbound.adb_list</i>"); - } - - o = s.taboption("tab_advanced", form.ListValue, "dns", _("DNS Service"), text); - if (replyPlatform[pkg.Name].dnsmasq_installed) { - o.value("dnsmasq.addnhosts", _("dnsmasq additional hosts")); - o.value("dnsmasq.conf", _("dnsmasq config")); - if (replyPlatform[pkg.Name].dnsmasq_ipset_support) { - o.value("dnsmasq.ipset", _("dnsmasq ipset")); - } - if (replyPlatform[pkg.Name].dnsmasq_nftset_support) { - o.value("dnsmasq.nftset", _("dnsmasq nft set")); - } - o.value("dnsmasq.servers", _("dnsmasq servers file")); - } - if (replyPlatform[pkg.Name].unbound_installed) { - o.value("unbound.adb_list", _("unbound adblock list")); - } - o.default = ("dnsmasq.servers", _("dnsmasq servers file")); - - o = s.taboption("tab_advanced", form.ListValue, "ipv6_enabled", _("IPv6 Support"), - _("Add IPv6 entries to block-list.")); - o.value("", _("Do not add IPv6 entries")); - o.value("1", _("Add IPv6 entries")); - o.depends('dns', 'dnsmasq.addnhosts'); - o.depends('dns', 'dnsmasq.nftset'); - o.default = ("", _("Do not add IPv6 entries")); - o.rmempty = true; - - o = s.taboption("tab_advanced", form.Value, "download_timeout", _("Download time-out (in seconds)"), - _("Stop the download if it is stalled for set number of seconds.")); - o.default = "20"; - o.datatype = "range(1,60)"; - - o = s.taboption("tab_advanced", form.Value, "curl_max_file_size", _("Curl maximum file size (in bytes)"), - _("If curl is installed and detected, it would not download files bigger than this.")); - o.default = ""; - o.datatype = "uinteger"; - o.rmempty = true; - - o = s.taboption("tab_advanced", form.Value, "curl_retry", _("Curl download retry"), - _("If curl is installed and detected, it would retry download this many times on timeout/fail.")); - o.default = "3"; - o.datatype = "range(0,30)"; - - o = s.taboption("tab_advanced", form.ListValue, "parallel_downloads", _("Simultaneous processing"), - _("Launch all lists downloads and processing simultaneously, reducing service start time.")); - o.value("0", _("Do not use simultaneous processing")); - o.value("1", _("Use simultaneous processing")); - o.default = ("1", _("Use simultaneous processing")); - - o = s.taboption("tab_advanced", form.ListValue, "compressed_cache", _("Store compressed cache file on router"), - _("Attempt to create a compressed cache of block-list in the persistent memory.")); - o.value("0", _("Do not store compressed cache")); - o.value("1", _("Store compressed cache")); - o.default = ("0", _("Do not store compressed cache")); - - o = s.taboption("tab_advanced", form.Value, "compressed_cache_dir", _("Directory for compressed cache file"), - _("Directory for compressed cache file of block-list in the persistent memory.")); - o.datatype = 'string'; - o.rmempty = true; - o.default = ("/etc"); - o.depends('compressed_cache', '1'); - - o = s.taboption("tab_advanced", form.ListValue, "debug", _("Enable Debugging"), - _("Enables debug output to /tmp/simple-adblock.log.")); - o.value("0", _("Disable Debugging")); - o.value("1", _("Enable Debugging")); - o.default = ("0", _("Disable Debugging")); - - s = m.section(form.NamedSection, "config", "simple-adblock", - _("Allowed and Blocked Lists Management")); - o = s.option(form.Value, "dnsmasq_config_file_url", _("Dnsmasq Config File URL"), - _("URL to the external dnsmasq config file, see the %sREADME%s for details.") - .format("<a href=\"" + pkg.URL + "#dnsmasq_config_file_url\" target=\"_blank\">", "</a>")); - o.addremove = true; - o.rmempty = true; - o = s.option(form.DynamicList, "allowed_domain", _("Allowed Domains"), - _("Individual domains to be allowed.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - o = s.option(form.DynamicList, "allowed_domains_url", _("Allowed Domain URLs"), - _("URLs to lists of domains to be allowed.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - o = s.option(form.DynamicList, "blocked_adblockplus_url", _("Blocked AdBlockPlus-style URLs"), - _("URLs to lists of AdBlockPlus-style formatted domains to be blocked.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - o = s.option(form.DynamicList, "blocked_domain", _("Blocked Domains"), - _("Individual domains to be blocked.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - o = s.option(form.DynamicList, "blocked_domains_url", _("Blocked Domain URLs"), - _("URLs to lists of domains to be blocked.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - o = s.option(form.DynamicList, "blocked_hosts_url", _("Blocked Hosts URLs"), - _("URLs to lists of hosts to be blocked.")); - o.depends('dnsmasq_config_file_url', ''); - o.addremove = true; - - return Promise.all([status.render(), m.render()]); - }) - } -}); diff --git a/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot b/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot deleted file mode 100644 index 0c8d214ade..0000000000 --- a/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot +++ /dev/null @@ -1,559 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:174 -msgid "%s is currently disabled" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:90 -msgid "%s is not installed or not found" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:100 -msgid "Active" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:105 -msgid "Add IPv6 entries" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:103 -msgid "Add IPv6 entries to block-list." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:33 -msgid "Advanced Configuration" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:163 -msgid "Allowed Domain URLs" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:159 -msgid "Allowed Domains" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:153 -msgid "Allowed and Blocked Lists Management" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:134 -msgid "" -"Attempt to create a compressed cache of block-list in the persistent memory." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:35 -msgid "Automatic Config Update" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:32 -msgid "Basic Configuration" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:167 -msgid "Blocked AdBlockPlus-style URLs" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:175 -msgid "Blocked Domain URLs" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:171 -msgid "Blocked Domains" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:179 -msgid "Blocked Hosts URLs" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:110 -msgid "Blocking %s domains (with %s)." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:130 -msgid "Cache file found." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:112 -msgid "Compressed cache file created." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:133 -msgid "Compressed cache file found." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:42 -msgid "Controls system log and console output verbosity." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:122 -msgid "Curl download retry" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:116 -msgid "Curl maximum file size (in bytes)" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:85 -msgid "DNS Service" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:64 -msgid "DNS resolution option, see the %sREADME%s for details." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:139 -msgid "Directory for compressed cache file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:140 -msgid "" -"Directory for compressed cache file of block-list in the persistent memory." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:269 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:37 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:39 -msgid "Disable" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:148 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:150 -msgid "Disable Debugging" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:265 -msgid "Disabling %s service" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:154 -msgid "Dnsmasq Config File URL" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:104 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:108 -msgid "Do not add IPv6 entries" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:135 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:137 -msgid "Do not store compressed cache" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:129 -msgid "Do not use simultaneous processing" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:111 -msgid "Download time-out (in seconds)" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:96 -msgid "Downloading lists" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:258 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:38 -msgid "Enable" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:146 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:149 -msgid "Enable Debugging" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:147 -msgid "Enables debug output to /tmp/simple-adblock.log." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:254 -msgid "Enabling %s service" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:97 -msgid "Error" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:99 -msgid "Fail" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:115 -msgid "Force DNS ports:" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:236 -msgid "Force Re-Download" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:95 -msgid "Force Reloading" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:48 -msgid "Force Router DNS" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:51 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:52 -msgid "Force Router DNS server to all local devices" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:232 -msgid "Force re-downloading %s block lists" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:49 -msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." -msgstr "" - -#: applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json:3 -msgid "Grant UCI and file access for luci-app-simple-adblock" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:102 -msgid "IPv6 Support" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:117 -msgid "" -"If curl is installed and detected, it would not download files bigger than " -"this." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:123 -msgid "" -"If curl is installed and detected, it would retry download this many times " -"on timeout/fail." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:160 -msgid "Individual domains to be allowed." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:172 -msgid "Individual domains to be blocked." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:56 -msgid "LED to indicate status" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:128 -msgid "" -"Launch all lists downloads and processing simultaneously, reducing service " -"start time." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:50 -msgid "Let local devices use their own DNS servers if set" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:148 -msgid "Not installed or not found" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:41 -msgid "Output Verbosity Setting" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:36 -msgid "Perform config update before downloading the block/allow-lists." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:57 -msgid "Pick the LED not already used in %sSystem LED Configuration%s." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:67 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:68 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:69 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:70 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:74 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:77 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:81 -msgid "Please note that %s is not supported on this system." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:93 -msgid "Processing lists" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:94 -msgid "Restarting" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:303 -msgid "Service Control" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:203 -msgid "Service Errors" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:104 -msgid "Service Status" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:160 -msgid "Service Warnings" -msgstr "" - -#: applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json:3 -msgid "Simple AdBlock" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:30 -msgid "Simple AdBlock - Configuration" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:103 -msgid "Simple AdBlock - Status" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:127 -msgid "Simultaneous processing" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:44 -msgid "Some output" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:225 -msgid "Start" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:92 -msgid "Starting" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:221 -msgid "Starting %s service" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:247 -msgid "Stop" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:112 -msgid "Stop the download if it is stalled for set number of seconds." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:91 -msgid "Stopped" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:243 -msgid "Stopping %s service" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:136 -msgid "Store compressed cache" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:133 -msgid "Store compressed cache file on router" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:43 -msgid "Suppress output" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:155 -msgid "" -"URL to the external dnsmasq config file, see the %sREADME%s for details." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:168 -msgid "URLs to lists of AdBlockPlus-style formatted domains to be blocked." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:164 -msgid "URLs to lists of domains to be allowed." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:176 -msgid "URLs to lists of domains to be blocked." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:180 -msgid "URLs to lists of hosts to be blocked." -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:130 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:131 -msgid "Use simultaneous processing" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:45 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:46 -msgid "Verbose output" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:106 -msgid "Version %s" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:98 -msgid "Warning" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:173 -msgid "config (%s) validation failure!" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:127 -msgid "disabled" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:87 -msgid "dnsmasq additional hosts" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:88 -msgid "dnsmasq config" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:90 -msgid "dnsmasq ipset" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:175 -msgid "" -"dnsmasq ipset support is enabled, but dnsmasq is either not installed or " -"installed dnsmasq does not support ipset" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:176 -msgid "" -"dnsmasq ipset support is enabled, but ipset is either not installed or " -"installed ipset does not support '%s' type" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:93 -msgid "dnsmasq nft set" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:177 -msgid "" -"dnsmasq nft set support is enabled, but dnsmasq is either not installed or " -"installed dnsmasq does not support nft set" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:178 -msgid "dnsmasq nft sets support is enabled, but nft is not installed" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:95 -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:100 -msgid "dnsmasq servers file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:183 -msgid "failed to access shared memory" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:181 -msgid "failed to create '%s' file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:193 -msgid "failed to create block-list or restart DNS resolver" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:189 -msgid "failed to create compressed cache" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:180 -msgid "failed to create directory for %s file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:201 -msgid "failed to create output/cache/gzip file directory" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:197 -msgid "failed to download" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:196 -msgid "failed to download Config Update file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:187 -msgid "failed to format data file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:192 -msgid "failed to move '%s' to '%s'" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:188 -msgid "failed to move temporary data file to '%s'" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:185 -msgid "failed to optimize data file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:199 -msgid "failed to parse" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:198 -msgid "failed to parse Config Update file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:186 -msgid "failed to process allow-list" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:195 -msgid "failed to reload/restart DNS resolver" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:190 -msgid "failed to remove temporary files" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:182 -msgid "failed to restart/reload DNS resolver" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:184 -msgid "failed to sort data file" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:194 -msgid "failed to stop %s" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:191 -msgid "failed to unpack compressed cache" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:200 -msgid "no HTTPS/SSL support on device" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:59 -msgid "none" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:158 -msgid "some recommended packages are missing" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:179 -msgid "the %s failed to discover WAN gateway" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/view/simple-adblock/overview.js:98 -msgid "unbound adblock list" -msgstr "" - -#: applications/luci-app-simple-adblock/htdocs/luci-static/resources/simple-adblock/status.js:157 -msgid "" -"use of external dnsmasq config file detected, please set '%s' option to '%s'" -msgstr "" diff --git a/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json b/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json deleted file mode 100644 index b2cdca18eb..0000000000 --- a/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "admin/services/simple-adblock": { - "title": "Simple AdBlock", - "action": { - "type": "view", - "path": "simple-adblock/overview" - }, - "depends": { - "acl": [ - "luci-app-simple-adblock" - ], - "uci": { - "simple-adblock": true - } - } - } -} diff --git a/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json b/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json deleted file mode 100644 index 6aeadc9c63..0000000000 --- a/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "luci-app-simple-adblock": { - "description": "Grant UCI and file access for luci-app-simple-adblock", - "read": { - "ubus": { - "luci.simple-adblock": [ - "getInitList", - "getInitStatus", - "getPlatformSupport" - ] - }, - "uci": [ - "simple-adblock" - ] - }, - "write": { - "uci": [ - "simple-adblock" - ], - "ubus": { - "luci.simple-adblock": [ - "setInitAction" - ] - } - } - } -} diff --git a/applications/luci-app-statistics/po/de/statistics.po b/applications/luci-app-statistics/po/de/statistics.po index 53e627d657..5f3bc3028b 100644 --- a/applications/luci-app-statistics/po/de/statistics.po +++ b/applications/luci-app-statistics/po/de/statistics.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-11 08:42+0000\n" -"Last-Translator: ssantos <ssantos@web.de>\n" +"PO-Revision-Date: 2023-09-02 23:33+0000\n" +"Last-Translator: Felix Baumann <felix.bau@gmx.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsstatistics/de/>\n" "Language: de\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/apcups.js:7 #: applications/luci-app-statistics/root/usr/share/luci/statistics/plugins/apcups.json:2 @@ -657,7 +657,7 @@ msgstr "Maximale Paketgröße" #: applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/memory.js:10 #: applications/luci-app-statistics/root/usr/share/luci/statistics/plugins/memory.json:2 msgid "Memory" -msgstr "Speicher" +msgstr "Arbeitsspeicher" #: applications/luci-app-statistics/htdocs/luci-static/resources/view/statistics/plugins/memory.js:6 msgid "Memory Plugin Configuration" diff --git a/applications/luci-app-ttyd/po/sk/ttyd.po b/applications/luci-app-ttyd/po/sk/ttyd.po index 6906a4c538..500d787597 100644 --- a/applications/luci-app-ttyd/po/sk/ttyd.po +++ b/applications/luci-app-ttyd/po/sk/ttyd.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-07-12 15:48+0000\n" +"PO-Revision-Date: 2023-09-03 01:39+0000\n" "Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/" "luciapplicationsttyd/sk/>\n" @@ -8,7 +8,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js:55 msgid "Accept only one client and exit on disconnection" @@ -90,7 +90,7 @@ msgstr "Chyba" #: applications/luci-app-ttyd/root/usr/share/rpcd/acl.d/luci-app-ttyd.json:3 msgid "Grant UCI access for luci-app-ttyd" -msgstr "" +msgstr "Udeliť prístup k UCI pre luci-app-ttyd" #: applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js:33 msgid "Group ID" diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po index ae0fb843f2..35be06c8a0 100644 --- a/modules/luci-base/po/de/base.po +++ b/modules/luci-base/po/de/base.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-26 17:57+0200\n" -"PO-Revision-Date: 2023-08-20 12:46+0000\n" +"PO-Revision-Date: 2023-09-02 23:33+0000\n" "Last-Translator: Felix Baumann <felix.bau@gmx.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/openwrt/luci/de/>" "\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:921 msgid "!known (not known)" @@ -1481,7 +1481,7 @@ msgstr "Durchsuchen…" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:40 msgid "Buffered" -msgstr "Gepuffert" +msgstr "Pufferspeicher" #: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:130 msgid "" @@ -1523,7 +1523,7 @@ msgstr "CPU-Nutzung (%)" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:43 msgid "Cached" -msgstr "Im Cache" +msgstr "Zugriffsspeicher" #: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:53 #: modules/luci-compat/luasrc/model/network/proto_qmi.lua:53 @@ -2519,7 +2519,7 @@ msgstr "Trennungsversuch fehlgeschlagen." #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/25_storage.js:35 msgid "Disk space" -msgstr "Speicherplatz" +msgstr "Festspeicher" #: modules/luci-base/htdocs/luci-static/resources/form.js:611 #: modules/luci-base/htdocs/luci-static/resources/form.js:3022 @@ -5651,7 +5651,7 @@ msgstr "Mittel" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:24 msgid "Memory" -msgstr "Speicher" +msgstr "Arbeitsspeicher" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:73 msgid "Memory usage (%)" @@ -9087,7 +9087,7 @@ msgstr "Aktualisierungen deaktivieren" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/25_storage.js:24 msgid "Storage" -msgstr "Speicher" +msgstr "Datenspeicher" #: modules/luci-mod-network/htdocs/luci-static/resources/tools/network.js:683 msgid "Strict filtering" @@ -10092,7 +10092,7 @@ msgstr "Ton" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:35 msgid "Total Available" -msgstr "Gesamt verfügbar" +msgstr "Verfügbar" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:110 #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:111 diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po index 1972741072..063f7c22db 100644 --- a/modules/luci-base/po/pl/base.po +++ b/modules/luci-base/po/pl/base.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: LuCI\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-20 09:40+0200\n" -"PO-Revision-Date: 2023-08-26 23:26+0000\n" +"PO-Revision-Date: 2023-09-02 03:54+0000\n" "Last-Translator: Matthaiks <kitynska@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/luci/pl/>" "\n" @@ -933,7 +933,7 @@ msgstr "Dozwolone adresy IP" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:86 msgid "Allowed network technology" -msgstr "" +msgstr "Dozwolona technologia sieciowa" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:315 msgid "AllowedIPs setting is invalid" @@ -6096,7 +6096,7 @@ msgstr "Brak skonfigurowanych interfejsów WireGuard." #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:16 msgid "No allowed mode configuration found." -msgstr "" +msgstr "Nie znaleziono konfiguracji dozwolonego trybu." #: themes/luci-theme-bootstrap/ucode/template/themes/bootstrap/header.ut:68 #: themes/luci-theme-material/ucode/template/themes/material/header.ut:88 @@ -6207,7 +6207,7 @@ msgstr "Nie zdefiniowano jeszcze peerów." #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:15 msgid "No preferred mode configuration found." -msgstr "" +msgstr "Nie znaleziono konfiguracji preferowanego trybu." #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:146 #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:283 @@ -7203,7 +7203,7 @@ msgstr "Preferuj UMTS" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:106 msgid "Preferred network technology" -msgstr "" +msgstr "Preferowana technologia sieciowa" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:33 msgid "Prefix Delegated" @@ -8387,11 +8387,11 @@ msgstr "Ustawienie trybu nie powiodło się" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:87 msgid "Setting the allowed network technology." -msgstr "" +msgstr "Ustawianie dozwolonej technologii sieciowej." #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:107 msgid "Setting the preferred network technology." -msgstr "" +msgstr "Ustawianie preferowanej technologii sieciowej." #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/uhttpd.js:11 msgid "Settings" @@ -10246,11 +10246,11 @@ msgstr "Nie można zapisać zawartości: %s" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:14 msgid "Unable to set allowed mode list." -msgstr "" +msgstr "Nie można ustawić listy dozwolonych trybów." #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:17 msgid "Unable to set preferred mode." -msgstr "" +msgstr "Nie można ustawić preferowanego trybu." #: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:29 msgid "Unable to verify PIN" diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po index 55eb7f87d8..82feadf39e 100644 --- a/modules/luci-base/po/ro/base.po +++ b/modules/luci-base/po/ro/base.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2023-08-26 23:26+0000\n" +"PO-Revision-Date: 2023-09-02 13:20+0000\n" "Last-Translator: Simona Iacob <s@zp1.net>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/openwrt/luci/ro/" ">\n" @@ -932,7 +932,7 @@ msgstr "IP-uri permise" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:86 msgid "Allowed network technology" -msgstr "" +msgstr "Tehnologie de rețea permisă" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:315 msgid "AllowedIPs setting is invalid" @@ -1467,7 +1467,7 @@ msgstr "Activați interfața de punte chiar dacă nu sunt atașate porturi" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:936 msgid "Broadcast" -msgstr "" +msgstr "Difuzare" #: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:207 msgid "Broadcast policy (broadcast, 3)" @@ -1505,7 +1505,7 @@ msgstr "Configurarea CLAT a eșuat" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:265 msgid "CNAME" -msgstr "" +msgstr "CNUME" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:651 msgid "CNAME or fqdn" diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po index 4800826f3a..4dc43816a8 100644 --- a/modules/luci-base/po/ru/base.po +++ b/modules/luci-base/po/ru/base.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: LuCI: base\n" "POT-Creation-Date: 2010-05-09 01:01+0300\n" -"PO-Revision-Date: 2023-08-22 18:57+0000\n" -"Last-Translator: \"Alexey D. Filimonov\" <alexey@filimonic.net>\n" +"PO-Revision-Date: 2023-09-03 13:31+0000\n" +"Last-Translator: st7105 <st7105@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/openwrt/luci/ru/>" "\n" "Language: ru\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" "Project-Info: Это технический перевод, не дословный. Главное-удобный русский " "интерфейс, все проверялось в графическом режиме, совместим с другими apps\n" @@ -936,7 +936,7 @@ msgstr "Разрешенные IP-адреса" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:86 msgid "Allowed network technology" -msgstr "" +msgstr "Разрешенные сетевые технологии" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:315 msgid "AllowedIPs setting is invalid" diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po index 55c9cc3219..751f67a982 100644 --- a/modules/luci-base/po/sk/base.po +++ b/modules/luci-base/po/sk/base.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2023-08-11 23:51+0000\n" +"PO-Revision-Date: 2023-09-03 01:39+0000\n" "Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/luci/sk/>" "\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:921 msgid "!known (not known)" @@ -1766,8 +1766,9 @@ msgid "Collecting data..." msgstr "Zbieram dáta..." #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:241 +#, fuzzy msgid "Collisions seen" -msgstr "" +msgstr "Zistené kolízie" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:71 msgid "Command" @@ -3731,8 +3732,9 @@ msgid "Grant access to flash operations" msgstr "" #: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json:3 +#, fuzzy msgid "Grant access to main status display" -msgstr "" +msgstr "Udeliť prístup k zobrazeniu hlavného stavu" #: protocols/luci-proto-modemmanager/root/usr/share/rpcd/acl.d/luci-proto-modemmanager.json:3 msgid "Grant access to mmcli" @@ -3788,7 +3790,7 @@ msgstr "" #: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json:41 msgid "Grant access to wireless status display" -msgstr "" +msgstr "Udeliť prístup k zobrazeniu stavu bezdrôtovej siete" #: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:66 msgid "Group Password" @@ -6746,9 +6748,9 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:282 msgid "Part of network:" msgid_plural "Part of networks:" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Súčasť siete:" +msgstr[1] "Súčasť sietí:" +msgstr[2] "Súčasť sietí:" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:153 #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1229 @@ -6984,7 +6986,7 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:290 msgid "Port status" -msgstr "" +msgstr "Stav portov" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:278 msgid "Port status:" @@ -7347,11 +7349,12 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:234 msgid "Receive dropped" -msgstr "" +msgstr "Zahodené prijaté" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:233 +#, fuzzy msgid "Receive errors" -msgstr "" +msgstr "Chyby prijatia" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/view/wireguard/status.js:57 msgid "Received Data" @@ -7359,15 +7362,15 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:230 msgid "Received bytes" -msgstr "" +msgstr "Prijaté bajty" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:232 msgid "Received multicast" -msgstr "" +msgstr "Prijaté multicast" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:231 msgid "Received packets" -msgstr "" +msgstr "Prijaté pakety" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:181 msgid "Recommended. IP addresses of the WireGuard interface." @@ -8625,7 +8628,7 @@ msgstr "Tu určte kľúč s tajným šifrovaním." #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:206 msgid "Speed: %d Mibit/s, Duplex: %s" -msgstr "" +msgstr "Rýchlosť: %d Mibit/s, Duplex: %s" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:1529 msgid "Splitterless ADSL (G.992.2) Annex A" @@ -9654,11 +9657,11 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:239 msgid "Transmit dropped" -msgstr "" +msgstr "Zahodené odoslané" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:238 msgid "Transmit errors" -msgstr "" +msgstr "Chyby odoslania" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/view/wireguard/status.js:58 msgid "Transmitted Data" @@ -9666,11 +9669,11 @@ msgstr "" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:236 msgid "Transmitted bytes" -msgstr "" +msgstr "Odoslané bajty" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/29_ports.js:237 msgid "Transmitted packets" -msgstr "" +msgstr "Odoslané pakety" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js:79 msgctxt "nft @th,off,len" diff --git a/modules/luci-base/po/zh_Hans/base.po b/modules/luci-base/po/zh_Hans/base.po index 1e2a672aaf..55343a8f19 100644 --- a/modules/luci-base/po/zh_Hans/base.po +++ b/modules/luci-base/po/zh_Hans/base.po @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"PO-Revision-Date: 2023-08-11 23:51+0000\n" +"PO-Revision-Date: 2023-09-02 03:54+0000\n" "Last-Translator: Eric <hamburger2048@users.noreply.hosted.weblate.org>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "openwrt/luci/zh_Hans/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:921 msgid "!known (not known)" @@ -910,7 +910,7 @@ msgstr "允许的 IP" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:86 msgid "Allowed network technology" -msgstr "" +msgstr "允许的网络技术" #: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:315 msgid "AllowedIPs setting is invalid" @@ -5896,7 +5896,7 @@ msgstr "未配置 WireGuard 接口。" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:16 msgid "No allowed mode configuration found." -msgstr "" +msgstr "未找到允许的模式配置。" #: themes/luci-theme-bootstrap/ucode/template/themes/bootstrap/header.ut:68 #: themes/luci-theme-material/ucode/template/themes/material/header.ut:88 @@ -6004,7 +6004,7 @@ msgstr "尚未定义对端。" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:15 msgid "No preferred mode configuration found." -msgstr "" +msgstr "未找到首选的模式配置。" #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:146 #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:283 @@ -6967,7 +6967,7 @@ msgstr "首选 UMTS" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:106 msgid "Preferred network technology" -msgstr "" +msgstr "首选的网络技术" #: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:33 msgid "Prefix Delegated" @@ -8107,11 +8107,11 @@ msgstr "设置操作模式失败" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:87 msgid "Setting the allowed network technology." -msgstr "" +msgstr "设置允许的网络技术。" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:107 msgid "Setting the preferred network technology." -msgstr "" +msgstr "设置首选的网络技术。" #: modules/luci-mod-system/htdocs/luci-static/resources/view/system/uhttpd.js:11 msgid "Settings" @@ -9810,11 +9810,11 @@ msgstr "无法保存内容:%s" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:14 msgid "Unable to set allowed mode list." -msgstr "" +msgstr "无法设置允许的模式列表。" #: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:17 msgid "Unable to set preferred mode." -msgstr "" +msgstr "无法设置首选的模式。" #: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:29 msgid "Unable to verify PIN" diff --git a/modules/luci-mod-dashboard/po/sk/dashboard.po b/modules/luci-mod-dashboard/po/sk/dashboard.po index 8e9af8cd97..21bcb66aec 100644 --- a/modules/luci-mod-dashboard/po/sk/dashboard.po +++ b/modules/luci-mod-dashboard/po/sk/dashboard.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"PO-Revision-Date: 2023-07-12 15:48+0000\n" +"PO-Revision-Date: 2023-09-02 23:33+0000\n" "Last-Translator: MaycoH <hudec.marian@hotmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/openwrt/" "lucimodulesluci-mod-dashboard/sk/>\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" #: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js:163 msgid "Active" @@ -53,7 +53,7 @@ msgstr "DNSv6" #: modules/luci-mod-dashboard/root/usr/share/luci/menu.d/luci-mod-dashboard.json:3 msgid "Dashboard" -msgstr "" +msgstr "Nástenka" #: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js:134 msgid "Devices" @@ -96,8 +96,9 @@ msgid "Grant access to DHCP status display" msgstr "Udeliť prístup k zobrazeniu stavu DHCP" #: modules/luci-mod-dashboard/root/usr/share/rpcd/acl.d/luci-mod-dashboard.json:12 +#, fuzzy msgid "Grant access to main status display" -msgstr "" +msgstr "Udeliť prístup k zobrazeniu hlavného stavu" #: modules/luci-mod-dashboard/root/usr/share/rpcd/acl.d/luci-mod-dashboard.json:3 msgid "Grant access to the system route status" @@ -105,7 +106,7 @@ msgstr "" #: modules/luci-mod-dashboard/root/usr/share/rpcd/acl.d/luci-mod-dashboard.json:34 msgid "Grant access to wireless status display" -msgstr "" +msgstr "Udeliť prístup k zobrazeniu stavu bezdrôtovej siete" #: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js:30 #: modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js:83 |