diff --git a/luci-app-smartdns/Makefile b/luci-app-smartdns/Makefile
new file mode 100644
index 0000000..21eae1f
--- /dev/null
+++ b/luci-app-smartdns/Makefile
@@ -0,0 +1,26 @@
+# 
+# Copyright 2018-2025 Nick Peng <pymumu@gmail.com>
+# Licensed to the public under the GPL V3 License.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
+PKG_VERSION:=1.2025.47
+PKG_RELEASE:=1
+
+LUCI_TITLE:=LuCI for smartdns
+LUCI_DESCRIPTION:=Provides Luci for smartdns
+LUCI_DEPENDS:=+smartdns
+LUCI_PKGARCH:=all
+
+define Package/$(PKG_NAME)/config
+# shown in make menuconfig <Help>
+help
+	$(LUCI_TITLE)
+	Version: $(PKG_VERSION)-$(PKG_RELEASE)
+endef
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/luci-app-smartdns/ReadMe.md b/luci-app-smartdns/ReadMe.md
new file mode 100644
index 0000000..51475a3
--- /dev/null
+++ b/luci-app-smartdns/ReadMe.md
@@ -0,0 +1,101 @@
+# luci-app-smartdns
+
+此仓库为smartdns独立仓库,为单独编译使用, 在安装此界面前,需要先安装smartdns进程编译脚本。  
+请先安装[openwrt-smartdns](https://github.com/pymumu/openwrt-smartdns)
+
+仓库分为两个分支
+
+1. master分支为openwrt 19.07之后版本使用,此版本基于javascript。
+2. lede分支为lede分支使用, 此版本基于lua。
+
+使用时,请使用配套的版本。
+
+## 使用方式
+
+如下命令操作路径为openwrt源代码所在目录。  
+
+### 复制仓库中的文件到如下目录,并执行安装
+
+```shell
+feeds/luci/applications/luci-app-smartdns/
+./scripts/feeds install luci -a
+```
+
+> lede请下载lede分支
+
+### 执行openwrt配置, 选中luci-app-smartdns
+
+* 选择路径:
+
+LuCI > 3. Applications > luci-app-smartdns  
+
+```shell
+make menuconfig
+```
+
+* 编译模式:
+
+1. 若编译独立软件包,选择编译模式为`M`
+1. 若编译到固件中,选择编译模式为`*`
+
+### 执行openwrt编译
+
+仅编译软件包:
+
+```shell
+make package/feeds/luci/applications/luci-app-smartdns/compile
+```
+
+编译固件以及软件包。
+
+```shell
+make -j8
+```
+
+## 懒人脚本
+
+可执行如下命令,一次性下载smartdns以及luci-app-smartdns。  
+下列命令可采用复制粘贴的方式执行。
+
+注意事项:
+
+1. 执行下列命令时,需要确保当前路径为openwrt代码路径。
+1. 确保执行过./scripts/feeds进行更新。
+1. 若是LEDE,请更换`LUCIBRANCH`变量为
+
+```shell
+LUCIBRANCH="lede"
+```
+
+批量命令:
+
+```shell
+WORKINGDIR="`pwd`/feeds/packages/net/smartdns"
+mkdir $WORKINGDIR -p
+rm $WORKINGDIR/* -fr
+wget https://github.com/pymumu/openwrt-smartdns/archive/master.zip -O $WORKINGDIR/master.zip
+unzip $WORKINGDIR/master.zip -d $WORKINGDIR
+mv $WORKINGDIR/openwrt-smartdns-master/* $WORKINGDIR/
+rmdir $WORKINGDIR/openwrt-smartdns-master
+rm $WORKINGDIR/master.zip
+
+LUCIBRANCH="master" #更换此变量
+WORKINGDIR="`pwd`/feeds/luci/applications/luci-app-smartdns"
+mkdir $WORKINGDIR -p
+rm $WORKINGDIR/* -fr
+wget https://github.com/pymumu/luci-app-smartdns/archive/${LUCIBRANCH}.zip -O $WORKINGDIR/${LUCIBRANCH}.zip
+unzip $WORKINGDIR/${LUCIBRANCH}.zip -d $WORKINGDIR
+mv $WORKINGDIR/luci-app-smartdns-${LUCIBRANCH}/* $WORKINGDIR/
+rmdir $WORKINGDIR/luci-app-smartdns-${LUCIBRANCH}
+rm $WORKINGDIR/${LUCIBRANCH}.zip
+
+./scripts/feeds install -a
+make menuconfig
+
+```
+
+下载完成后,执行配置编译。
+
+## 注意事项
+
+如果安装完成后,未生效,可以重启设备,清空浏览器缓存,或用安全模式浏览。
\ No newline at end of file
diff --git a/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/log.js b/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/log.js
new file mode 100644
index 0000000..e5a8fe6
--- /dev/null
+++ b/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/log.js
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * Copyright (C) 2018-2025 Ruilin Peng (Nick) <pymumu@gmail.com>.
+ *
+ * smartdns is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * smartdns is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+'use strict';
+'require dom';
+'require fs';
+'require poll';
+'require uci';
+'require view';
+'require form';
+'require ui';
+
+return view.extend({
+	render: function () {
+		var css = `
+			#log_textarea {
+				margin-top: 10px;
+			}
+			#log_textarea pre {
+				background-color: #f7f7f7;
+				color: #333;
+				padding: 10px;
+				border: 1px solid #ccc;
+				border-radius: 4px;
+				font-family: Consolas, Menlo, Monaco, monospace;
+				font-size: 14px;
+				line-height: 1.5;
+				white-space: pre-wrap;
+				word-wrap: break-word;
+				overflow-y: auto;
+				max-height: 650px;
+			}
+			#.description {
+				background-color: #33ccff;
+			}
+			.cbi-button-danger {
+				background-color: #fff;
+				color: #f00;
+				border: 1px solid #f00;
+				border-radius: 4px;
+				padding: 4px 8px;
+				font-size: 14px;
+				cursor: pointer;
+				margin-top: 10px;
+			}
+			.cbi-button-danger:hover {
+				background-color: #f00;
+				color: #fff;
+			}
+			.cbi-section small {
+				margin-left: 10px;
+			}
+			.cbi-section .cbi-section-actions {
+				margin-top: 10px;
+			}
+			.cbi-section .cbi-section-actions-right {
+				text-align: right;
+			}
+		`;
+
+
+		var log_textarea = E('div', { 'id': 'log_textarea' },
+			E('img', {
+				'src': L.resource(['icons/loading.gif']),
+				'alt': _('Loading...'),
+				'style': 'vertical-align:middle'
+			}, _('Collecting data ...'))
+		);
+
+		var clear_log_button = E('th', {}, [
+			E('button', {
+				'class': 'cbi-button cbi-button-remove',
+				'click': function (ev) {
+					ev.preventDefault();
+					var button = ev.target;
+					button.disabled = true;
+					button.textContent = _('Clear Logs...');
+					fs.exec_direct('/usr/libexec/smartdns-call', ['clear_log'])
+						.then(function () {
+							button.textContent = _('Logs cleared successfully!');
+							setTimeout(function () {
+								button.disabled = false;
+								button.textContent = _('Clear Logs');
+							}, 5000);
+							// Immediately refresh log display box
+							var log = E('pre', { 'wrap': 'pre' }, [_('Log is clean.')]);
+							dom.content(log_textarea, log);
+						})
+						.catch(function () {
+							button.textContent = _('Failed to clear log.');
+							setTimeout(function () {
+								button.disabled = false;
+								button.textContent = _('Clear Logs');
+							}, 5000);
+						});
+				}
+			}, _('Clear Logs'))
+		]);
+
+
+		poll.add(L.bind(function () {
+			return fs.exec_direct('/usr/libexec/smartdns-call', ['tail'])
+				.then(function (res) {
+					var log = E('pre', { 'wrap': 'pre' }, [res.trim() || _('Log is clean.')]);
+
+					dom.content(log_textarea, log);
+					log.scrollTop = log.scrollHeight;
+				}).catch(function (err) {
+					var log;
+
+					if (err.toString().includes('NotFoundError')) {
+						log = E('pre', { 'wrap': 'pre' }, [_('Log file does not exist.')]);
+					} else {
+						log = E('pre', { 'wrap': 'pre' }, [_('Unknown error: %s').format(err)]);
+					}
+
+					dom.content(log_textarea, log);
+				});
+		}));
+
+		var back_smartdns_button = E('th', {}, [
+			E('button', {
+				'class': 'cbi-button cbi-button-apply',
+				'click': ui.createHandlerFn(this, function () {
+					window.location.href = "/cgi-bin/luci/admin/services/smartdns"
+				})
+			}, _('Back SmartDNS'))
+		]);
+
+		return E('div', { 'class': 'cbi-map' }, [
+			E('style', [css]),
+			E('div', { 'class': 'cbi-section' }, [
+				clear_log_button,
+				back_smartdns_button,
+				log_textarea,
+				E('small', {}, _('Refresh every %s seconds.').format(L.env.pollinterval)),
+				E('div', { 'class': 'cbi-section-actions cbi-section-actions-right' })
+			])
+		]);
+	},
+
+	handleSaveApply: null,
+	handleSave: null,
+	handleReset: null
+});
diff --git a/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js b/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js
new file mode 100644
index 0000000..e4a4d98
--- /dev/null
+++ b/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js
@@ -0,0 +1,1683 @@
+/*************************************************************************
+ *
+ * Copyright (C) 2018-2025 Ruilin Peng (Nick) <pymumu@gmail.com>.
+ *
+ * smartdns is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * smartdns is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+'use strict';
+'require fs';
+'require uci';
+'require form';
+'require view';
+'require poll';
+'require rpc';
+'require ui';
+
+var conf = 'smartdns';
+var callServiceList = rpc.declare({
+	object: 'service',
+	method: 'list',
+	params: ['name'],
+	expect: { '': {} }
+});
+var pollAdded = false;
+
+function getServiceStatus() {
+	return L.resolveDefault(callServiceList(conf), {})
+		.then(function (res) {
+			var is_running = false;
+			try {
+				is_running = res[conf]['instances']['smartdns']['running'];
+			} catch (e) { }
+			return is_running;
+		});
+}
+
+function smartdnsServiceStatus() {
+	return Promise.all([
+		getServiceStatus()
+	]);
+}
+
+function smartdnsRenderStatus(res) {
+	var renderHTML = "";
+	var isRunning = res[0];
+
+	var autoSetDnsmasq = uci.get_first('smartdns', 'smartdns', 'auto_set_dnsmasq');
+	var smartdnsPort = uci.get_first('smartdns', 'smartdns', 'port');
+	var smartdnsEnable = uci.get_first('smartdns', 'smartdns', 'enabled');
+	var dnsmasqServer = uci.get_first('dhcp', 'dnsmasq', 'server');
+
+	if (isRunning) {
+		renderHTML += "<span style=\"color:green;font-weight:bold\">SmartDNS - " + _("RUNNING") + "</span>";
+	} else {
+		renderHTML += "<span style=\"color:red;font-weight:bold\">SmartDNS - " + _("NOT RUNNING") + "</span>";
+		if (smartdnsEnable === '1') {
+			renderHTML += "<br /><span style=\"color:red;font-weight:bold\">" + _("Please check the system logs and check if the configuration is valid.");
+			renderHTML += "</span>";
+		}
+		return renderHTML;
+	}
+
+	if (autoSetDnsmasq === '1' && smartdnsPort != '53') {
+		var matchLine = "127.0.0.1#" + smartdnsPort;
+
+		uci.unload('dhcp');
+		uci.load('dhcp');
+		if (dnsmasqServer == undefined || dnsmasqServer.indexOf(matchLine) < 0) {
+			renderHTML += "<br /><span style=\"color:red;font-weight:bold\">" + _("Dnsmasq Forwarded To Smartdns Failure") + "</span>";
+		}
+	}
+
+	return renderHTML;
+}
+return view.extend({
+	load: function () {
+		return Promise.all([
+			uci.load('dhcp'),
+			uci.load('smartdns'),
+		]);
+	},
+	render: function (stats) {
+		var m, s, o;
+		var ss, so;
+		var servers, download_files;
+
+		m = new form.Map('smartdns', _('SmartDNS'));
+		m.title = _("SmartDNS Server");
+		m.description = _("SmartDNS is a local high-performance DNS server, supports finding fastest IP, "
+			+ "supports ad filtering, and supports avoiding DNS poisoning.");
+
+		s = m.section(form.NamedSection, '_status');
+		s.anonymous = true;
+		s.render = function (section_id) {
+			var renderStatus = function () {
+				return L.resolveDefault(smartdnsServiceStatus()).then(function (res) {
+					var view = document.getElementById("service_status");
+					if (view == null) {
+						return;
+					}
+
+					view.innerHTML = smartdnsRenderStatus(res);
+				});
+			}
+
+			if (pollAdded == false) {
+				poll.add(renderStatus, 1);
+				pollAdded = true;
+			}
+
+			return E('div', { class: 'cbi-section' }, [
+				E('div', { id: 'service_status' },
+					_('Collecting data ...'))
+			]);
+		}
+
+		////////////////
+		// Basic;
+		////////////////
+		s = m.section(form.TypedSection, "smartdns", _("Settings"), _("General Settings"));
+		s.anonymous = true;
+
+		s.tab("settings", _("General Settings"));
+		s.tab("advanced", _('Advanced Settings'));
+		s.tab("seconddns", _("Second Server Settings"));
+		s.tab("dns64", _("DNS64 Server Settings"));
+		s.tab("files", _("Download Files Setting"), _("Download domain list files for domain-rule and include config files, please refresh the page after download to take effect."));
+		s.tab("proxy", _("Proxy Server Settings"));
+		s.tab("custom", _("Custom Settings"));
+
+		///////////////////////////////////////
+		// Basic Settings
+		///////////////////////////////////////
+		o = s.taboption("settings", form.Flag, "enabled", _("Enable"), _("Enable or disable smartdns server"));
+		o.rmempty = false;
+		o.default = o.disabled;
+
+		// server name;
+		o = s.taboption("settings", form.Value, "server_name", _("Server Name"), _("Smartdns server name"));
+		o.default = "smartdns";
+		o.datatype = "hostname";
+		o.rempty = false;
+
+		// Port;
+		o = s.taboption("settings", form.Value, "port", _("Local Port"),
+			_("Smartdns local server port, smartdns will be automatically set as main dns when the port is 53."));
+		o.placeholder = 53;
+		o.default = 53;
+		o.datatype = "port";
+		o.rempty = false;
+
+		// auto-conf-dnsmasq;
+		o = s.taboption("settings", form.Flag, "auto_set_dnsmasq", _("Automatically Set Dnsmasq"), _("Automatically set as upstream of dnsmasq when port changes."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		///////////////////////////////////////
+		// advanced settings;
+		///////////////////////////////////////
+		// Speed check mode;
+		o = s.taboption("advanced", form.Value, "speed_check_mode", _("Speed Check Mode"), _("Smartdns speed check mode."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.value("", _("default"));
+		o.value("ping,tcp:80,tcp:443");
+		o.value("ping,tcp:443,tcp:80");
+		o.value("tcp:80,tcp:443,ping");
+		o.value("tcp:443,tcp:80,ping");
+		o.value("none", _("None"));
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (value == "none") {
+				return true;
+			}
+
+			var check_mode = value.split(",")
+			for (var i = 0; i < check_mode.length; i++) {
+				if (check_mode[i] == "ping") {
+					continue;
+				}
+
+				if (check_mode[i].indexOf("tcp:") == 0) {
+					var port = check_mode[i].split(":")[1];
+					if (port == "") {
+						return _("TCP port is empty");
+					}
+
+					continue;
+				}
+
+				return _("Speed check mode is invalid.");
+			}
+
+			return true;
+		}
+
+		// response mode;
+		o = s.taboption("advanced", form.ListValue, "response_mode", _("Response Mode"),
+			_("Smartdns response mode, First Ping: return the first ping IP, Fastest IP: return the fastest IP, Fastest Response: return the fastest DNS response."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.value("", _("default"));
+		o.value("first-ping", _("First Ping"));
+		o.value("fastest-ip", _("Fastest IP"));
+		o.value("fastest-response", _("Fastest Response"));
+
+		// Enable TCP server;
+		o = s.taboption("advanced", form.Flag, "tcp_server", _("TCP Server"), _("Enable TCP DNS Server"));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// Enable DOT server;
+		o = s.taboption("advanced", form.Flag, "tls_server", _("DOT Server"), _("Enable DOT DNS Server"));
+		o.rmempty = false;
+		o.default = o.disabled;
+
+		o = s.taboption("advanced", form.Value, "tls_server_port", _("DOT Server Port"), _("Smartdns DOT server port."));
+		o.placeholder = 853;
+		o.default = 853;
+		o.datatype = "port";
+		o.rempty = false;
+		o.depends('tls_server', '1');
+
+		// Enable DOH server;
+		o = s.taboption("advanced", form.Flag, "doh_server", _("DOH Server"), _("Enable DOH DNS Server"));
+		o.rmempty = false;
+		o.default = o.disabled;
+
+		o = s.taboption("advanced", form.Value, "doh_server_port", _("DOH Server Port"), _("Smartdns DOH server port."));
+		o.placeholder = 843;
+		o.default = 843;
+		o.datatype = "port";
+		o.rempty = false;
+		o.depends('doh_server', '1');
+
+		o = s.taboption("advanced", form.Value, "bind_cert", _("Server Cert"), _("Server certificate file path."));
+		o.datatype = "string";
+		o.placeholder = "/var/etc/smartdns/smartdns/smartdns-cert.pem"
+		o.rempty = true;
+		o.depends('tls_server', '1');
+		o.depends('doh_server', '1');
+	
+		o = s.taboption("advanced", form.Value, "bind_cert_key", _("Server Cert Key"), _("Server certificate key file path."));
+		o.datatype = "string";
+		o.placeholder = "/var/etc/smartdns/smartdns/smartdns-key.pem"
+		o.rempty = false;
+		o.depends('tls_server', '1');
+		o.depends('doh_server', '1');
+
+		o = s.taboption("advanced", form.Value, "bind_cert_key_pass", _("Server Cert Key Pass"), _("Server certificate key file password."));
+		o.datatype = "string";
+		o.rempty = false;
+		o.depends('tls_server', '1');
+		o.depends('doh_server', '1');
+
+		// Support IPV6;
+		o = s.taboption("advanced", form.Flag, "ipv6_server", _("IPV6 Server"), _("Enable IPV6 DNS Server"));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// bind to device;
+		o = s.taboption("advanced", form.Flag, "bind_device", _("Bind Device"), _("Listen only on the specified interfaces."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// bind device name;
+		o = s.taboption("advanced", form.Value, "bind_device_name", _("Bind Device Name"), _("Name of device name listen on."));
+		o.placeholder = "default";
+		o.rempty = true;
+		o.datatype = "string";
+
+		// Support DualStack ip selection;
+		o = s.taboption("advanced", form.Flag, "dualstack_ip_selection", _("Dual-stack IP Selection"),
+			_("Enable IP selection between IPV4 and IPV6"));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// Domain prefetch load ;
+		o = s.taboption("advanced", form.Flag, "prefetch_domain", _("Domain prefetch"),
+			_("Enable domain prefetch, accelerate domain response speed."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// Domain Serve expired
+		o = s.taboption("advanced", form.Flag, "serve_expired", _("Serve expired"),
+			_("Attempts to serve old responses from cache with a TTL of 0 in the response without waiting for the actual resolution to finish."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// cache-size;
+		o = s.taboption("advanced", form.Value, "cache_size", _("Cache Size"), _("DNS domain result cache size"));
+		o.rempty = true;
+
+		// cache-persist;
+		o = s.taboption("advanced", form.Flag, "cache_persist", _("Cache Persist"), _("Write cache to disk on exit and load on startup."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// resolve local hostname;
+		o = s.taboption("advanced", form.Flag, "resolve_local_hostnames", _("Resolve Local Hostnames"), _("Resolve local hostnames by reading Dnsmasq lease file."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// resolve local network hostname via mDNS;
+		o = s.taboption("advanced", form.Flag, "mdns_lookup", _("mDNS Lookup"), _("Resolve local network hostname via mDNS protocol."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// Force AAAA SOA
+		o = s.taboption("advanced", form.Flag, "force_aaaa_soa", _("Force AAAA SOA"), _("Force AAAA SOA."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// Force HTTPS SOA
+		o = s.taboption("advanced", form.Flag, "force_https_soa", _("Force HTTPS SOA"), _("Force HTTPS SOA."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// ipset name;
+		o = s.taboption("advanced", form.Value, "ipset_name", _("IPset Name"), _("IPset name."));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var ipset = value.split(",")
+			for (var i = 0; i < ipset.length; i++) {
+				if (!ipset[i].match(/^(#[4|6]:)?[a-zA-Z0-9\-_]+$/)) {
+					return _("ipset name format error, format: [#[4|6]:]ipsetname");
+				}
+			}
+
+			return true;
+		}
+
+		// Ipset no speed.
+		o = s.taboption("advanced", form.Value, "ipset_no_speed", _("No Speed IPset Name"),
+			_("Ipset name, Add domain result to ipset when speed check fails."));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var ipset = value.split(",")
+			for (var i = 0; i < ipset.length; i++) {
+				if (!ipset[i].match(/^(#[4|6]:)?[a-zA-Z0-9\-_]+$/)) {
+					return _("ipset name format error, format: [#[4|6]:]ipsetname");
+				}
+			}
+
+			return true;
+		}
+		
+		// NFTset name;
+		o = s.taboption("advanced", form.Value, "nftset_name", _("NFTset Name"), _("NFTset name, format: [#[4|6]:[family#table#set]]"));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/^#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// NFTset no speed.
+		o = s.taboption("advanced", form.Value, "nftset_no_speed", _("No Speed NFTset Name"),
+			_("Nftset name, Add domain result to nftset when speed check fails, format: [#[4|6]:[family#table#set]]"));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/^#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// rr-ttl;
+		o = s.taboption("advanced", form.Value, "rr_ttl", _("Domain TTL"), _("TTL for all domain result."));
+		o.rempty = true;
+
+		// rr-ttl-min;
+		o = s.taboption("advanced", form.Value, "rr_ttl_min", _("Domain TTL Min"),
+			_("Minimum TTL for all domain result."));
+		o.rempty = true;
+		o.placeholder = "600";
+		o.default = 600;
+		o.optional = true;
+
+		// rr-ttl-max;
+		o = s.taboption("advanced", form.Value, "rr_ttl_max", _("Domain TTL Max"),
+			_("Maximum TTL for all domain result."));
+		o.rempty = true;
+
+		// rr-ttl-reply-max;
+		o = s.taboption("advanced", form.Value, "rr_ttl_reply_max", _("Reply Domain TTL Max"),
+			_("Reply maximum TTL for all domain result."));
+		o.rempty = true;
+
+		// other args
+		o = s.taboption("advanced", form.Value, "server_flags", _("Additional Server Args"),
+			_("Additional server args, refer to the help description of the bind option."))
+		o.default = ""
+		o.rempty = true
+
+		// include config
+		download_files = uci.sections('smartdns', 'download-file');
+		o = s.taboption("advanced", form.DynamicList, "conf_files", _("Include Config Files<br>/etc/smartdns/conf.d"),
+			_("Include other config files from /etc/smartdns/conf.d or custom path, can be downloaded from the download page."));
+		for (var i = 0; i < download_files.length; i++) {
+			if (download_files[i].type == undefined) {
+				continue;
+			}
+
+			if (download_files[i].type != 'config') {
+				continue
+			}
+
+			o.value(download_files[i].name);
+		}
+
+		o = s.taboption("advanced", form.DynamicList, "hosts_files", _("Hosts File"), _("Include hosts file."));
+		o.rmempty = true;
+		for (var i = 0; i < download_files.length; i++) {
+			if (download_files[i].type == undefined) {
+				continue;
+			}
+
+			if (download_files[i].type != 'other') {
+				continue
+			}
+
+			o.value(download_files[i].name);
+		}
+	
+		///////////////////////////////////////
+		// second dns server;
+		///////////////////////////////////////
+		// Enable;
+		o = s.taboption("seconddns", form.Flag, "seconddns_enabled", _("Enable"),
+			_("Enable or disable second DNS server."));
+		o.default = o.disabled;
+		o.rempty = true;
+
+		// Port;
+		o = s.taboption("seconddns", form.Value, "seconddns_port", _("Local Port"), _("Smartdns local server port"));
+		o.placeholder = 6553;
+		o.default = 6553;
+		o.datatype = "port";
+		o.rempty = false;
+
+		// Enable TCP server;
+		o = s.taboption("seconddns", form.Flag, "seconddns_tcp_server", _("TCP Server"), _("Enable TCP DNS Server"));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// dns server group;
+		o = s.taboption("seconddns", form.Value, "seconddns_server_group", _("Server Group"),
+			_("Query DNS through specific dns server group, such as office, home."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.datatype = "hostname";
+		o.rempty = true;
+
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_speed_check", _("Skip Speed Check"),
+			_("Do not check speed."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// skip address rules;
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_rule_addr", _("Skip Address Rules"),
+			_("Skip address rules."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// skip name server rules;
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_rule_nameserver", _("Skip Nameserver Rule"),
+			_("Skip nameserver rules."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// skip ipset rules;
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_rule_ipset", _("Skip Ipset Rule"),
+			_("Skip ipset rules."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// skip soa address rule;
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_rule_soa", _("Skip SOA Address Rule"),
+			_("Skip SOA address rules."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_dualstack_selection", _("Skip Dualstack Selection"),
+			_("Skip Dualstack Selection."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// skip cache;
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_cache", _("Skip Cache"), _("Skip Cache."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// Force AAAA SOA
+		o = s.taboption("seconddns", form.Flag, "seconddns_force_aaaa_soa", _("Force AAAA SOA"), _("Force AAAA SOA."));
+		o.rmempty = true;
+		o.default = o.disabled;
+		
+		// Force HTTPS SOA
+		o = s.taboption("seconddns", form.Flag, "seconddns_force_https_soa", _("Force HTTPS SOA"), _("Force HTTPS SOA."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		o = s.taboption("seconddns", form.Flag, "seconddns_no_ip_alias", _("Skip IP Alias"));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		o = s.taboption("seconddns", form.Value, "seconddns_ipset_name", _("IPset Name"), _("IPset name."));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var ipset = value.split(",")
+			for (var i = 0; i < ipset.length; i++) {
+				if (!ipset[i].match(/^(#[4|6]:)?[a-zA-Z0-9\-_]+$/)) {
+					return _("ipset name format error, format: [#[4|6]:]ipsetname");
+				}
+			}
+
+			return true;
+		}
+
+		o = s.taboption("seconddns", form.Value, "seconddns_nftset_name", _("NFTset Name"), _("NFTset name, format: [#[4|6]:[family#table#set]]"));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/^#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// other args
+		o = s.taboption("seconddns", form.Value, "seconddns_server_flags", _("Additional Server Args"),
+			_("Additional server args, refer to the help description of the bind option."))
+		o.default = ""
+		o.rempty = true
+
+		///////////////////////////////////////
+		// DNS64 Settings
+		///////////////////////////////////////
+		o = s.taboption("dns64", form.Value, "dns64", _("DNS64"));
+		o.placeholder = "64:ff9b::/96";
+		o.datatype = "ip6addr";
+		o.rempty = true;
+
+		///////////////////////////////////////
+		// download Files Settings
+		///////////////////////////////////////
+		o = s.taboption("files", form.Flag, "enable_auto_update", _("Enable Auto Update"), _("Enable daily (weekly) auto update."));
+		o.rmempty = true;
+		o.default = o.disabled;
+		o.rempty = true;
+
+		o = s.taboption("files", form.ListValue, "auto_update_week_time", _("Update Time (Every Week)"));
+		o.value('*', _('Every Day'));
+		o.value('1', _('Every Monday'));
+		o.value('2', _('Every Tuesday'));
+		o.value('3', _('Every Wednesday'));
+		o.value('4', _('Every Thursday'));
+		o.value('5', _('Every Friday'));
+		o.value('6', _('Every Saturday'));
+		o.value('0', _('Every Sunday'));
+		o.default = "*";
+		o.depends('enable_auto_update', '1');
+
+		o = s.taboption('files', form.ListValue, 'auto_update_day_time', _("Update time (every day)"));
+		for (var i = 0; i < 24; i++)
+			o.value(i, i + ':00');
+		o.default = '5';
+		o.depends('enable_auto_update', '1');
+
+		o = s.taboption("files", form.FileUpload, "upload_conf_file", _("Upload Config File"),
+			_("Upload smartdns config file to /etc/smartdns/conf.d"));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.root_directory = "/etc/smartdns/conf.d"
+
+		o = s.taboption("files", form.FileUpload, "upload_list_file", _("Upload Domain List File"),
+			_("Upload domain list file to /etc/smartdns/domain-set"));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.root_directory = "/etc/smartdns/domain-set"
+
+		o = s.taboption("files", form.FileUpload, "upload_other_file", _("Upload File"));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.root_directory = "/etc/smartdns/download"
+
+		o = s.taboption('files', form.DummyValue, "_update", _("Update Files"));
+		o.renderWidget = function () {
+			return E('button', {
+				'class': 'btn cbi-button cbi-button-apply',
+				'id': 'btn_update',
+				'click': ui.createHandlerFn(this, function () {
+					return fs.exec('/etc/init.d/smartdns', ['updatefiles'])
+						.catch(function (e) { ui.addNotification(null, E('p', e.message), 'error') });
+				})
+			}, [_("Update")]);
+		}
+
+		o = s.taboption('files', form.SectionValue, '__files__', form.GridSection, 'download-file', _('Download Files'),
+			_('List of files to download.'));
+
+		ss = o.subsection;
+
+		ss.addremove = true;
+		ss.anonymous = true;
+		ss.sortable = true;
+
+		so = ss.option(form.Value, 'name', _('File Name'), _('File Name'));
+		so.rmempty = true;
+		so.datatype = 'file';
+
+		so = ss.option(form.Value, 'url', _('URL'), _('URL'));
+		so.rmempty = true;
+		so.datatype = 'string';
+		so.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (!value.match(/^(http|https|ftp|sftp):\/\//)) {
+				return _("URL format error, format: http:// or https://");
+			}
+
+			return true;
+		}
+
+		so = ss.option(form.ListValue, "type", _("type"), _("File Type"));
+		so.value("list", _("domain list (/etc/smartdns/domain-set)"));
+		so.value("config", _("smartdns config (/etc/smartdns/conf.d)"));
+		so.value("ip-set", _("ip-set file (/etc/smartdns/ip-set)"));
+		so.value("other", _("other file (/etc/smartdns/download)"));
+		so.default = "list";
+		so.rempty = false;
+
+		so = ss.option(form.Value, 'desc', _('Description'), _('Description'));
+		so.rmempty = true;
+		so.datatype = 'string';
+
+		///////////////////////////////////////
+		// Proxy server settings;
+		///////////////////////////////////////
+		o = s.taboption("proxy", form.Value, "proxy_server", _("Proxy Server"), _("Proxy Server URL, format: [socks5|http]://user:pass@ip:port."));
+		o.datatype = 'string';
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (!value.match(/^(socks5|http):\/\//)) {
+				return _("Proxy server URL format error, format: [socks5|http]://user:pass@ip:port.");
+			}
+
+			return true;
+		}
+
+		///////////////////////////////////////
+		// custom settings;
+		///////////////////////////////////////
+		o = s.taboption("custom", form.TextValue, "custom_conf",
+			"", _("smartdns custom settings"));
+		o.rows = 20;
+		o.cfgvalue = function (section_id) {
+			return fs.trimmed('/etc/smartdns/custom.conf');
+		};
+		o.write = function (section_id, formvalue) {
+			return this.cfgvalue(section_id).then(function (value) {
+				if (value == formvalue) {
+					return
+				}
+				return fs.write('/etc/smartdns/custom.conf', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+			});
+		};
+
+		o = s.taboption("custom", form.Flag, "coredump", _("Generate Coredump"),
+			_("Generate Coredump file when smartdns crash, coredump file is located at /tmp/smartdns.xxx.core."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		o = s.taboption("custom", form.ListValue, "log_level", _("Log Level"));
+		o.rmempty = true;
+		o.default = "";
+		o.value("", _("default"));
+		o.value("debug");
+		o.value("info");
+		o.value("notice");
+		o.value("warn");
+		o.value("error");
+		o.value("fatal");
+		o.value("off");
+
+		o = s.taboption("custom", form.ListValue, "log_output_mode", _("Log Output Mode"));
+		o.rmempty = true;
+		o.default = "file";
+		o.value("file", _("file"));
+		o.value("syslog", _("syslog"));
+	
+		o = s.taboption("custom", form.Value, "log_size", _("Log Size"));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.depends("log_output_mode", "file");
+
+		o = s.taboption("custom", form.Value, "log_num", _("Log Number"));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.depends("log_output_mode", "file");
+
+		o = s.taboption("custom", form.Value, "log_file", _("Log File"))
+		o.rmempty = true
+		o.placeholder = "/var/log/smartdns/smartdns.log"
+		o.depends("log_output_mode", "file");
+
+		o = s.taboption("custom", form.DummyValue, "view_log", _("View Log"));
+		o.renderWidget = function () {
+			return E('button', {
+				'class': 'btn cbi-button',
+				'id': 'btn_view_log',
+				'click': ui.createHandlerFn(this, function () {
+					window.location.href = "/cgi-bin/luci/admin/services/smartdns/log";
+				})
+			}, [_("View Log")]);
+		}
+		var log_levels = ["debug", "info", "notice", "warn", "error", "fatal"];
+		log_levels.forEach(function(level) {
+			o.depends({ log_output_mode: "file", log_level: level });
+		});
+
+		o = s.taboption("custom", form.Flag, "enable_audit_log", _("Enable Audit Log"));
+		o.rmempty = true;
+		o.default = o.disabled;
+		o.rempty = true;
+
+		o = s.taboption("custom", form.ListValue, "audit_log_output_mode", _("Audit Log Output Mode"));
+		o.rmempty = true;
+		o.default = "file";
+		o.value("file", _("file"));
+		o.value("syslog", _("syslog"));
+		o.depends("enable_audit_log", "1");
+
+		o = s.taboption("custom", form.Value, "audit_log_size", _("Audit Log Size"));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.depends({"enable_audit_log":"1", "audit_log_output_mode":"file"});
+
+		o = s.taboption("custom", form.Value, "audit_log_num", _("Audit Log Number"));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.depends({"enable_audit_log":"1", "audit_log_output_mode":"file"});
+
+		o = s.taboption("custom", form.Value, "audit_log_file", _("Audit Log File"))
+		o.rmempty = true
+		o.placeholder = "/var/log/smartdns/smartdns-audit.log"
+		o.depends({"enable_audit_log":"1", "audit_log_output_mode":"file"});
+
+		////////////////
+		// Upstream servers;
+		////////////////
+		s = m.section(form.GridSection, "server", _("Upstream Servers"),
+			_("Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS servers, "
+				+ "including multiple foreign DNS servers."));
+		s.anonymous = true;
+		s.addremove = true;
+		s.sortable = true;
+
+		s.tab('general', _('General Settings'));
+		s.tab('advanced', _('Advanced Settings'));
+
+		// enable flag;
+		o = s.taboption("general", form.Flag, "enabled", _("Enable"), _("Enable"));
+		o.rmempty = false;
+		o.default = o.enabled;
+		o.editable = true;
+
+		// name;
+		o = s.taboption("general", form.Value, "name", _("DNS Server Name"), _("DNS Server Name"));
+
+		// IP address;
+		o = s.taboption("general", form.Value, "ip", _("ip"), _("DNS Server ip"));
+		o.datatype = "or(ipaddr, string)";
+		o.rmempty = false;
+
+		// port;
+		o = s.taboption("general", form.Value, "port", _("port"), _("DNS Server port"));
+		o.placeholder = "default";
+		o.datatype = "port";
+		o.rempty = true;
+		o.depends("type", "udp");
+		o.depends("type", "tcp");
+		o.depends("type", "tls");
+
+		// type;
+		o = s.taboption("general", form.ListValue, "type", _("type"), _("DNS Server type"));
+		o.placeholder = "udp";
+		o.value("udp", _("udp"));
+		o.value("tcp", _("tcp"));
+		o.value("tls", _("tls"));
+		o.value("https", _("https"));
+		o.default = "udp";
+		o.rempty = false;
+
+		// server group
+		o = s.taboption("general", form.Value, "server_group", _("Server Group"), _("DNS Server group"))
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.datatype = "hostname";
+		o.rempty = true;
+		servers = uci.sections('smartdns', 'server');
+		var groupnames = new Set();
+		for (var i = 0; i < servers.length; i++) {
+			if (servers[i].server_group == undefined) {
+				continue;
+			}
+			groupnames.add(servers[i].server_group);
+		}
+
+		for (const groupname of groupnames) {
+			o.value(groupname);
+		}
+
+		// Advanced Options
+		o = s.taboption("advanced", form.Flag, "exclude_default_group", _("Exclude Default Group"), _("Exclude DNS Server from default group."))
+		o.rmempty = true;
+		o.default = o.disabled;
+		o.editable = true;
+		o.modalonly = true;
+
+		// blacklist_ip
+		o = s.taboption("advanced", form.Flag, "blacklist_ip", _("IP Blacklist Filtering"),
+			_("Filtering IP with blacklist"))
+		o.rmempty = true
+		o.default = o.disabled
+		o.modalonly = true;
+
+		// TLS host verify
+		o = s.taboption("advanced", form.Value, "tls_host_verify", _("TLS Hostname Verify"),
+			_("Set TLS hostname to verify."))
+		o.default = ""
+		o.datatype = "string"
+		o.rempty = true
+		o.modalonly = true;
+		o.depends("type", "tls")
+		o.depends("type", "https")
+
+		// certificate verify
+		o = s.taboption("advanced", form.Flag, "no_check_certificate", _("No check certificate"),
+			_("Do not check certificate."))
+		o.rmempty = true
+		o.default = o.disabled
+		o.modalonly = true;
+		o.depends("type", "tls")
+		o.depends("type", "https")
+
+		// SNI host name
+		o = s.taboption("advanced", form.Value, "host_name", _("TLS SNI name"),
+			_("Sets the server name indication for query. '-' for disable SNI name."))
+		o.default = ""
+		o.datatype = "hostname"
+		o.rempty = true
+		o.modalonly = true;
+		o.depends("type", "tls")
+		o.depends("type", "https")
+
+		// http host
+		o = s.taboption("advanced", form.Value, "http_host", _("HTTP Host"),
+			_("Set the HTTP host used for the query. Use this parameter when the host of the URL address is an IP address."))
+		o.default = ""
+		o.datatype = "hostname"
+		o.rempty = true
+		o.modalonly = true;
+		o.depends("type", "https")
+
+		// SPKI pin
+		o = s.taboption("advanced", form.Value, "spki_pin", _("TLS SPKI Pinning"),
+			_("Used to verify the validity of the TLS server, The value is Base64 encoded SPKI fingerprint, "
+				+ "leaving blank to indicate that the validity of TLS is not verified."))
+		o.default = ""
+		o.datatype = "string"
+		o.rempty = true
+		o.modalonly = true;
+		o.depends("type", "tls")
+		o.depends("type", "https")
+
+		// mark
+		o = s.taboption("advanced", form.Value, "set_mark", _("Marking Packets"),
+			_("Set mark on packets."))
+		o.default = ""
+		o.rempty = true
+		o.datatype = "uinteger"
+		o.modalonly = true;
+
+		// use proxy
+		o = s.taboption("advanced", form.Flag, "use_proxy", _("Use Proxy"),
+			_("Use proxy to connect to upstream DNS server."))
+		o.default = o.disabled
+		o.modalonly = true;
+		o.optional = true;
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			var flag = this.formvalue(section_id);
+			if (flag == "0") {
+				return true;
+			}
+
+			var proxy_server = uci.sections("smartdns", "smartdns")[0].proxy_server;
+			var server_type = this.section.formvalue(section_id, "type");
+			if (proxy_server == "" || proxy_server == undefined) {
+				return _("Please set proxy server first.");
+			}
+
+			if (server_type == "udp" && !proxy_server.match(/^(socks5):\/\//)) {
+				return _("Only socks5 proxy support udp server.");
+			}
+
+			return true;
+		}
+
+		// other args
+		o = s.taboption("advanced", form.Value, "addition_arg", _("Additional Server Args"),
+			_("Additional Args for upstream dns servers"))
+		o.default = ""
+		o.rempty = true
+		o.modalonly = true;
+
+		////////////////
+		// client rules;
+		////////////////
+		s = m.section(form.TypedSection, "client-rule", _("Client Rules"), _("Client Rules Settings, can achieve parental control functionality."));
+		s.anonymous = true;
+		s.nodescriptions = true;
+
+		s.tab("basic", _('Basic Settings'));
+		s.tab("advanced", _('Advanced Settings'));
+		s.tab("block", _("DNS Block Setting"));
+
+		o = s.taboption("basic", form.Flag, "enabled", _("Enable"));
+		o.rmempty = false;
+		o.default = o.disabled;
+
+		o = s.taboption("basic", form.DynamicList, "client_addr", _("Client Address"), 
+		_("If a client address is specified, only that client will apply this rule. You can enter an IP address, such as 1.2.3.4, or a MAC address, such as aa:bb:cc:dd:ee:ff."));
+		o.rempty = true
+		o.rmempty = true;
+		o.modalonly = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (value.match(/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[1-2][0-9]|3[0-2]))?$/)) {
+				return true;
+			}
+
+			if (value.match(/^([a-fA-F0-9]*:){1,7}[a-fA-F0-9]*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$/)) {
+				return true;
+			}
+
+			if (value.match(/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/)) {
+				return true;
+			}
+			
+			return _("Client address format error, please input ip adress or mac address.");
+		}
+
+		o = s.taboption("basic", form.FileUpload, "client_addr_file", _("Client Address File"),
+			_("Upload client address file, same as Client Address function."));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.modalonly = true;
+		o.root_directory = "/etc/smartdns/ip-set"
+		
+		o = s.taboption("basic", form.Value, "server_group", _("Server Group"), _("DNS Server group belongs to, such as office, home."))
+		o.rmempty = true
+		o.placeholder = "default"
+		o.datatype = "hostname"
+		o.rempty = true
+		for (const groupname of groupnames) {
+			o.value(groupname);
+		}
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var val = uci.sections('smartdns', 'server');
+			for (var i = 0; i < val.length; i++) {
+				if (value == val[i].server_group) {
+					return true;
+				}
+			}
+
+			return _('Server Group %s not exists').format(value);
+
+		}
+
+		// Speed check mode;
+		o = s.taboption("advanced", form.Value, "speed_check_mode", _("Speed Check Mode"), _("Smartdns speed check mode."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.value("", _("default"));
+		o.value("ping,tcp:80,tcp:443");
+		o.value("ping,tcp:443,tcp:80");
+		o.value("tcp:80,tcp:443,ping");
+		o.value("tcp:443,tcp:80,ping");
+		o.value("none", _("None"));
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (value == "none") {
+				return true;
+			}
+
+			var check_mode = value.split(",")
+			for (var i = 0; i < check_mode.length; i++) {
+				if (check_mode[i] == "ping") {
+					continue;
+				}
+
+				if (check_mode[i].indexOf("tcp:") == 0) {
+					var port = check_mode[i].split(":")[1];
+					if (port == "") {
+						return _("TCP port is empty");
+					}
+
+					continue;
+				}
+
+				return _("Speed check mode is invalid.");
+			}
+
+			return true;
+		}
+
+		// Support DualStack ip selection;
+		o = s.taboption("advanced", form.Flag, "dualstack_ip_selection", _("Dual-stack IP Selection"),
+			_("Enable IP selection between IPV4 and IPV6"));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// Force AAAA SOA
+		o = s.taboption("advanced", form.Flag, "force_aaaa_soa", _("Force AAAA SOA"), _("Force AAAA SOA."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		// Force HTTPS SOA
+		o = s.taboption("advanced", form.Flag, "force_https_soa", _("Force HTTPS SOA"), _("Force HTTPS SOA."));
+		o.rmempty = false;
+		o.default = o.enabled;
+
+		// ipset name;
+		o = s.taboption("advanced", form.Value, "ipset_name", _("IPset Name"), _("IPset name."));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var ipset = value.split(",")
+			for (var i = 0; i < ipset.length; i++) {
+				if (!ipset[i].match(/^(#[4|6]:)?[a-zA-Z0-9\-_]+$/)) {
+					return _("ipset name format error, format: [#[4|6]:]ipsetname");
+				}
+			}
+
+			return true;
+		}
+		
+		// NFTset name;
+		o = s.taboption("advanced", form.Value, "nftset_name", _("NFTset Name"), _("NFTset name, format: [#[4|6]:[family#table#set]]"));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/^#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// include config
+		download_files = uci.sections('smartdns', 'download-file');
+		o = s.taboption("advanced", form.DynamicList, "conf_files", _("Include Config Files<br>/etc/smartdns/conf.d"),
+			_("Include other config files from /etc/smartdns/conf.d or custom path, can be downloaded from the download page."));
+		for (var i = 0; i < download_files.length; i++) {
+			if (download_files[i].type == undefined) {
+				continue;
+			}
+
+			if (download_files[i].type != 'config') {
+				continue
+			}
+
+			o.value(download_files[i].name);
+		}
+
+		o = s.taboption("block", form.FileUpload, "block_domain_set_file", _("Domain List File"), _("Upload domain list file."));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.editable = true
+		o.root_directory = "/etc/smartdns/domain-set"
+
+
+		////////////////
+		// domain rules;
+		////////////////
+		s = m.section(form.TypedSection, "domain-rule", _("Domain Rules"), _("Domain Rules Settings"));
+		s.anonymous = true;
+		s.nodescriptions = true;
+
+		s.tab("forwarding", _('DNS Forwarding Setting'));
+		s.tab("block", _("DNS Block Setting"));
+		s.tab("domain-rule-list", _("Domain Rule List"), _("Set Specific domain rule list."));
+		s.tab("domain-address", _("Domain Address"), _("Set Specific domain ip address."));
+
+		///////////////////////////////////////
+		// domain forwarding;
+		///////////////////////////////////////
+		o = s.taboption("forwarding", form.Value, "server_group", _("Server Group"), _("DNS Server group belongs to, such as office, home."))
+		o.rmempty = true
+		o.placeholder = "default"
+		o.datatype = "hostname"
+		o.rempty = true
+		for (const groupname of groupnames) {
+			o.value(groupname);
+		}
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var val = uci.sections('smartdns', 'server');
+			for (var i = 0; i < val.length; i++) {
+				if (value == val[i].server_group) {
+					return true;
+				}
+			}
+
+			return _('Server Group %s not exists').format(value);
+
+		}
+
+		// Speed check mode;
+		o = s.taboption("forwarding", form.Value, "speed_check_mode", _("Speed Check Mode"), _("Smartdns speed check mode."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.value("", _("default"));
+		o.value("ping,tcp:80,tcp:443");
+		o.value("ping,tcp:443,tcp:80");
+		o.value("tcp:80,tcp:443,ping");
+		o.value("tcp:443,tcp:80,ping");
+		o.value("none", _("None"));
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (value == "none") {
+				return true;
+			}
+
+			var check_mode = value.split(",")
+			for (var i = 0; i < check_mode.length; i++) {
+				if (check_mode[i] == "ping") {
+					continue;
+				}
+
+				if (check_mode[i].indexOf("tcp:") == 0) {
+					var port = check_mode[i].split(":")[1];
+					if (port == "") {
+						return _("TCP port is empty");
+					}
+
+					continue;
+				}
+
+				return _("Speed check mode is invalid.");
+			}
+
+			return true;
+		}
+
+		// Support DualStack ip selection;
+		o = s.taboption("forwarding", form.ListValue, "dualstack_ip_selection", _("Dual-stack IP Selection"),
+			_("Enable IP selection between IPV4 and IPV6"));
+		o.rmempty = true;
+		o.default = "default";
+		o.modalonly = true;
+		o.value("", _("default"));
+		o.value("yes", _("Yes"));
+		o.value("no", _("No"));
+
+		o = s.taboption("forwarding", form.Flag, "force_aaaa_soa", _("Force AAAA SOA"), _("Force AAAA SOA."));
+		o.rmempty = true;
+		o.default = o.disabled;
+
+		o = s.taboption("forwarding", form.Value, "ipset_name", _("IPset Name"), _("IPset name."));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var ipset = value.split(",")
+			for (var i = 0; i < ipset.length; i++) {
+				if (!ipset[i].match(/^(#[4|6]:)?[a-zA-Z0-9\-_]+$/)) {
+					return _("ipset name format error, format: [#[4|6]:]ipsetname");
+				}
+			}
+
+			return true;
+		}
+
+		o = s.taboption("forwarding", form.Value, "nftset_name", _("NFTset Name"), _("NFTset name, format: [#[4|6]:[family#table#set]]"));
+		o.rmempty = true;
+		o.datatype = "string";
+		o.rempty = true;
+		o.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/^#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// other args
+		o = s.taboption("forwarding", form.Value, "addition_flag", _("Additional Rule Flag"),
+			_("Additional Flags for rules, read help on domain-rule for more information."))
+		o.default = ""
+		o.rempty = true
+		o.modalonly = true;
+
+		o = s.taboption("forwarding", form.FileUpload, "forwarding_domain_set_file", _("Domain List File"),
+			_("Upload domain list file, or configure auto download from Download File Setting page."));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.editable = true
+		o.root_directory = "/etc/smartdns/domain-set"
+
+		o = s.taboption("forwarding", form.TextValue, "domain_forwarding_list",
+			_("Domain List"), _("Configure forwarding domain name list."));
+		o.rows = 10;
+		o.cols = 64;
+		o.monospace = true;
+		o.cfgvalue = function (section_id) {
+			return fs.trimmed('/etc/smartdns/domain-forwarding.list').catch(function (e) {
+				return "";
+			});
+		};
+		o.write = function (section_id, formvalue) {
+			return this.cfgvalue(section_id).then(function (value) {
+				if (value == formvalue) {
+					return
+				}
+				return fs.write('/etc/smartdns/domain-forwarding.list', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+			});
+		};
+
+		///////////////////////////////////////
+		// domain block;
+		///////////////////////////////////////
+		o = s.taboption("block", form.FileUpload, "block_domain_set_file", _("Domain List File"), _("Upload domain list file."));
+		o.rmempty = true
+		o.datatype = "file"
+		o.rempty = true
+		o.editable = true
+		o.root_directory = "/etc/smartdns/domain-set"
+
+		o = s.taboption("block", form.TextValue, "domain_block_list",
+			_("Domain List"), _("Configure block domain list."));
+		o.rows = 10;
+		o.cols = 64;
+		o.cfgvalue = function (section_id) {
+			return fs.trimmed('/etc/smartdns/domain-block.list').catch(function (e) {
+				return "";
+			});
+		};
+		o.write = function (section_id, formvalue) {
+			return this.cfgvalue(section_id).then(function (value) {
+				if (value == formvalue) {
+					return
+				}
+				return fs.write('/etc/smartdns/domain-block.list', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+			});
+		};
+
+		///////////////////////////////////////
+		// domain rule list;
+		///////////////////////////////////////
+		o = s.taboption('domain-rule-list', form.SectionValue, '__domain-rule-list__', form.GridSection, 'domain-rule-list', _('Domain Rule List'),
+			_('Configure domain rule list.'));
+
+		ss = o.subsection;
+
+		ss.addremove = true;
+		ss.anonymous = true;
+		ss.sortable = true;
+
+		// enable flag;
+		so = ss.option(form.Flag, "enabled", _("Enable"), _("Enable"));
+		so.rmempty = false;
+		so.default = so.enabled;
+		so.editable = true;
+
+		// name;
+		so = ss.option(form.Value, "name", _("Domain Rule Name"), _("Domain Rule Name"));
+
+		so = ss.option(form.Value, "server_group", _("Server Group"), _("DNS Server group belongs to, such as office, home."))
+		so.rmempty = true
+		so.placeholder = "default"
+		so.datatype = "hostname"
+		so.rempty = true
+		for (const groupname of groupnames) {
+			so.value(groupname);
+		}
+		so.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var val = uci.sections('smartdns', 'server');
+			for (var i = 0; i < val.length; i++) {
+				if (value == val[i].server_group) {
+					return true;
+				}
+			}
+
+			return _('Server Group %s not exists').format(value);
+
+		}
+
+		so = ss.option(form.FileUpload, "domain_list_file", _("Domain List File"),
+			_("Upload domain list file, or configure auto download from Download File Setting page."));
+		so.rmempty = true
+		so.datatype = "file"
+		so.rempty = true
+		so.root_directory = "/etc/smartdns/domain-set"
+
+		so = ss.option(form.ListValue, "block_domain_type", _("Block domain"), _("Block domain."));
+		so.rmempty = true;
+		so.value("none", _("None"));
+		so.value("all", "IPv4/IPv6");
+		so.value("ipv4", "IPv4");
+		so.value("ipv6", "IPv6");
+		so.modalonly = true;
+
+		// Support DualStack ip selection;
+		so = ss.option(form.ListValue, "dualstack_ip_selection", _("Dual-stack IP Selection"),
+			_("Enable IP selection between IPV4 and IPV6"));
+		so.rmempty = true;
+		so.default = "default";
+		so.modalonly = true;
+		so.value("", _("default"));
+		so.value("yes", _("Yes"));
+		so.value("no", _("No"));
+
+		so = ss.option(form.Value, "speed_check_mode", _("Speed Check Mode"), _("Smartdns speed check mode."));
+		so.rmempty = true;
+		so.placeholder = "default";
+		so.modalonly = true;
+		so.value("", _("default"));
+		so.value("ping,tcp:80,tcp:443");
+		so.value("ping,tcp:443,tcp:80");
+		so.value("tcp:80,tcp:443,ping");
+		so.value("tcp:443,tcp:80,ping");
+		so.value("none", _("None"));
+		so.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			if (value == "none") {
+				return true;
+			}
+
+			var check_mode = value.split(",")
+			for (var i = 0; i < check_mode.length; i++) {
+				if (check_mode[i] == "ping") {
+					continue;
+				}
+
+				if (check_mode[i].indexOf("tcp:") == 0) {
+					var port = check_mode[i].split(":")[1];
+					if (port == "") {
+						return _("TCP port is empty");
+					}
+
+					continue;
+				}
+
+				return _("Speed check mode is invalid.");
+			}
+
+			return true;
+		}
+
+		so = ss.option(form.Flag, "force_aaaa_soa", _("Force AAAA SOA"), _("Force AAAA SOA."));
+		so.rmempty = true;
+		so.default = so.disabled;
+		so.modalonly = true;
+
+
+		so = ss.option(form.Value, "ipset_name", _("IPset Name"), _("IPset name."));
+		so.rmempty = true;
+		so.datatype = "hostname";
+		so.rempty = true;
+		so.modalonly = true;
+
+		so = ss.option(form.Value, "nftset_name", _("NFTset Name"), _("NFTset name, format: [#[4|6]:[family#table#set]]"));
+		so.rmempty = true;
+		so.datatype = "string";
+		so.rempty = true;
+		so.modalonly = true;
+		so.validate = function (section_id, value) {
+			if (value == "") {
+				return true;
+			}
+
+			var nftset = value.split(",")
+			for (var i = 0; i < nftset.length; i++) {
+				if (!nftset[i].match(/#[4|6]:[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+#[a-zA-Z0-9\-_]+$/)) {
+					return _("NFTset name format error, format: [#[4|6]:[family#table#set]]");
+				}
+			}
+
+			return true;
+		}
+
+		// other args
+		so = ss.option(form.Value, "addition_flag", _("Additional Rule Flag"),
+			_("Additional Flags for rules, read help on domain-rule for more information."))
+		so.default = ""
+		so.rempty = true
+		so.modalonly = true;
+
+		///////////////////////////////////////
+		// domain address
+		///////////////////////////////////////
+		o = s.taboption("domain-address", form.TextValue, "address_conf",
+			"",
+			_("Specify an IP address to return for any host in the given domains, Queries in the domains are never "
+				+ "forwarded and always replied to with the specified IP address which may be IPv4 or IPv6."));
+		o.rows = 20;
+		o.cfgvalue = function (section_id) {
+			return fs.trimmed('/etc/smartdns/address.conf');
+		};
+		o.write = function (section_id, formvalue) {
+			return this.cfgvalue(section_id).then(function (value) {
+				if (value == formvalue) {
+					return
+				}
+				return fs.write('/etc/smartdns/address.conf', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+			});
+		};
+
+
+		////////////////
+		// ip rules;
+		////////////////
+		s = m.section(form.TypedSection, "ip-rule", _("IP Rules"), _("IP Rules Settings"));
+		s.anonymous = true;
+		s.nodescriptions = true;
+
+		s.tab("ip-rule-list", _("IP Rule List"), _("Set Specific ip rule list."));
+		s.tab("blackip-list", _("IP Blacklist"), _("Set Specific ip blacklist."));
+
+		///////////////////////////////////////
+		// ip rule list;
+		///////////////////////////////////////
+		o = s.taboption('ip-rule-list', form.SectionValue, '__ip-rule-list__', form.GridSection, 'ip-rule-list', _('IP Rule List'),
+			_('Configure ip rule list.'));
+
+		ss = o.subsection;
+
+		ss.addremove = true;
+		ss.anonymous = true;
+		ss.sortable = true;
+
+		// enable flag;
+		so = ss.option(form.Flag, "enabled", _("Enable"), _("Enable"));
+		so.rmempty = false;
+		so.default = so.enabled;
+		so.editable = true;
+
+		// name;
+		so = ss.option(form.Value, "name", _("IP Rule Name"), _("IP Rule Name"));
+		so.rmempty = true;
+		so.datatype = "string";
+
+		so = ss.option(form.FileUpload, "ip_set_file", _("IP Set File"), _("Upload IP set file."));
+		so.rmempty = true
+		so.datatype = "file"
+		so.modalonly = true;
+		so.root_directory = "/etc/smartdns/ip-set"
+
+		so = ss.option(form.DynamicList, "ip_addr", _("IP Addresses"), _("IP addresses, CIDR format."));
+		so.rmempty = true;
+		so.datatype = "ipaddr"
+		so.modalonly = true;
+
+		so = ss.option(form.Flag, "whitelist_ip", _("Whitelist IP"), _("Whitelist IP Rule, Accept IP addresses within the range."));
+		so.rmempty = true;
+		so.default = so.disabled;
+		so.modalonly = true;
+
+		so = ss.option(form.Flag, "blacklist_ip", _("Blacklist IP"), _("Blacklist IP Rule, Decline IP addresses within the range."));
+		so.rmempty = true;
+		so.default = so.disabled;
+		so.modalonly = true;
+
+		so = ss.option(form.Flag, "ignore_ip", _("Ignore IP"), _("Do not use these IP addresses."));
+		so.rmempty = true;
+		so.default = so.disabled;
+		so.modalonly = true;
+
+		so = ss.option(form.Flag, "bogus_nxdomain", _("Bogus nxdomain"), _("Return SOA when the requested result contains a specified IP address."));
+		so.rmempty = true;
+		so.default = so.disabled;
+		so.modalonly = true;
+
+		so = ss.option(form.DynamicList, "ip_alias", _("IP alias"), _("IP Address Mapping, Can be used for CDN acceleration with Anycast IP, such as Cloudflare's CDN."));
+		so.rmempty = true;
+		so.datatype = 'ipaddr("nomask")';
+		so.modalonly = true;
+
+		// other args
+		so = ss.option(form.Value, "addition_flag", _("Additional Rule Flag"),
+			_("Additional Flags for rules, read help on ip-rule for more information."))
+		so.default = ""
+		so.rempty = true
+		so.modalonly = true;
+		///////////////////////////////////////
+		// IP Blacklist;
+		///////////////////////////////////////
+		// blacklist;
+		o = s.taboption("blackip-list", form.TextValue, "blackip_ip_conf",
+			"", _("Configure IP blacklists that will be filtered from the results of specific DNS server."));
+		o.rows = 20;
+		o.cfgvalue = function (section_id) {
+			return fs.trimmed('/etc/smartdns/blacklist-ip.conf');
+		};
+		o.write = function (section_id, formvalue) {
+			return this.cfgvalue(section_id).then(function (value) {
+				if (value == formvalue) {
+					return
+				}
+				return fs.write('/etc/smartdns/blacklist-ip.conf', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+			});
+		};
+
+		////////////////
+		// Support
+		////////////////
+		s = m.section(form.TypedSection, "smartdns", _("Technical Support"),
+			_("If you like this software, please buy me a cup of coffee."));
+		s.anonymous = true;
+
+		o = s.option(form.Button, "web");
+		o.title = _("SmartDNS official website");
+		o.inputtitle = _("open website");
+		o.inputstyle = "apply";
+		o.onclick = function () {
+			window.open("https://pymumu.github.io/smartdns", '_blank');
+		};
+
+		o = s.option(form.Button, "report");
+		o.title = _("Report bugs");
+		o.inputtitle = _("Report bugs");
+		o.inputstyle = "apply";
+		o.onclick = function () {
+			window.open("https://github.com/pymumu/smartdns/issues", '_blank');
+		};
+
+		o = s.option(form.Button, "Donate");
+		o.title = _("Donate to smartdns");
+		o.inputtitle = _("Donate");
+		o.inputstyle = "apply";
+		o.onclick = function () {
+			window.open("https://pymumu.github.io/smartdns/#donate", '_blank');
+		};
+
+		o = s.option(form.DummyValue, "_restart", _("Restart Service"));
+		o.renderWidget = function () {
+			return E('button', {
+				'class': 'btn cbi-button cbi-button-apply',
+				'id': 'btn_restart',
+				'click': ui.createHandlerFn(this, function () {
+					return fs.exec('/etc/init.d/smartdns', ['restart'])
+						.catch(function (e) { ui.addNotification(null, E('p', e.message), 'error') });
+				})
+			}, [_("Restart")]);
+		}
+		return m.render();
+	}
+});
diff --git a/luci-app-smartdns/po/de/smartdns.po b/luci-app-smartdns/po/de/smartdns.po
new file mode 100644
index 0000000..743597b
--- /dev/null
+++ b/luci-app-smartdns/po/de/smartdns.po
@@ -0,0 +1,946 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-28 10:31+0000\n"
+"Last-Translator: oneforfun <svens.local.hosted@gmail.com>\n"
+"Language-Team: German <https://hosted.weblate.org/projects/openwrt/"
+"luciapplicationssmartdns/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.16-dev\n"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:792
+msgid "Additional Args for upstream dns servers"
+msgstr "Zusätzliche Argumente für Upstream-DNS-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:886
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1090
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:885
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1089
+msgid "Additional Rule Flag"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:346
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:479
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:791
+msgid "Additional Server Args"
+msgstr "Zusätzliche Server Parameter"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:347
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:480
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:132
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:639
+msgid "Advanced Settings"
+msgstr "Erweiterte Einstellungen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:253
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr ""
+"Versuche, eine alte Antwort vom Cache mit TTL 0 zurückzugeben, ohne auf die "
+"eigentliche Auflösung zu warten."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically Set Dnsmasq"
+msgstr "Dnsmasq automatisch setzen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr "Setze automatisch als Upstream von dnsmasq when sich der Port ändert."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Bind Device"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Bind Device Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Cache Persist"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "Cache Size"
+msgstr "Zwischenspeichergröße"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:121
+msgid "Collecting data ..."
+msgstr "Sammle Daten..."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1100
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr ""
+"Definition einer IP basierten Blockierliste, welche Ergebnisse eines "
+"spezifischen DNS Servers filtert."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Configure block domain list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:950
+msgid "Configure domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+msgid "Configure forwarding domain name list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:137
+msgid "Custom Settings"
+msgstr "Benutzerdefinierte Einstellungen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:805
+msgid "DNS Block Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:804
+msgid "DNS Forwarding Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:648
+msgid "DNS Server Name"
+msgstr "DNS Server Name"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+msgid "DNS Server group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "DNS Server group belongs to, such as office, home."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "DNS Server ip"
+msgstr "DNS-Server IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "DNS Server port"
+msgstr "DNS-Server-Port"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "DNS Server type"
+msgstr "DNS-Server Typ"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "DNS domain result cache size"
+msgstr "DNS Domain Ergebnisspeichergröße"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:487
+msgid "DNS64"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:134
+msgid "DNS64 Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:560
+msgid "Description"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:76
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:719
+msgid "Do not check certificate."
+msgstr "Zertifikat nicht prüfen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:397
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:838
+msgid "Do not check speed."
+msgstr "Geschwindigkeit nicht testen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Domain Address"
+msgstr "Domain Adresse"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Domain List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:891
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:991
+msgid "Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:949
+msgid "Domain Rule List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:965
+msgid "Domain Rule Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "Domain TTL"
+msgstr "Domäne TTL"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:336
+msgid "Domain TTL Max"
+msgstr "Domäne TTL Max"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:328
+msgid "Domain TTL Min"
+msgstr "Domäne TTL Min"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:246
+msgid "Domain prefetch"
+msgstr "Vorabruf der Domäne"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1159
+msgid "Donate"
+msgstr "Spenden"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1158
+msgid "Donate to smartdns"
+msgstr "An smartdns spenden"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:526
+msgid "Download Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid "Download Files Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:240
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1007
+msgid "Dual-stack IP Selection"
+msgstr "Dual-Stack-IP-Auswahl"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:371
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:642
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:959
+msgid "Enable"
+msgstr "aktivieren"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable Auto Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:241
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1008
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr "Aktiviere Wahl zwischen IPv4 und IPv6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "Enable IPV6 DNS Server"
+msgstr "Aktivere IPv6 DNS-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "Enable TCP DNS Server"
+msgstr "Aktiviere TCP DNS Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable daily auto update."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:247
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr ""
+"Aktivieren Sie Domänen-Prefetch, um die Reaktionsgeschwindigkeit der Domäne "
+"zu beschleunigen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:372
+msgid "Enable or disable second DNS server."
+msgstr "Aktivieren oder deaktivieren des zweiten DNS-Servers."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+msgid "Enable or disable smartdns server"
+msgstr "Aktivieren oder deaktivieren des Smartdns-Servers"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude DNS Server from default group."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude Default Group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:215
+msgid "Fastest IP"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:216
+msgid "Fastest Response"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:535
+msgid "File Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+msgid "File Type"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:702
+msgid "Filtering IP with blacklist"
+msgstr "Filtern von IP mit negativ-Liste"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:214
+msgid "First Ping"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA"
+msgstr "Erzwinge AAAA SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA."
+msgstr "Erzwinge AAAA SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA"
+msgstr "Erzwinge HTTPS SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA."
+msgstr "Erzwinge HTTPS SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:131
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:638
+msgid "General Settings"
+msgstr "Allgemeine Einstellungen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:599
+msgid "Generate Coredump"
+msgstr "Generiere Coredump"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:600
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+"Erzeugt eine Coredump-Datei, wenn smartdns abstürzt. Die Coredump-Datei "
+"befindet sich unter /tmp/smartdns.xxx.core."
+
+#: applications/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json:3
+msgid "Grant access to LuCI app smartdns"
+msgstr "Zugriff auf die LuCI-App smartdns gewähren"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:737
+msgid "HTTP Host"
+msgstr "HTTP-Host"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "IP Blacklist"
+msgstr "IP Negativ-Liste"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:701
+msgid "IP Blacklist Filtering"
+msgstr "Filterung von IP-Blacklists"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "IPV6 Server"
+msgstr "IPV6-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1138
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr ""
+"Wenn Ihnen diese Software gefällt, spendieren Sie mir bitte eine Tasse "
+"Kaffee."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:353
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:354
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:283
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:527
+msgid "List of files to download."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Listen only on the specified interfaces."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:153
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Local Port"
+msgstr "Lokaler Port"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:624
+msgid "Log File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:608
+msgid "Log Level"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:620
+msgid "Log Number"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:604
+msgid "Log Size"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:757
+msgid "Marking Packets"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:337
+msgid "Maximum TTL for all domain result."
+msgstr "Maximale TTL für alle Ergebnisse der Domäne."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:329
+msgid "Minimum TTL for all domain result."
+msgstr "Minimale TTL für alle Ergebnisse der Domäne."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:316
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:471
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:877
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1081
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:66
+msgid "NOT RUNNING"
+msgstr "LÄUFT NICHT"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Name of device name listen on."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:304
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1014
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:282
+msgid "No Speed IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:303
+msgid "No Speed NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:718
+msgid "No check certificate"
+msgstr "Kein Check der Zertifikate"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:177
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1000
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1025
+msgid "None"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:784
+msgid "Only socks5 proxy support udp server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:780
+msgid "Please set proxy server first."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:136
+msgid "Proxy Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:575
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:390
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr ""
+"Abfrage von DNS über eine bestimmte DNS-Servergruppe, z. B. Büro, Zuhause."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:64
+msgid "RUNNING"
+msgstr "LÄUFT"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:341
+msgid "Reply Domain TTL Max"
+msgstr "Max TTL der Antwortdomäne"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:342
+msgid "Reply maximum TTL for all domain result."
+msgstr "Maximale Antwort-TTL für alle Domänen-Ergebnisse."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1150
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1151
+msgid "Report bugs"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve Local Hostnames"
+msgstr "Lokale Hostnamen auflösen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr "Lokale Hostnamen durch Lesen der Dnsmasq-Lease-Datei auflösen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:209
+msgid "Response Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1174
+msgid "Restart"
+msgstr "Neustart"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1165
+msgid "Restart Service"
+msgstr "Dienst neu starten"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:133
+msgid "Second Server Settings"
+msgstr "Einstellungen für den zweiten Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:252
+msgid "Serve expired"
+msgstr "Serve abgelaufen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:389
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "Server Group"
+msgstr "Servergruppe"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:833
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:987
+msgid "Server Group %s not exists"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Server Name"
+msgstr "Servername"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Set Specific domain ip address."
+msgstr "Spezifische Domänen-IP-Adresse einstellen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+msgid "Set Specific domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "Set Specific ip blacklist."
+msgstr "Spezifische IP-Blacklist einstellen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:709
+msgid "Set TLS hostname to verify."
+msgstr "TLS-Hostname zur Überprüfung einstellen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:758
+msgid "Set mark on packets."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:738
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr ""
+"Legt den für die Abfrage verwendeten HTTP-Host fest. Verwenden Sie diesen "
+"Parameter, wenn der Host der URL-Adresse eine IP-Adresse ist."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:728
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:402
+msgid "Skip Address Rules"
+msgstr "Adressregeln überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache"
+msgstr "Cache überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache."
+msgstr "Cache überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:425
+msgid "Skip Dualstack Selection"
+msgstr "Dualstack-Auswahl überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:426
+msgid "Skip Dualstack Selection."
+msgstr "Dualstack-Auswahl überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:414
+msgid "Skip Ipset Rule"
+msgstr "Ipset-Regel überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:408
+msgid "Skip Nameserver Rule"
+msgstr "Nameserver-Regel überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:420
+msgid "Skip SOA Address Rule"
+msgstr "SOA-Adressregel überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:421
+msgid "Skip SOA address rules."
+msgstr "SOA-Adressregeln überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:396
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:837
+msgid "Skip Speed Check"
+msgstr "Geschwindigkeitsprüfung überspringen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:403
+msgid "Skip address rules."
+msgstr "Adressregeln überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:415
+msgid "Skip ipset rules."
+msgstr "ipset-Regeln überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:409
+msgid "Skip nameserver rules."
+msgstr "Nameserver-Regeln überspringen."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:95
+#: applications/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json:3
+msgid "SmartDNS"
+msgstr "SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:96
+msgid "SmartDNS Server"
+msgstr "SmartDNS-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:97
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr ""
+"SmartDNS ist ein lokaler Hochleistungs-DNS-Server, der die Suche nach der "
+"schnellsten IP unterstützt, die Filterung von Werbung und die Vermeidung von "
+"DNS-Poisoning ermöglicht."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1142
+msgid "SmartDNS official website"
+msgstr "Offizielle Website von SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Smartdns local server port"
+msgstr "Lokaler Smartdns-Serverport"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:154
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+"Lokaler Smartdns-Serverport, smartdns wird automatisch als Haupt-DNS "
+"eingestellt, wenn 53 der Port ist."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:210
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Smartdns server name"
+msgstr "Smartdns-Servername"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Smartdns speed check mode."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1119
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+"Geben Sie eine IP-Adresse an, die für einen beliebigen Host in den "
+"angegebenen Domänen zurückgegeben werden soll. Abfragen in den Domänen "
+"werden nie weitergeleitet und immer mit der angegebenen IP-Adresse "
+"beantwortet, die IPv4 oder IPv6 sein kann."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Speed Check Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:202
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1050
+msgid "Speed check mode is invalid."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "TCP Server"
+msgstr "TCP-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:196
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1044
+msgid "TCP port is empty"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:708
+msgid "TLS Hostname Verify"
+msgstr "Überprüfung des TLS-Hostnamens"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:727
+msgid "TLS SNI name"
+msgstr "TLS-SNI-Name"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:746
+msgid "TLS SPKI Pinning"
+msgstr "TLS-SPKI-Pinning"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "TTL for all domain result."
+msgstr "TTL für alle Domänenergebnisse."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1137
+msgid "Technical Support"
+msgstr "Technische Unterstützung"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:539
+msgid "URL"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:548
+msgid "URL format error, format: http:// or https://"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:523
+msgid "Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:514
+msgid "Update Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:500
+msgid "Upload Config File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:507
+msgid "Upload Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:508
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:892
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:992
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+msgid "Upload domain list file."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:501
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:631
+msgid "Upstream Servers"
+msgstr "Upstream-Server"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:632
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+"Upstream-Server, die die Protokolle UDP und TCP unterstützen. Bitte "
+"konfigurieren Sie mehrere DNS-Server, einschließlich mehrerer ausländischer "
+"DNS-Server."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:765
+msgid "Use Proxy"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:766
+msgid "Use proxy to connect to upstream DNS server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:747
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+"Wird verwendet, um die Gültigkeit des TLS-Servers zu überprüfen. Der Wert "
+"ist ein Base64-kodierter SPKI-Fingerabdruck, leer lassen bedeutet, dass die "
+"Gültigkeit von TLS nicht überprüft wird."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Write cache to disk on exit and load on startup."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1013
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:172
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:213
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:611
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1012
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1020
+msgid "default"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:555
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:670
+msgid "https"
+msgstr "https"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "ip"
+msgstr "IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:295
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:452
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:858
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1143
+msgid "open website"
+msgstr "Webseite öffnen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "port"
+msgstr "Port"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:556
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:585
+msgid "smartdns custom settings"
+msgstr "Benutzerdefinierte SmartDNS-Einstellungen"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:668
+msgid "tcp"
+msgstr "tcp"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:669
+msgid "tls"
+msgstr "tls"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "type"
+msgstr "Typ"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:667
+msgid "udp"
+msgstr "udp"
+
+#~ msgid ""
+#~ "DNS Server group belongs to, used with nameserver, such as office, home."
+#~ msgstr ""
+#~ "DNS-Server-Gruppe, zu jener der Nameserver gehört, z. B. Büro, Zuhause."
+
+#~ msgid "Dnsmasq Forwared To Smartdns Failure"
+#~ msgstr "Fehler der Dnsmasq-Weiterleitung an Smartdns"
+
+#~ msgid "Sets the server name indication for query."
+#~ msgstr "Legt die Anzeige des Servernamens für die Abfrage fest."
+
+#~ msgid "none"
+#~ msgstr "kein"
diff --git a/luci-app-smartdns/po/es/smartdns.po b/luci-app-smartdns/po/es/smartdns.po
new file mode 100644
index 0000000..fda0ab1
--- /dev/null
+++ b/luci-app-smartdns/po/es/smartdns.po
@@ -0,0 +1,1000 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-07-02 17:20-0300\n"
+"PO-Revision-Date: 2023-02-26 00:30+0000\n"
+"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
+"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
+"luciapplicationssmartdns/es/>\n"
+"Language: es\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 4.16-dev\n"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:792
+msgid "Additional Args for upstream dns servers"
+msgstr "Args adicionales para servidores DNS aguas arriba"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:886
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1090
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:885
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1089
+msgid "Additional Rule Flag"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:346
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:479
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:791
+msgid "Additional Server Args"
+msgstr "Args adicionales del servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:347
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:480
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:132
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:639
+msgid "Advanced Settings"
+msgstr "Configuración avanzada"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:253
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr ""
+"Intenta servir respuestas antiguas de la memoria caché con un TTL de 0 en la "
+"respuesta sin esperar a que finalice la resolución real."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically Set Dnsmasq"
+msgstr "Establecer Dnsmasq automáticamente"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr ""
+"Establecido automáticamente como conexión ascendente de dnsmasq cuando "
+"cambia el puerto."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Bind Device"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Bind Device Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Cache Persist"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "Cache Size"
+msgstr "Tamaño del caché"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:121
+msgid "Collecting data ..."
+msgstr "Recolectando datos..."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1100
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr ""
+"Configure listas negras de IP que se filtrarán de los resultados de un "
+"servidor DNS específico."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Configure block domain list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:950
+msgid "Configure domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+msgid "Configure forwarding domain name list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:137
+msgid "Custom Settings"
+msgstr "Configuraciones personalizadas"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:805
+msgid "DNS Block Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:804
+msgid "DNS Forwarding Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:648
+msgid "DNS Server Name"
+msgstr "Nombre del servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+msgid "DNS Server group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "DNS Server group belongs to, such as office, home."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "DNS Server ip"
+msgstr "IP del servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "DNS Server port"
+msgstr "Puerto del servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "DNS Server type"
+msgstr "Tipo de servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "DNS domain result cache size"
+msgstr "Tamaño del caché de resultados del dominio DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:487
+msgid "DNS64"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:134
+msgid "DNS64 Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:560
+msgid "Description"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:76
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:719
+msgid "Do not check certificate."
+msgstr "No verifique el certificado."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:397
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:838
+msgid "Do not check speed."
+msgstr "No verifique la velocidad."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Domain Address"
+msgstr "Dirección de dominio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Domain List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:891
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:991
+msgid "Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:949
+msgid "Domain Rule List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:965
+msgid "Domain Rule Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "Domain TTL"
+msgstr "TTL del dominio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:336
+msgid "Domain TTL Max"
+msgstr "TTL Máx. del dominio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:328
+msgid "Domain TTL Min"
+msgstr "TTL Mín. del dominio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:246
+msgid "Domain prefetch"
+msgstr "Prebúsqueda de dominios"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1159
+msgid "Donate"
+msgstr "Donar"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1158
+msgid "Donate to smartdns"
+msgstr "Donar a smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:526
+msgid "Download Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid "Download Files Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:240
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1007
+msgid "Dual-stack IP Selection"
+msgstr "Selección de IP de doble pila"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:371
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:642
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:959
+msgid "Enable"
+msgstr "Activar"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable Auto Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:241
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1008
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr "Activar la selección de IP entre IPv4 e IPv6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "Enable IPV6 DNS Server"
+msgstr "Activar servidor DNS IPv6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "Enable TCP DNS Server"
+msgstr "Activar el servidor DNS TCP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable daily auto update."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:247
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr ""
+"Active la captación previa del dominio, acelere la velocidad de respuesta "
+"del dominio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:372
+msgid "Enable or disable second DNS server."
+msgstr "Activar o desactivar el segundo servidor DNS."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+msgid "Enable or disable smartdns server"
+msgstr "Activar o desactivar el servidor smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude DNS Server from default group."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude Default Group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:215
+msgid "Fastest IP"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:216
+msgid "Fastest Response"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:535
+msgid "File Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+msgid "File Type"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:702
+msgid "Filtering IP with blacklist"
+msgstr "Filtrado de IP con lista negra"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:214
+msgid "First Ping"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA"
+msgstr "Forzar AAAA SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA."
+msgstr "Forzar AAAA SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA"
+msgstr "Forzar HTTPS SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA."
+msgstr "Forzar HTTPS SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:131
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:638
+msgid "General Settings"
+msgstr "Configuración general"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:599
+msgid "Generate Coredump"
+msgstr "Generar Coredump"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:600
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+"Genere el archivo Coredump cuando smartdns falla, el archivo coredump se "
+"encuentra en /tmp/smartdns.xxx.core."
+
+#: applications/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json:3
+msgid "Grant access to LuCI app smartdns"
+msgstr "Conceder acceso a la aplicación LuCI smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:737
+msgid "HTTP Host"
+msgstr "Host HTTP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "IP Blacklist"
+msgstr "Lista negra de IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:701
+msgid "IP Blacklist Filtering"
+msgstr "Filtrado de la lista negra de IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "IPV6 Server"
+msgstr "Servidor IPv6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1138
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr "Si le gusta este software, cómpreme una taza de café."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:353
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:354
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:283
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:527
+msgid "List of files to download."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Listen only on the specified interfaces."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:153
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Local Port"
+msgstr "Puerto local"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:624
+msgid "Log File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:608
+msgid "Log Level"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:620
+msgid "Log Number"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:604
+msgid "Log Size"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:757
+msgid "Marking Packets"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:337
+msgid "Maximum TTL for all domain result."
+msgstr "TTL máximo para todos los resultados de dominio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:329
+msgid "Minimum TTL for all domain result."
+msgstr "TTL mínimo para todos los resultados de dominio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:316
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:471
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:877
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1081
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:66
+msgid "NOT RUNNING"
+msgstr "NO SE ESTÁ EJECUTANDO"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Name of device name listen on."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:304
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1014
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:282
+msgid "No Speed IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:303
+msgid "No Speed NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:718
+msgid "No check certificate"
+msgstr "No verificar el certificado"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:177
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1000
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1025
+msgid "None"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:784
+msgid "Only socks5 proxy support udp server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:780
+msgid "Please set proxy server first."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:136
+msgid "Proxy Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:575
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:390
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr ""
+"Consulta DNS a través de un grupo de servidores dns específico, como "
+"oficina, hogar."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:64
+msgid "RUNNING"
+msgstr "EJECUTANDO"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:341
+msgid "Reply Domain TTL Max"
+msgstr "TTL máximo del dominio de respuesta"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:342
+msgid "Reply maximum TTL for all domain result."
+msgstr "Responda el TTL máximo para todos los resultados del dominio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1150
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1151
+msgid "Report bugs"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve Local Hostnames"
+msgstr "Resolver nombres de host locales"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr ""
+"Resuelva los nombres de host locales leyendo el archivo de concesiones de "
+"Dnsmasq."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:209
+msgid "Response Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1174
+msgid "Restart"
+msgstr "Reiniciar"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1165
+msgid "Restart Service"
+msgstr "Reiniciar servicio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:133
+msgid "Second Server Settings"
+msgstr "Segunda configuración del servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:252
+msgid "Serve expired"
+msgstr "Servir expirado"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:389
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "Server Group"
+msgstr "Grupo de servidores"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:833
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:987
+msgid "Server Group %s not exists"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Server Name"
+msgstr "Nombre del servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Set Specific domain ip address."
+msgstr "Establecer dirección IP de dominio específico."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+msgid "Set Specific domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "Set Specific ip blacklist."
+msgstr "Establecer lista negra de IP específica."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:709
+msgid "Set TLS hostname to verify."
+msgstr "Establezca el nombre de host TLS para verificar."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:758
+msgid "Set mark on packets."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:738
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr ""
+"Establezca el host HTTP utilizado para la consulta. Use este parámetro "
+"cuando el host de la dirección URL sea una dirección IP."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:728
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+msgid "Settings"
+msgstr "Configuraciones"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:402
+msgid "Skip Address Rules"
+msgstr "Omitir reglas de dirección"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache"
+msgstr "Omitir caché"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache."
+msgstr "Omitir caché."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:425
+msgid "Skip Dualstack Selection"
+msgstr "Omitir selección de pila doble"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:426
+msgid "Skip Dualstack Selection."
+msgstr "Omitir selección de pila doble."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:414
+msgid "Skip Ipset Rule"
+msgstr "Omitir regla de Ipset"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:408
+msgid "Skip Nameserver Rule"
+msgstr "Omitir regla de servidor de nombres"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:420
+msgid "Skip SOA Address Rule"
+msgstr "Omitir regla de dirección SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:421
+msgid "Skip SOA address rules."
+msgstr "Omita las reglas de dirección SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:396
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:837
+msgid "Skip Speed Check"
+msgstr "Omitir comprobación de velocidad"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:403
+msgid "Skip address rules."
+msgstr "Omitir reglas de dirección."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:415
+msgid "Skip ipset rules."
+msgstr "Omitir las reglas de ipset."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:409
+msgid "Skip nameserver rules."
+msgstr "Omitir las reglas del servidor de nombres."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:95
+#: applications/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json:3
+msgid "SmartDNS"
+msgstr "SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:96
+msgid "SmartDNS Server"
+msgstr "Servidor SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:97
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr ""
+"SmartDNS es un servidor DNS local de alto rendimiento, admite la búsqueda de "
+"la IP más rápida, admite el filtrado de anuncios y evita el envenenamiento "
+"de DNS."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1142
+msgid "SmartDNS official website"
+msgstr "Sitio web oficial de SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Smartdns local server port"
+msgstr "Puerto del servidor local Smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:154
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+"Puerto del servidor local de Smartdns, se configurará automáticamente como "
+"DNS principal cuando el puerto sea 53."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:210
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Smartdns server name"
+msgstr "Nombre del servidor de Smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Smartdns speed check mode."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1119
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+"Especifique una dirección IP para devolver para cualquier host en los "
+"dominios dados, las consultas en los dominios nunca se reenvían y siempre se "
+"responden con la dirección IP especificada que puede ser IPv4 o IPv6."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Speed Check Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:202
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1050
+msgid "Speed check mode is invalid."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "TCP Server"
+msgstr "Servidor TCP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:196
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1044
+msgid "TCP port is empty"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:708
+msgid "TLS Hostname Verify"
+msgstr "Verificar nombre de host TLS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:727
+msgid "TLS SNI name"
+msgstr "Nombre SNI de TLS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:746
+msgid "TLS SPKI Pinning"
+msgstr "TLS SPKI Anclado"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "TTL for all domain result."
+msgstr "TTL para todos los resultados de dominio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1137
+msgid "Technical Support"
+msgstr "Soporte técnico"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:539
+msgid "URL"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:548
+msgid "URL format error, format: http:// or https://"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:523
+msgid "Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:514
+msgid "Update Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:500
+msgid "Upload Config File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:507
+msgid "Upload Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:508
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:892
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:992
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+msgid "Upload domain list file."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:501
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:631
+msgid "Upstream Servers"
+msgstr "Servidores aguas arriba"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:632
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+"Servidores aguas arriba, soporte UDP, protocolo TCP. Configure varios "
+"servidores DNS, incluidos varios servidores DNS externos."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:765
+msgid "Use Proxy"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:766
+msgid "Use proxy to connect to upstream DNS server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:747
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+"Se utiliza para verificar la validez del servidor TLS. El valor es la huella "
+"digital SPKI codificada en Base64, y se deja en blanco para indicar que no "
+"se verifica la validez de TLS."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Write cache to disk on exit and load on startup."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1013
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:172
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:213
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:611
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1012
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1020
+msgid "default"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:555
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:670
+msgid "https"
+msgstr "https"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "ip"
+msgstr "ip"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:295
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:452
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:858
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1143
+msgid "open website"
+msgstr "abrir sitio web"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "port"
+msgstr "puerto"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:556
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:585
+msgid "smartdns custom settings"
+msgstr "configuraciones personalizadas de smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:668
+msgid "tcp"
+msgstr "tcp"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:669
+msgid "tls"
+msgstr "tls"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "type"
+msgstr "tipo"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:667
+msgid "udp"
+msgstr "udp"
+
+#~ msgid ""
+#~ "DNS Server group belongs to, used with nameserver, such as office, home."
+#~ msgstr ""
+#~ "El grupo del servidor DNS pertenece a, usado con el servidor de nombres, "
+#~ "como la oficina, el hogar."
+
+#~ msgid "Dnsmasq Forwared To Smartdns Failure"
+#~ msgstr "Fallo en el reenvío de dnsmasq a SmartDNS"
+
+#~ msgid "Sets the server name indication for query."
+#~ msgstr "Establece la indicación del nombre del servidor para la consulta."
+
+#~ msgid "IPV4 53 Port Redirect Failure"
+#~ msgstr "Error de reenvío de puerto IPv4 53"
+
+#~ msgid "IPV6 53 Port Redirect Failure"
+#~ msgstr "Error de reenvío de puerto IPv6 53"
+
+#~ msgid "Redirect"
+#~ msgstr "Redirigir"
+
+#~ msgid "Redirect 53 port to SmartDNS"
+#~ msgstr "Redirigir el puerto 53 a SmartDNS"
+
+#~ msgid "Run as dnsmasq upstream server"
+#~ msgstr "Ejecutar como servidor dnsmasq aguas arriba"
+
+#~ msgid "SmartDNS redirect mode"
+#~ msgstr "Modo de redireccionamiento SmartDNS"
+
+#~ msgid "none"
+#~ msgstr "ninguno"
+
+#~ msgid "DNS Server group belongs to,"
+#~ msgstr "El grupo del servidor DNS pertenece a,"
+
+#~ msgid ""
+#~ "SmartDNS is a local high-performance DNS server, supports finding fastest "
+#~ "IP,"
+#~ msgstr ""
+#~ "SmartDNS es un servidor DNS local de alto rendimiento, admite la búsqueda "
+#~ "de IP más rápida,"
+
+#~ msgid ""
+#~ "Specify an IP address to return for any host in the given domains, "
+#~ "Queries in the domains are never"
+#~ msgstr ""
+#~ "Especifique una dirección IP para devolver para cualquier host en los "
+#~ "dominios dados, las consultas en los dominios nunca son"
+
+#~ msgid ""
+#~ "Upstream Servers, support UDP, TCP protocol. Please configure multiple "
+#~ "DNS servers,"
+#~ msgstr ""
+#~ "Servidores aguas arriba, soporte UDP, protocolo TCP. Configura varios "
+#~ "servidores DNS,"
+
+#~ msgid ""
+#~ "Used to verify the validity of the TLS server, The value is Base64 "
+#~ "encoded SPKI fingerprint,"
+#~ msgstr ""
+#~ "Se utiliza para verificar la validez del servidor TLS. El valor es la "
+#~ "huella digital SPKI codificada en Base64,"
diff --git a/luci-app-smartdns/po/pt-BR/smartdns.po b/luci-app-smartdns/po/pt-BR/smartdns.po
new file mode 100644
index 0000000..07dffbd
--- /dev/null
+++ b/luci-app-smartdns/po/pt-BR/smartdns.po
@@ -0,0 +1,964 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-03-08 10:38+0000\n"
+"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
+"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
+"openwrt/luciapplicationssmartdns/pt_BR/>\n"
+"Language: pt-BR\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.16.2-dev\n"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:792
+msgid "Additional Args for upstream dns servers"
+msgstr "Args adicionais para servidores dns upstream"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:886
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1090
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:885
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1089
+msgid "Additional Rule Flag"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:346
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:479
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:791
+msgid "Additional Server Args"
+msgstr "Args Adicionais Sobre o Servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:347
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:480
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:132
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:639
+msgid "Advanced Settings"
+msgstr "Configurações avançadas"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:253
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr ""
+"Tentativas de servir respostas antigas do cache com um TTL de 0 na resposta "
+"sem esperar o término da resolução real."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically Set Dnsmasq"
+msgstr "Definir o Dnsmasq automaticamente"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr ""
+"Definido automaticamente como upstream do dnsmasq quando a porta se alterar."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Bind Device"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Bind Device Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Cache Persist"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "Cache Size"
+msgstr "Tamanho do Cache"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:121
+msgid "Collecting data ..."
+msgstr "Coletando dados ..."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1100
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr ""
+"Configure as listas negras dos IP que serão filtradas a partir dos "
+"resultados de um servidor DNS específico."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Configure block domain list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:950
+msgid "Configure domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+msgid "Configure forwarding domain name list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:137
+msgid "Custom Settings"
+msgstr "Configurações Personalizadas"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:805
+msgid "DNS Block Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:804
+msgid "DNS Forwarding Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:648
+msgid "DNS Server Name"
+msgstr "Nome do Servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+msgid "DNS Server group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "DNS Server group belongs to, such as office, home."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "DNS Server ip"
+msgstr "Endereço IP do Servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "DNS Server port"
+msgstr "Porta do Servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "DNS Server type"
+msgstr "Tipo do Servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "DNS domain result cache size"
+msgstr "Tamanho do cache para o resultado do domínio DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:487
+msgid "DNS64"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:134
+msgid "DNS64 Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:560
+msgid "Description"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:76
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:719
+msgid "Do not check certificate."
+msgstr "Não verifique o certificado."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:397
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:838
+msgid "Do not check speed."
+msgstr "Não verifique a velocidade."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Domain Address"
+msgstr "Endereço do domínio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Domain List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:891
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:991
+msgid "Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:949
+msgid "Domain Rule List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:965
+msgid "Domain Rule Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "Domain TTL"
+msgstr "TTL do domínio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:336
+msgid "Domain TTL Max"
+msgstr "TTL Max. do Domínio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:328
+msgid "Domain TTL Min"
+msgstr "TTL Min. do Domínio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:246
+msgid "Domain prefetch"
+msgstr "Pré-aquisição do Domínio"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1159
+msgid "Donate"
+msgstr "Doe"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1158
+msgid "Donate to smartdns"
+msgstr "Doar para o smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:526
+msgid "Download Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid "Download Files Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:240
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1007
+msgid "Dual-stack IP Selection"
+msgstr "Seleção IP com pilha dupla"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:371
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:642
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:959
+msgid "Enable"
+msgstr "Ativar"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable Auto Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:241
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1008
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr "Ative a seleção do IP entre o IPV4 e o IPV6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "Enable IPV6 DNS Server"
+msgstr "Ativar o Servidor IPV6 do DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "Enable TCP DNS Server"
+msgstr "Ative o TCP do servidor DNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable daily auto update."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:247
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr ""
+"Ative a pré-aquisição do domínio, acelera a velocidade de resposta do "
+"domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:372
+msgid "Enable or disable second DNS server."
+msgstr "Ative ou desative o segundo servidor DNS."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+msgid "Enable or disable smartdns server"
+msgstr "Ative ou desative o servidor smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude DNS Server from default group."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude Default Group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:215
+msgid "Fastest IP"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:216
+msgid "Fastest Response"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:535
+msgid "File Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+msgid "File Type"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:702
+msgid "Filtering IP with blacklist"
+msgstr "Filtrando o IP com um alista negra"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:214
+msgid "First Ping"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA"
+msgstr "Impor AAAA SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA."
+msgstr "Impor AAAA SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA"
+msgstr "Impor o HTTPS SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA."
+msgstr "Impor o HTTPS SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:131
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:638
+msgid "General Settings"
+msgstr "Configurações gerais"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:599
+msgid "Generate Coredump"
+msgstr "Gerar Coredump"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:600
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+"Gere um arquivo Coredump quando o smartdns falhar, o arquivo coredump está "
+"localizado em /tmp/smartdns.xxx.core."
+
+#: applications/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json:3
+msgid "Grant access to LuCI app smartdns"
+msgstr "Conceda acesso ao LuCI app smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:737
+msgid "HTTP Host"
+msgstr "Host HTTP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "IP Blacklist"
+msgstr "Lista negra de IPs"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:701
+msgid "IP Blacklist Filtering"
+msgstr "Filtragem da Lista Negra dos IPs"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "IPV6 Server"
+msgstr "Servidor IPV6"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1138
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr "Caso goste deste software, por favor, me pague uma xícara de café."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:353
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:354
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:283
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:527
+msgid "List of files to download."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Listen only on the specified interfaces."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:153
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Local Port"
+msgstr "Porta Local"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:624
+msgid "Log File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:608
+msgid "Log Level"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:620
+msgid "Log Number"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:604
+msgid "Log Size"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:757
+msgid "Marking Packets"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:337
+msgid "Maximum TTL for all domain result."
+msgstr "TTL máximo para todos os resultados do domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:329
+msgid "Minimum TTL for all domain result."
+msgstr "TTL mínimo para todos os resultados do domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:316
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:471
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:877
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1081
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:66
+msgid "NOT RUNNING"
+msgstr "NÃO ESTÁ EM EXECUÇÃO"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Name of device name listen on."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:304
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1014
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:282
+msgid "No Speed IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:303
+msgid "No Speed NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:718
+msgid "No check certificate"
+msgstr "Não verifique o certificado"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:177
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1000
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1025
+msgid "None"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:784
+msgid "Only socks5 proxy support udp server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:780
+msgid "Please set proxy server first."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:136
+msgid "Proxy Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:575
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:390
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr ""
+"Consulta o DNS através de um grupo específico de servidores dns, como "
+"office, casa."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:64
+msgid "RUNNING"
+msgstr "EM EXECUÇÃO"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:341
+msgid "Reply Domain TTL Max"
+msgstr "Responda ao domínio com TTL Max"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:342
+msgid "Reply maximum TTL for all domain result."
+msgstr "Responda com TTL máximo em todos os resultados do domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1150
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1151
+msgid "Report bugs"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve Local Hostnames"
+msgstr "Resolve os nomes dos host locais"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr "Resolve os nomes dos hosts lendo o arquivo de concessão do Dnsmasq."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:209
+msgid "Response Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1174
+msgid "Restart"
+msgstr "Reiniciar"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1165
+msgid "Restart Service"
+msgstr "Reiniciar o serviço"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:133
+msgid "Second Server Settings"
+msgstr "Configurações do Segundo Servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:252
+msgid "Serve expired"
+msgstr "O servir expirou"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:389
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "Server Group"
+msgstr "Grupo dos Servidores"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:833
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:987
+msgid "Server Group %s not exists"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Server Name"
+msgstr "Nome do Servidor"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Set Specific domain ip address."
+msgstr "Defina um endereço IP específico para o domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+msgid "Set Specific domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "Set Specific ip blacklist."
+msgstr "Defina um IP específico para a lista negra."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:709
+msgid "Set TLS hostname to verify."
+msgstr "Defina o nome do host TLS para verificar."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:758
+msgid "Set mark on packets."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:738
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr ""
+"Defina o host HTTP utilizado para a consulta. Use este parâmetro quando o "
+"host da URL do endereço for um endereço IP."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:728
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+msgid "Settings"
+msgstr "Configurações"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:402
+msgid "Skip Address Rules"
+msgstr "Ignora as Regras do Endereço"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache"
+msgstr "Ignora a Cache"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache."
+msgstr "Ignora a Cache."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:425
+msgid "Skip Dualstack Selection"
+msgstr "Ignora a Seleção da Pilha Dupla"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:426
+msgid "Skip Dualstack Selection."
+msgstr "Ignora a Seleção da Pilha Dupla."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:414
+msgid "Skip Ipset Rule"
+msgstr "Ignora a Regra Ipset"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:408
+msgid "Skip Nameserver Rule"
+msgstr "Ignora a Regra do Servidor de Nomes"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:420
+msgid "Skip SOA Address Rule"
+msgstr "Ignorar a Regra do Endereço SOA"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:421
+msgid "Skip SOA address rules."
+msgstr "Ignorar a Regra do Endereço SOA."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:396
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:837
+msgid "Skip Speed Check"
+msgstr "Ignorar a Verificação da Velocidade"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:403
+msgid "Skip address rules."
+msgstr "Ignora as Regras do Endereço."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:415
+msgid "Skip ipset rules."
+msgstr "Ignore as regras do ipset."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:409
+msgid "Skip nameserver rules."
+msgstr "Ignora a regra do servidor de nomes."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:95
+#: applications/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json:3
+msgid "SmartDNS"
+msgstr "SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:96
+msgid "SmartDNS Server"
+msgstr "Servidor SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:97
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr ""
+"O SmartDNS é um servidor DNS local de alto desempenho, é compatível com a "
+"localização rápida do IP, suporta filtragem de anúncios e previne o "
+"envenenamento do DNS."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1142
+msgid "SmartDNS official website"
+msgstr "Site oficial do SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Smartdns local server port"
+msgstr "Porta do servidor local Smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:154
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+"Porta do servidor local do Smartdns, o smartdns será automaticamente "
+"definido como dns principal quando a porta for 53."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:210
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Smartdns server name"
+msgstr "Nome do servidor Smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Smartdns speed check mode."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1119
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+"Especifique um endereço IP para retornar para qualquer host nos domínios "
+"determinados, as consultas nos domínios nunca são encaminhadas e sempre "
+"respondidas de forma especificada com o endereço IP que tanto pode ser IPv4 "
+"ou IPv6."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Speed Check Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:202
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1050
+msgid "Speed check mode is invalid."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "TCP Server"
+msgstr "Servidor TCP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:196
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1044
+msgid "TCP port is empty"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:708
+msgid "TLS Hostname Verify"
+msgstr "Verificar o Nome do Host TLS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:727
+msgid "TLS SNI name"
+msgstr "Nome TLS SNI"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:746
+msgid "TLS SPKI Pinning"
+msgstr "Fixação TLS SPKI"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "TTL for all domain result."
+msgstr "O TTL para todos os resultados do domínio."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1137
+msgid "Technical Support"
+msgstr "Suporte Técnico"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:539
+msgid "URL"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:548
+msgid "URL format error, format: http:// or https://"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:523
+msgid "Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:514
+msgid "Update Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:500
+msgid "Upload Config File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:507
+msgid "Upload Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:508
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:892
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:992
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+msgid "Upload domain list file."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:501
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:631
+msgid "Upstream Servers"
+msgstr "Servidores upstream"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:632
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+"Servidores upstream, suporte UDP, protocolo TCP. Configure os vários "
+"servidores DNS, incluindo vários servidores DNS externos."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:765
+msgid "Use Proxy"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:766
+msgid "Use proxy to connect to upstream DNS server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:747
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+"Utilizado para verificar a validade do servidor TLS, o valor é a impressão "
+"digital SPKI codificada com base64, deixando em branco para indicar que a "
+"validade do TLS não será verificada."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Write cache to disk on exit and load on startup."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1013
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:172
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:213
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:611
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1012
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1020
+msgid "default"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:555
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:670
+msgid "https"
+msgstr "https"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "ip"
+msgstr "IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:295
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:452
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:858
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1143
+msgid "open website"
+msgstr "abrir o website"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "port"
+msgstr "porta"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:556
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:585
+msgid "smartdns custom settings"
+msgstr "configurações personalizadas do smartdns"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:668
+msgid "tcp"
+msgstr "tcp"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:669
+msgid "tls"
+msgstr "tls"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "type"
+msgstr "tipo"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:667
+msgid "udp"
+msgstr "udp"
+
+#~ msgid ""
+#~ "DNS Server group belongs to, used with nameserver, such as office, home."
+#~ msgstr ""
+#~ "O grupo do Servidor DNS pertence a, usado em conjunto com o nameserver "
+#~ "(nome do servidor), assim como em office, em casa."
+
+#~ msgid "Dnsmasq Forwared To Smartdns Failure"
+#~ msgstr "Encaminhamento do Dnsmasq para Falha do Smartdns"
+
+#~ msgid "Sets the server name indication for query."
+#~ msgstr "Define a indicação do nome do servidor para consulta."
+
+#~ msgid "IPV4 53 Port Redirect Failure"
+#~ msgstr "Falha no Redirecionamento da Porta IPV4 53"
+
+#~ msgid "IPV6 53 Port Redirect Failure"
+#~ msgstr "Falha no Redirecionamento da Porta IPV6 53"
+
+#~ msgid "Redirect"
+#~ msgstr "Redirecione"
+
+#~ msgid "Redirect 53 port to SmartDNS"
+#~ msgstr "Redirecionar a porta 53 para o SmartDNS"
+
+#~ msgid "Run as dnsmasq upstream server"
+#~ msgstr "Executar como servidor dnsmasq upstream"
+
+#~ msgid "SmartDNS redirect mode"
+#~ msgstr "SmartDNS, modo de redirecionamento"
+
+#~ msgid "none"
+#~ msgstr "nenhum"
diff --git a/luci-app-smartdns/po/templates/smartdns.pot b/luci-app-smartdns/po/templates/smartdns.pot
new file mode 100644
index 0000000..7a2203f
--- /dev/null
+++ b/luci-app-smartdns/po/templates/smartdns.pot
@@ -0,0 +1,1129 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: smartdns.js:65
+msgid "RUNNING"
+msgstr ""
+
+#: smartdns.js:67
+msgid "NOT RUNNING"
+msgstr ""
+
+#: smartdns.js:69
+msgid "Please check the system logs and check if the configuration is valid."
+msgstr ""
+
+#: smartdns.js:81
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr ""
+
+#: smartdns.js:99
+msgid "SmartDNS"
+msgstr ""
+
+#: smartdns.js:100
+msgid "SmartDNS Server"
+msgstr ""
+
+#: smartdns.js:101
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr ""
+
+#: smartdns.js:125
+msgid "Collecting data ..."
+msgstr ""
+
+#: smartdns.js:132
+msgid "Settings"
+msgstr ""
+
+#: smartdns.js:132 smartdns.js:135 smartdns.js:816
+msgid "General Settings"
+msgstr ""
+
+#: smartdns.js:136 smartdns.js:817 smartdns.js:983
+msgid "Advanced Settings"
+msgstr ""
+
+#: smartdns.js:137
+msgid "Second Server Settings"
+msgstr ""
+
+#: smartdns.js:138
+msgid "DNS64 Server Settings"
+msgstr ""
+
+#: smartdns.js:139
+msgid "Download Files Setting"
+msgstr ""
+
+#: smartdns.js:139
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+
+#: smartdns.js:140
+msgid "Proxy Server Settings"
+msgstr ""
+
+#: smartdns.js:141
+msgid "Custom Settings"
+msgstr ""
+
+#: smartdns.js:146 smartdns.js:478 smartdns.js:820 smartdns.js:986
+#: smartdns.js:1373 smartdns.js:1553
+msgid "Enable"
+msgstr ""
+
+#: smartdns.js:146
+msgid "Enable or disable smartdns server"
+msgstr ""
+
+#: smartdns.js:151
+msgid "Server Name"
+msgstr ""
+
+#: smartdns.js:151
+msgid "Smartdns server name"
+msgstr ""
+
+#: smartdns.js:157 smartdns.js:484
+msgid "Local Port"
+msgstr ""
+
+#: smartdns.js:158
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+
+#: smartdns.js:165
+msgid "Automatically Set Dnsmasq"
+msgstr ""
+
+#: smartdns.js:165
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr ""
+
+#: smartdns.js:173 smartdns.js:1048 smartdns.js:1207 smartdns.js:1430
+msgid "Speed Check Mode"
+msgstr ""
+
+#: smartdns.js:173 smartdns.js:1048 smartdns.js:1207 smartdns.js:1430
+msgid "Smartdns speed check mode."
+msgstr ""
+
+#: smartdns.js:176 smartdns.js:217 smartdns.js:749 smartdns.js:1051
+#: smartdns.js:1210 smartdns.js:1252 smartdns.js:1426 smartdns.js:1434
+msgid "default"
+msgstr ""
+
+#: smartdns.js:181 smartdns.js:1056 smartdns.js:1215 smartdns.js:1414
+#: smartdns.js:1439
+msgid "None"
+msgstr ""
+
+#: smartdns.js:200 smartdns.js:1075 smartdns.js:1234 smartdns.js:1458
+msgid "TCP port is empty"
+msgstr ""
+
+#: smartdns.js:206 smartdns.js:1081 smartdns.js:1240 smartdns.js:1464
+msgid "Speed check mode is invalid."
+msgstr ""
+
+#: smartdns.js:213
+msgid "Response Mode"
+msgstr ""
+
+#: smartdns.js:214
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+
+#: smartdns.js:218
+msgid "First Ping"
+msgstr ""
+
+#: smartdns.js:219
+msgid "Fastest IP"
+msgstr ""
+
+#: smartdns.js:220
+msgid "Fastest Response"
+msgstr ""
+
+#: smartdns.js:223 smartdns.js:491
+msgid "TCP Server"
+msgstr ""
+
+#: smartdns.js:223 smartdns.js:491
+msgid "Enable TCP DNS Server"
+msgstr ""
+
+#: smartdns.js:228
+msgid "DOT Server"
+msgstr ""
+
+#: smartdns.js:228
+msgid "Enable DOT DNS Server"
+msgstr ""
+
+#: smartdns.js:232
+msgid "DOT Server Port"
+msgstr ""
+
+#: smartdns.js:232
+msgid "Smartdns DOT server port."
+msgstr ""
+
+#: smartdns.js:240
+msgid "DOH Server"
+msgstr ""
+
+#: smartdns.js:240
+msgid "Enable DOH DNS Server"
+msgstr ""
+
+#: smartdns.js:244
+msgid "DOH Server Port"
+msgstr ""
+
+#: smartdns.js:244
+msgid "Smartdns DOH server port."
+msgstr ""
+
+#: smartdns.js:251
+msgid "Server Cert"
+msgstr ""
+
+#: smartdns.js:251
+msgid "Server certificate file path."
+msgstr ""
+
+#: smartdns.js:258
+msgid "Server Cert Key"
+msgstr ""
+
+#: smartdns.js:258
+msgid "Server certificate key file path."
+msgstr ""
+
+#: smartdns.js:265
+msgid "Server Cert Key Pass"
+msgstr ""
+
+#: smartdns.js:265
+msgid "Server certificate key file password."
+msgstr ""
+
+#: smartdns.js:272
+msgid "IPV6 Server"
+msgstr ""
+
+#: smartdns.js:272
+msgid "Enable IPV6 DNS Server"
+msgstr ""
+
+#: smartdns.js:277
+msgid "Bind Device"
+msgstr ""
+
+#: smartdns.js:277
+msgid "Listen only on the specified interfaces."
+msgstr ""
+
+#: smartdns.js:282
+msgid "Bind Device Name"
+msgstr ""
+
+#: smartdns.js:282
+msgid "Name of device name listen on."
+msgstr ""
+
+#: smartdns.js:288 smartdns.js:1088 smartdns.js:1247 smartdns.js:1421
+msgid "Dual-stack IP Selection"
+msgstr ""
+
+#: smartdns.js:289 smartdns.js:1089 smartdns.js:1248 smartdns.js:1422
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr ""
+
+#: smartdns.js:294
+msgid "Domain prefetch"
+msgstr ""
+
+#: smartdns.js:295
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr ""
+
+#: smartdns.js:300
+msgid "Serve expired"
+msgstr ""
+
+#: smartdns.js:301
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr ""
+
+#: smartdns.js:306
+msgid "Cache Size"
+msgstr ""
+
+#: smartdns.js:306
+msgid "DNS domain result cache size"
+msgstr ""
+
+#: smartdns.js:310
+msgid "Cache Persist"
+msgstr ""
+
+#: smartdns.js:310
+msgid "Write cache to disk on exit and load on startup."
+msgstr ""
+
+#: smartdns.js:315
+msgid "Resolve Local Hostnames"
+msgstr ""
+
+#: smartdns.js:315
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr ""
+
+#: smartdns.js:320
+msgid "mDNS Lookup"
+msgstr ""
+
+#: smartdns.js:320
+msgid "Resolve local network hostname via mDNS protocol."
+msgstr ""
+
+#: smartdns.js:325 smartdns.js:543 smartdns.js:1094 smartdns.js:1256
+#: smartdns.js:1470
+msgid "Force AAAA SOA"
+msgstr ""
+
+#: smartdns.js:325 smartdns.js:543 smartdns.js:1094 smartdns.js:1256
+#: smartdns.js:1470
+msgid "Force AAAA SOA."
+msgstr ""
+
+#: smartdns.js:330 smartdns.js:548 smartdns.js:1099
+msgid "Force HTTPS SOA"
+msgstr ""
+
+#: smartdns.js:330 smartdns.js:548 smartdns.js:1099
+msgid "Force HTTPS SOA."
+msgstr ""
+
+#: smartdns.js:335 smartdns.js:556 smartdns.js:1104 smartdns.js:1260
+#: smartdns.js:1476
+msgid "IPset Name"
+msgstr ""
+
+#: smartdns.js:335 smartdns.js:556 smartdns.js:1104 smartdns.js:1260
+#: smartdns.js:1476
+msgid "IPset name."
+msgstr ""
+
+#: smartdns.js:347 smartdns.js:368 smartdns.js:568 smartdns.js:1116
+#: smartdns.js:1272
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr ""
+
+#: smartdns.js:355
+msgid "No Speed IPset Name"
+msgstr ""
+
+#: smartdns.js:356
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr ""
+
+#: smartdns.js:376 smartdns.js:575 smartdns.js:1124 smartdns.js:1279
+#: smartdns.js:1482
+msgid "NFTset Name"
+msgstr ""
+
+#: smartdns.js:376 smartdns.js:575 smartdns.js:1124 smartdns.js:1279
+#: smartdns.js:1482
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: smartdns.js:388 smartdns.js:409 smartdns.js:587 smartdns.js:1136
+#: smartdns.js:1291 smartdns.js:1495
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: smartdns.js:396
+msgid "No Speed NFTset Name"
+msgstr ""
+
+#: smartdns.js:397
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: smartdns.js:417
+msgid "Domain TTL"
+msgstr ""
+
+#: smartdns.js:417
+msgid "TTL for all domain result."
+msgstr ""
+
+#: smartdns.js:421
+msgid "Domain TTL Min"
+msgstr ""
+
+#: smartdns.js:422
+msgid "Minimum TTL for all domain result."
+msgstr ""
+
+#: smartdns.js:429
+msgid "Domain TTL Max"
+msgstr ""
+
+#: smartdns.js:430
+msgid "Maximum TTL for all domain result."
+msgstr ""
+
+#: smartdns.js:434
+msgid "Reply Domain TTL Max"
+msgstr ""
+
+#: smartdns.js:435
+msgid "Reply maximum TTL for all domain result."
+msgstr ""
+
+#: smartdns.js:439 smartdns.js:595 smartdns.js:969
+msgid "Additional Server Args"
+msgstr ""
+
+#: smartdns.js:440 smartdns.js:596
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr ""
+
+#: smartdns.js:446 smartdns.js:1145
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr ""
+
+#: smartdns.js:447 smartdns.js:1146
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+
+#: smartdns.js:460
+msgid "Hosts File"
+msgstr ""
+
+#: smartdns.js:460
+msgid "Include hosts file."
+msgstr ""
+
+#: smartdns.js:479
+msgid "Enable or disable second DNS server."
+msgstr ""
+
+#: smartdns.js:484
+msgid "Smartdns local server port"
+msgstr ""
+
+#: smartdns.js:496 smartdns.js:853 smartdns.js:1023 smartdns.js:1182
+#: smartdns.js:1381
+msgid "Server Group"
+msgstr ""
+
+#: smartdns.js:497
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr ""
+
+#: smartdns.js:503
+msgid "Skip Speed Check"
+msgstr ""
+
+#: smartdns.js:504
+msgid "Do not check speed."
+msgstr ""
+
+#: smartdns.js:509
+msgid "Skip Address Rules"
+msgstr ""
+
+#: smartdns.js:510
+msgid "Skip address rules."
+msgstr ""
+
+#: smartdns.js:515
+msgid "Skip Nameserver Rule"
+msgstr ""
+
+#: smartdns.js:516
+msgid "Skip nameserver rules."
+msgstr ""
+
+#: smartdns.js:521
+msgid "Skip Ipset Rule"
+msgstr ""
+
+#: smartdns.js:522
+msgid "Skip ipset rules."
+msgstr ""
+
+#: smartdns.js:527
+msgid "Skip SOA Address Rule"
+msgstr ""
+
+#: smartdns.js:528
+msgid "Skip SOA address rules."
+msgstr ""
+
+#: smartdns.js:532
+msgid "Skip Dualstack Selection"
+msgstr ""
+
+#: smartdns.js:533
+msgid "Skip Dualstack Selection."
+msgstr ""
+
+#: smartdns.js:538
+msgid "Skip Cache"
+msgstr ""
+
+#: smartdns.js:538
+msgid "Skip Cache."
+msgstr ""
+
+#: smartdns.js:552
+msgid "Skip IP Alias"
+msgstr ""
+
+#: smartdns.js:603
+msgid "DNS64"
+msgstr ""
+
+#: smartdns.js:611
+msgid "Enable Auto Update"
+msgstr ""
+
+#: smartdns.js:611
+msgid "Enable daily (weekly) auto update."
+msgstr ""
+
+#: smartdns.js:616
+msgid "Update Time (Every Week)"
+msgstr ""
+
+#: smartdns.js:617
+msgid "Every Day"
+msgstr ""
+
+#: smartdns.js:618
+msgid "Every Monday"
+msgstr ""
+
+#: smartdns.js:619
+msgid "Every Tuesday"
+msgstr ""
+
+#: smartdns.js:620
+msgid "Every Wednesday"
+msgstr ""
+
+#: smartdns.js:621
+msgid "Every Thursday"
+msgstr ""
+
+#: smartdns.js:622
+msgid "Every Friday"
+msgstr ""
+
+#: smartdns.js:623
+msgid "Every Saturday"
+msgstr ""
+
+#: smartdns.js:624
+msgid "Every Sunday"
+msgstr ""
+
+#: smartdns.js:628
+msgid "Update time (every day)"
+msgstr ""
+
+#: smartdns.js:634
+msgid "Upload Config File"
+msgstr ""
+
+#: smartdns.js:635
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr ""
+
+#: smartdns.js:641
+msgid "Upload Domain List File"
+msgstr ""
+
+#: smartdns.js:642
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr ""
+
+#: smartdns.js:648
+msgid "Upload File"
+msgstr ""
+
+#: smartdns.js:654
+msgid "Update Files"
+msgstr ""
+
+#: smartdns.js:663
+msgid "Update"
+msgstr ""
+
+#: smartdns.js:666
+msgid "Download Files"
+msgstr ""
+
+#: smartdns.js:667
+msgid "List of files to download."
+msgstr ""
+
+#: smartdns.js:675
+msgid "File Name"
+msgstr ""
+
+#: smartdns.js:679
+msgid "URL"
+msgstr ""
+
+#: smartdns.js:688
+msgid "URL format error, format: http:// or https://"
+msgstr ""
+
+#: smartdns.js:694 smartdns.js:843
+msgid "type"
+msgstr ""
+
+#: smartdns.js:694
+msgid "File Type"
+msgstr ""
+
+#: smartdns.js:695
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr ""
+
+#: smartdns.js:696
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr ""
+
+#: smartdns.js:697
+msgid "ip-set file (/etc/smartdns/ip-set)"
+msgstr ""
+
+#: smartdns.js:698
+msgid "other file (/etc/smartdns/download)"
+msgstr ""
+
+#: smartdns.js:702
+msgid "Description"
+msgstr ""
+
+#: smartdns.js:709
+msgid "Proxy Server"
+msgstr ""
+
+#: smartdns.js:709
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: smartdns.js:717
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: smartdns.js:727
+msgid "smartdns custom settings"
+msgstr ""
+
+#: smartdns.js:741
+msgid "Generate Coredump"
+msgstr ""
+
+#: smartdns.js:742
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+
+#: smartdns.js:746
+msgid "Log Level"
+msgstr ""
+
+#: smartdns.js:758
+msgid "Log Output Mode"
+msgstr ""
+
+#: smartdns.js:760 smartdns.js:761 smartdns.js:786 smartdns.js:787
+msgid "file"
+msgstr ""
+
+#: smartdns.js:762 smartdns.js:788
+msgid "syslog"
+msgstr ""
+
+#: smartdns.js:764
+msgid "Log Size"
+msgstr ""
+
+#: smartdns.js:769
+msgid "Log Number"
+msgstr ""
+
+#: smartdns.js:774
+msgid "Log File"
+msgstr ""
+
+#: smartdns.js:779
+msgid "Enable Audit Log"
+msgstr ""
+
+#: smartdns.js:784
+msgid "Audit Log Output Mode"
+msgstr ""
+
+#: smartdns.js:791
+msgid "Audit Log Size"
+msgstr ""
+
+#: smartdns.js:796
+msgid "Audit Log Number"
+msgstr ""
+
+#: smartdns.js:801
+msgid "Audit Log File"
+msgstr ""
+
+#: smartdns.js:809
+msgid "Upstream Servers"
+msgstr ""
+
+#: smartdns.js:810
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+
+#: smartdns.js:826
+msgid "DNS Server Name"
+msgstr ""
+
+#: smartdns.js:829
+msgid "ip"
+msgstr ""
+
+#: smartdns.js:829
+msgid "DNS Server ip"
+msgstr ""
+
+#: smartdns.js:834
+msgid "port"
+msgstr ""
+
+#: smartdns.js:834
+msgid "DNS Server port"
+msgstr ""
+
+#: smartdns.js:843
+msgid "DNS Server type"
+msgstr ""
+
+#: smartdns.js:845
+msgid "udp"
+msgstr ""
+
+#: smartdns.js:846
+msgid "tcp"
+msgstr ""
+
+#: smartdns.js:847
+msgid "tls"
+msgstr ""
+
+#: smartdns.js:848
+msgid "https"
+msgstr ""
+
+#: smartdns.js:853
+msgid "DNS Server group"
+msgstr ""
+
+#: smartdns.js:872
+msgid "Exclude Default Group"
+msgstr ""
+
+#: smartdns.js:872
+msgid "Exclude DNS Server from default group."
+msgstr ""
+
+#: smartdns.js:879
+msgid "IP Blacklist Filtering"
+msgstr ""
+
+#: smartdns.js:880
+msgid "Filtering IP with blacklist"
+msgstr ""
+
+#: smartdns.js:886
+msgid "TLS Hostname Verify"
+msgstr ""
+
+#: smartdns.js:887
+msgid "Set TLS hostname to verify."
+msgstr ""
+
+#: smartdns.js:896
+msgid "No check certificate"
+msgstr ""
+
+#: smartdns.js:897
+msgid "Do not check certificate."
+msgstr ""
+
+#: smartdns.js:905
+msgid "TLS SNI name"
+msgstr ""
+
+#: smartdns.js:906
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr ""
+
+#: smartdns.js:915
+msgid "HTTP Host"
+msgstr ""
+
+#: smartdns.js:916
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr ""
+
+#: smartdns.js:924
+msgid "TLS SPKI Pinning"
+msgstr ""
+
+#: smartdns.js:925
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+
+#: smartdns.js:935
+msgid "Marking Packets"
+msgstr ""
+
+#: smartdns.js:936
+msgid "Set mark on packets."
+msgstr ""
+
+#: smartdns.js:943
+msgid "Use Proxy"
+msgstr ""
+
+#: smartdns.js:944
+msgid "Use proxy to connect to upstream DNS server."
+msgstr ""
+
+#: smartdns.js:958
+msgid "Please set proxy server first."
+msgstr ""
+
+#: smartdns.js:962
+msgid "Only socks5 proxy support udp server."
+msgstr ""
+
+#: smartdns.js:970
+msgid "Additional Args for upstream dns servers"
+msgstr ""
+
+#: smartdns.js:978
+msgid "Client Rules"
+msgstr ""
+
+#: smartdns.js:978
+msgid "Client Rules Settings, can achieve parental control functionality."
+msgstr ""
+
+#: smartdns.js:982
+msgid "Basic Settings"
+msgstr ""
+
+#: smartdns.js:984 smartdns.js:1175
+msgid "DNS Block Setting"
+msgstr ""
+
+#: smartdns.js:990
+msgid "Client Address"
+msgstr ""
+
+#: smartdns.js:991
+msgid ""
+"If a client address is specified, only that client will apply this rule. You "
+"can enter an IP address, such as 1.2.3.4, or a MAC address, such as aa:bb:cc:"
+"dd:ee:ff."
+msgstr ""
+
+#: smartdns.js:1012
+msgid "Client address format error, please input ip adress or mac address."
+msgstr ""
+
+#: smartdns.js:1015
+msgid "Client Address File"
+msgstr ""
+
+#: smartdns.js:1016
+msgid "Upload client address file, same as Client Address function."
+msgstr ""
+
+#: smartdns.js:1023 smartdns.js:1182 smartdns.js:1381
+msgid "DNS Server group belongs to, such as office, home."
+msgstr ""
+
+#: smartdns.js:1043 smartdns.js:1202 smartdns.js:1401
+#, javascript-format
+msgid "Server Group %s not exists"
+msgstr ""
+
+#: smartdns.js:1159 smartdns.js:1305 smartdns.js:1335 smartdns.js:1405
+msgid "Domain List File"
+msgstr ""
+
+#: smartdns.js:1159 smartdns.js:1335
+msgid "Upload domain list file."
+msgstr ""
+
+#: smartdns.js:1170
+msgid "Domain Rules"
+msgstr ""
+
+#: smartdns.js:1170
+msgid "Domain Rules Settings"
+msgstr ""
+
+#: smartdns.js:1174
+msgid "DNS Forwarding Setting"
+msgstr ""
+
+#: smartdns.js:1176 smartdns.js:1363
+msgid "Domain Rule List"
+msgstr ""
+
+#: smartdns.js:1176
+msgid "Set Specific domain rule list."
+msgstr ""
+
+#: smartdns.js:1177
+msgid "Domain Address"
+msgstr ""
+
+#: smartdns.js:1177
+msgid "Set Specific domain ip address."
+msgstr ""
+
+#: smartdns.js:1253 smartdns.js:1427
+msgid "Yes"
+msgstr ""
+
+#: smartdns.js:1254 smartdns.js:1428
+msgid "No"
+msgstr ""
+
+#: smartdns.js:1299 smartdns.js:1503 smartdns.js:1600
+msgid "Additional Rule Flag"
+msgstr ""
+
+#: smartdns.js:1300 smartdns.js:1504
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr ""
+
+#: smartdns.js:1306 smartdns.js:1406
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr ""
+
+#: smartdns.js:1314 smartdns.js:1343
+msgid "Domain List"
+msgstr ""
+
+#: smartdns.js:1314
+msgid "Configure forwarding domain name list."
+msgstr ""
+
+#: smartdns.js:1343
+msgid "Configure block domain list."
+msgstr ""
+
+#: smartdns.js:1364
+msgid "Configure domain rule list."
+msgstr ""
+
+#: smartdns.js:1379
+msgid "Domain Rule Name"
+msgstr ""
+
+#: smartdns.js:1412
+msgid "Block domain"
+msgstr ""
+
+#: smartdns.js:1412
+msgid "Block domain."
+msgstr ""
+
+#: smartdns.js:1514
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+
+#: smartdns.js:1533
+msgid "IP Rules"
+msgstr ""
+
+#: smartdns.js:1533
+msgid "IP Rules Settings"
+msgstr ""
+
+#: smartdns.js:1537 smartdns.js:1543
+msgid "IP Rule List"
+msgstr ""
+
+#: smartdns.js:1537
+msgid "Set Specific ip rule list."
+msgstr ""
+
+#: smartdns.js:1538
+msgid "IP Blacklist"
+msgstr ""
+
+#: smartdns.js:1538
+msgid "Set Specific ip blacklist."
+msgstr ""
+
+#: smartdns.js:1544
+msgid "Configure ip rule list."
+msgstr ""
+
+#: smartdns.js:1559
+msgid "IP Rule Name"
+msgstr ""
+
+#: smartdns.js:1563
+msgid "IP Set File"
+msgstr ""
+
+#: smartdns.js:1563
+msgid "Upload IP set file."
+msgstr ""
+
+#: smartdns.js:1569
+msgid "IP Addresses"
+msgstr ""
+
+#: smartdns.js:1569
+msgid "IP addresses, CIDR format."
+msgstr ""
+
+#: smartdns.js:1574
+msgid "Whitelist IP"
+msgstr ""
+
+#: smartdns.js:1574
+msgid "Whitelist IP Rule, Accept IP addresses within the range."
+msgstr ""
+
+#: smartdns.js:1579
+msgid "Blacklist IP"
+msgstr ""
+
+#: smartdns.js:1579
+msgid "Blacklist IP Rule, Decline IP addresses within the range."
+msgstr ""
+
+#: smartdns.js:1584
+msgid "Ignore IP"
+msgstr ""
+
+#: smartdns.js:1584
+msgid "Do not use these IP addresses."
+msgstr ""
+
+#: smartdns.js:1589
+msgid "Bogus nxdomain"
+msgstr ""
+
+#: smartdns.js:1589
+msgid "Return SOA when the requested result contains a specified IP address."
+msgstr ""
+
+#: smartdns.js:1594
+msgid "IP alias"
+msgstr ""
+
+#: smartdns.js:1594
+msgid ""
+"IP Address Mapping, Can be used for CDN acceleration with Anycast IP, such "
+"as Cloudflare's CDN."
+msgstr ""
+
+#: smartdns.js:1601
+msgid "Additional Flags for rules, read help on ip-rule for more information."
+msgstr ""
+
+#: smartdns.js:1610
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr ""
+
+#: smartdns.js:1627
+msgid "Technical Support"
+msgstr ""
+
+#: smartdns.js:1628
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr ""
+
+#: smartdns.js:1632
+msgid "SmartDNS official website"
+msgstr ""
+
+#: smartdns.js:1633
+msgid "open website"
+msgstr ""
+
+#: smartdns.js:1640 smartdns.js:1641
+msgid "Report bugs"
+msgstr ""
+
+#: smartdns.js:1648
+msgid "Donate to smartdns"
+msgstr ""
+
+#: smartdns.js:1649
+msgid "Donate"
+msgstr ""
+
+#: smartdns.js:1655
+msgid "Restart Service"
+msgstr ""
+
+#: smartdns.js:1664
+msgid "Restart"
+msgstr ""
diff --git a/luci-app-smartdns/po/zh_Hans/smartdns.po b/luci-app-smartdns/po/zh_Hans/smartdns.po
new file mode 100644
index 0000000..d071fe6
--- /dev/null
+++ b/luci-app-smartdns/po/zh_Hans/smartdns.po
@@ -0,0 +1,1205 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: luci-app-smartdns\n"
+"POT-Creation-Date: 2025-02-19 23:07+0800\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: zh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 3.5\n"
+"X-Poedit-Basepath: ../../htdocs/luci-static/resources/view/smartdns\n"
+"X-Poedit-SearchPath-0: .\n"
+
+#: log.js:80
+msgid "Loading..."
+msgstr "加载中..."
+
+#: log.js:82 smartdns.js:125
+msgid "Collecting data ..."
+msgstr "正在收集数据..."
+
+#: log.js:92
+msgid "Clear Logs..."
+msgstr "清除日志..."
+
+#: log.js:95
+msgid "Logs cleared successfully!"
+msgstr "日志清除成功!"
+
+#: log.js:98 log.js:108 log.js:112
+msgid "Clear Logs"
+msgstr "清除日志"
+
+#: log.js:101 log.js:119
+msgid "Log is clean."
+msgstr "日志已清除。"
+
+#: log.js:105
+msgid "Failed to clear log."
+msgstr "清除日志失败。"
+
+#: log.js:127
+msgid "Log file does not exist."
+msgstr "日志文件不存在。"
+
+#: log.js:129
+#, javascript-format
+msgid "Unknown error: %s"
+msgstr "未知错误:%s"
+
+#: log.js:142
+msgid "Back SmartDNS"
+msgstr "返回 SmartDNS"
+
+#: log.js:151
+#, javascript-format
+msgid "Refresh every %s seconds."
+msgstr "每 %s 秒刷新。"
+
+#: smartdns.js:65
+msgid "RUNNING"
+msgstr "运行中"
+
+#: smartdns.js:67
+msgid "NOT RUNNING"
+msgstr "未运行"
+
+#: smartdns.js:69
+msgid "Please check the system logs and check if the configuration is valid."
+msgstr "请检查系统日志,并检查配置是否合法。"
+
+#: smartdns.js:81
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr "重定向dnsmasq到smartdns失败"
+
+#: smartdns.js:99
+msgid "SmartDNS"
+msgstr "SmartDNS"
+
+#: smartdns.js:100
+msgid "SmartDNS Server"
+msgstr "SmartDNS 服务器"
+
+#: smartdns.js:101
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr "SmartDNS是一个本地高性能DNS服务器,支持返回最快IP,支持广告过滤。"
+
+#: smartdns.js:132
+msgid "Settings"
+msgstr "设置"
+
+#: smartdns.js:132 smartdns.js:135 smartdns.js:828
+msgid "General Settings"
+msgstr "常规设置"
+
+#: smartdns.js:136 smartdns.js:829 smartdns.js:995
+msgid "Advanced Settings"
+msgstr "高级设置"
+
+#: smartdns.js:137
+msgid "Second Server Settings"
+msgstr "第二DNS服务器"
+
+#: smartdns.js:138
+msgid "DNS64 Server Settings"
+msgstr "DNS64服务器配置"
+
+#: smartdns.js:139
+msgid "Download Files Setting"
+msgstr "下载文件设置"
+
+#: smartdns.js:139
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+"下载域名规则所需要的域名列表文件和smartdns配置文件,下载完成后刷新页面。"
+
+#: smartdns.js:140
+msgid "Proxy Server Settings"
+msgstr "代理服务器设置"
+
+#: smartdns.js:141
+msgid "Custom Settings"
+msgstr "自定义设置"
+
+#: smartdns.js:146 smartdns.js:478 smartdns.js:832 smartdns.js:998
+#: smartdns.js:1385 smartdns.js:1565
+msgid "Enable"
+msgstr "启用"
+
+#: smartdns.js:146
+msgid "Enable or disable smartdns server"
+msgstr "启用或禁用SmartDNS服务"
+
+#: smartdns.js:151
+msgid "Server Name"
+msgstr "服务器名称"
+
+#: smartdns.js:151
+msgid "Smartdns server name"
+msgstr "SmartDNS的服务器名称,默认为smartdns,留空为主机名"
+
+#: smartdns.js:157 smartdns.js:484
+msgid "Local Port"
+msgstr "本地端口"
+
+#: smartdns.js:158
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+"SmartDNS本地服务端口,当端口号设置为53时,smartdns将会自动配置为主dns。"
+
+#: smartdns.js:165
+msgid "Automatically Set Dnsmasq"
+msgstr "自动设置Dnsmasq"
+
+#: smartdns.js:165
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr "端口更改时自动设为 dnsmasq 的上游。"
+
+#: smartdns.js:173 smartdns.js:1060 smartdns.js:1219 smartdns.js:1442
+msgid "Speed Check Mode"
+msgstr "测速模式"
+
+#: smartdns.js:173 smartdns.js:1060 smartdns.js:1219 smartdns.js:1442
+msgid "Smartdns speed check mode."
+msgstr "SmartDNS测速模式。"
+
+#: smartdns.js:176 smartdns.js:217 smartdns.js:749 smartdns.js:1063
+#: smartdns.js:1222 smartdns.js:1264 smartdns.js:1438 smartdns.js:1446
+msgid "default"
+msgstr "默认"
+
+#: smartdns.js:181 smartdns.js:1068 smartdns.js:1227 smartdns.js:1426
+#: smartdns.js:1451
+msgid "None"
+msgstr "无"
+
+#: smartdns.js:200 smartdns.js:1087 smartdns.js:1246 smartdns.js:1470
+msgid "TCP port is empty"
+msgstr "TCP端口号为空"
+
+#: smartdns.js:206 smartdns.js:1093 smartdns.js:1252 smartdns.js:1476
+msgid "Speed check mode is invalid."
+msgstr "测速模式无效。"
+
+#: smartdns.js:213
+msgid "Response Mode"
+msgstr "响应模式"
+
+#: smartdns.js:214
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+"SmartDNS响应模式,最快PING: 返回最早有ping结果的IP,速度适中;最快IP: 返回"
+"最快IP,查询请求可能延长; 最快响应:返回最快响应的结果,查询请求时间短。"
+
+#: smartdns.js:218
+msgid "First Ping"
+msgstr "最快PING"
+
+#: smartdns.js:219
+msgid "Fastest IP"
+msgstr "最快IP"
+
+#: smartdns.js:220
+msgid "Fastest Response"
+msgstr "最快响应"
+
+#: smartdns.js:223 smartdns.js:491
+msgid "TCP Server"
+msgstr "TCP服务器"
+
+#: smartdns.js:223 smartdns.js:491
+msgid "Enable TCP DNS Server"
+msgstr "启用TCP服务器。"
+
+#: smartdns.js:228
+msgid "DOT Server"
+msgstr "DOT服务器"
+
+#: smartdns.js:228
+msgid "Enable DOT DNS Server"
+msgstr "启用DOT服务器"
+
+#: smartdns.js:232
+msgid "DOT Server Port"
+msgstr "DOT服务器端口"
+
+#: smartdns.js:232
+msgid "Smartdns DOT server port."
+msgstr "Smartdns DOT服务器端口号。"
+
+#: smartdns.js:240
+msgid "DOH Server"
+msgstr "DOH服务器"
+
+#: smartdns.js:240
+msgid "Enable DOH DNS Server"
+msgstr "启用DOH服务器"
+
+#: smartdns.js:244
+msgid "DOH Server Port"
+msgstr "DOH服务器端口"
+
+#: smartdns.js:244
+msgid "Smartdns DOH server port."
+msgstr "Smartdns DOH服务器端口号"
+
+#: smartdns.js:251
+msgid "Server Cert"
+msgstr "服务器证书"
+
+#: smartdns.js:251
+msgid "Server certificate file path."
+msgstr "服务器证书文件路径。"
+
+#: smartdns.js:258
+msgid "Server Cert Key"
+msgstr "服务器证书私钥"
+
+#: smartdns.js:258
+msgid "Server certificate key file path."
+msgstr "服务器证书私钥文件路径。"
+
+#: smartdns.js:265
+msgid "Server Cert Key Pass"
+msgstr "服务器证书私钥密码"
+
+#: smartdns.js:265
+msgid "Server certificate key file password."
+msgstr "服务器证书私钥文件密码。"
+
+#: smartdns.js:272
+msgid "IPV6 Server"
+msgstr "IPV6服务器"
+
+#: smartdns.js:272
+msgid "Enable IPV6 DNS Server"
+msgstr "启用IPV6服务器。"
+
+#: smartdns.js:277
+msgid "Bind Device"
+msgstr "绑定到设备"
+
+#: smartdns.js:277
+msgid "Listen only on the specified interfaces."
+msgstr "监听在指定的设备上,避免非本地网络的DNS查询请求。"
+
+#: smartdns.js:282
+msgid "Bind Device Name"
+msgstr "绑定的设备名称"
+
+#: smartdns.js:282
+msgid "Name of device name listen on."
+msgstr "绑定的设备名称。"
+
+#: smartdns.js:288 smartdns.js:1100 smartdns.js:1259 smartdns.js:1433
+msgid "Dual-stack IP Selection"
+msgstr "双栈IP优选"
+
+#: smartdns.js:289 smartdns.js:1101 smartdns.js:1260 smartdns.js:1434
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr "启用 IPV4 和 IPV6 间的 IP 优选策略。"
+
+#: smartdns.js:294
+msgid "Domain prefetch"
+msgstr "域名预加载"
+
+#: smartdns.js:295
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr "启用域名预加载,加速域名响应速度。"
+
+#: smartdns.js:300
+msgid "Serve expired"
+msgstr "缓存过期服务"
+
+#: smartdns.js:301
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr "查询性能优化,有请求时尝试回应TTL为0的过期记录,以避免查询等待。"
+
+#: smartdns.js:306
+msgid "Cache Size"
+msgstr "缓存大小"
+
+#: smartdns.js:306
+msgid "DNS domain result cache size"
+msgstr "缓存DNS的结果,缓存大小,配置零则不缓存。"
+
+#: smartdns.js:310
+msgid "Cache Persist"
+msgstr "持久化缓存"
+
+#: smartdns.js:310
+msgid "Write cache to disk on exit and load on startup."
+msgstr "退出时保存cache到磁盘,启动时加载。"
+
+#: smartdns.js:315
+msgid "Resolve Local Hostnames"
+msgstr "解析本地主机名"
+
+#: smartdns.js:315
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr "读取Dnsmasq的租约文件解析本地主机名。"
+
+#: smartdns.js:320
+msgid "mDNS Lookup"
+msgstr "mDNS查询"
+
+#: smartdns.js:320
+msgid "Resolve local network hostname via mDNS protocol."
+msgstr "使用mDNS协议解析本地网络主机名。"
+
+#: smartdns.js:325 smartdns.js:543 smartdns.js:1106 smartdns.js:1268
+#: smartdns.js:1482
+msgid "Force AAAA SOA"
+msgstr "停用IPV6地址解析"
+
+#: smartdns.js:325 smartdns.js:543 smartdns.js:1106 smartdns.js:1268
+#: smartdns.js:1482
+msgid "Force AAAA SOA."
+msgstr "停用IPV6地址解析。"
+
+#: smartdns.js:330 smartdns.js:548 smartdns.js:1111
+msgid "Force HTTPS SOA"
+msgstr "停用HTTPS记录解析"
+
+#: smartdns.js:330 smartdns.js:548 smartdns.js:1111
+msgid "Force HTTPS SOA."
+msgstr "停用HTTPS记录解析。"
+
+#: smartdns.js:335 smartdns.js:556 smartdns.js:1116 smartdns.js:1272
+#: smartdns.js:1488
+msgid "IPset Name"
+msgstr "IPset名称"
+
+#: smartdns.js:335 smartdns.js:556 smartdns.js:1116 smartdns.js:1272
+#: smartdns.js:1488
+msgid "IPset name."
+msgstr "IPset名称。"
+
+#: smartdns.js:347 smartdns.js:368 smartdns.js:568 smartdns.js:1128
+#: smartdns.js:1284
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr "IPset名称格式错误,格式:[#[4|6]:]ipsetname"
+
+#: smartdns.js:355
+msgid "No Speed IPset Name"
+msgstr "无速度时IPSet名称"
+
+#: smartdns.js:356
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr "IPset名称,当测速失败时,将查询到的结果添加到对应的IPSet集合中。"
+
+#: smartdns.js:376 smartdns.js:575 smartdns.js:1136 smartdns.js:1291
+#: smartdns.js:1494
+msgid "NFTset Name"
+msgstr "NFTSet名称"
+
+#: smartdns.js:376 smartdns.js:575 smartdns.js:1136 smartdns.js:1291
+#: smartdns.js:1494
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr "NFTSet名称,格式:[#[4|6]:[family#table#set]]"
+
+#: smartdns.js:388 smartdns.js:409 smartdns.js:587 smartdns.js:1148
+#: smartdns.js:1303 smartdns.js:1507
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr "NFTSet名称格式错误,格式:[#[4|6]:[family#table#set]]"
+
+#: smartdns.js:396
+msgid "No Speed NFTset Name"
+msgstr "无速度时NFTSet名称"
+
+#: smartdns.js:397
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr "NFTset名称,当测速失败时,将查询到的结果添加到对应的NFTSet集合中。"
+
+#: smartdns.js:417
+msgid "Domain TTL"
+msgstr "域名TTL"
+
+#: smartdns.js:417
+msgid "TTL for all domain result."
+msgstr "设置所有域名的 TTL 值。"
+
+#: smartdns.js:421
+msgid "Domain TTL Min"
+msgstr "域名TTL最小值"
+
+#: smartdns.js:422
+msgid "Minimum TTL for all domain result."
+msgstr "所有域名的最小 TTL 值。"
+
+#: smartdns.js:429
+msgid "Domain TTL Max"
+msgstr "域名TTL最大值"
+
+#: smartdns.js:430
+msgid "Maximum TTL for all domain result."
+msgstr "所有域名的最大 TTL 值。"
+
+#: smartdns.js:434
+msgid "Reply Domain TTL Max"
+msgstr "回应的域名TTL最大值"
+
+#: smartdns.js:435
+msgid "Reply maximum TTL for all domain result."
+msgstr "设置返回给客户端的域名TTL最大值。"
+
+#: smartdns.js:439 smartdns.js:595 smartdns.js:981
+msgid "Additional Server Args"
+msgstr "额外的服务器参数"
+
+#: smartdns.js:440 smartdns.js:596
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr "额外的服务器参数,参考bind选项的帮助说明。"
+
+#: smartdns.js:446 smartdns.js:1157
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr "包含配置文件<br>/etc/smartdns/conf.d"
+
+#: smartdns.js:447 smartdns.js:1158
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+"包含配置文件,路径为/etc/smartdns/conf.d,或自定义配置文件路径,可以从下载页"
+"面配置自动下载。"
+
+#: smartdns.js:460
+msgid "Hosts File"
+msgstr "Hosts文件"
+
+#: smartdns.js:460
+msgid "Include hosts file."
+msgstr "包含hosts文件。"
+
+#: smartdns.js:479
+msgid "Enable or disable second DNS server."
+msgstr "是否启用第二DNS服务器。"
+
+#: smartdns.js:484
+msgid "Smartdns local server port"
+msgstr "SmartDNS本地服务端口"
+
+#: smartdns.js:496 smartdns.js:865 smartdns.js:1035 smartdns.js:1194
+#: smartdns.js:1393
+msgid "Server Group"
+msgstr "服务器组"
+
+#: smartdns.js:497
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr "使用指定服务器组查询,比如office, home。"
+
+#: smartdns.js:503
+msgid "Skip Speed Check"
+msgstr "跳过测速"
+
+#: smartdns.js:504
+msgid "Do not check speed."
+msgstr "禁用测速。"
+
+#: smartdns.js:509
+msgid "Skip Address Rules"
+msgstr "跳过address规则"
+
+#: smartdns.js:510
+msgid "Skip address rules."
+msgstr "跳过address规则。"
+
+#: smartdns.js:515
+msgid "Skip Nameserver Rule"
+msgstr "跳过Nameserver规则"
+
+#: smartdns.js:516
+msgid "Skip nameserver rules."
+msgstr "跳过Nameserver规则。"
+
+#: smartdns.js:521
+msgid "Skip Ipset Rule"
+msgstr "跳过ipset规则"
+
+#: smartdns.js:522
+msgid "Skip ipset rules."
+msgstr "跳过ipset规则。"
+
+#: smartdns.js:527
+msgid "Skip SOA Address Rule"
+msgstr "跳过address SOA(#)规则"
+
+#: smartdns.js:528
+msgid "Skip SOA address rules."
+msgstr "跳过address SOA(#)规则。"
+
+#: smartdns.js:532
+msgid "Skip Dualstack Selection"
+msgstr "跳过双栈优选"
+
+#: smartdns.js:533
+msgid "Skip Dualstack Selection."
+msgstr "跳过双栈优选。"
+
+#: smartdns.js:538
+msgid "Skip Cache"
+msgstr "跳过cache"
+
+#: smartdns.js:538
+msgid "Skip Cache."
+msgstr "跳过cache。"
+
+#: smartdns.js:552
+msgid "Skip IP Alias"
+msgstr "跳过IP别名"
+
+#: smartdns.js:603
+msgid "DNS64"
+msgstr "DNS64"
+
+#: smartdns.js:611
+msgid "Enable Auto Update"
+msgstr "启用自动更新"
+
+#: smartdns.js:611
+msgid "Enable daily (weekly) auto update."
+msgstr "启用每日(每周)自动更新"
+
+#: smartdns.js:616
+msgid "Update Time (Every Week)"
+msgstr "更新时间(每周)"
+
+#: smartdns.js:617
+msgid "Every Day"
+msgstr "每天"
+
+#: smartdns.js:618
+msgid "Every Monday"
+msgstr "每周一"
+
+#: smartdns.js:619
+msgid "Every Tuesday"
+msgstr "每周二"
+
+#: smartdns.js:620
+msgid "Every Wednesday"
+msgstr "每周三"
+
+#: smartdns.js:621
+msgid "Every Thursday"
+msgstr "每周四"
+
+#: smartdns.js:622
+msgid "Every Friday"
+msgstr "每周五"
+
+#: smartdns.js:623
+msgid "Every Saturday"
+msgstr "每周六"
+
+#: smartdns.js:624
+msgid "Every Sunday"
+msgstr "每周日"
+
+#: smartdns.js:628
+msgid "Update time (every day)"
+msgstr "更新时间(每天)"
+
+#: smartdns.js:634
+msgid "Upload Config File"
+msgstr "上传配置文件"
+
+#: smartdns.js:635
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr "上传配置文件到/etc/smartdns/conf.d"
+
+#: smartdns.js:641
+msgid "Upload Domain List File"
+msgstr "上传域名列表文件"
+
+#: smartdns.js:642
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr "上传域名列表文件到/etc/smartdns/domain-set"
+
+#: smartdns.js:648
+msgid "Upload File"
+msgstr "上传文件"
+
+#: smartdns.js:654
+msgid "Update Files"
+msgstr "更新文件"
+
+#: smartdns.js:663
+msgid "Update"
+msgstr "更新"
+
+#: smartdns.js:666
+msgid "Download Files"
+msgstr "下载文件"
+
+#: smartdns.js:667
+msgid "List of files to download."
+msgstr "下载文件列表。"
+
+#: smartdns.js:675
+msgid "File Name"
+msgstr "文件名"
+
+#: smartdns.js:679
+msgid "URL"
+msgstr "URL"
+
+#: smartdns.js:688
+msgid "URL format error, format: http:// or https://"
+msgstr "URL格式错误,格式:http://或https://"
+
+#: smartdns.js:694 smartdns.js:855
+msgid "type"
+msgstr "类型"
+
+#: smartdns.js:694
+msgid "File Type"
+msgstr "文件类型"
+
+#: smartdns.js:695
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr "域名列表(/etc/smartdns/domain-set)"
+
+#: smartdns.js:696
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr "smartdns 配置文件(/etc/smartdns/conf.d)"
+
+#: smartdns.js:697
+msgid "ip-set file (/etc/smartdns/ip-set)"
+msgstr "IP集合列表文件(/etc/smartdns/ip-set)"
+
+#: smartdns.js:698
+msgid "other file (/etc/smartdns/download)"
+msgstr "其它文件(/etc/smartdns/download)"
+
+#: smartdns.js:702
+msgid "Description"
+msgstr "描述"
+
+#: smartdns.js:709
+msgid "Proxy Server"
+msgstr "代理服务器"
+
+#: smartdns.js:709
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr "代理服务器地址,格式:[socks5|http]://user:pass@ip:port。"
+
+#: smartdns.js:717
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr "代理服务器地址格式错误,格式:[socks5|http]://user:pass@ip:port。"
+
+#: smartdns.js:727
+msgid "smartdns custom settings"
+msgstr "smartdns 自定义设置,具体配置参数参考指导"
+
+#: smartdns.js:741
+msgid "Generate Coredump"
+msgstr "生成coredump"
+
+#: smartdns.js:742
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+"当smartdns异常时生成coredump文件,coredump文件在/tmp/smartdns.xxx.core."
+
+#: smartdns.js:746
+msgid "Log Level"
+msgstr "日志级别"
+
+#: smartdns.js:758
+msgid "Log Output Mode"
+msgstr "日志输出模式"
+
+#: smartdns.js:760 smartdns.js:761 smartdns.js:798 smartdns.js:799
+msgid "file"
+msgstr "文件"
+
+#: smartdns.js:762 smartdns.js:800
+msgid "syslog"
+msgstr "系统日志"
+
+#: smartdns.js:764
+msgid "Log Size"
+msgstr "日志大小"
+
+#: smartdns.js:769
+msgid "Log Number"
+msgstr "日志数量"
+
+#: smartdns.js:774
+msgid "Log File"
+msgstr "日志文件路径"
+
+#: smartdns.js:779 smartdns.js:787
+msgid "View Log"
+msgstr "查看日志"
+
+#: smartdns.js:791
+msgid "Enable Audit Log"
+msgstr "启用审计日志"
+
+#: smartdns.js:796
+msgid "Audit Log Output Mode"
+msgstr "审计日志输出模式"
+
+#: smartdns.js:803
+msgid "Audit Log Size"
+msgstr "审计日志大小"
+
+#: smartdns.js:808
+msgid "Audit Log Number"
+msgstr "审计日志数量"
+
+#: smartdns.js:813
+msgid "Audit Log File"
+msgstr "审计日志文件路径"
+
+#: smartdns.js:821
+msgid "Upstream Servers"
+msgstr "上游服务器"
+
+#: smartdns.js:822
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+"上游 DNS 服务器,支持 UDP,TCP 协议。请配置多个上游 DNS 服务器,包括多个国内"
+"外服务器。"
+
+#: smartdns.js:838
+msgid "DNS Server Name"
+msgstr "DNS服务器名称"
+
+#: smartdns.js:841
+msgid "ip"
+msgstr "ip"
+
+#: smartdns.js:841
+msgid "DNS Server ip"
+msgstr "DNS服务器IP"
+
+#: smartdns.js:846
+msgid "port"
+msgstr "端口"
+
+#: smartdns.js:846
+msgid "DNS Server port"
+msgstr "DNS服务器端口"
+
+#: smartdns.js:855
+msgid "DNS Server type"
+msgstr "协议类型"
+
+#: smartdns.js:857
+msgid "udp"
+msgstr "udp"
+
+#: smartdns.js:858
+msgid "tcp"
+msgstr "tcp"
+
+#: smartdns.js:859
+msgid "tls"
+msgstr "tls"
+
+#: smartdns.js:860
+msgid "https"
+msgstr "https"
+
+#: smartdns.js:865
+msgid "DNS Server group"
+msgstr "服务器组"
+
+#: smartdns.js:884
+msgid "Exclude Default Group"
+msgstr "从默认组中排除"
+
+#: smartdns.js:884
+msgid "Exclude DNS Server from default group."
+msgstr "从default默认服务器组中排除。"
+
+#: smartdns.js:891
+msgid "IP Blacklist Filtering"
+msgstr "IP黑名单过滤"
+
+#: smartdns.js:892
+msgid "Filtering IP with blacklist"
+msgstr "使用IP黑名单过滤"
+
+#: smartdns.js:898
+msgid "TLS Hostname Verify"
+msgstr "校验TLS主机名"
+
+#: smartdns.js:899
+msgid "Set TLS hostname to verify."
+msgstr "设置校验TLS主机名。"
+
+#: smartdns.js:908
+msgid "No check certificate"
+msgstr "停用证书校验"
+
+#: smartdns.js:909
+msgid "Do not check certificate."
+msgstr "不校验证书的合法性。"
+
+#: smartdns.js:917
+msgid "TLS SNI name"
+msgstr "TLS SNI名称"
+
+#: smartdns.js:918
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr "设置服务器SNI名称,‘-’表示禁用SNI名称。"
+
+#: smartdns.js:927
+msgid "HTTP Host"
+msgstr "HTTP主机"
+
+#: smartdns.js:928
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr "设置查询时使用的HTTP主机,当URL地址的host是IP地址时,使用此参数。"
+
+#: smartdns.js:936
+msgid "TLS SPKI Pinning"
+msgstr "TLS SPKI 指纹"
+
+#: smartdns.js:937
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+"用于校验 TLS 服务器的有效性,数值为 Base64 编码的 SPKI 指纹,留空表示不验证 "
+"TLS 的合法性。"
+
+#: smartdns.js:947
+msgid "Marking Packets"
+msgstr "数据包标记"
+
+#: smartdns.js:948
+msgid "Set mark on packets."
+msgstr "设置数据包标记。"
+
+#: smartdns.js:955
+msgid "Use Proxy"
+msgstr "使用代理"
+
+#: smartdns.js:956
+msgid "Use proxy to connect to upstream DNS server."
+msgstr "使用代理连接上游DNS服务器。"
+
+#: smartdns.js:970
+msgid "Please set proxy server first."
+msgstr "请先设置代理服务器。"
+
+#: smartdns.js:974
+msgid "Only socks5 proxy support udp server."
+msgstr "仅SOCKS5代理支持UDP服务器。"
+
+#: smartdns.js:982
+msgid "Additional Args for upstream dns servers"
+msgstr "额外的上游 DNS 服务器参数"
+
+#: smartdns.js:990
+msgid "Client Rules"
+msgstr "客户端规则"
+
+#: smartdns.js:990
+msgid "Client Rules Settings, can achieve parental control functionality."
+msgstr "客户端规则设置,可以实现家长控制功能。"
+
+#: smartdns.js:994
+msgid "Basic Settings"
+msgstr "基本设置"
+
+#: smartdns.js:996 smartdns.js:1187
+msgid "DNS Block Setting"
+msgstr "域名屏蔽设置"
+
+#: smartdns.js:1002
+msgid "Client Address"
+msgstr "客户端地址"
+
+#: smartdns.js:1003
+msgid ""
+"If a client address is specified, only that client will apply this rule. You "
+"can enter an IP address, such as 1.2.3.4, or a MAC address, such as aa:bb:cc:"
+"dd:ee:ff."
+msgstr ""
+"如果指定了客户端,那么对应的客户端会应用相应的规则,可以输入IP地址,如:"
+"1.2.3.4,或MAC地址,如:aa:bb:cc:dd:ee:ff。"
+
+#: smartdns.js:1024
+msgid "Client address format error, please input ip adress or mac address."
+msgstr "客户端地址格式错误,请输入 IP 地址或 mac 地址。"
+
+#: smartdns.js:1027
+msgid "Client Address File"
+msgstr "客户端地址文件"
+
+#: smartdns.js:1028
+msgid "Upload client address file, same as Client Address function."
+msgstr "上传客户端地址文件,与客户端地址功能相同。"
+
+#: smartdns.js:1035 smartdns.js:1194 smartdns.js:1393
+msgid "DNS Server group belongs to, such as office, home."
+msgstr "设置服务器组,例如office,home"
+
+#: smartdns.js:1055 smartdns.js:1214 smartdns.js:1413
+#, javascript-format
+msgid "Server Group %s not exists"
+msgstr "服务器组%s不存在"
+
+#: smartdns.js:1171 smartdns.js:1317 smartdns.js:1347 smartdns.js:1417
+msgid "Domain List File"
+msgstr "域名列表文件"
+
+#: smartdns.js:1171 smartdns.js:1347
+msgid "Upload domain list file."
+msgstr "上传域名列表文件"
+
+#: smartdns.js:1182
+msgid "Domain Rules"
+msgstr "域名规则"
+
+#: smartdns.js:1182
+msgid "Domain Rules Settings"
+msgstr "域名规则设置"
+
+#: smartdns.js:1186
+msgid "DNS Forwarding Setting"
+msgstr "域名分流设置"
+
+#: smartdns.js:1188 smartdns.js:1375
+msgid "Domain Rule List"
+msgstr "域名规则列表"
+
+#: smartdns.js:1188
+msgid "Set Specific domain rule list."
+msgstr "设置指定域名的规则列表。"
+
+#: smartdns.js:1189
+msgid "Domain Address"
+msgstr "域名地址"
+
+#: smartdns.js:1189
+msgid "Set Specific domain ip address."
+msgstr "设置指定域名的IP地址。"
+
+#: smartdns.js:1265 smartdns.js:1439
+msgid "Yes"
+msgstr "是"
+
+#: smartdns.js:1266 smartdns.js:1440
+msgid "No"
+msgstr "否"
+
+#: smartdns.js:1311 smartdns.js:1515 smartdns.js:1612
+msgid "Additional Rule Flag"
+msgstr "额外规则标识"
+
+#: smartdns.js:1312 smartdns.js:1516
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr "额外的规则标识,具体参考domain-rule的帮助说明。"
+
+#: smartdns.js:1318 smartdns.js:1418
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr "上传域名列表文件,或在下载文件设置页面设置自动下载。"
+
+#: smartdns.js:1326 smartdns.js:1355
+msgid "Domain List"
+msgstr "域名列表"
+
+#: smartdns.js:1326
+msgid "Configure forwarding domain name list."
+msgstr "配置分流域名列表"
+
+#: smartdns.js:1355
+msgid "Configure block domain list."
+msgstr "配置屏蔽域名列表"
+
+#: smartdns.js:1376
+msgid "Configure domain rule list."
+msgstr "配置域名规则列表"
+
+#: smartdns.js:1391
+msgid "Domain Rule Name"
+msgstr "域名规则名称"
+
+#: smartdns.js:1424
+msgid "Block domain"
+msgstr "屏蔽域名"
+
+#: smartdns.js:1424
+msgid "Block domain."
+msgstr "屏蔽域名。"
+
+#: smartdns.js:1526
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+"配置特定域名返回特定的IP地址,域名查询将不到上游服务器请求,直接返回配置的IP"
+"地址,可用于广告屏蔽。"
+
+#: smartdns.js:1545
+msgid "IP Rules"
+msgstr "IP规则"
+
+#: smartdns.js:1545
+msgid "IP Rules Settings"
+msgstr "IP规则设置"
+
+#: smartdns.js:1549 smartdns.js:1555
+msgid "IP Rule List"
+msgstr "IP规则列表"
+
+#: smartdns.js:1549
+msgid "Set Specific ip rule list."
+msgstr "设置对应IP的规则。"
+
+#: smartdns.js:1550
+msgid "IP Blacklist"
+msgstr "IP黑名单"
+
+#: smartdns.js:1550
+msgid "Set Specific ip blacklist."
+msgstr "设置指定的 IP 黑名单列表。"
+
+#: smartdns.js:1556
+msgid "Configure ip rule list."
+msgstr "配置IP规则列表"
+
+#: smartdns.js:1571
+msgid "IP Rule Name"
+msgstr "IP规则名称"
+
+#: smartdns.js:1575
+msgid "IP Set File"
+msgstr "IP集合列表文件"
+
+#: smartdns.js:1575
+msgid "Upload IP set file."
+msgstr "上传IP集合列表文件。"
+
+#: smartdns.js:1581
+msgid "IP Addresses"
+msgstr "IP地址"
+
+#: smartdns.js:1581
+msgid "IP addresses, CIDR format."
+msgstr "IP地址,CIDR格式。"
+
+#: smartdns.js:1586
+msgid "Whitelist IP"
+msgstr "白名单"
+
+#: smartdns.js:1586
+msgid "Whitelist IP Rule, Accept IP addresses within the range."
+msgstr "白名单规则,接受指定范围的IP地址。"
+
+#: smartdns.js:1591
+msgid "Blacklist IP"
+msgstr "黑名单"
+
+#: smartdns.js:1591
+msgid "Blacklist IP Rule, Decline IP addresses within the range."
+msgstr "黑名单规则,拒绝指定范围的IP地址。"
+
+#: smartdns.js:1596
+msgid "Ignore IP"
+msgstr "忽略IP"
+
+#: smartdns.js:1596
+msgid "Do not use these IP addresses."
+msgstr "忽略这些IP地址"
+
+#: smartdns.js:1601
+msgid "Bogus nxdomain"
+msgstr "假冒IP"
+
+#: smartdns.js:1601
+msgid "Return SOA when the requested result contains a specified IP address."
+msgstr "当结果包含对应范围的IP时,返回SOA。"
+
+#: smartdns.js:1606
+msgid "IP alias"
+msgstr "IP别名"
+
+#: smartdns.js:1606
+msgid ""
+"IP Address Mapping, Can be used for CDN acceleration with Anycast IP, such "
+"as Cloudflare's CDN."
+msgstr "IP地址映射,可用于支持AnyCast IP的CDN加速,比如Cloudflare的CDN。"
+
+#: smartdns.js:1613
+msgid "Additional Flags for rules, read help on ip-rule for more information."
+msgstr "额外的规则标识,具体参考ip-rule的帮助说明。"
+
+#: smartdns.js:1622
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr "配置需要从指定域名服务器结果过滤的IP黑名单。"
+
+#: smartdns.js:1639
+msgid "Technical Support"
+msgstr "技术支持"
+
+#: smartdns.js:1640
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr "如果本软件对你有帮助,请给作者加个蛋。"
+
+#: smartdns.js:1644
+msgid "SmartDNS official website"
+msgstr "SmartDNS官方网站"
+
+#: smartdns.js:1645
+msgid "open website"
+msgstr "打开网站"
+
+#: smartdns.js:1652 smartdns.js:1653
+msgid "Report bugs"
+msgstr "报告BUG"
+
+#: smartdns.js:1660
+msgid "Donate to smartdns"
+msgstr "捐助smartdns项目"
+
+#: smartdns.js:1661
+msgid "Donate"
+msgstr "捐助"
+
+#: smartdns.js:1667
+msgid "Restart Service"
+msgstr "重启服务"
+
+#: smartdns.js:1676
+msgid "Restart"
+msgstr "重启"
+
+#~ msgid "Grant access to LuCI app smartdns"
+#~ msgstr "授予访问 LuCI 应用 smartdns 的权限"
diff --git a/luci-app-smartdns/po/zh_Hant/smartdns.po b/luci-app-smartdns/po/zh_Hant/smartdns.po
new file mode 100644
index 0000000..b3dc1ec
--- /dev/null
+++ b/luci-app-smartdns/po/zh_Hant/smartdns.po
@@ -0,0 +1,945 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-03-15 14:40+0000\n"
+"Last-Translator: Hulen <shift0106@gmail.com>\n"
+"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
+"openwrt/luciapplicationssmartdns/zh_Hant/>\n"
+"Language: zh_Hant\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.16.2-dev\n"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:792
+msgid "Additional Args for upstream dns servers"
+msgstr "額外的上游 DNS 伺服器參數"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:886
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1090
+msgid ""
+"Additional Flags for rules, read help on domain-rule for more information."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:885
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1089
+msgid "Additional Rule Flag"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:346
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:479
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:791
+msgid "Additional Server Args"
+msgstr "額外的伺服器參數"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:347
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:480
+msgid ""
+"Additional server args, refer to the help description of the bind option."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:132
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:639
+msgid "Advanced Settings"
+msgstr "進階設定"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:253
+msgid ""
+"Attempts to serve old responses from cache with a TTL of 0 in the response "
+"without waiting for the actual resolution to finish."
+msgstr "查詢性能優化,有請求時嘗試回應 TTL 為 0 的過期記錄,以避免查詢等待。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically Set Dnsmasq"
+msgstr "自動設置 Dnsmasq"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:161
+msgid "Automatically set as upstream of dnsmasq when port changes."
+msgstr "通訊埠更改時自動設為 dnsmasq 的上游。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Bind Device"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Bind Device Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:998
+msgid "Block domain."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Cache Persist"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "Cache Size"
+msgstr "緩存大小"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:121
+msgid "Collecting data ..."
+msgstr "正在收集數據..."
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1100
+msgid ""
+"Configure IP blacklists that will be filtered from the results of specific "
+"DNS server."
+msgstr "配置需要从指定域名伺服器結果過濾的 IP 黑名單。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Configure block domain list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:950
+msgid "Configure domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+msgid "Configure forwarding domain name list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:137
+msgid "Custom Settings"
+msgstr "自定義設置"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:805
+msgid "DNS Block Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:804
+msgid "DNS Forwarding Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:648
+msgid "DNS Server Name"
+msgstr "DNS 伺服器名稱"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+msgid "DNS Server group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "DNS Server group belongs to, such as office, home."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "DNS Server ip"
+msgstr "DNS 伺服器 IP"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "DNS Server port"
+msgstr "DNS 伺服器通訊埠"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "DNS Server type"
+msgstr "協議類型"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:258
+msgid "DNS domain result cache size"
+msgstr "緩存 DNS 的結果,緩存大小,配置零則不緩存"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:487
+msgid "DNS64"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:134
+msgid "DNS64 Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:560
+msgid "Description"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:76
+msgid "Dnsmasq Forwarded To Smartdns Failure"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:719
+msgid "Do not check certificate."
+msgstr "不校驗憑證的合法性。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:397
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:838
+msgid "Do not check speed."
+msgstr "禁用測速。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Domain Address"
+msgstr "域名位址"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:900
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:929
+msgid "Domain List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:891
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:991
+msgid "Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:949
+msgid "Domain Rule List"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:965
+msgid "Domain Rule Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:800
+msgid "Domain Rules Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "Domain TTL"
+msgstr "域名 TTL"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:336
+msgid "Domain TTL Max"
+msgstr "域名 TTL 最大值"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:328
+msgid "Domain TTL Min"
+msgstr "域名 TTL 最小值"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:246
+msgid "Domain prefetch"
+msgstr "域名預加載"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1159
+msgid "Donate"
+msgstr "捐贈"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1158
+msgid "Donate to smartdns"
+msgstr "捐贈 smartdns 項目"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:526
+msgid "Download Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid "Download Files Setting"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:135
+msgid ""
+"Download domain list files for domain-rule and include config files, please "
+"refresh the page after download to take effect."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:240
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1007
+msgid "Dual-stack IP Selection"
+msgstr "雙棧 IP 優選"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:371
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:642
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:959
+msgid "Enable"
+msgstr "启用"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable Auto Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:241
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1008
+msgid "Enable IP selection between IPV4 and IPV6"
+msgstr "启用 IPV4 和 IPV6 間的 IP 優選策略"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "Enable IPV6 DNS Server"
+msgstr "启用 IPV6 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "Enable TCP DNS Server"
+msgstr "启用 TCP 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:495
+msgid "Enable daily auto update."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:247
+msgid "Enable domain prefetch, accelerate domain response speed."
+msgstr "启用域名預加載,加速域名響應速度。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:372
+msgid "Enable or disable second DNS server."
+msgstr "是否启用第二 DNS 伺服器。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:142
+msgid "Enable or disable smartdns server"
+msgstr "启用或禁用 SmartDNS 服務"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude DNS Server from default group."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:694
+msgid "Exclude Default Group"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:215
+msgid "Fastest IP"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:216
+msgid "Fastest Response"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:535
+msgid "File Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+msgid "File Type"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:702
+msgid "Filtering IP with blacklist"
+msgstr "使用 IP 黑名單過濾"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:214
+msgid "First Ping"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA"
+msgstr "停用 IPV6 位址解析"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:272
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:436
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:842
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1056
+msgid "Force AAAA SOA."
+msgstr "停用 IPV6 位址解析。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA"
+msgstr "停用 HTTPS 位址解析"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:277
+msgid "Force HTTPS SOA."
+msgstr "停用 HTTPS 位址解析。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:131
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:638
+msgid "General Settings"
+msgstr "常規設置"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:599
+msgid "Generate Coredump"
+msgstr "生成 coredump"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:600
+msgid ""
+"Generate Coredump file when smartdns crash, coredump file is located at /tmp/"
+"smartdns.xxx.core."
+msgstr ""
+"當 smartdns 異常時生成 coredump 文檔,coredump 文檔在 /tmp/smartdns.xxx.core."
+
+#: applications/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json:3
+msgid "Grant access to LuCI app smartdns"
+msgstr "授予訪問 LuCI 應用 smartdns 的權限"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:737
+msgid "HTTP Host"
+msgstr "HTTP 主機"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "IP Blacklist"
+msgstr "IP 黑名單"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:701
+msgid "IP Blacklist Filtering"
+msgstr "IP 黑名單過濾"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:224
+msgid "IPV6 Server"
+msgstr "IPV6 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:440
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:846
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1062
+msgid "IPset name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1138
+msgid "If you like this software, please buy me a cup of coffee."
+msgstr "如果本软件对你有帮助,请给作者加个蛋。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:353
+msgid "Include Config Files<br>/etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:354
+msgid ""
+"Include other config files from /etc/smartdns/conf.d or custom path, can be "
+"downloaded from the download page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:283
+msgid "Ipset name, Add domain result to ipset when speed check fails."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:527
+msgid "List of files to download."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:229
+msgid "Listen only on the specified interfaces."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:153
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Local Port"
+msgstr "本地通訊埠"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:624
+msgid "Log File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:608
+msgid "Log Level"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:620
+msgid "Log Number"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:604
+msgid "Log Size"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:757
+msgid "Marking Packets"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:337
+msgid "Maximum TTL for all domain result."
+msgstr "所有域名的最大 TTL 值。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:329
+msgid "Minimum TTL for all domain result."
+msgstr "所有域名的最小 TTL 值。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:316
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:471
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:877
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1081
+msgid "NFTset name format error, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:459
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:865
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1068
+msgid "NFTset name, format: [#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:66
+msgid "NOT RUNNING"
+msgstr "未運行"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:234
+msgid "Name of device name listen on."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:304
+msgid ""
+"Nftset name, Add domain result to nftset when speed check fails, format: "
+"[#[4|6]:[family#table#set]]"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1014
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:282
+msgid "No Speed IPset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:303
+msgid "No Speed NFTset Name"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:718
+msgid "No check certificate"
+msgstr "停用憑證校驗"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:177
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1000
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1025
+msgid "None"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:784
+msgid "Only socks5 proxy support udp server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:780
+msgid "Please set proxy server first."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:136
+msgid "Proxy Server Settings"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:567
+msgid "Proxy Server URL, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:575
+msgid ""
+"Proxy server URL format error, format: [socks5|http]://user:pass@ip:port."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:390
+msgid "Query DNS through specific dns server group, such as office, home."
+msgstr "使用指定伺服器組查詢,比如office, home。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:64
+msgid "RUNNING"
+msgstr "運行中"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:341
+msgid "Reply Domain TTL Max"
+msgstr "回應的域名 TTL 最大值"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:342
+msgid "Reply maximum TTL for all domain result."
+msgstr "設置返回给用戶端的域名 TTL 最大值。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1150
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1151
+msgid "Report bugs"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve Local Hostnames"
+msgstr "解析本地主機名"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:267
+msgid "Resolve local hostnames by reading Dnsmasq lease file."
+msgstr "讀取 Dnsmasq 的租約文檔解析本地主機名。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:209
+msgid "Response Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1174
+msgid "Restart"
+msgstr "重啟"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1165
+msgid "Restart Service"
+msgstr "重啟服務"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:133
+msgid "Second Server Settings"
+msgstr "第二 DNS 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:252
+msgid "Serve expired"
+msgstr "緩存過期服務"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:389
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:675
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:813
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:967
+msgid "Server Group"
+msgstr "伺服器組"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:833
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:987
+msgid "Server Group %s not exists"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Server Name"
+msgstr "伺服器名稱"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:807
+msgid "Set Specific domain ip address."
+msgstr "設置指定域名的 IP 位址。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:806
+msgid "Set Specific domain rule list."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:808
+msgid "Set Specific ip blacklist."
+msgstr "設置指定的 IP 黑名單列表。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:709
+msgid "Set TLS hostname to verify."
+msgstr "設置校驗 TLS 主機名。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:758
+msgid "Set mark on packets."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:738
+msgid ""
+"Set the HTTP host used for the query. Use this parameter when the host of "
+"the URL address is an IP address."
+msgstr ""
+"設置查詢時使用的 HTTP 主機,當 URL 位址的 host 是 IP 位址時,使用此參數。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:728
+msgid "Sets the server name indication for query. '-' for disable SNI name."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:128
+msgid "Settings"
+msgstr "設置"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:402
+msgid "Skip Address Rules"
+msgstr "跳過 address 规則"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache"
+msgstr "跳過 cache"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:431
+msgid "Skip Cache."
+msgstr "跳過 cache。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:425
+msgid "Skip Dualstack Selection"
+msgstr "跳過双栈優選"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:426
+msgid "Skip Dualstack Selection."
+msgstr "跳過双栈優選。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:414
+msgid "Skip Ipset Rule"
+msgstr "跳過 ipset 规則"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:408
+msgid "Skip Nameserver Rule"
+msgstr "跳過 Nameserver 规則"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:420
+msgid "Skip SOA Address Rule"
+msgstr "跳過 address SOA(#) 规則"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:421
+msgid "Skip SOA address rules."
+msgstr "跳過 address SOA(#) 规則。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:396
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:837
+msgid "Skip Speed Check"
+msgstr "跳過測速"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:403
+msgid "Skip address rules."
+msgstr "跳過 address 规則。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:415
+msgid "Skip ipset rules."
+msgstr "跳過 ipset 规則。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:409
+msgid "Skip nameserver rules."
+msgstr "跳過 Nameserver 规則。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:95
+#: applications/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json:3
+msgid "SmartDNS"
+msgstr "SmartDNS"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:96
+msgid "SmartDNS Server"
+msgstr "SmartDNS 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:97
+msgid ""
+"SmartDNS is a local high-performance DNS server, supports finding fastest "
+"IP, supports ad filtering, and supports avoiding DNS poisoning."
+msgstr "SmartDNS 是一个本地高性能 DNS 伺服器,支持返回最快 IP,支持廣告過濾。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1142
+msgid "SmartDNS official website"
+msgstr "SmartDNS 官方網站"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:377
+msgid "Smartdns local server port"
+msgstr "SmartDNS 本地服務通訊埠"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:154
+msgid ""
+"Smartdns local server port, smartdns will be automatically set as main dns "
+"when the port is 53."
+msgstr ""
+"SmartDNS 本地服務通訊埠,當通訊埠号設置為 53 時,smartdns 将会自動配置為主 "
+"dns。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:210
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, Fastest IP: "
+"return the fastest IP, Fastest Response: return the fastest DNS response."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:147
+msgid "Smartdns server name"
+msgstr "SmartDNS 的伺服器名稱,默认為 smartdns,留空為主機名"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Smartdns speed check mode."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1119
+msgid ""
+"Specify an IP address to return for any host in the given domains, Queries "
+"in the domains are never forwarded and always replied to with the specified "
+"IP address which may be IPv4 or IPv6."
+msgstr ""
+"配置特定域名返回特定的 IP 位址,域名查詢将不到上游伺服器請求,直接返回配置的 "
+"IP位址,可用于廣告屏蔽。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:169
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1016
+msgid "Speed Check Mode"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:202
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1050
+msgid "Speed check mode is invalid."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:219
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:384
+msgid "TCP Server"
+msgstr "TCP 伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:196
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1044
+msgid "TCP port is empty"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:708
+msgid "TLS Hostname Verify"
+msgstr "校驗 TLS 主機名"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:727
+msgid "TLS SNI name"
+msgstr "TLS SNI 名稱"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:746
+msgid "TLS SPKI Pinning"
+msgstr "TLS SPKI 指紋"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:324
+msgid "TTL for all domain result."
+msgstr "設置所有域名的 TTL 值。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1137
+msgid "Technical Support"
+msgstr "技術支持"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:539
+msgid "URL"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:548
+msgid "URL format error, format: http:// or https://"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:523
+msgid "Update"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:514
+msgid "Update Files"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:500
+msgid "Upload Config File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:507
+msgid "Upload Domain List File"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:508
+msgid "Upload domain list file to /etc/smartdns/domain-set"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:892
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:992
+msgid ""
+"Upload domain list file, or configure auto download from Download File "
+"Setting page."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:921
+msgid "Upload domain list file."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:501
+msgid "Upload smartdns config file to /etc/smartdns/conf.d"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:631
+msgid "Upstream Servers"
+msgstr "上游伺服器"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:632
+msgid ""
+"Upstream Servers, support UDP, TCP protocol. Please configure multiple DNS "
+"servers, including multiple foreign DNS servers."
+msgstr ""
+"上游 DNS 伺服器,支持 UDP,TCP 協議。请配置多个上游 DNS 伺服器,包括多个国内"
+"外伺服器。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:765
+msgid "Use Proxy"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:766
+msgid "Use proxy to connect to upstream DNS server."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:747
+msgid ""
+"Used to verify the validity of the TLS server, The value is Base64 encoded "
+"SPKI fingerprint, leaving blank to indicate that the validity of TLS is not "
+"verified."
+msgstr ""
+"用于校驗 TLS 伺服器的有效性,數值為 Base64 編碼的 SPKI 指紋,留空表示不驗證 "
+"TLS 的合法性。"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:262
+msgid "Write cache to disk on exit and load on startup."
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1013
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:172
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:213
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:611
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1012
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1020
+msgid "default"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:555
+msgid "domain list (/etc/smartdns/domain-set)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:670
+msgid "https"
+msgstr "https"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:651
+msgid "ip"
+msgstr "ip"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:295
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:452
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:858
+msgid "ipset name format error, format: [#[4|6]:]ipsetname"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:1143
+msgid "open website"
+msgstr "打开網站"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:656
+msgid "port"
+msgstr "通訊埠"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:556
+msgid "smartdns config (/etc/smartdns/conf.d)"
+msgstr ""
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:585
+msgid "smartdns custom settings"
+msgstr "smartdns 自定義設置,具體配置參數參考指導"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:668
+msgid "tcp"
+msgstr "tcp"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:669
+msgid "tls"
+msgstr "tls"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:554
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:665
+msgid "type"
+msgstr "類型"
+
+#: applications/luci-app-smartdns/htdocs/luci-static/resources/view/smartdns/smartdns.js:667
+msgid "udp"
+msgstr "udp"
+
+#~ msgid ""
+#~ "DNS Server group belongs to, used with nameserver, such as office, home."
+#~ msgstr "DNS 伺服器所屬組, 配合 nameserver 使用,例如:office,home。"
+
+#~ msgid "Dnsmasq Forwared To Smartdns Failure"
+#~ msgstr "重定向 dnsmasq 到 smartdns 失敗"
+
+#~ msgid "Sets the server name indication for query."
+#~ msgstr "設置查詢時使用的伺服器 SNI 名稱。"
+
+#~ msgid "IPV4 53 Port Redirect Failure"
+#~ msgstr "IPV4 53 通訊埠重定向失敗"
+
+#~ msgid "IPV6 53 Port Redirect Failure"
+#~ msgstr "IPV6 53 通訊埠重定向失敗"
+
+#~ msgid "Redirect"
+#~ msgstr "重定向"
+
+#~ msgid "Redirect 53 port to SmartDNS"
+#~ msgstr "重定向 53 通訊埠到 SmartDNS"
+
+#~ msgid "Run as dnsmasq upstream server"
+#~ msgstr "作為 dnsmasq 的上游伺服器"
+
+#~ msgid "SmartDNS redirect mode"
+#~ msgstr "SmartDNS 重定向模式"
+
+#~ msgid "none"
+#~ msgstr "无"
diff --git a/luci-app-smartdns/root/usr/libexec/smartdns-call b/luci-app-smartdns/root/usr/libexec/smartdns-call
new file mode 100755
index 0000000..2537792
--- /dev/null
+++ b/luci-app-smartdns/root/usr/libexec/smartdns-call
@@ -0,0 +1,24 @@
+#!/bin/sh
+# 
+# Copyright 2018-2025 Nick Peng <zxlhhyccc@gmail.com>
+# Licensed to the public under the GPL V3 License.
+
+action=$1
+shift
+
+log_file="$(uci -q get smartdns.@smartdns[0].log_file)"
+list_file="${log_file:-/var/log/smartdns/smartdns.log}"
+
+case "$action" in
+      tail)
+            if [ ! -e "$list_file" ]; then
+                  echo "Log file does not exist."
+            fi
+            # read log
+            tail -n 5000 "$list_file"
+            ;;
+      clear_log)
+            # clear log
+            > $list_file
+            ;;
+esac
diff --git a/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json b/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json
new file mode 100644
index 0000000..45f796c
--- /dev/null
+++ b/luci-app-smartdns/root/usr/share/luci/menu.d/luci-app-smartdns.json
@@ -0,0 +1,21 @@
+{
+	"admin/services/smartdns": {
+		"title": "SmartDNS",
+		"order": 60,
+		"action": {
+			"type": "view",
+			"path": "smartdns/smartdns"
+		},
+		"depends": {
+			"acl": [ "luci-app-smartdns" ],
+			"uci": { "smartdns": true }
+		}
+	},
+
+	"admin/services/smartdns/log": {
+		"action": {
+			"type": "view",
+			"path": "smartdns/log"
+		}
+	}
+}
diff --git a/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json b/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json
new file mode 100644
index 0000000..f276230
--- /dev/null
+++ b/luci-app-smartdns/root/usr/share/rpcd/acl.d/luci-app-smartdns.json
@@ -0,0 +1,25 @@
+{
+	"luci-app-smartdns": {
+		"description": "Grant access to LuCI app smartdns",
+		"read": {
+			"cgi-io": [ "exec" ],
+			"file": {
+				"/etc/smartdns/*": [ "read" ],
+				"/usr/libexec/smartdns-call tail": [ "exec" ],
+				"/usr/libexec/smartdns-call clear_log": [ "exec" ]
+			},
+			"ubus": {
+				"service": [ "list" ]
+			},
+			"uci": [ "smartdns" ]
+		},
+		"write": {
+			"file": {
+				"/etc/smartdns/*": [ "write" ],
+				"/etc/init.d/smartdns restart": [ "exec" ],
+				"/etc/init.d/smartdns updatefiles": [ "exec" ]
+			},
+			"uci": [ "smartdns" ]
+		}
+	}
+}