diff --git a/hysteria/Makefile b/hysteria/Makefile
index 2a7906b00..e709a7a58 100644
--- a/hysteria/Makefile
+++ b/hysteria/Makefile
@@ -5,8 +5,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hysteria
-PKG_VERSION:=2.12.2
-PKG_RELEASE:=16
+PKG_VERSION:=2.12.3
+PKG_RELEASE:=17
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)?
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
index 7eb45277a..be5df6670 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
@@ -208,6 +208,7 @@ const outbound_type = [
['wireguard', _('WireGuard') + ' - ' + _('UDP')], // Endpoint
['tailscale', _('Tailscale') + ' - ' + _('UDP')], // Endpoint
['masque', _('Masque') + ' - ' + _('UDP')], // Endpoint // https://blog.cloudflare.com/post-quantum-warp/
+ ['easytier', _('EasyTier') + ' - ' + _('TCP/UDP')], // Endpoint
['ssh', _('SSH') + ' - ' + _('TCP')]
];
@@ -1634,6 +1635,28 @@ function renderResDownload(section_id) {
return El;
}
+function renderResLink(section_id) {
+ const section_type = this.section.sectiontype;
+ const type = uci.get(this.config, section_id, 'type');
+
+ let El = E([
+ E('span', {
+ title: this.readonly ? this.readonly : null
+ }, [
+ E('button', {
+ class: 'cbi-button cbi-button-apply',
+ disabled: (this.readonly !== false || type === 'inline') || null,
+ click: ui.createHandlerFn(this, (section_type, section_id) => {
+ let path = encodeURIComponent(`${HM_DIR.replace(/^\//, '')}/${section_type}`);
+ return window.open(`${window.location.origin}/tinyfilemanager/index.php?p=${path}&view=${section_id}`, '_blank', 'noopener');
+ }, section_type, section_id)
+ }, [ _('🔗') ])
+ ])
+ ]);
+
+ return El;
+}
+
function handleGenKey(option) {
const section_id = this.section.section;
const type = this.section.getOption('type')?.formvalue(section_id);
@@ -2181,6 +2204,7 @@ return baseclass.extend({
updateStatus,
getDashURL,
renderResDownload,
+ renderResLink,
handleGenKey,
handleReload,
handleRemoveIdles,
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
index c9a828d4b..21ac8a278 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
@@ -517,6 +517,7 @@ return view.extend({
so.value('gvisor', _('gVisor'), _('Based on google/gvisor.'));
so.value('mixed', _('Mixed'), _('Mixed system TCP stack and gVisor UDP stack.'));
}
+ so.value('mips', _('mihomo IP stack (MIPS)'));
so.default = 'system';
so.rmempty = false;
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js
index c8c5280b2..b98ce1934 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js
@@ -207,11 +207,14 @@ class VlessEncryptionClient {
return view.extend({
load() {
return Promise.all([
- uci.load('fchomo')
+ uci.load('fchomo'),
+ hm.getFeatures()
]);
},
render(data) {
+ const features = data[1];
+
let m, s, o, ss, so;
m = new form.Map('fchomo', _('Edit outbound'));
@@ -274,12 +277,12 @@ return view.extend({
so = ss.taboption('field_general', form.Value, 'server', _('Server address'));
so.datatype = 'host';
so.rmempty = false;
- so.depends({type: /^(rematch|direct|zerotier|tailscale)$/, '!reverse': true});
+ so.depends({type: /^(rematch|direct|zerotier|tailscale|easytier)$/, '!reverse': true});
so = ss.taboption('field_general', form.Value, 'port', _('Port'));
so.datatype = 'port';
so.rmempty = false;
- so.depends({type: /^(rematch|direct|mieru|zerotier|tailscale)$/, '!reverse': true});
+ so.depends({type: /^(rematch|direct|mieru|zerotier|tailscale|easytier)$/, '!reverse': true});
/* Rematch fields */
// https://github.com/MetaCubeX/mihomo/pull/2862
@@ -856,6 +859,12 @@ return view.extend({
so.depends('type', 'zerotier');
so.modalonly = true;
+ so = ss.taboption('field_general', form.TextValue, 'zerotier_identity_secret', 'identity.secret',
+ _('Used to replace the contents of default %s.').format('identity.secret file'));
+ so.placeholder = '0123456789:0:public-key:private-key';
+ so.depends('type', 'zerotier');
+ so.modalonly = true;
+
so = ss.taboption('field_general', form.TextValue, 'zerotier_planet_file', 'Planet file',
_('Used to replace the built-in official %s.').format('Earth Planet file'));
so.placeholder = _('Add the base64 text of the planet file here.');
@@ -1024,6 +1033,149 @@ return view.extend({
so.depends('type', 'masque');
so.modalonly = true;
+ /* EasyTier fields */
+ so = ss.taboption('field_general', form.DummyValue, '_easytier_doc', null);
+ so.load = function() {
+ return '%s'
+ .format('https://easytier.cn/guide/introduction.html', _('Configuration Document'));
+ }
+ so.rawhtml = true;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Value, 'easytier_network_name', _('Network name'));
+ so.rmempty = false;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Value, 'easytier_network_secret', _('Network secret'));
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_private_mode', _('Private network'),
+ _('Only nodes using the same %s and %s as this network are permitted to perform a handshake or relay traffic through this node.')
+ .format(_('Network name'), _('Network secret')));
+ so.default = so.disabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Value, 'easytier_hostname', _('Hostname'));
+ so.datatype = 'hostname';
+ so.placeholder = 'mihomo';
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.DynamicList, 'easytier_peers', _('Peers'));
+ so.placeholder = 'tcp://192.0.2.10:11010';
+ so.validate = hm.validateUrl;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_secure_mode', _('Secure Mode'));
+ so.default = so.disabled;
+ so.validate = function(section_id, value) {
+ const secure_mode = this.getUIElement(section_id).node.querySelector('input');
+ const peers = this.section.getOption('easytier_peers').formvalue(section_id);
+ const local_private_key = this.section.getOption('easytier_local_private_key').formvalue(section_id);
+ const local_public_key = this.section.getOption('easytier_local_public_key').formvalue(section_id);
+
+ // Force enabled
+ if ((local_private_key && local_public_key) || peers.filter(e => new URL(e).searchParams.get('peer-public-key')).length > 0) {
+ secure_mode.checked = true;
+ secure_mode.disabled = true;
+ } else
+ secure_mode.removeAttribute('disabled');
+
+ return true;
+ }
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', hm.GenValue, 'easytier_local_private_key', _('Client private key'),
+ _('Base64 encoded X25519 private key.'));
+ so.hm_options = {
+ type: 'wg-keypair',
+ callback: function(result) {
+ return [
+ [this.option, result.private_key],
+ ['easytier_local_public_key', result.public_key]
+ ]
+ }
+ }
+ so.password = true;
+ so.validate = L.bind(hm.validateBase64Key, so, 44);
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', hm.CopyValue, 'easytier_local_public_key', _('Client public key'),
+ _('Base64 encoded X25519 public key.'));
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.DynamicList, 'easytier_exit_nodes', _('Exit nodes'),
+ _('List of exit nodes to use (%s of peer nodes).').format(_('Virtual IPv4 address')) + '' +
+ _('Used to forward traffic to the specified nodes for external access.'));
+ so.datatype = 'ip4addr(1)';
+ so.placeholder = '10.144.0.1';
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.DynamicList, 'easytier_proxy_networks', _('Subnet proxy'),
+ _('List of local subnets (CIDR) to be open to other peers in the EasyTier network.'));
+ so.datatype = 'cidr4';
+ so.placeholder = '10.0.0.0/24';
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_enable_encryption', _('Enable encryption'));
+ so.default = so.enabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.ListValue, 'easytier_encryption_algorithm', _('Encryption algorithm'));
+ so.value('', _('Keep default'));
+ so.value('xor', _('xor'));
+ so.value('chacha20', _('chacha20'));
+ so.value('aes-gcm', _('aes-gcm'));
+ so.value('aes-gcm-256', _('aes-gcm-256'));
+ so.value('openssl-aes128-gcm', _('openssl-aes128-gcm'));
+ so.value('openssl-aes256-gcm', _('openssl-aes256-gcm'));
+ so.value('openssl-chacha20', _('openssl-chacha20'));
+ so.depends('easytier_enable_encryption', '1');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_enable_exit_node', _('As exit node'),
+ _('Allow this node to be an exit node.'));
+ so.default = so.disabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_latency_first', _('Latency first'),
+ _('Ignore the number of intermediate hops and select the path with the lowest total latency.'));
+ so.default = so.disabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_disable_p2p', _('Disable P2P'),
+ _('After disabling, communication will only be possible via relay.'));
+ so.default = so.disabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Flag, 'easytier_accept_dns', _('Enable MagicDNS'),
+ _('Whether to accept DNS configurations distributed by the network.'));
+ so.default = so.disabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
+ so = ss.taboption('field_general', form.Value, 'easytier_tld_dns_zone', _('TLD DNS zone'),
+ _('TLD DNS zone used by MagicDNS, default is %s.').format('et.net.') + '' +
+ _('You can add %s in the %s to resolve A/PTR records within the virtual network.').format('et://proxy-name', _('DNS server')) + '' +
+ _('Using this in conjunction with %s is recommended.').format(_('DNS policy')));
+ so.placeholder = 'et.net.';
+ so.depends('easytier_accept_dns', '1');
+ so.modalonly = true;
+
/* SSH fields */
so = ss.taboption('field_general', form.TextValue, 'ssh_priv_key', _('Priv-key'));
so.depends('type', 'ssh');
@@ -1094,9 +1246,9 @@ return view.extend({
so.depends({type: /^(hysteria2|openvpn|masque)$/});
so.modalonly = true;
- so = ss.taboption('field_general', form.Flag, 'udp', _('UDP'));
+ so = ss.taboption('field_general', form.Flag, 'udp', _('Force UDP'));
so.default = so.disabled;
- so.depends({type: /^(rematch|direct|socks5|ss|mieru|vmess|vless|trojan|anytls|trusttunnel|zerotier|wireguard|tailscale|masque)$/});
+ so.depends({type: /^(rematch|direct|socks5|ss|mieru|vmess|vless|trojan|anytls|trusttunnel|zerotier|wireguard|tailscale|masque|easytier)$/});
so.depends({type: 'snell', snell_version: /^(3|4|5)$/});
so.modalonly = true;
@@ -1501,49 +1653,77 @@ return view.extend({
_('Auto configure firewall'));
so.default = so.enabled;
so.validate = function(section_id, value) {
- const primary_port = this.section.getOption('zerotier_primary_port').formvalue(section_id);
- const secondary_port = this.section.getOption('zerotier_secondary_port').formvalue(section_id);
+ const type = this.section.getOption('type').formvalue(section_id);
const auto_firewall = this.getUIElement(section_id).node.querySelector('input');
- // Force disabled
- if ((!primary_port || primary_port <= 0) && (!secondary_port || secondary_port <= 0)) {
- auto_firewall.checked = false;
- auto_firewall.disabled = true;
- } else
- auto_firewall.removeAttribute('disabled');
+ switch (type) {
+ case 'zerotier':
+ const primary_port = this.section.getOption('zerotier_primary_port').formvalue(section_id);
+ const secondary_port = this.section.getOption('zerotier_secondary_port').formvalue(section_id);
+
+ // Force disabled
+ if ((!primary_port || primary_port <= 0) && (!secondary_port || secondary_port <= 0)) {
+ auto_firewall.checked = false;
+ auto_firewall.disabled = true;
+ } else
+ auto_firewall.removeAttribute('disabled');
+ break;
+ case 'easytier':
+ const no_listeners = this.section.getOption('endpoint_no_listener').formvalue(section_id);
+ const listeners = this.section.getOption('endpoint_listeners').formvalue(section_id);
+
+ // Force disabled
+ if (no_listeners === '1' || listeners.filter(Boolean).length == 0) {
+ auto_firewall.checked = false;
+ auto_firewall.disabled = true;
+ } else
+ auto_firewall.removeAttribute('disabled');
+ break;
+ }
return true;
}
- so.depends('type', 'zerotier');
+ so.depends({type: /^(zerotier|easytier)$/});
so.modalonly = true;
+ const zerotier_listen_port = {
+ load(section_id) {
+ const listen_port = this.map.data.get(this.section.config, section_id, 'zerotier_listen_port') || '';
+ const value = [
+ this.map.data.get(this.section.config, section_id, 'zerotier_primary_port'),
+ this.map.data.get(this.section.config, section_id, 'zerotier_secondary_port')
+ ].filter(Boolean).join(',');
+
+ if (listen_port != value) {
+ uci.set(this.section.config, section_id, 'zerotier_listen_port', value);
+ return uci.save()
+ .then(L.bind(this.map.load, this.map))
+ .then(L.bind(this.map.reset, this.map))
+ .catch(() => {});
+ }
+
+ return form.Value.prototype.load.apply(this, arguments);
+ },
+
+ write(section_id, formvalue) {
+ const value = [
+ this.section.getOption('zerotier_primary_port').formvalue(section_id),
+ this.section.getOption('zerotier_secondary_port').formvalue(section_id)
+ ].filter(Boolean).join(',');
+
+ uci.set(this.section.config, section_id, 'zerotier_listen_port', value);
+
+ return form.Value.prototype[formvalue ? 'write' : 'remove'].apply(this, arguments);
+ }
+ };
+
so = ss.taboption('field_vpn', form.Value, 'zerotier_primary_port', _('Listen port') + ' (%s)'.format(_('Primary')),
_('%s UDP port. 0 selects an available port.').format(_('Primary')));
so.datatype = 'port';
so.placeholder = '9993';
- so.load = function(section_id) {
- const listen_port = this.map.data.get(this.section.config, section_id, 'zerotier_listen_port');
- const value = [
- this.map.data.get(this.section.config, section_id, 'zerotier_primary_port'),
- this.map.data.get(this.section.config, section_id, 'zerotier_secondary_port')
- ].filter(Boolean).join(',');
-
- if (listen_port !== value) {
- uci.set(this.section.config, section_id, 'zerotier_listen_port', value);
- uci.save();
- }
-
- return form.Value.prototype.load.apply(this, arguments);
- }
- so.write = function(section_id, formvalue) {
- uci.set(this.section.config, section_id, 'zerotier_listen_port', [
- this.section.getOption('zerotier_primary_port').formvalue(section_id),
- this.section.getOption('zerotier_secondary_port').formvalue(section_id)
- ].filter(Boolean).join(','));
-
- return form.Value.prototype[formvalue ? 'write' : 'remove'].apply(this, arguments);
- }
- so.remove = so.write;
+ so.load = zerotier_listen_port.load;
+ so.write = zerotier_listen_port.write;
+ so.remove = zerotier_listen_port.write;
so.depends('type', 'zerotier');
so.modalonly = true;
@@ -1552,32 +1732,62 @@ return view.extend({
_('-1 disables it.'));
so.datatype = 'or(port, -1)';
so.placeholder = '0';
- so.load = function(section_id) {
- const listen_port = this.map.data.get(this.section.config, section_id, 'zerotier_listen_port');
- const value = [
- this.map.data.get(this.section.config, section_id, 'zerotier_primary_port'),
- this.map.data.get(this.section.config, section_id, 'zerotier_secondary_port')
- ].filter(Boolean).join(',');
-
- if (listen_port !== value) {
- uci.set(this.section.config, section_id, 'zerotier_listen_port', value);
- uci.save();
- }
-
- return form.Value.prototype.load.apply(this, arguments);
- }
- so.write = function(section_id, formvalue) {
- uci.set(this.section.config, section_id, 'zerotier_listen_port', [
- this.section.getOption('zerotier_primary_port').formvalue(section_id),
- this.section.getOption('zerotier_secondary_port').formvalue(section_id)
- ].filter(Boolean).join(','));
-
- return form.Value.prototype[formvalue ? 'write' : 'remove'].apply(this, arguments);
- }
- so.remove = so.write;
+ so.load = zerotier_listen_port.load;
+ so.write = zerotier_listen_port.write;
+ so.remove = zerotier_listen_port.write;
so.depends('type', 'zerotier');
so.modalonly = true;
+ const easytier_listen_port = {
+ load(section_id) {
+ const listen_port = this.map.data.get(this.section.config, section_id, 'easytier_listen_port') || '';
+ const value = [...new Set(this.map.data.get(this.section.config, section_id, 'endpoint_listeners')?.map(uri => new URL(uri).port) || [])]
+ .filter(Boolean).join(',');
+
+ if (listen_port != value) {
+ uci.set(this.section.config, section_id, 'easytier_listen_port', value);
+ return uci.save()
+ .then(L.bind(this.map.load, this.map))
+ .then(L.bind(this.map.reset, this.map))
+ .catch(() => {});
+ }
+
+ return form.Value.prototype.load.apply(this, arguments);
+ },
+
+ write(section_id, formvalue) {
+ const value = [...new Set(formvalue?.map(uri => new URL(uri).port) || [])]
+ .filter(Boolean).join(',');
+
+ uci.set(this.section.config, section_id, 'easytier_listen_port', value);
+
+ return form.Value.prototype[formvalue ? 'write' : 'remove'].apply(this, arguments);
+ }
+ };
+
+ so = ss.taboption('field_vpn', form.DynamicList, 'endpoint_listeners', _('Listeners'),
+ _('Only the address %s is valid.').format('0.0.0.0'));
+ so.placeholder = 'tcp://0.0.0.0:11010';
+ so.default = ['tcp://0.0.0.0:11010', 'udp://0.0.0.0:11010'];
+ so.load = easytier_listen_port.load;
+ so.write = easytier_listen_port.write;
+ so.remove = easytier_listen_port.write;
+ so.validate = hm.validateUrl;
+ so.depends({type: 'easytier', endpoint_no_listener: '0'});
+ so.modalonly = true;
+
+ //so = ss.taboption('field_vpn', form.DynamicList, 'endpoint_mapped_listeners', _('Mapped listeners'),
+ // _('list of public IP address of the listeners.'));
+ //so.placeholder = 'tcp://203.0.113.10:11010';
+ //so.validate = hm.validateUrl;
+ //so.depends({type: 'easytier', endpoint_no_listener: '0'});
+ //so.modalonly = true;
+
+ so = ss.taboption('field_vpn', form.Flag, 'endpoint_no_listener', _('NO Listener'));
+ so.default = so.enabled;
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
so = ss.taboption('field_vpn', form.Value, 'endpoint_ip', _('Virtual address'),
_('The %s address used by local machine in the %s network.').format(_('IPv4'), _('VPN')));
so.datatype = 'or(ip4addr(1), cidr4)';
@@ -1604,6 +1814,13 @@ return view.extend({
so.depends({type: 'masque', masque_network: /^(|h2)$/});
so.modalonly = true;
+ so = ss.taboption('field_vpn', form.Value, 'endpoint_ipv4', _('Virtual IPv4 address'),
+ _('The %s address used by local machine in the %s network.').format(_('IPv4'), _('VPN')));
+ so.datatype = 'or(ip4addr(1), cidr4)';
+ so.placeholder = '10.144.0.1/24';
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
so = ss.taboption('field_vpn', form.Value, 'endpoint_ipv6', _('Virtual IPv6 address'),
_('The %s address used by local machine in the %s network.').format(_('IPv6'), _('VPN')));
so.datatype = 'or(ip6addr(1), cidr6)';
@@ -1628,6 +1845,26 @@ return view.extend({
so.depends({type: 'masque', masque_network: /^(|h2)$/});
so.modalonly = true;
+ so = ss.taboption('field_vpn', form.Flag, 'endpoint_dhcp', _('Use DHCP'),
+ _('Use DHCP to obtain IP address.') + '' +
+ _('Auto Enable when %s is empty.').format(_('Virtual IPv4 address')));
+ so.default = so.disabled;
+ so.validate = function(section_id, value) {
+ const ipv4 = this.section.getOption('endpoint_ipv4').formvalue(section_id);
+ const dhcp = this.getUIElement(section_id).node.querySelector('input');
+
+ // Force enabled
+ if (!ipv4) {
+ dhcp.checked = true;
+ dhcp.disabled = true;
+ } else
+ dhcp.removeAttribute('disabled');
+
+ return true;
+ }
+ so.depends('type', 'easytier');
+ so.modalonly = true;
+
so = ss.taboption('field_vpn', form.Value, 'endpoint_mtu', _('MTU'));
so.datatype = 'range(0,9000)';
so.placeholder = '1400';
@@ -1646,12 +1883,15 @@ return view.extend({
case 'masque':
def_mtu = '1280';
break;
+ case 'easytier':
+ def_mtu = '1380';
+ break;
}
UIEl.node.querySelector('input').placeholder = def_mtu;
return true;
}
- so.depends({type: /^(zerotier|wireguard)$/});
+ so.depends({type: /^(zerotier|wireguard|easytier)$/});
so.depends({type: 'masque', masque_network: /^(|h2)$/});
so.modalonly = true;
@@ -2464,6 +2704,12 @@ return view.extend({
so.cfgvalue = hm.renderResDownload;
so.editable = true;
so.modalonly = false;
+
+ so = ss.option(form.DummyValue, '_link');
+ so.cfgvalue = hm.renderResLink;
+ so.readonly = features.has_luci_app_tinyfilemanager ? false : _('luci-app-tinyfilemanager is not installed, please install it first.');
+ so.editable = true;
+ so.modalonly = false;
/* Provider END */
/* Proxy chain START */
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/ruleset.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/ruleset.js
index aca2e06f9..164de6f67 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/ruleset.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/ruleset.js
@@ -126,12 +126,14 @@ return view.extend({
load() {
return Promise.all([
uci.load('fchomo'),
+ hm.getFeatures(),
hm.decompressGzip(hm.rulesetdoc[1], true).then((res) => { return hm.rulesetdoc[0] + hm.encodeBase64(res); })
]);
},
render(data) {
- const rulesetdoc = data[1];
+ const features = data[1];
+ const rulesetdoc = data[2];
let m, s, o;
@@ -427,6 +429,12 @@ return view.extend({
o.cfgvalue = hm.renderResDownload;
o.editable = true;
o.modalonly = false;
+
+ o = s.option(form.DummyValue, '_link');
+ o.cfgvalue = hm.renderResLink;
+ o.readonly = features.has_luci_app_tinyfilemanager ? false : _('luci-app-tinyfilemanager is not installed, please install it first.');
+ o.editable = true;
+ o.modalonly = false;
/* Rule set END */
return m.render();
diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot
index 0758c34af..b508e7fe6 100644
--- a/luci-app-fchomo/po/templates/fchomo.pot
+++ b/luci-app-fchomo/po/templates/fchomo.pot
@@ -1,12 +1,12 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "%s Hostname"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "%s UDP port. 0 selects an available port."
msgstr ""
@@ -14,21 +14,21 @@ msgstr ""
msgid "%s log"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:812
+#: htdocs/luci-static/resources/view/fchomo/node.js:815
msgid "%s of the %s used to receiving remote debugging log."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:255
#: htdocs/luci-static/resources/fchomo.js:256
#: htdocs/luci-static/resources/fchomo.js:257
#: htdocs/luci-static/resources/fchomo.js:258
#: htdocs/luci-static/resources/fchomo.js:259
#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "%s ports"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:646
-#: htdocs/luci-static/resources/fchomo.js:649
+#: htdocs/luci-static/resources/fchomo.js:647
+#: htdocs/luci-static/resources/fchomo.js:650
#: htdocs/luci-static/resources/view/fchomo/client.js:318
msgid "(Imported)"
msgstr ""
@@ -36,12 +36,12 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1165
#: htdocs/luci-static/resources/fchomo/listeners.js:1173
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "(mTLS)"
msgstr ""
@@ -58,7 +58,7 @@ msgstr ""
msgid "-- PROXY-NODE --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:836
+#: htdocs/luci-static/resources/fchomo.js:837
#: htdocs/luci-static/resources/view/fchomo/client.js:573
#: htdocs/luci-static/resources/view/fchomo/client.js:893
#: htdocs/luci-static/resources/view/fchomo/client.js:896
@@ -67,11 +67,11 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1113
#: htdocs/luci-static/resources/view/fchomo/client.js:1117
#: htdocs/luci-static/resources/view/fchomo/client.js:1373
-#: htdocs/luci-static/resources/view/fchomo/node.js:302
-#: htdocs/luci-static/resources/view/fchomo/node.js:2505
-#: htdocs/luci-static/resources/view/fchomo/node.js:2516
-#: htdocs/luci-static/resources/view/fchomo/node.js:2535
-#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2751
+#: htdocs/luci-static/resources/view/fchomo/node.js:2762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2792
msgid "-- Please choose --"
msgstr ""
@@ -83,16 +83,16 @@ msgstr ""
msgid "-- RULE-SET --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:837
+#: htdocs/luci-static/resources/fchomo.js:838
msgid "-- custom --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
+#: htdocs/luci-static/resources/fchomo.js:409
msgid "0-RTT reuse."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:405
-#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/fchomo.js:406
+#: htdocs/luci-static/resources/fchomo.js:410
msgid "1-RTT only."
msgstr ""
@@ -100,19 +100,19 @@ msgstr ""
msgid "163Music"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:355
+#: htdocs/luci-static/resources/fchomo.js:356
msgid "2022-blake3-aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:356
+#: htdocs/luci-static/resources/fchomo.js:357
msgid "2022-blake3-aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:357
+#: htdocs/luci-static/resources/fchomo.js:358
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
+#: htdocs/luci-static/resources/view/fchomo/node.js:1732
msgid "-1 disables it."
msgstr ""
@@ -123,73 +123,73 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1143
#: htdocs/luci-static/resources/fchomo/listeners.js:1158
#: htdocs/luci-static/resources/fchomo/listeners.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1417
-#: htdocs/luci-static/resources/view/fchomo/node.js:1431
+#: htdocs/luci-static/resources/view/fchomo/node.js:1569
+#: htdocs/luci-static/resources/view/fchomo/node.js:1583
msgid "Save your configuration before uploading files!"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:207
-#: htdocs/luci-static/resources/view/fchomo/node.js:384
+#: htdocs/luci-static/resources/view/fchomo/node.js:387
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
"a>."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:620
+#: htdocs/luci-static/resources/view/fchomo/global.js:621
msgid "API"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
msgid "API Client Auth Certificate path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
msgid "API Client Auth type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:663
+#: htdocs/luci-static/resources/view/fchomo/global.js:664
msgid "API DoH service"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:614
+#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "API ECH config"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:575
+#: htdocs/luci-static/resources/view/fchomo/global.js:576
msgid "API ECH key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:654
+#: htdocs/luci-static/resources/view/fchomo/global.js:655
msgid "API HTTP port"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:658
+#: htdocs/luci-static/resources/view/fchomo/global.js:659
msgid "API HTTPS port"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:556
+#: htdocs/luci-static/resources/view/fchomo/global.js:557
msgid "API TLS certificate path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:560
+#: htdocs/luci-static/resources/view/fchomo/global.js:561
msgid "API TLS private key path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:651
+#: htdocs/luci-static/resources/view/fchomo/global.js:652
msgid "API routing mark (Fwmark)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:667
+#: htdocs/luci-static/resources/view/fchomo/global.js:668
msgid "API secret"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "ASCII data stream"
msgstr ""
@@ -197,12 +197,12 @@ msgstr ""
msgid "ASN version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:974
+#: htdocs/luci-static/resources/view/fchomo/node.js:983
msgid "Accept routes"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:744
-#: htdocs/luci-static/resources/view/fchomo/global.js:794
+#: htdocs/luci-static/resources/view/fchomo/global.js:745
+#: htdocs/luci-static/resources/view/fchomo/global.js:795
msgid "Access Control"
msgstr ""
@@ -218,7 +218,7 @@ msgstr ""
msgid "Add a DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Add a Node"
msgstr ""
@@ -226,11 +226,11 @@ msgstr ""
msgid "Add a inbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
msgid "Add a provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Add a proxy chain"
msgstr ""
@@ -242,7 +242,7 @@ msgstr ""
msgid "Add a routing rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Add a rule set"
msgstr ""
@@ -254,15 +254,15 @@ msgstr ""
msgid "Add a sub rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2528
msgid "Add prefix"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2292
+#: htdocs/luci-static/resources/view/fchomo/node.js:2532
msgid "Add suffix"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:861
+#: htdocs/luci-static/resources/view/fchomo/node.js:870
msgid "Add the base64 text of the planet file here."
msgstr ""
@@ -271,7 +271,11 @@ msgstr ""
msgid "Address"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:412
+#: htdocs/luci-static/resources/view/fchomo/node.js:1160
+msgid "After disabling, communication will only be possible via relay."
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:413
msgid ""
"After the 1-RTT client/server hello, padding randomly 111-1111 bytes with "
"100% probability."
@@ -281,31 +285,31 @@ msgstr ""
msgid "Aggressive"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:535
+#: htdocs/luci-static/resources/view/fchomo/global.js:536
msgid "Aging time of NAT map maintained by client."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:797
-#: htdocs/luci-static/resources/view/fchomo/global.js:860
-#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:895
msgid "All allowed"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:252
+#: htdocs/luci-static/resources/fchomo.js:253
msgid "All ports"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:985
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "Allow LAN access"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:647
+#: htdocs/luci-static/resources/view/fchomo/global.js:648
msgid ""
"Allow access from private network.To access the API on a private "
"network from a public website, it must be enabled."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:986
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "Allow access to the local LAN via the exit node."
msgstr ""
@@ -313,7 +317,11 @@ msgstr ""
msgid "Allow insecure connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:1148
+msgid "Allow this node to be an exit node."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:943
msgid "Allowed IPs"
msgstr ""
@@ -326,7 +334,7 @@ msgid "Already in updating."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:544
msgid "Alter ID"
msgstr ""
@@ -339,16 +347,20 @@ msgstr ""
msgid "Application version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:969
+#: htdocs/luci-static/resources/view/fchomo/node.js:978
msgid "As ephemeral node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:822
-msgid "As the TOP upstream of dnsmasq"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1147
+msgid "As exit node"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:823
-#: htdocs/luci-static/resources/view/fchomo/global.js:830
+msgid "As the TOP upstream of dnsmasq"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:824
+#: htdocs/luci-static/resources/view/fchomo/global.js:831
msgid "As the TOP upstream of dnsmasq."
msgstr ""
@@ -356,27 +368,31 @@ msgstr ""
msgid "Auth timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "Authenticated length"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Authentication key"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:1358
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1050
-#: htdocs/luci-static/resources/view/fchomo/node.js:1797
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
+#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/view/fchomo/node.js:2037
msgid "Auto"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Auto Enable when %s is empty."
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1501
+#: htdocs/luci-static/resources/view/fchomo/node.js:1653
msgid "Auto configure firewall"
msgstr ""
@@ -389,7 +405,7 @@ msgid "Auto update resources."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+#: htdocs/luci-static/resources/view/fchomo/node.js:1226
msgid "BBR profile"
msgstr ""
@@ -397,48 +413,56 @@ msgstr ""
msgid "Baidu"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:993
+#: htdocs/luci-static/resources/view/fchomo/node.js:1002
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1010
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1095
+msgid "Base64 encoded X25519 private key."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+msgid "Base64 encoded X25519 public key."
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/global.js:517
msgid "Based on google/gvisor."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:293
msgid "Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Binary format only supports domain / ipcidr"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:310
msgid "Binary mrs"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1958
-#: htdocs/luci-static/resources/view/fchomo/node.js:2377
+#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2617
msgid "Bind interface"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1959
-#: htdocs/luci-static/resources/view/fchomo/node.js:2378
+#: htdocs/luci-static/resources/view/fchomo/node.js:2199
+#: htdocs/luci-static/resources/view/fchomo/node.js:2618
msgid "Bind outbound interface."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/global.js:760
msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:799
+#: htdocs/luci-static/resources/view/fchomo/global.js:800
msgid "Black list"
msgstr ""
@@ -463,11 +487,11 @@ msgstr ""
msgid "BundleMRS version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:862
msgid "Bypass CN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:895
+#: htdocs/luci-static/resources/view/fchomo/global.js:896
msgid "Bypass DSCP"
msgstr ""
@@ -475,40 +499,40 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:368
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
msgid "CDN support"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:642
+#: htdocs/luci-static/resources/view/fchomo/global.js:643
msgid "CORS Allow origins"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:646
+#: htdocs/luci-static/resources/view/fchomo/global.js:647
msgid "CORS Allow private network"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:643
+#: htdocs/luci-static/resources/view/fchomo/global.js:644
msgid "CORS allowed origins, * will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:762
+#: htdocs/luci-static/resources/fchomo.js:763
msgid "Cancel"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1383
+#: htdocs/luci-static/resources/view/fchomo/node.js:1535
msgid "Cert fingerprint"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1536
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
msgid "Certificate path"
msgstr ""
@@ -545,14 +569,14 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:275
-#: htdocs/luci-static/resources/view/fchomo/node.js:337
-#: htdocs/luci-static/resources/view/fchomo/node.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:340
+#: htdocs/luci-static/resources/view/fchomo/node.js:399
+#: htdocs/luci-static/resources/view/fchomo/node.js:550
msgid "Chipher"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:284
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr ""
@@ -568,10 +592,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:862
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr ""
@@ -584,7 +608,7 @@ msgstr ""
msgid "Client Auth type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1608
msgid "Client fingerprint"
msgstr ""
@@ -592,16 +616,24 @@ msgstr ""
msgid "Client key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:600
+#: htdocs/luci-static/resources/view/fchomo/node.js:603
msgid "Client metadata"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1094
+msgid "Client private key"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+msgid "Client public key"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/global.js:176
msgid "Client status"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "Cloudflare WARP"
msgstr ""
@@ -609,18 +641,18 @@ msgstr ""
msgid "Collecting data..."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:253
#: htdocs/luci-static/resources/fchomo.js:254
+#: htdocs/luci-static/resources/fchomo.js:255
msgid "Common ports (bypass P2P traffic)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1747
-msgid "Complete"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1040
+msgid "Configuration Document"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:638
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:1065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "Congestion controller"
msgstr ""
@@ -628,12 +660,12 @@ msgstr ""
msgid "Connection check"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:521
+#: htdocs/luci-static/resources/view/fchomo/node.js:524
msgid "Connection reuse"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:781
+#: htdocs/luci-static/resources/view/fchomo/node.js:784
msgid "Connection-level receive window size"
msgstr ""
@@ -641,20 +673,20 @@ msgstr ""
msgid "Conservative"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:631
+#: htdocs/luci-static/resources/fchomo.js:632
msgid "Content copied to clipboard!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:2148
-#: htdocs/luci-static/resources/view/fchomo/node.js:2174
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:2388
+#: htdocs/luci-static/resources/view/fchomo/node.js:2414
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:350
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2147
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
+#: htdocs/luci-static/resources/view/fchomo/node.js:2387
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:349
msgid "Contents"
msgstr ""
@@ -662,11 +694,11 @@ msgstr ""
msgid "Contents have been saved."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:958
+#: htdocs/luci-static/resources/view/fchomo/node.js:967
msgid "Control server"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:633
+#: htdocs/luci-static/resources/fchomo.js:634
msgid "Copy"
msgstr ""
@@ -678,25 +710,25 @@ msgstr ""
msgid "Cron expression"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Custom %s control server."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:913
+#: htdocs/luci-static/resources/view/fchomo/global.js:914
msgid "Custom Direct List"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2279
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:2519
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:422
msgid "Custom HTTP header."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:931
+#: htdocs/luci-static/resources/view/fchomo/global.js:932
msgid "Custom Proxy List"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:423
msgid "Custom byte layout"
msgstr ""
@@ -712,6 +744,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1835
#: htdocs/luci-static/resources/view/fchomo/client.js:1844
#: htdocs/luci-static/resources/view/fchomo/client.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
msgid "DNS policy"
msgstr ""
@@ -722,7 +755,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:911
#: htdocs/luci-static/resources/view/fchomo/client.js:1528
#: htdocs/luci-static/resources/view/fchomo/client.js:1537
-#: htdocs/luci-static/resources/view/fchomo/node.js:1664
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "DNS server"
msgstr ""
@@ -730,7 +764,7 @@ msgstr ""
msgid "DNS settings"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:898
+#: htdocs/luci-static/resources/view/fchomo/global.js:899
msgid "DSCP list"
msgstr ""
@@ -739,7 +773,7 @@ msgid "Dashboard version"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:94
-#: htdocs/luci-static/resources/view/fchomo/node.js:822
+#: htdocs/luci-static/resources/view/fchomo/node.js:825
msgid "Debug"
msgstr ""
@@ -765,24 +799,24 @@ msgstr ""
msgid "Derive from priv-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:944
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2502
+#: htdocs/luci-static/resources/view/fchomo/node.js:2748
msgid "Destination provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2513
+#: htdocs/luci-static/resources/view/fchomo/node.js:2759
msgid "Destination proxy node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:257
+#: htdocs/luci-static/resources/view/fchomo/node.js:260
msgid "Dial fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
msgid "Different chain head/tail"
msgstr ""
@@ -790,38 +824,42 @@ msgstr ""
msgid "Direct"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:801
+#: htdocs/luci-static/resources/view/fchomo/global.js:802
msgid "Direct IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:804
+#: htdocs/luci-static/resources/view/fchomo/global.js:805
msgid "Direct IPv6 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:807
+#: htdocs/luci-static/resources/view/fchomo/global.js:808
msgid "Direct MAC-s"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:493
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:715
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Disable"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:735
+#: htdocs/luci-static/resources/view/fchomo/global.js:736
msgid "Disable ECN of quic-go"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:732
+#: htdocs/luci-static/resources/view/fchomo/global.js:733
msgid "Disable GSO of quic-go"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:544
+#: htdocs/luci-static/resources/view/fchomo/global.js:545
msgid "Disable ICMP Forwarding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+msgid "Disable P2P"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "Disable SNI"
msgstr ""
@@ -829,7 +867,7 @@ msgstr ""
msgid "Disable UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:729
+#: htdocs/luci-static/resources/view/fchomo/global.js:730
msgid "Disable safe path check"
msgstr ""
@@ -847,31 +885,31 @@ msgstr ""
msgid "Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "Donot send server name in ClientHello."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1403
-#: htdocs/luci-static/resources/view/fchomo/node.js:2361
+#: htdocs/luci-static/resources/view/fchomo/node.js:1555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2601
msgid "Donot verifying server certificate."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1935
+#: htdocs/luci-static/resources/view/fchomo/node.js:2175
msgid "Download bandwidth"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1936
+#: htdocs/luci-static/resources/view/fchomo/node.js:2176
msgid "Download bandwidth in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1626
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "Download failed: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1624
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Download successful."
msgstr ""
@@ -879,12 +917,12 @@ msgstr ""
msgid "Dual stack"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
msgid "ECH HTTPS record query servername"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:1444
+#: htdocs/luci-static/resources/view/fchomo/node.js:1596
msgid "ECH config"
msgstr ""
@@ -904,32 +942,36 @@ msgstr ""
msgid "ETag support"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1775
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Early Data first packet length limit."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Early Data header name"
msgstr ""
+#: htdocs/luci-static/resources/fchomo.js:211
+msgid "EasyTier"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/inbound.js:20
msgid "Edit inbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:217
+#: htdocs/luci-static/resources/view/fchomo/node.js:220
msgid "Edit outbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:138
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:140
msgid "Edit ruleset"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2145
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
+#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Editer"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:399
+#: htdocs/luci-static/resources/fchomo.js:400
msgid "Eliminate encryption header characteristics"
msgstr ""
@@ -946,91 +988,103 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1827
#: htdocs/luci-static/resources/view/fchomo/client.js:1883
#: htdocs/luci-static/resources/view/fchomo/global.js:422
-#: htdocs/luci-static/resources/view/fchomo/global.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:264
-#: htdocs/luci-static/resources/view/fchomo/node.js:2118
-#: htdocs/luci-static/resources/view/fchomo/node.js:2400
-#: htdocs/luci-static/resources/view/fchomo/node.js:2489
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
+#: htdocs/luci-static/resources/view/fchomo/global.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:2358
+#: htdocs/luci-static/resources/view/fchomo/node.js:2640
+#: htdocs/luci-static/resources/view/fchomo/node.js:2735
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:274
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:669
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
Disabling this is highly recommended, as it is vulnerable to replay attacks."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Enable 0-RTT handshake"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:738
+#: htdocs/luci-static/resources/view/fchomo/global.js:739
msgid ""
"Enable IP4P "
"conversion for outbound connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1438
+#: htdocs/luci-static/resources/view/fchomo/node.js:1590
msgid "Enable ECH"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1165
+msgid "Enable MagicDNS"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1398
-#: htdocs/luci-static/resources/view/fchomo/node.js:1923
+#: htdocs/luci-static/resources/view/fchomo/node.js:2163
msgid "Enable TCP Brutal"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1399
-#: htdocs/luci-static/resources/view/fchomo/node.js:1924
+#: htdocs/luci-static/resources/view/fchomo/node.js:2164
msgid "Enable TCP Brutal congestion control algorithm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:663
+#: htdocs/luci-static/resources/view/fchomo/node.js:1130
+msgid "Enable encryption"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:666
msgid "Enable fast open"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1912
+#: htdocs/luci-static/resources/view/fchomo/node.js:2152
msgid "Enable multiplexing only for TCP."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:353
-#: htdocs/luci-static/resources/view/fchomo/node.js:448
+#: htdocs/luci-static/resources/view/fchomo/node.js:451
msgid "Enable obfuscate for downlink"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1393
-#: htdocs/luci-static/resources/view/fchomo/node.js:1906
+#: htdocs/luci-static/resources/view/fchomo/node.js:2146
msgid "Enable padding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:2157
msgid "Enable statistic"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1104
-#: htdocs/luci-static/resources/view/fchomo/node.js:2337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1256
+#: htdocs/luci-static/resources/view/fchomo/node.js:2577
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:500
-#: htdocs/luci-static/resources/view/fchomo/node.js:722
+#: htdocs/luci-static/resources/view/fchomo/node.js:725
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:840
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "Encrypted Hello"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1135
+msgid "Encryption algorithm"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:825
msgid "Encryption method"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:540
+#: htdocs/luci-static/resources/view/fchomo/global.js:541
msgid "Endpoint-Independent NAT"
msgstr ""
@@ -1049,7 +1103,7 @@ msgid ""
"if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2458
+#: htdocs/luci-static/resources/view/fchomo/node.js:2698
msgid "Exclude matched node types."
msgstr ""
@@ -1060,53 +1114,35 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1255
-#: htdocs/luci-static/resources/view/fchomo/node.js:2451
+#: htdocs/luci-static/resources/view/fchomo/node.js:2691
msgid "Exclude nodes that meet keywords or regexps."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:980
+#: htdocs/luci-static/resources/view/fchomo/node.js:989
msgid "Exit node"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1115
+msgid "Exit nodes"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/global.js:265
msgid "Expand/Collapse result"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1198
-#: htdocs/luci-static/resources/view/fchomo/node.js:2436
+#: htdocs/luci-static/resources/view/fchomo/node.js:2676
msgid "Expected HTTP code. 204 will be used if empty."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1200
-#: htdocs/luci-static/resources/view/fchomo/node.js:2438
+#: htdocs/luci-static/resources/view/fchomo/node.js:2678
msgid "Expected status"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:456
-#: htdocs/luci-static/resources/fchomo.js:459
-#: htdocs/luci-static/resources/fchomo.js:462
-#: htdocs/luci-static/resources/fchomo.js:1764
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1806
-#: htdocs/luci-static/resources/fchomo.js:1813
-#: htdocs/luci-static/resources/fchomo.js:1829
-#: htdocs/luci-static/resources/fchomo.js:1838
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-#: htdocs/luci-static/resources/fchomo.js:1863
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-#: htdocs/luci-static/resources/fchomo.js:1891
-#: htdocs/luci-static/resources/fchomo.js:1900
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1947
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-#: htdocs/luci-static/resources/fchomo.js:1973
-#: htdocs/luci-static/resources/fchomo.js:1982
+#: htdocs/luci-static/resources/fchomo.js:457
+#: htdocs/luci-static/resources/fchomo.js:460
+#: htdocs/luci-static/resources/fchomo.js:463
#: htdocs/luci-static/resources/fchomo/listeners.js:284
#: htdocs/luci-static/resources/fchomo/listeners.js:339
#: htdocs/luci-static/resources/fchomo/listeners.js:854
@@ -1115,18 +1151,18 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:71
#: htdocs/luci-static/resources/view/fchomo/client.js:1063
#: htdocs/luci-static/resources/view/fchomo/client.js:1608
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1262
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Expecting: %s"
msgstr ""
@@ -1135,7 +1171,7 @@ msgid "Expecting: Cannot be empty."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "Expecting: Cannot be enabled when %s is enabled."
msgstr ""
@@ -1143,8 +1179,8 @@ msgstr ""
msgid "Expecting: Keep empty when %s is enabled."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Expecting: Least one of %s or %s."
msgstr ""
@@ -1152,15 +1188,15 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "Expecting: Only support %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:723
+#: htdocs/luci-static/resources/view/fchomo/global.js:724
msgid "Experimental"
msgstr ""
@@ -1176,23 +1212,7 @@ msgstr ""
msgid "Factor"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1705
-msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1658
-msgid "Failed to generate %s, error: %s."
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:2082
-msgid "Failed to upload %s, error: %s."
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:2101
-msgid "Failed to upload, error: %s."
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:246
+#: htdocs/luci-static/resources/fchomo.js:247
#: htdocs/luci-static/resources/fchomo/listeners.js:378
msgid "Fallback"
msgstr ""
@@ -1208,16 +1228,16 @@ msgstr ""
msgid "Fallback filter"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Fallback mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:853
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Fallback relay"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1250
-#: htdocs/luci-static/resources/view/fchomo/node.js:2445
+#: htdocs/luci-static/resources/view/fchomo/node.js:2685
msgid "Filter nodes that meet keywords or regexps."
msgstr ""
@@ -1243,12 +1263,12 @@ msgid "Final DNS server (For poisoned domains)"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1500
+#: htdocs/luci-static/resources/view/fchomo/node.js:1652
msgid "Firewall"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:409
-#: htdocs/luci-static/resources/view/fchomo/node.js:533
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
msgid "Flow"
msgstr ""
@@ -1259,27 +1279,31 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1199
-#: htdocs/luci-static/resources/view/fchomo/node.js:2298
-#: htdocs/luci-static/resources/view/fchomo/node.js:2306
-#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/node.js:2538
+#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:2677
msgid ""
"For format see %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Force"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1659
+#: htdocs/luci-static/resources/view/fchomo/node.js:1899
msgid "Force DNS remote resolution."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:683
+#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+msgid "Force UDP"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:684
msgid "Forced sniffing domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
msgid "Format"
msgstr ""
@@ -1294,7 +1318,7 @@ msgstr ""
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1970
msgid "GET"
msgstr ""
@@ -1303,7 +1327,7 @@ msgid "GFW list version"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:495
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:720
msgid "Gecko"
msgstr ""
@@ -1313,8 +1337,8 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1054
-#: htdocs/luci-static/resources/view/fchomo/node.js:249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2108
+#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:2348
msgid "General fields"
msgstr ""
@@ -1322,21 +1346,21 @@ msgstr ""
msgid "General settings"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:582
-#: htdocs/luci-static/resources/fchomo.js:584
-#: htdocs/luci-static/resources/fchomo.js:598
-#: htdocs/luci-static/resources/fchomo.js:600
+#: htdocs/luci-static/resources/fchomo.js:583
+#: htdocs/luci-static/resources/fchomo.js:585
+#: htdocs/luci-static/resources/fchomo.js:599
+#: htdocs/luci-static/resources/fchomo.js:601
#: htdocs/luci-static/resources/fchomo/listeners.js:262
#: htdocs/luci-static/resources/fchomo/listeners.js:306
#: htdocs/luci-static/resources/fchomo/listeners.js:308
#: htdocs/luci-static/resources/fchomo/listeners.js:958
#: htdocs/luci-static/resources/fchomo/listeners.js:1223
-#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:2266
+#: htdocs/luci-static/resources/view/fchomo/global.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:2506
msgid "Generate"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:527
+#: htdocs/luci-static/resources/view/fchomo/global.js:528
msgid "Generic segmentation offload"
msgstr ""
@@ -1379,7 +1403,7 @@ msgstr ""
msgid "Global Authentication"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:557
+#: htdocs/luci-static/resources/view/fchomo/node.js:560
msgid "Global padding"
msgstr ""
@@ -1387,7 +1411,7 @@ msgstr ""
msgid "Google"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:258
+#: htdocs/luci-static/resources/fchomo.js:259
msgid "Google FCM"
msgstr ""
@@ -1402,47 +1426,47 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:191
#: htdocs/luci-static/resources/fchomo/listeners.js:710
-#: htdocs/luci-static/resources/view/fchomo/node.js:1154
-#: htdocs/luci-static/resources/view/fchomo/node.js:1677
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
+#: htdocs/luci-static/resources/view/fchomo/node.js:1306
+#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:330
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
-#: htdocs/luci-static/resources/view/fchomo/node.js:2278
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
+#: htdocs/luci-static/resources/view/fchomo/node.js:2518
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:421
msgid "HTTP header"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:359
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:457
msgid "HTTP mask"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:364
-#: htdocs/luci-static/resources/view/fchomo/node.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "HTTP mask mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:484
+#: htdocs/luci-static/resources/view/fchomo/node.js:487
msgid "HTTP mask multiplex"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "HTTP mask: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1729
+#: htdocs/luci-static/resources/view/fchomo/node.js:1969
msgid "HTTP request method"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:483
msgid "HTTP root path"
msgstr ""
@@ -1456,17 +1480,17 @@ msgid ""
"returned if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1678
-#: htdocs/luci-static/resources/view/fchomo/node.js:1691
-#: htdocs/luci-static/resources/view/fchomo/node.js:1698
+#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:879
+#: htdocs/luci-static/resources/view/fchomo/global.js:880
msgid "Handle domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:376
+#: htdocs/luci-static/resources/view/fchomo/node.js:379
msgid "Handshake mode"
msgstr ""
@@ -1479,7 +1503,7 @@ msgid "Handshake target that supports TLS 1.3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:346
-#: htdocs/luci-static/resources/view/fchomo/node.js:1089
+#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "Handshake timeout"
msgstr ""
@@ -1487,41 +1511,41 @@ msgstr ""
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Headscale/Tailscale"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:793
+#: htdocs/luci-static/resources/view/fchomo/node.js:796
msgid "Health check"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:2405
+#: htdocs/luci-static/resources/view/fchomo/node.js:2645
msgid "Health check URL"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:2435
+#: htdocs/luci-static/resources/view/fchomo/node.js:2675
msgid "Health check expected status"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1177
-#: htdocs/luci-static/resources/view/fchomo/node.js:2415
+#: htdocs/luci-static/resources/view/fchomo/node.js:2655
msgid "Health check interval"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2422
+#: htdocs/luci-static/resources/view/fchomo/node.js:2662
msgid "Health check timeout"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:2110
+#: htdocs/luci-static/resources/view/fchomo/node.js:2350
msgid "Health fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:756
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
+#: htdocs/luci-static/resources/view/fchomo/node.js:759
msgid "Heartbeat interval"
msgstr ""
@@ -1530,23 +1554,27 @@ msgid "Hidden"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:723
-#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Host that supports TLS 1.3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1042
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
msgid "Host-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/view/fchomo/node.js:1189
msgid "Host-key algorithms"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Host/SNI override"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
+#: htdocs/luci-static/resources/view/fchomo/node.js:1062
+msgid "Hostname"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1483
msgid ""
"Hostname that the client attempts to connect to at the start of the TLS "
"handshake process."
@@ -1567,7 +1595,7 @@ msgid "Hysteria2 Realm Server"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:122
-#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:255
msgid "Hysteria2 Realm fields"
msgstr ""
@@ -1580,23 +1608,24 @@ msgstr ""
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:632
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "IP override"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "IP stack"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1972
-#: htdocs/luci-static/resources/view/fchomo/node.js:2391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2212
+#: htdocs/luci-static/resources/view/fchomo/node.js:2631
msgid "IP version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
msgid "IPv4"
msgstr ""
@@ -1604,9 +1633,9 @@ msgstr ""
msgid "IPv4 only"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "IPv6"
msgstr ""
@@ -1623,11 +1652,11 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:608
msgid "Idle session check interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:612
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Idle session timeout"
msgstr ""
@@ -1635,10 +1664,6 @@ msgstr ""
msgid "Idle timeout"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1806
-msgid "If All ports is selected, uncheck others"
-msgstr ""
-
#: htdocs/luci-static/resources/view/fchomo/client.js:71
msgid "If Block is selected, uncheck others"
msgstr ""
@@ -1647,7 +1672,13 @@ msgstr ""
msgid "Ignore client bandwidth"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:767
+#: htdocs/luci-static/resources/view/fchomo/node.js:1154
+msgid ""
+"Ignore the number of intermediate hops and select the path with the lowest "
+"total latency."
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:768
msgid "Import"
msgstr ""
@@ -1663,25 +1694,25 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1816
#: htdocs/luci-static/resources/view/fchomo/client.js:1851
#: htdocs/luci-static/resources/view/fchomo/client.js:1872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1998
-#: htdocs/luci-static/resources/view/fchomo/node.js:2096
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
+#: htdocs/luci-static/resources/view/fchomo/node.js:2238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:156
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
msgid "Import mihomo config"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:205
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:207
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:255
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:257
msgid "Import rule-set links"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:474
#: htdocs/luci-static/resources/fchomo/listeners.js:480
-#: htdocs/luci-static/resources/view/fchomo/node.js:691
-#: htdocs/luci-static/resources/view/fchomo/node.js:697
-#: htdocs/luci-static/resources/view/fchomo/node.js:2343
-#: htdocs/luci-static/resources/view/fchomo/node.js:2349
+#: htdocs/luci-static/resources/view/fchomo/node.js:694
+#: htdocs/luci-static/resources/view/fchomo/node.js:700
+#: htdocs/luci-static/resources/view/fchomo/node.js:2583
+#: htdocs/luci-static/resources/view/fchomo/node.js:2589
msgid "In Mbps."
msgstr ""
@@ -1689,56 +1720,56 @@ msgstr ""
msgid "In bps. 0 means no speed limit."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2186
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
+#: htdocs/luci-static/resources/view/fchomo/node.js:2426
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:394
msgid "In bytes. %s will be used if empty."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1294
-#: htdocs/luci-static/resources/view/fchomo/node.js:676
-#: htdocs/luci-static/resources/view/fchomo/node.js:683
-#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:686
+#: htdocs/luci-static/resources/view/fchomo/node.js:760
msgid "In millisecond."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1185
#: htdocs/luci-static/resources/view/fchomo/client.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:2423
+#: htdocs/luci-static/resources/view/fchomo/node.js:2663
msgid "In millisecond. %s will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1821
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
msgid "In milliseconds."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:347
#: htdocs/luci-static/resources/fchomo/listeners.js:466
#: htdocs/luci-static/resources/fchomo/listeners.js:656
-#: htdocs/luci-static/resources/view/fchomo/node.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:613
-#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:2008
msgid "In seconds."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1178
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
-#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:2192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2416
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
+#: htdocs/luci-static/resources/view/fchomo/global.js:537
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2432
+#: htdocs/luci-static/resources/view/fchomo/node.js:2656
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "In seconds. %s will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1090
+#: htdocs/luci-static/resources/view/fchomo/node.js:1242
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:874
-#: htdocs/luci-static/resources/view/fchomo/node.js:1251
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1779,20 +1810,20 @@ msgid "Info"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:565
-#: htdocs/luci-static/resources/view/fchomo/node.js:763
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "Initial congestion window size"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2125
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:290
msgid "Inline"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:826
msgid "Insane"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:751
+#: htdocs/luci-static/resources/view/fchomo/global.js:752
msgid "Interface Control"
msgstr ""
@@ -1801,38 +1832,39 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:700
#: htdocs/luci-static/resources/fchomo/listeners.js:1131
#: htdocs/luci-static/resources/fchomo/listeners.js:1247
-#: htdocs/luci-static/resources/view/fchomo/node.js:1129
-#: htdocs/luci-static/resources/view/fchomo/node.js:1139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1144
-#: htdocs/luci-static/resources/view/fchomo/node.js:1474
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
+#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1626
msgid "JLS"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:884
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
msgid "Join %s. Format: %s"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:53
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:174
-#: htdocs/luci-static/resources/fchomo.js:381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1049
-#: htdocs/luci-static/resources/view/fchomo/node.js:1057
-#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/fchomo.js:382
+#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/view/fchomo/node.js:2605
msgid "Keep default"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "Keep-alive period"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:217
-#: htdocs/luci-static/resources/view/fchomo/node.js:390
+#: htdocs/luci-static/resources/view/fchomo/node.js:393
msgid "Key"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1150
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
msgid "Key path"
msgstr ""
@@ -1851,15 +1883,19 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1588
#: htdocs/luci-static/resources/view/fchomo/client.js:1822
#: htdocs/luci-static/resources/view/fchomo/client.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2113
-#: htdocs/luci-static/resources/view/fchomo/node.js:2484
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:262
+#: htdocs/luci-static/resources/view/fchomo/node.js:2353
+#: htdocs/luci-static/resources/view/fchomo/node.js:2730
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:269
msgid "Label"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+msgid "Latency first"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:2429
+#: htdocs/luci-static/resources/view/fchomo/node.js:2669
msgid "Lazy"
msgstr ""
@@ -1872,7 +1908,7 @@ msgid "Lazy query."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:366
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
msgid "Legacy"
msgstr ""
@@ -1886,8 +1922,18 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+msgid "List of exit nodes to use (%s of peer nodes)."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1124
+msgid ""
+"List of local subnets (CIDR) to be open to other peers in the EasyTier "
+"network."
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:1337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1489
msgid "List of supported application level protocols, in order of preference."
msgstr ""
@@ -1899,14 +1945,14 @@ msgstr ""
msgid "Listen fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:753
+#: htdocs/luci-static/resources/view/fchomo/global.js:754
msgid "Listen interfaces"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:154
#: htdocs/luci-static/resources/view/fchomo/client.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Listen port"
msgstr ""
@@ -1918,12 +1964,16 @@ msgstr ""
msgid "Listen routing mark (Fwmark)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+msgid "Listeners"
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:249
msgid "Load balance"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2123
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
+#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Local"
msgstr ""
@@ -1943,7 +1993,7 @@ msgstr ""
msgid "Log level"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:834
+#: htdocs/luci-static/resources/view/fchomo/node.js:837
msgid "Low Bandwidth Mode"
msgstr ""
@@ -1951,19 +2001,19 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Low-entropy data stream"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:456
+#: htdocs/luci-static/resources/fchomo.js:457
msgid "Lowercase only"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:1631
+#: htdocs/luci-static/resources/view/fchomo/global.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
msgid "MTU"
msgstr ""
@@ -2003,12 +2053,12 @@ msgstr ""
msgid "Match rule set."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1774
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid "Max Early Data"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:657
+#: htdocs/luci-static/resources/view/fchomo/node.js:660
msgid "Max UDP relay packet size"
msgstr ""
@@ -2016,11 +2066,11 @@ msgstr ""
msgid "Max buffered posts"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Max concurrency"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
msgid "Max connections"
msgstr ""
@@ -2029,21 +2079,21 @@ msgid "Max count of failures"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:772
msgid "Max datagram frame size"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:479
-#: htdocs/luci-static/resources/view/fchomo/node.js:696
+#: htdocs/luci-static/resources/view/fchomo/node.js:699
msgid "Max download speed"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1814
+#: htdocs/luci-static/resources/view/fchomo/node.js:2054
msgid "Max each POST bytes"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1083
+#: htdocs/luci-static/resources/view/fchomo/node.js:1235
msgid "Max open streams"
msgstr ""
@@ -2055,47 +2105,47 @@ msgstr ""
msgid "Max realms per client IP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
msgid "Max request times"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
msgid "Max reusable seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
msgid "Max reuse times"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:473
-#: htdocs/luci-static/resources/view/fchomo/node.js:690
+#: htdocs/luci-static/resources/view/fchomo/node.js:693
msgid "Max upload speed"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2118
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Maximum connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1896
+#: htdocs/luci-static/resources/view/fchomo/node.js:2136
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:327
-#: htdocs/luci-static/resources/view/fchomo/node.js:433
+#: htdocs/luci-static/resources/view/fchomo/node.js:436
msgid "Maximum padding rate"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:339
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1895
+#: htdocs/luci-static/resources/view/fchomo/node.js:2135
msgid "Maximum streams"
msgstr ""
@@ -2116,26 +2166,26 @@ msgstr ""
msgid "Mihomo server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:619
+#: htdocs/luci-static/resources/view/fchomo/node.js:622
msgid "Min of idle sessions to keep"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1820
+#: htdocs/luci-static/resources/view/fchomo/node.js:2060
msgid "Min posts interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:2127
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:316
-#: htdocs/luci-static/resources/view/fchomo/node.js:426
+#: htdocs/luci-static/resources/view/fchomo/node.js:429
msgid "Minimum padding rate"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2126
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Minimum streams"
msgstr ""
@@ -2153,19 +2203,23 @@ msgid "Mixed port"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1388
-#: htdocs/luci-static/resources/view/fchomo/node.js:1864
+#: htdocs/luci-static/resources/view/fchomo/node.js:2104
msgid "Multiplex"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:125
-#: htdocs/luci-static/resources/view/fchomo/node.js:256
+#: htdocs/luci-static/resources/view/fchomo/node.js:259
msgid "Multiplex fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:367
+#: htdocs/luci-static/resources/view/fchomo/node.js:370
msgid "Multiplexing"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+msgid "NO Listener"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/client.js:642
#: htdocs/luci-static/resources/view/fchomo/client.js:718
msgid "NOT"
@@ -2175,11 +2229,11 @@ msgstr ""
msgid "Name of the Proxy group as outbound."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2438
msgid "Name of the Proxy group to download provider."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:404
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:406
msgid "Name of the Proxy group to download rule set."
msgstr ""
@@ -2187,23 +2241,33 @@ msgstr ""
msgid "Name of the Sub rule used for inbound matching."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:641
+#: htdocs/luci-static/resources/view/fchomo/node.js:644
msgid "Native UDP"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:398
+#: htdocs/luci-static/resources/fchomo.js:399
msgid "Native appearance"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1007
+#: htdocs/luci-static/resources/view/fchomo/node.js:1016
msgid "Network"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network name"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network secret"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:662
msgid "Network type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2367
+#: htdocs/luci-static/resources/view/fchomo/node.js:2607
msgid "No"
msgstr ""
@@ -2219,40 +2283,40 @@ msgstr ""
msgid "No add'l params"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1804
+#: htdocs/luci-static/resources/view/fchomo/node.js:2044
msgid "No gRPC header"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2430
+#: htdocs/luci-static/resources/view/fchomo/node.js:2670
msgid "No testing is performed when this provider node is not in use."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:728
+#: htdocs/luci-static/resources/fchomo.js:729
msgid "No valid %s found."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:229
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
msgid "No valid rule-set link found."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1092
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Node"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1254
-#: htdocs/luci-static/resources/view/fchomo/node.js:2450
+#: htdocs/luci-static/resources/view/fchomo/node.js:2690
msgid "Node exclude filter"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2457
+#: htdocs/luci-static/resources/view/fchomo/node.js:2697
msgid "Node exclude type"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2444
+#: htdocs/luci-static/resources/view/fchomo/node.js:2684
msgid "Node filter"
msgstr ""
@@ -2260,65 +2324,65 @@ msgstr ""
msgid "Node switch tolerance"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:425
+#: htdocs/luci-static/resources/fchomo.js:426
msgid "None"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:819
+#: htdocs/luci-static/resources/view/fchomo/node.js:822
msgid "Normal"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:634
+#: htdocs/luci-static/resources/view/fchomo/global.js:635
msgid "Not Installed"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Not Running"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:487
+#: htdocs/luci-static/resources/view/fchomo/node.js:490
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "ON"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Obfs Mode"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:734
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Obfuscate maximum packet size"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:507
-#: htdocs/luci-static/resources/view/fchomo/node.js:729
+#: htdocs/luci-static/resources/view/fchomo/node.js:732
msgid "Obfuscate minimum packet size"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:721
+#: htdocs/luci-static/resources/view/fchomo/node.js:724
msgid "Obfuscate password"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:291
#: htdocs/luci-static/resources/fchomo/listeners.js:492
-#: htdocs/luci-static/resources/view/fchomo/node.js:412
-#: htdocs/luci-static/resources/view/fchomo/node.js:714
+#: htdocs/luci-static/resources/view/fchomo/node.js:415
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "Obfuscate type"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:293
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
+#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
msgid "Obfuscated as %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
msgid "One or more numbers in the range 0-63 separated by commas"
msgstr ""
@@ -2327,15 +2391,25 @@ msgid "Only applicable when %s are used as a frontend."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Only applies to the %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:754
+#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+msgid ""
+"Only nodes using the same %s and %s as this network are permitted to perform "
+"a handshake or relay traffic through this node."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:755
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1578
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
+msgid "Only the address %s is valid."
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:1579
msgid "Open Dashboard"
msgstr ""
@@ -2347,7 +2421,7 @@ msgstr ""
msgid "Option is deprecated. Please use %s instead."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2315
+#: htdocs/luci-static/resources/view/fchomo/node.js:2555
msgid "Other configuration items"
msgstr ""
@@ -2355,22 +2429,22 @@ msgstr ""
msgid "Outbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1396
-#: htdocs/luci-static/resources/view/fchomo/node.js:2354
+#: htdocs/luci-static/resources/view/fchomo/node.js:1548
+#: htdocs/luci-static/resources/view/fchomo/node.js:2594
msgid "Override cert DNSName"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:679
-#: htdocs/luci-static/resources/view/fchomo/global.js:717
+#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:718
msgid "Override destination"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2349
msgid "Override fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:633
+#: htdocs/luci-static/resources/view/fchomo/node.js:636
msgid "Override the IP address of the server that DNS response."
msgstr ""
@@ -2378,7 +2452,7 @@ msgstr ""
msgid "Override the Proxy group of DNS server."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:681
msgid "Override the connection destination address with the sniffed domain."
msgstr ""
@@ -2386,7 +2460,7 @@ msgstr ""
msgid "Override the existing ECS in original request."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
msgid "Overrides the domain name used for HTTPS record queries."
msgstr ""
@@ -2394,19 +2468,19 @@ msgstr ""
msgid "Overview"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1731
+#: htdocs/luci-static/resources/view/fchomo/node.js:1971
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1732
+#: htdocs/luci-static/resources/view/fchomo/node.js:1972
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:569
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Packet encoding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1809
+#: htdocs/luci-static/resources/view/fchomo/node.js:2049
msgid "Padding bytes"
msgstr ""
@@ -2415,81 +2489,85 @@ msgid "Padding scheme"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Paddings"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:167
#: htdocs/luci-static/resources/fchomo/listeners.js:184
#: htdocs/luci-static/resources/fchomo/listeners.js:738
-#: htdocs/luci-static/resources/view/fchomo/node.js:324
-#: htdocs/luci-static/resources/view/fchomo/node.js:345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+#: htdocs/luci-static/resources/view/fchomo/node.js:327
+#: htdocs/luci-static/resources/view/fchomo/node.js:348
+#: htdocs/luci-static/resources/view/fchomo/node.js:1326
msgid "Password"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:589
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
+#: htdocs/luci-static/resources/view/fchomo/node.js:790
msgid "Path MTU Discovery"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:387
msgid "Path in bundle"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:386
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Path in bundle: %s"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:812
-#: htdocs/luci-static/resources/view/fchomo/node.js:2173
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
+#: htdocs/luci-static/resources/view/fchomo/node.js:2413
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:375
msgid "Payload"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:920
+#: htdocs/luci-static/resources/view/fchomo/node.js:929
msgid "Peer public key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:1068
+msgid "Peers"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:542
msgid ""
"Performance may degrade slightly, so it is not recommended to enable on when "
"it is not needed."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:947
+#: htdocs/luci-static/resources/view/fchomo/node.js:956
msgid "Periodically sends data packets to maintain connection persistence."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:946
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Persistent keepalive"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:827
+#: htdocs/luci-static/resources/view/fchomo/node.js:830
msgid "Physical MTU"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:306
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
msgid "Plain text"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:881
+#: htdocs/luci-static/resources/view/fchomo/global.js:882
msgid ""
"Please ensure that the DNS query of the domains to be processed in the DNS "
"policyare send via DIRECT/Proxy Node in the same semantics as Routing "
"mode."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:210
msgid ""
"Please refer to %s for link format "
"standards."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2146
-#: htdocs/luci-static/resources/view/fchomo/node.js:2172
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
+#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/node.js:2412
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid ""
"Please type %s"
"a>."
@@ -2501,60 +2579,56 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1545
#: htdocs/luci-static/resources/view/fchomo/client.js:1800
#: htdocs/luci-static/resources/view/fchomo/client.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1999
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
+#: htdocs/luci-static/resources/view/fchomo/node.js:2239
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:157
msgid "Please type %s fields of mihomo config."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Plugin"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:120
-#: htdocs/luci-static/resources/view/fchomo/node.js:250
+#: htdocs/luci-static/resources/view/fchomo/node.js:253
msgid "Plugin fields"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/view/fchomo/node.js:1275
msgid "Plugin type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:279
+#: htdocs/luci-static/resources/view/fchomo/node.js:282
msgid "Port"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1815
-msgid "Port %s alrealy exists!"
-msgstr ""
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:708
+#: htdocs/luci-static/resources/view/fchomo/node.js:711
msgid "Port hop interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:355
+#: htdocs/luci-static/resources/view/fchomo/node.js:358
msgid "Port range"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:714
+#: htdocs/luci-static/resources/view/fchomo/global.js:715
msgid "Ports"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:154
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Ports pool"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:524
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:927
+#: htdocs/luci-static/resources/view/fchomo/node.js:507
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
msgid "Pre-shared key"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1010
-#: htdocs/luci-static/resources/view/fchomo/node.js:1284
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Pre-shared key of rendezvous server"
msgstr ""
@@ -2566,69 +2640,73 @@ msgstr ""
msgid "Prefer IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:545
+#: htdocs/luci-static/resources/view/fchomo/global.js:546
msgid ""
"Prevent ICMP loopback issues in some cases. Ping will not show real delay."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Primary"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:760
-#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1960
-#: htdocs/luci-static/resources/view/fchomo/node.js:1967
-#: htdocs/luci-static/resources/view/fchomo/node.js:2379
-#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/global.js:761
+#: htdocs/luci-static/resources/view/fchomo/global.js:778
+#: htdocs/luci-static/resources/view/fchomo/node.js:2200
+#: htdocs/luci-static/resources/view/fchomo/node.js:2207
+#: htdocs/luci-static/resources/view/fchomo/node.js:2619
+#: htdocs/luci-static/resources/view/fchomo/node.js:2626
msgid "Priority: Proxy Node > Global."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1028
+#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "Priv-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1032
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "Priv-key passphrase"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:899
-#: htdocs/luci-static/resources/view/fchomo/node.js:992
+#: htdocs/luci-static/resources/view/fchomo/node.js:908
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
msgid "Private key"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1055
+msgid "Private network"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/global.js:421
msgid "Process matching mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2545
msgid "Programmable replacement"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1870
+#: htdocs/luci-static/resources/view/fchomo/global.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:2110
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "Protocol parameter. Enable length block encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:558
+#: htdocs/luci-static/resources/view/fchomo/node.js:561
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1112
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
-#: htdocs/luci-static/resources/view/fchomo/node.js:2495
+#: htdocs/luci-static/resources/view/fchomo/node.js:2222
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
+#: htdocs/luci-static/resources/view/fchomo/node.js:2741
msgid "Provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2419
msgid "Provider URL"
msgstr ""
@@ -2638,33 +2716,33 @@ msgstr ""
msgid "Proxy Group"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:810
+#: htdocs/luci-static/resources/view/fchomo/global.js:811
msgid "Proxy IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:813
+#: htdocs/luci-static/resources/view/fchomo/global.js:814
msgid "Proxy IPv6 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:816
+#: htdocs/luci-static/resources/view/fchomo/global.js:817
msgid "Proxy MAC-s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:222
-#: htdocs/luci-static/resources/view/fchomo/node.js:2494
+#: htdocs/luci-static/resources/view/fchomo/node.js:225
+#: htdocs/luci-static/resources/view/fchomo/node.js:2740
msgid "Proxy Node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2470
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2716
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Proxy chain"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:622
#: htdocs/luci-static/resources/view/fchomo/client.js:813
#: htdocs/luci-static/resources/view/fchomo/client.js:1643
-#: htdocs/luci-static/resources/view/fchomo/node.js:2197
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
+#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:405
msgid "Proxy group"
msgstr ""
@@ -2676,26 +2754,26 @@ msgstr ""
msgid "Proxy mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:819
+#: htdocs/luci-static/resources/view/fchomo/global.js:820
msgid "Proxy routerself"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:916
+#: htdocs/luci-static/resources/view/fchomo/node.js:925
msgid "Public key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:645
+#: htdocs/luci-static/resources/view/fchomo/node.js:801
msgid "QUIC"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/view/fchomo/node.js:751
+#: htdocs/luci-static/resources/view/fchomo/node.js:754
msgid "QUIC based 0-RTT"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "QUIC versions"
msgstr ""
@@ -2706,11 +2784,11 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1132
#: htdocs/luci-static/resources/fchomo/listeners.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1617
msgid "REALITY"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "REALITY X25519MLKEM768 PQC support"
msgstr ""
@@ -2731,46 +2809,46 @@ msgid "REALITY private key"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1481
+#: htdocs/luci-static/resources/view/fchomo/node.js:1633
msgid "REALITY public key"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1280
-#: htdocs/luci-static/resources/view/fchomo/node.js:1486
+#: htdocs/luci-static/resources/view/fchomo/node.js:1638
msgid "REALITY short ID"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:289
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "REMATCH-NAME marking"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:843
#: htdocs/luci-static/resources/fchomo/listeners.js:862
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
msgid "RTT"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:390
+#: htdocs/luci-static/resources/fchomo.js:391
msgid "Random"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:668
+#: htdocs/luci-static/resources/view/fchomo/global.js:669
msgid "Random will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:400
+#: htdocs/luci-static/resources/fchomo.js:401
msgid "Randomized traffic characteristics"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:999
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "Realm"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Realm ID"
msgstr ""
@@ -2794,7 +2872,7 @@ msgstr ""
msgid "Redirect TCP + Tun UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:835
+#: htdocs/luci-static/resources/view/fchomo/node.js:838
msgid "Reduces background traffic and network configuration refresh frequency."
msgstr ""
@@ -2802,7 +2880,7 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1571
+#: htdocs/luci-static/resources/fchomo.js:1572
#: htdocs/luci-static/resources/view/fchomo/client.js:970
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
@@ -2821,78 +2899,73 @@ msgstr ""
msgid "Rematching routing rules"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2124
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
+#: htdocs/luci-static/resources/view/fchomo/node.js:2364
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:289
msgid "Remote"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1658
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Remote DNS resolve"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
msgid "Remote trace level"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:811
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "Remote trace target"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1736
-msgid "Remove"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1741
-#: htdocs/luci-static/resources/view/fchomo/node.js:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2100
-#: htdocs/luci-static/resources/view/fchomo/node.js:2102
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
+#: htdocs/luci-static/resources/view/fchomo/node.js:244
+#: htdocs/luci-static/resources/view/fchomo/node.js:246
+#: htdocs/luci-static/resources/view/fchomo/node.js:2340
+#: htdocs/luci-static/resources/view/fchomo/node.js:2342
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:263
msgid "Remove idles"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1004
-#: htdocs/luci-static/resources/view/fchomo/node.js:1278
+#: htdocs/luci-static/resources/view/fchomo/node.js:1430
msgid "Rendezvous server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2296
+#: htdocs/luci-static/resources/view/fchomo/node.js:2536
msgid "Replace name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2297
+#: htdocs/luci-static/resources/view/fchomo/node.js:2537
msgid "Replace node name."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/fchomo.js:375
msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1344
-#: htdocs/luci-static/resources/view/fchomo/node.js:1738
-#: htdocs/luci-static/resources/view/fchomo/node.js:1745
+#: htdocs/luci-static/resources/view/fchomo/node.js:1978
+#: htdocs/luci-static/resources/view/fchomo/node.js:1985
msgid "Request path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:682
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Request timeout"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:377
+#: htdocs/luci-static/resources/fchomo.js:378
msgid "Require and verify"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:375
+#: htdocs/luci-static/resources/fchomo.js:376
msgid "Require any"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
-#: htdocs/luci-static/resources/view/fchomo/node.js:1492
+#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/view/fchomo/node.js:1644
msgid "Requires server support."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:941
+#: htdocs/luci-static/resources/view/fchomo/node.js:950
msgid "Reserved field bytes"
msgstr ""
@@ -2905,15 +2978,15 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:699
#: htdocs/luci-static/resources/fchomo/listeners.js:1130
#: htdocs/luci-static/resources/fchomo/listeners.js:1246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1128
-#: htdocs/luci-static/resources/view/fchomo/node.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1473
+#: htdocs/luci-static/resources/view/fchomo/node.js:1280
+#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "Restls"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:753
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Restls script"
msgstr ""
@@ -2927,49 +3000,49 @@ msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:485
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:838
+#: htdocs/luci-static/resources/view/fchomo/global.js:839
msgid "Routing Control"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:893
-#: htdocs/luci-static/resources/view/fchomo/global.js:896
+#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:897
msgid "Routing DSCP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:863
+#: htdocs/luci-static/resources/view/fchomo/global.js:864
msgid "Routing GFW"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/global.js:777
+#: htdocs/luci-static/resources/view/fchomo/node.js:2206
+#: htdocs/luci-static/resources/view/fchomo/node.js:2625
msgid "Routing mark (Fwmark)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:858
+#: htdocs/luci-static/resources/view/fchomo/global.js:859
msgid "Routing mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:859
+#: htdocs/luci-static/resources/view/fchomo/global.js:860
msgid "Routing mode of the traffic enters mihomo via firewall rules."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:880
+#: htdocs/luci-static/resources/view/fchomo/global.js:881
msgid "Routing mode will be handle domain."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:840
-#: htdocs/luci-static/resources/view/fchomo/global.js:849
+#: htdocs/luci-static/resources/view/fchomo/global.js:841
+#: htdocs/luci-static/resources/view/fchomo/global.js:850
msgid "Routing ports"
msgstr ""
@@ -2978,11 +3051,11 @@ msgstr ""
msgid "Routing rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:770
+#: htdocs/luci-static/resources/view/fchomo/global.js:771
msgid "Routing rule priority"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:764
+#: htdocs/luci-static/resources/view/fchomo/global.js:765
msgid "Routing table ID"
msgstr ""
@@ -2992,15 +3065,15 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:878
#: htdocs/luci-static/resources/view/fchomo/client.js:891
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Rule set"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:379
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:381
msgid "Rule set URL"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:824
msgid "Rules"
msgstr ""
@@ -3008,15 +3081,15 @@ msgstr ""
msgid "Ruleset"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:209
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:211
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Running"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:255
+#: htdocs/luci-static/resources/fchomo.js:256
msgid "SMTP"
msgstr ""
@@ -3028,16 +3101,16 @@ msgstr ""
msgid "SOCKS5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
msgid "SSH"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:256
+#: htdocs/luci-static/resources/fchomo.js:257
msgid "STUN"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1021
-#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1447
msgid "STUN servers"
msgstr ""
@@ -3045,12 +3118,12 @@ msgstr ""
msgid "SUB-RULE"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1109
+#: htdocs/luci-static/resources/view/fchomo/node.js:1261
msgid "SUoT version"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:716
+#: htdocs/luci-static/resources/view/fchomo/node.js:719
msgid "Salamander"
msgstr ""
@@ -3067,24 +3140,28 @@ msgstr ""
msgid "Save"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "Secondary"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+msgid "Secure Mode"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:531
msgid "Segment maximum size"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:245
+#: htdocs/luci-static/resources/fchomo.js:246
msgid "Select"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:626
+#: htdocs/luci-static/resources/view/fchomo/global.js:627
msgid "Select Dashboard"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:414
+#: htdocs/luci-static/resources/fchomo.js:415
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr ""
@@ -3092,8 +3169,8 @@ msgstr ""
msgid "Send queries to both the %s and the %s."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:403
#: htdocs/luci-static/resources/fchomo.js:404
+#: htdocs/luci-static/resources/fchomo.js:405
msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse."
msgstr ""
@@ -3105,17 +3182,17 @@ msgstr ""
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:277
msgid "Server address"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1338
-#: htdocs/luci-static/resources/view/fchomo/node.js:1717
-#: htdocs/luci-static/resources/view/fchomo/node.js:1723
+#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Server hostname"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1009
msgid "Server public key"
msgstr ""
@@ -3137,10 +3214,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1129
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1127
-#: htdocs/luci-static/resources/view/fchomo/node.js:1137
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1279
+#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "ShadowTLS"
msgstr ""
@@ -3150,21 +3227,21 @@ msgid "Shadowsocks"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Shadowsocks chipher"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:577
+#: htdocs/luci-static/resources/view/fchomo/node.js:580
msgid "Shadowsocks encrypt"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:590
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Shadowsocks password"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:2158
msgid "Show connections in the dashboard for breaking connections easier."
msgstr ""
@@ -3176,26 +3253,26 @@ msgstr ""
msgid "Simple round-robin all nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2185
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2425
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:393
msgid "Size limit"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
-#: htdocs/luci-static/resources/view/fchomo/node.js:2360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1554
+#: htdocs/luci-static/resources/view/fchomo/node.js:2600
msgid "Skip cert verify"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:686
+#: htdocs/luci-static/resources/view/fchomo/global.js:687
msgid "Skiped sniffing domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:692
+#: htdocs/luci-static/resources/view/fchomo/global.js:693
msgid "Skiped sniffing dst address"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:689
+#: htdocs/luci-static/resources/view/fchomo/global.js:690
msgid "Skiped sniffing src address"
msgstr ""
@@ -3204,24 +3281,24 @@ msgstr ""
msgid "Snell"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:696
+#: htdocs/luci-static/resources/view/fchomo/global.js:697
msgid "Sniff protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:673
+#: htdocs/luci-static/resources/view/fchomo/global.js:674
msgid "Sniffer"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:676
+#: htdocs/luci-static/resources/view/fchomo/global.js:677
msgid "Sniffer settings"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:446
+#: htdocs/luci-static/resources/fchomo.js:447
msgid "Specify a ID"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:841
-#: htdocs/luci-static/resources/view/fchomo/global.js:850
+#: htdocs/luci-static/resources/view/fchomo/global.js:842
+#: htdocs/luci-static/resources/view/fchomo/global.js:851
msgid ""
"Specify target ports to be proxied. Multiple ports must be separated by "
"commas."
@@ -3235,11 +3312,11 @@ msgstr ""
msgid "Standard"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:259
+#: htdocs/luci-static/resources/fchomo.js:260
msgid "Steam Client"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "Steam P2P"
msgstr ""
@@ -3249,7 +3326,7 @@ msgid "Strategy"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:775
+#: htdocs/luci-static/resources/view/fchomo/node.js:778
msgid "Stream-level receive window size"
msgstr ""
@@ -3263,8 +3340,12 @@ msgstr ""
msgid "Sub rule group"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:731
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+msgid "Subnet proxy"
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:732
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:233
msgid "Successfully imported %s %s of total %s."
msgstr ""
@@ -3272,20 +3353,16 @@ msgstr ""
msgid "Successfully updated."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2098
-msgid "Successfully uploaded."
-msgstr ""
-
#: htdocs/luci-static/resources/fchomo.js:159
#: htdocs/luci-static/resources/fchomo.js:196
msgid "Sudoku"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:741
+#: htdocs/luci-static/resources/view/fchomo/node.js:744
msgid "Support %s, default %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:206
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
msgid ""
"Supports rule-set links of type: %s and format: %s."
""
@@ -3313,7 +3390,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:201
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
#: htdocs/luci-static/resources/fchomo/listeners.js:663
#: htdocs/luci-static/resources/view/fchomo/client.js:618
#: htdocs/luci-static/resources/view/fchomo/client.js:710
@@ -3324,7 +3401,7 @@ msgstr ""
msgid "TCP concurrency"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1911
+#: htdocs/luci-static/resources/view/fchomo/node.js:2151
msgid "TCP only"
msgstr ""
@@ -3348,34 +3425,43 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:193
#: htdocs/luci-static/resources/fchomo.js:195
#: htdocs/luci-static/resources/fchomo.js:206
+#: htdocs/luci-static/resources/fchomo.js:211
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1942
-#: htdocs/luci-static/resources/view/fchomo/node.js:2321
+#: htdocs/luci-static/resources/view/fchomo/node.js:2182
+#: htdocs/luci-static/resources/view/fchomo/node.js:2561
msgid "TFO"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1171
+msgid "TLD DNS zone"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1172
+msgid "TLD DNS zone used by MagicDNS, default is %s."
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo/listeners.js:711
#: htdocs/luci-static/resources/fchomo/listeners.js:1031
-#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1305
+#: htdocs/luci-static/resources/view/fchomo/global.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1457
msgid "TLS"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1072
-#: htdocs/luci-static/resources/view/fchomo/node.js:1336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1488
msgid "TLS ALPN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1330
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
msgid "TLS SNI"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:123
-#: htdocs/luci-static/resources/view/fchomo/node.js:253
+#: htdocs/luci-static/resources/view/fchomo/node.js:256
msgid "TLS fields"
msgstr ""
@@ -3384,12 +3470,12 @@ msgstr ""
msgid "TUIC"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:257
+#: htdocs/luci-static/resources/fchomo.js:258
msgid "TURN"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:209
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "Tailscale"
msgstr ""
@@ -3402,34 +3488,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1595
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1616
-#: htdocs/luci-static/resources/view/fchomo/node.js:1620
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1801
+#: htdocs/luci-static/resources/view/fchomo/node.js:1805
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1833
+#: htdocs/luci-static/resources/view/fchomo/node.js:1837
msgid "The %s address used by local machine in the %s network."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1151
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
msgid "The %s private key, in PEM format."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1121
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
msgid "The %s public key, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:394
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr ""
@@ -3437,7 +3524,7 @@ msgstr ""
msgid "The ED25519 master public key or UUID generated by Sudoku."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "The client metadata sent to the server."
msgstr ""
@@ -3445,14 +3532,14 @@ msgstr ""
msgid "The default value is 2:00 every day."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:1243
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:875
-#: htdocs/luci-static/resources/view/fchomo/node.js:1252
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr ""
@@ -3472,24 +3559,24 @@ msgid "The proxy used to connect to the handshake target."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:873
-#: htdocs/luci-static/resources/view/fchomo/node.js:1250
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "The server and client can set different padding parameters."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1232
-#: htdocs/luci-static/resources/view/fchomo/global.js:615
+#: htdocs/luci-static/resources/view/fchomo/global.js:616
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1682
-#: htdocs/luci-static/resources/view/fchomo/node.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1557
+#: htdocs/luci-static/resources/view/fchomo/node.js:2603
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:647
+#: htdocs/luci-static/resources/view/fchomo/node.js:650
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3506,11 +3593,11 @@ msgid ""
"kmod-tun"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:885
+#: htdocs/luci-static/resources/view/fchomo/global.js:886
msgid "To enable, you need to install dnsmasq-full."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:783
+#: htdocs/luci-static/resources/view/fchomo/global.js:784
msgid "Tproxy Fwmark/fwmask"
msgstr ""
@@ -3519,32 +3606,32 @@ msgid "Tproxy port"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:206
-#: htdocs/luci-static/resources/view/fchomo/node.js:383
+#: htdocs/luci-static/resources/view/fchomo/node.js:386
msgid "Traffic pattern"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2532
+#: htdocs/luci-static/resources/view/fchomo/node.js:2778
msgid "Transit proxy group"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2543
+#: htdocs/luci-static/resources/view/fchomo/node.js:2789
msgid "Transit proxy node"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/fchomo/listeners.js:1302
-#: htdocs/luci-static/resources/view/fchomo/node.js:360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1910
msgid "Transport"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:124
-#: htdocs/luci-static/resources/view/fchomo/node.js:255
+#: htdocs/luci-static/resources/view/fchomo/node.js:258
msgid "Transport fields"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1307
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/node.js:1915
msgid "Transport type"
msgstr ""
@@ -3566,7 +3653,7 @@ msgstr ""
msgid "Trusted proxy header"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:788
+#: htdocs/luci-static/resources/view/fchomo/global.js:789
msgid "Tun Fwmark/fwmask"
msgstr ""
@@ -3586,7 +3673,7 @@ msgstr ""
msgid "Tunnel"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Turns TCP relay off."
msgstr ""
@@ -3596,10 +3683,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:767
#: htdocs/luci-static/resources/view/fchomo/client.js:875
#: htdocs/luci-static/resources/view/fchomo/client.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:268
-#: htdocs/luci-static/resources/view/fchomo/node.js:2122
-#: htdocs/luci-static/resources/view/fchomo/node.js:2493
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
+#: htdocs/luci-static/resources/view/fchomo/node.js:271
+#: htdocs/luci-static/resources/view/fchomo/node.js:2362
+#: htdocs/luci-static/resources/view/fchomo/node.js:2739
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Type"
msgstr ""
@@ -3617,52 +3704,51 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:669
#: htdocs/luci-static/resources/view/fchomo/client.js:617
#: htdocs/luci-static/resources/view/fchomo/client.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1097
-#: htdocs/luci-static/resources/view/fchomo/node.js:2331
+#: htdocs/luci-static/resources/view/fchomo/node.js:2571
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:534
+#: htdocs/luci-static/resources/view/fchomo/global.js:535
msgid "UDP NAT expiration time"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
+#: htdocs/luci-static/resources/view/fchomo/node.js:649
+#: htdocs/luci-static/resources/view/fchomo/node.js:749
msgid "UDP over stream"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:652
+#: htdocs/luci-static/resources/view/fchomo/node.js:655
msgid "UDP over stream version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:639
+#: htdocs/luci-static/resources/view/fchomo/node.js:642
msgid "UDP packet relay mode."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:638
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "UDP relay mode"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "UP: %s; DOWN: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:247
+#: htdocs/luci-static/resources/fchomo.js:248
msgid "URL test"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:215
#: htdocs/luci-static/resources/fchomo/listeners.js:403
#: htdocs/luci-static/resources/fchomo/listeners.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
-#: htdocs/luci-static/resources/view/fchomo/node.js:626
+#: htdocs/luci-static/resources/view/fchomo/node.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:629
msgid "UUID"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1629
+#: htdocs/luci-static/resources/fchomo.js:1630
msgid "Unable to download unsupported type: %s"
msgstr ""
@@ -3687,8 +3773,8 @@ msgstr ""
msgid "Unknown error: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1103
-#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:2576
msgid "UoT"
msgstr ""
@@ -3696,24 +3782,24 @@ msgstr ""
msgid "Update failed."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2191
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
+#: htdocs/luci-static/resources/view/fchomo/node.js:2431
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "Update interval"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/node.js:2169
msgid "Upload bandwidth"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:2170
msgid "Upload bandwidth in Mbps."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1142
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
msgid "Upload certificate"
msgstr ""
@@ -3722,7 +3808,7 @@ msgid "Upload initial package"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1157
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "Upload key"
msgstr ""
@@ -3730,25 +3816,41 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1160
#: htdocs/luci-static/resources/fchomo/listeners.js:1185
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1419
-#: htdocs/luci-static/resources/view/fchomo/node.js:1433
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1585
msgid "Upload..."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:841
+#: htdocs/luci-static/resources/view/fchomo/node.js:1848
+msgid "Use DHCP"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1849
+msgid "Use DHCP to obtain IP address."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:844
msgid "Use protocol-13 extended encryption for outgoing HELLO packets."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:302
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Use sub rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+msgid "Used to forward traffic to the specified nodes for external access."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Used to replace the built-in official %s."
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
+msgid "Used to replace the contents of default %s."
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1499
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
@@ -3769,8 +3871,8 @@ msgstr ""
msgid "Used to resolve the domain of the Proxy node."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
-#: htdocs/luci-static/resources/view/fchomo/node.js:2355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1549
+#: htdocs/luci-static/resources/view/fchomo/node.js:2595
msgid "Used to verify the hostname on the returned certificates."
msgstr ""
@@ -3784,28 +3886,32 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:162
#: htdocs/luci-static/resources/fchomo/listeners.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1319
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:796
+#: htdocs/luci-static/resources/view/fchomo/global.js:797
msgid "Users filter mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Uses TCP relay only."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "Uses relay after UDP direct failure."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+msgid "Using this in conjunction with %s is recommended."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2026
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1791
+#: htdocs/luci-static/resources/view/fchomo/node.js:2031
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3819,58 +3925,65 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
msgid "VPN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:254
+#: htdocs/luci-static/resources/view/fchomo/node.js:257
msgid "VPN fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
msgid "Valid 16-digit Moon World ID and 10-digit Node ID of Moon Root server."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2128
-#: htdocs/luci-static/resources/view/fchomo/node.js:2499
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
+#: htdocs/luci-static/resources/view/fchomo/node.js:2368
+#: htdocs/luci-static/resources/view/fchomo/node.js:2745
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:330
msgid "Value"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:820
+#: htdocs/luci-static/resources/view/fchomo/node.js:823
msgid "Verbose"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:376
+#: htdocs/luci-static/resources/fchomo.js:377
msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:392
#: htdocs/luci-static/resources/fchomo/listeners.js:745
-#: htdocs/luci-static/resources/view/fchomo/node.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "Version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1341
msgid "Version hint"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1607
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1817
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Virtual IPv4 address"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1824
msgid "Virtual IPv6 address"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1581
+#: htdocs/luci-static/resources/view/fchomo/node.js:1791
msgid "Virtual address"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:121
-#: htdocs/luci-static/resources/view/fchomo/node.js:251
+#: htdocs/luci-static/resources/view/fchomo/node.js:254
msgid "Vless Encryption fields"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:413
+#: htdocs/luci-static/resources/fchomo.js:414
msgid "Wait a random 0-111 milliseconds with 75% probability."
msgstr ""
@@ -3882,12 +3995,12 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1309
#: htdocs/luci-static/resources/fchomo/listeners.js:1320
#: htdocs/luci-static/resources/fchomo/listeners.js:1327
-#: htdocs/luci-static/resources/view/fchomo/node.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1693
-#: htdocs/luci-static/resources/view/fchomo/node.js:1700
-#: htdocs/luci-static/resources/view/fchomo/node.js:1706
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
+#: htdocs/luci-static/resources/view/fchomo/node.js:1946
msgid "WebSocket"
msgstr ""
@@ -3895,11 +4008,15 @@ msgstr ""
msgid "When used as a server, HomeProxy is a better choice."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:975
+#: htdocs/luci-static/resources/view/fchomo/node.js:1166
+msgid "Whether to accept DNS configurations distributed by the network."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:984
msgid "Whether to accept routes advertised by other nodes."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:799
msgid "White list"
msgstr ""
@@ -3907,45 +4024,45 @@ msgstr ""
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:930
msgid "WireGuard peer public key."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "WireGuard pre-shared key."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:909
msgid "WireGuard requires base64-encoded private keys."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
msgid "Wireguard"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1310
#: htdocs/luci-static/resources/fchomo/listeners.js:1321
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
+#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:1941
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:1796
+#: htdocs/luci-static/resources/view/fchomo/node.js:2036
msgid "XHTTP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1827
+#: htdocs/luci-static/resources/view/fchomo/node.js:2067
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "XMUX:"
msgstr ""
@@ -3953,55 +4070,64 @@ msgstr ""
msgid "XOR mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:575
msgid "Xudp (Xray-core)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:309
msgid "Yaml text"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2366
+#: htdocs/luci-static/resources/view/fchomo/node.js:2606
msgid "Yes"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+msgid ""
+"You can add %s in the %s to resolve A/PTR records within the virtual network."
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo.js:47
msgid "YouTube"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2080
-msgid "Your %s was successfully uploaded. Size: %sB."
-msgstr ""
-
#: htdocs/luci-static/resources/fchomo.js:207
msgid "ZeroTier"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:828
+#: htdocs/luci-static/resources/view/fchomo/node.js:831
msgid "ZeroTier UDP payload MTU."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:349
-#: htdocs/luci-static/resources/fchomo.js:362
-#: htdocs/luci-static/resources/fchomo.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
+#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:363
+#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
msgid "aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:351
msgid "aes-192-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:351
-#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/fchomo.js:352
+#: htdocs/luci-static/resources/fchomo.js:369
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1139
+msgid "aes-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1140
+msgid "aes-gcm-256"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2453
msgid "age private key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2274
+#: htdocs/luci-static/resources/view/fchomo/node.js:2514
msgid "age public key"
msgstr ""
@@ -4013,37 +4139,41 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:549
+#: htdocs/luci-static/resources/view/fchomo/node.js:552
msgid "auto"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:56
-#: htdocs/luci-static/resources/view/fchomo/node.js:1060
+#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "bbr"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1061
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "bbr3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1147
#: htdocs/luci-static/resources/fchomo/listeners.js:1187
-#: htdocs/luci-static/resources/view/fchomo/node.js:1421
+#: htdocs/luci-static/resources/view/fchomo/node.js:1573
msgid "certificate"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:352
-#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/fchomo.js:369
+#: htdocs/luci-static/resources/view/fchomo/node.js:1138
+msgid "chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:364
+#: htdocs/luci-static/resources/fchomo.js:370
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:556
msgid "chacha20-poly1305"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:54
-#: htdocs/luci-static/resources/view/fchomo/node.js:1058
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "cubic"
msgstr ""
@@ -4052,66 +4182,66 @@ msgstr ""
msgid "decryption"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:832
+#: htdocs/luci-static/resources/view/fchomo/global.js:833
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2348
+#: htdocs/luci-static/resources/view/fchomo/node.js:2588
msgid "down"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:821
-#: htdocs/luci-static/resources/view/fchomo/node.js:1204
-#: htdocs/luci-static/resources/view/fchomo/node.js:1227
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "encryption"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:449
+#: htdocs/luci-static/resources/view/fchomo/node.js:452
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1308
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1939
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2002
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1767
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "gRPC ping interval"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1351
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1998
msgid "gRPC service name"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:517
-#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1203
msgid "gVisor"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1011
+#: htdocs/luci-static/resources/view/fchomo/node.js:1020
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1874
+#: htdocs/luci-static/resources/view/fchomo/node.js:2114
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1009
+#: htdocs/luci-static/resources/view/fchomo/node.js:1018
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1010
+#: htdocs/luci-static/resources/view/fchomo/node.js:1019
msgid "h3-l4proxy"
msgstr ""
@@ -4119,11 +4249,17 @@ msgstr ""
msgid "least one keypair required"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:2710
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:435
+msgid "luci-app-tinyfilemanager is not installed, please install it first."
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo.js:77
msgid "metacubexd"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1052
+#: htdocs/luci-static/resources/view/fchomo/global.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:1204
msgid "mihomo IP stack (MIPS)"
msgstr ""
@@ -4133,17 +4269,17 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1580
#: htdocs/luci-static/resources/view/fchomo/client.js:1814
#: htdocs/luci-static/resources/view/fchomo/client.js:1870
-#: htdocs/luci-static/resources/view/fchomo/node.js:2094
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2334
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "mihomo config"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:395
+#: htdocs/luci-static/resources/fchomo.js:396
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1947
-#: htdocs/luci-static/resources/view/fchomo/node.js:2326
+#: htdocs/luci-static/resources/view/fchomo/node.js:2187
+#: htdocs/luci-static/resources/view/fchomo/node.js:2566
msgid "mpTCP"
msgstr ""
@@ -4155,19 +4291,12 @@ msgstr ""
msgid "no-resolve"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1973
-msgid "non-empty value"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:347
-#: htdocs/luci-static/resources/fchomo.js:361
-#: htdocs/luci-static/resources/fchomo.js:373
-#: htdocs/luci-static/resources/view/fchomo/node.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:570
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
+#: htdocs/luci-static/resources/fchomo.js:348
+#: htdocs/luci-static/resources/fchomo.js:362
+#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:326
msgid "none"
msgstr ""
@@ -4179,7 +4308,7 @@ msgstr ""
msgid "not included \",\""
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:233
+#: htdocs/luci-static/resources/fchomo.js:234
#: htdocs/luci-static/resources/fchomo/listeners.js:612
#: htdocs/luci-static/resources/fchomo/listeners.js:615
msgid "null"
@@ -4187,43 +4316,55 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:682
#: htdocs/luci-static/resources/fchomo/listeners.js:692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "only applies when %s is %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
msgid "only applies when %s is not %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1141
+msgid "openssl-aes128-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1142
+msgid "openssl-aes256-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1143
+msgid "openssl-chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2547
msgid "override.override-expr"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2299
+#: htdocs/luci-static/resources/view/fchomo/node.js:2539
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:574
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1361
-#: htdocs/luci-static/resources/view/fchomo/node.js:1800
+#: htdocs/luci-static/resources/view/fchomo/node.js:2040
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:368
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
msgid "poll"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1162
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1587
msgid "private key"
msgstr ""
@@ -4231,7 +4372,7 @@ msgstr ""
msgid "razord-meta"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1211
msgid "reno"
msgstr ""
@@ -4240,16 +4381,16 @@ msgstr ""
msgid "requires front-end adaptation using the API."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:232
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:234
msgid "rule-set"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1872
+#: htdocs/luci-static/resources/view/fchomo/node.js:2112
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "split-stream"
msgstr ""
@@ -4258,12 +4399,12 @@ msgid "src"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1359
-#: htdocs/luci-static/resources/view/fchomo/node.js:1798
+#: htdocs/luci-static/resources/view/fchomo/node.js:2038
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1799
+#: htdocs/luci-static/resources/view/fchomo/node.js:2039
msgid "stream-up"
msgstr ""
@@ -4271,7 +4412,7 @@ msgstr ""
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "stream/poll/auto"
msgstr ""
@@ -4279,11 +4420,11 @@ msgstr ""
msgid "sudoku-keypair"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1343
msgid "tls12"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1344
msgid "tls13"
msgstr ""
@@ -4291,112 +4432,77 @@ msgstr ""
msgid "unchecked"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:459
+#: htdocs/luci-static/resources/fchomo.js:460
msgid "unique UCI identifier"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:462
+#: htdocs/luci-static/resources/fchomo.js:463
msgid "unique identifier"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1982
-msgid "unique value"
-msgstr ""
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:2342
+#: htdocs/luci-static/resources/view/fchomo/node.js:2582
msgid "up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:393
#: htdocs/luci-static/resources/fchomo/listeners.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:653
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
-#: htdocs/luci-static/resources/view/fchomo/node.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:656
+#: htdocs/luci-static/resources/view/fchomo/node.js:1262
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "v1"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:394
#: htdocs/luci-static/resources/fchomo/listeners.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:513
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:1263
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "v2"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:395
#: htdocs/luci-static/resources/fchomo/listeners.js:748
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
-#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:517
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "v3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:518
msgid "v4"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:397
-#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:519
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-msgid "valid JSON format"
-msgstr ""
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
msgid "valid SHA256 string with %d characters"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-msgid "valid URL"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1900
-msgid "valid base64 key with %d characters"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-msgid "valid format: 2x, 2p, 4v"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1891
-msgid "valid hex string with %d characters"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1947
-msgid "valid key length with %d characters"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1813
-msgid "valid port value"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:1863
-msgid "valid uuid"
-msgstr ""
-
-#: htdocs/luci-static/resources/fchomo.js:419
+#: htdocs/luci-static/resources/fchomo.js:420
msgid "vless-mlkem768"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:418
+#: htdocs/luci-static/resources/fchomo.js:419
msgid "vless-x25519"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:354
msgid "xchacha20-ietf-poly1305"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1137
+msgid "xor"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo.js:78
msgid "yacd-meta"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1873
+#: htdocs/luci-static/resources/view/fchomo/node.js:2113
msgid "yamux"
msgstr ""
@@ -4404,10 +4510,10 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:554
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1631
+#: htdocs/luci-static/resources/fchomo.js:1632
msgid "🡇"
msgstr ""
diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po
index 699a160ba..1d86ee1a8 100644
--- a/luci-app-fchomo/po/zh_Hans/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hans/fchomo.po
@@ -8,12 +8,12 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "%s Hostname"
msgstr "%s 主机名称"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "%s UDP port. 0 selects an available port."
msgstr "%s UDP 端口。0 自动选择一个可用端口。"
@@ -21,21 +21,21 @@ msgstr "%s UDP 端口。0 自动选择一个可用端口。"
msgid "%s log"
msgstr "%s 日志"
-#: htdocs/luci-static/resources/view/fchomo/node.js:812
+#: htdocs/luci-static/resources/view/fchomo/node.js:815
msgid "%s of the %s used to receiving remote debugging log."
msgstr "%s,用于接收远程调试日志的 %s 的。"
-#: htdocs/luci-static/resources/fchomo.js:255
#: htdocs/luci-static/resources/fchomo.js:256
#: htdocs/luci-static/resources/fchomo.js:257
#: htdocs/luci-static/resources/fchomo.js:258
#: htdocs/luci-static/resources/fchomo.js:259
#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "%s ports"
msgstr "%s 端口"
-#: htdocs/luci-static/resources/fchomo.js:646
-#: htdocs/luci-static/resources/fchomo.js:649
+#: htdocs/luci-static/resources/fchomo.js:647
+#: htdocs/luci-static/resources/fchomo.js:650
#: htdocs/luci-static/resources/view/fchomo/client.js:318
msgid "(Imported)"
msgstr "(已导入)"
@@ -43,12 +43,12 @@ msgstr "(已导入)"
#: htdocs/luci-static/resources/fchomo/listeners.js:1165
#: htdocs/luci-static/resources/fchomo/listeners.js:1173
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "(mTLS)"
msgstr ""
@@ -65,7 +65,7 @@ msgstr ""
msgid "-- PROXY-NODE --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:836
+#: htdocs/luci-static/resources/fchomo.js:837
#: htdocs/luci-static/resources/view/fchomo/client.js:573
#: htdocs/luci-static/resources/view/fchomo/client.js:893
#: htdocs/luci-static/resources/view/fchomo/client.js:896
@@ -74,11 +74,11 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1113
#: htdocs/luci-static/resources/view/fchomo/client.js:1117
#: htdocs/luci-static/resources/view/fchomo/client.js:1373
-#: htdocs/luci-static/resources/view/fchomo/node.js:302
-#: htdocs/luci-static/resources/view/fchomo/node.js:2505
-#: htdocs/luci-static/resources/view/fchomo/node.js:2516
-#: htdocs/luci-static/resources/view/fchomo/node.js:2535
-#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2751
+#: htdocs/luci-static/resources/view/fchomo/node.js:2762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2792
msgid "-- Please choose --"
msgstr "-- 请选择 --"
@@ -90,16 +90,16 @@ msgstr ""
msgid "-- RULE-SET --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:837
+#: htdocs/luci-static/resources/fchomo.js:838
msgid "-- custom --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
+#: htdocs/luci-static/resources/fchomo.js:409
msgid "0-RTT reuse."
msgstr "0-RTT 重用。"
-#: htdocs/luci-static/resources/fchomo.js:405
-#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/fchomo.js:406
+#: htdocs/luci-static/resources/fchomo.js:410
msgid "1-RTT only."
msgstr "仅限 1-RTT。"
@@ -107,19 +107,19 @@ msgstr "仅限 1-RTT。"
msgid "163Music"
msgstr "网抑云"
-#: htdocs/luci-static/resources/fchomo.js:355
+#: htdocs/luci-static/resources/fchomo.js:356
msgid "2022-blake3-aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:356
+#: htdocs/luci-static/resources/fchomo.js:357
msgid "2022-blake3-aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:357
+#: htdocs/luci-static/resources/fchomo.js:358
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
+#: htdocs/luci-static/resources/view/fchomo/node.js:1732
msgid "-1 disables it."
msgstr "-1 表示禁用它。"
@@ -130,13 +130,13 @@ msgstr "仅限 0 或 1。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1143
#: htdocs/luci-static/resources/fchomo/listeners.js:1158
#: htdocs/luci-static/resources/fchomo/listeners.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1417
-#: htdocs/luci-static/resources/view/fchomo/node.js:1431
+#: htdocs/luci-static/resources/view/fchomo/node.js:1569
+#: htdocs/luci-static/resources/view/fchomo/node.js:1583
msgid "Save your configuration before uploading files!"
msgstr "上传文件前请先保存配置!"
#: htdocs/luci-static/resources/fchomo/listeners.js:207
-#: htdocs/luci-static/resources/view/fchomo/node.js:384
+#: htdocs/luci-static/resources/view/fchomo/node.js:387
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
@@ -145,60 +145,60 @@ msgstr ""
"一个 base64 字符串用于微调网络行为。
格式请参考文档。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:620
+#: htdocs/luci-static/resources/view/fchomo/global.js:621
msgid "API"
msgstr "API"
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
msgid "API Client Auth Certificate path"
msgstr "API 客户端认证证书路径"
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
msgid "API Client Auth type"
msgstr "API 客户端认证类型"
-#: htdocs/luci-static/resources/view/fchomo/global.js:663
+#: htdocs/luci-static/resources/view/fchomo/global.js:664
msgid "API DoH service"
msgstr "API DoH 服务器"
-#: htdocs/luci-static/resources/view/fchomo/global.js:614
+#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "API ECH config"
msgstr "API ECH 配置"
-#: htdocs/luci-static/resources/view/fchomo/global.js:575
+#: htdocs/luci-static/resources/view/fchomo/global.js:576
msgid "API ECH key"
msgstr "API ECH 密钥"
-#: htdocs/luci-static/resources/view/fchomo/global.js:654
+#: htdocs/luci-static/resources/view/fchomo/global.js:655
msgid "API HTTP port"
msgstr "API HTTP 端口"
-#: htdocs/luci-static/resources/view/fchomo/global.js:658
+#: htdocs/luci-static/resources/view/fchomo/global.js:659
msgid "API HTTPS port"
msgstr "API HTTPS 端口"
-#: htdocs/luci-static/resources/view/fchomo/global.js:556
+#: htdocs/luci-static/resources/view/fchomo/global.js:557
msgid "API TLS certificate path"
msgstr "API TLS 证书路径"
-#: htdocs/luci-static/resources/view/fchomo/global.js:560
+#: htdocs/luci-static/resources/view/fchomo/global.js:561
msgid "API TLS private key path"
msgstr "API TLS 私钥"
-#: htdocs/luci-static/resources/view/fchomo/global.js:651
+#: htdocs/luci-static/resources/view/fchomo/global.js:652
msgid "API routing mark (Fwmark)"
msgstr "API 路由标记 (Fwmark)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:667
+#: htdocs/luci-static/resources/view/fchomo/global.js:668
msgid "API secret"
msgstr "API 令牌"
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "ASCII data stream"
msgstr "ASCII 数据流"
@@ -206,12 +206,12 @@ msgstr "ASCII 数据流"
msgid "ASN version"
msgstr "ASN 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:974
+#: htdocs/luci-static/resources/view/fchomo/node.js:983
msgid "Accept routes"
msgstr "接受路由"
-#: htdocs/luci-static/resources/view/fchomo/global.js:744
-#: htdocs/luci-static/resources/view/fchomo/global.js:794
+#: htdocs/luci-static/resources/view/fchomo/global.js:745
+#: htdocs/luci-static/resources/view/fchomo/global.js:795
msgid "Access Control"
msgstr "访问控制"
@@ -227,7 +227,7 @@ msgstr "新增 DNS 策略"
msgid "Add a DNS server"
msgstr "新增 DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Add a Node"
msgstr "新增 节点"
@@ -235,11 +235,11 @@ msgstr "新增 节点"
msgid "Add a inbound"
msgstr "新增 入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
msgid "Add a provider"
msgstr "新增 供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Add a proxy chain"
msgstr "新增 代理链"
@@ -251,7 +251,7 @@ msgstr "新增 代理组"
msgid "Add a routing rule"
msgstr "新增 路由规则"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Add a rule set"
msgstr "新增 规则集"
@@ -263,15 +263,15 @@ msgstr "新增 服务器"
msgid "Add a sub rule"
msgstr "新增 子规则"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2528
msgid "Add prefix"
msgstr "添加前缀"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2292
+#: htdocs/luci-static/resources/view/fchomo/node.js:2532
msgid "Add suffix"
msgstr "添加后缀"
-#: htdocs/luci-static/resources/view/fchomo/node.js:861
+#: htdocs/luci-static/resources/view/fchomo/node.js:870
msgid "Add the base64 text of the planet file here."
msgstr "在此处添加行星文件的 base64 文本。"
@@ -280,7 +280,11 @@ msgstr "在此处添加行星文件的 base64 文本。"
msgid "Address"
msgstr "地址"
-#: htdocs/luci-static/resources/fchomo.js:412
+#: htdocs/luci-static/resources/view/fchomo/node.js:1160
+msgid "After disabling, communication will only be possible via relay."
+msgstr "禁用后,只能通过中继进行通信。"
+
+#: htdocs/luci-static/resources/fchomo.js:413
msgid ""
"After the 1-RTT client/server hello, padding randomly 111-1111 bytes with "
"100% probability."
@@ -291,32 +295,32 @@ msgstr ""
msgid "Aggressive"
msgstr "侵略性"
-#: htdocs/luci-static/resources/view/fchomo/global.js:535
+#: htdocs/luci-static/resources/view/fchomo/global.js:536
msgid "Aging time of NAT map maintained by client."
msgstr "客户端维护的 NAT 映射 的老化时间。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:797
-#: htdocs/luci-static/resources/view/fchomo/global.js:860
-#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:895
msgid "All allowed"
msgstr "允许所有"
-#: htdocs/luci-static/resources/fchomo.js:252
+#: htdocs/luci-static/resources/fchomo.js:253
msgid "All ports"
msgstr "所有端口"
-#: htdocs/luci-static/resources/view/fchomo/node.js:985
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "Allow LAN access"
msgstr "允许局域网访问"
-#: htdocs/luci-static/resources/view/fchomo/global.js:647
+#: htdocs/luci-static/resources/view/fchomo/global.js:648
msgid ""
"Allow access from private network.To access the API on a private "
"network from a public website, it must be enabled."
msgstr ""
"允许从私有网络访问。要从公共网站访问私有网络上的 API,则必须启用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:986
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "Allow access to the local LAN via the exit node."
msgstr "允许通过出口节点访问本地局域网。"
@@ -324,7 +328,11 @@ msgstr "允许通过出口节点访问本地局域网。"
msgid "Allow insecure connections"
msgstr "允许不安全的连接"
-#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:1148
+msgid "Allow this node to be an exit node."
+msgstr "允许此节点成为出口节点。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:943
msgid "Allowed IPs"
msgstr "允许的 IP"
@@ -337,7 +345,7 @@ msgid "Already in updating."
msgstr "已在更新中。"
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:544
msgid "Alter ID"
msgstr "额外 ID"
@@ -350,16 +358,20 @@ msgstr ""
msgid "Application version"
msgstr "应用版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:969
+#: htdocs/luci-static/resources/view/fchomo/node.js:978
msgid "As ephemeral node"
msgstr "作为临时节点"
-#: htdocs/luci-static/resources/view/fchomo/global.js:822
+#: htdocs/luci-static/resources/view/fchomo/node.js:1147
+msgid "As exit node"
+msgstr "作为出口节点"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:823
msgid "As the TOP upstream of dnsmasq"
msgstr "作为 dnsmasq 的最优先上游"
-#: htdocs/luci-static/resources/view/fchomo/global.js:823
-#: htdocs/luci-static/resources/view/fchomo/global.js:830
+#: htdocs/luci-static/resources/view/fchomo/global.js:824
+#: htdocs/luci-static/resources/view/fchomo/global.js:831
msgid "As the TOP upstream of dnsmasq."
msgstr "作为 dnsmasq 的最优先上游。"
@@ -367,27 +379,31 @@ msgstr "作为 dnsmasq 的最优先上游。"
msgid "Auth timeout"
msgstr "认证超时"
-#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "Authenticated length"
msgstr "认证长度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Authentication key"
msgstr "验证密钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:1358
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1050
-#: htdocs/luci-static/resources/view/fchomo/node.js:1797
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
+#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/view/fchomo/node.js:2037
msgid "Auto"
msgstr "自动"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Auto Enable when %s is empty."
+msgstr "当 %s 为空时自动启用。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1501
+#: htdocs/luci-static/resources/view/fchomo/node.js:1653
msgid "Auto configure firewall"
msgstr "自动配置防火墙"
@@ -400,7 +416,7 @@ msgid "Auto update resources."
msgstr "自动更新资源文件。"
#: htdocs/luci-static/resources/fchomo/listeners.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+#: htdocs/luci-static/resources/view/fchomo/node.js:1226
msgid "BBR profile"
msgstr "BBR 配置文件"
@@ -408,48 +424,56 @@ msgstr "BBR 配置文件"
msgid "Baidu"
msgstr "百度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:993
+#: htdocs/luci-static/resources/view/fchomo/node.js:1002
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr "基于 NIST P-256 曲线的 Base64 编码 ECDSA 私钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1010
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr "基于 NIST P-256 曲线的 Base64 编码 ECDSA 公钥。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1095
+msgid "Base64 encoded X25519 private key."
+msgstr "Base64 编码的 X25519 私钥。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+msgid "Base64 encoded X25519 public key."
+msgstr "Base64 编码的 X25519 公钥。"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:517
msgid "Based on google/gvisor."
msgstr "基于 google/gvisor。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:293
msgid "Behavior"
msgstr "行为"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Binary format only supports domain / ipcidr"
msgstr "二进制格式仅支持 domain/ipcidr"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:310
msgid "Binary mrs"
msgstr "二进制 mrs"
-#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1958
-#: htdocs/luci-static/resources/view/fchomo/node.js:2377
+#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2617
msgid "Bind interface"
msgstr "绑定接口"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1959
-#: htdocs/luci-static/resources/view/fchomo/node.js:2378
+#: htdocs/luci-static/resources/view/fchomo/node.js:2199
+#: htdocs/luci-static/resources/view/fchomo/node.js:2618
msgid "Bind outbound interface."
msgstr "绑定出站接口。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/global.js:760
msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr "绑定出站流量至指定接口。留空自动检测。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:799
+#: htdocs/luci-static/resources/view/fchomo/global.js:800
msgid "Black list"
msgstr "黑名单"
@@ -474,11 +498,11 @@ msgstr "引导 DNS 服务器 (节点)"
msgid "BundleMRS version"
msgstr "BundleMRS 版本"
-#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:862
msgid "Bypass CN"
msgstr "绕过 CN 流量"
-#: htdocs/luci-static/resources/view/fchomo/global.js:895
+#: htdocs/luci-static/resources/view/fchomo/global.js:896
msgid "Bypass DSCP"
msgstr "绕过 DSCP"
@@ -486,40 +510,40 @@ msgstr "绕过 DSCP"
#: htdocs/luci-static/resources/fchomo/listeners.js:368
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
msgid "CDN support"
msgstr "CDN 支持"
-#: htdocs/luci-static/resources/view/fchomo/global.js:642
+#: htdocs/luci-static/resources/view/fchomo/global.js:643
msgid "CORS Allow origins"
msgstr "CORS 允许的来源"
-#: htdocs/luci-static/resources/view/fchomo/global.js:646
+#: htdocs/luci-static/resources/view/fchomo/global.js:647
msgid "CORS Allow private network"
msgstr "CORS 允许私有网络"
-#: htdocs/luci-static/resources/view/fchomo/global.js:643
+#: htdocs/luci-static/resources/view/fchomo/global.js:644
msgid "CORS allowed origins, * will be used if empty."
msgstr "CORS 允许的来源,留空则使用 *。"
-#: htdocs/luci-static/resources/fchomo.js:762
+#: htdocs/luci-static/resources/fchomo.js:763
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1383
+#: htdocs/luci-static/resources/view/fchomo/node.js:1535
msgid "Cert fingerprint"
msgstr "证书指纹"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1536
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr "证书指纹。用于实现 SSL证书固定 并防止 MitM。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
msgid "Certificate path"
msgstr "证书路径"
@@ -557,14 +581,14 @@ msgstr "大陆域名列表版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:275
-#: htdocs/luci-static/resources/view/fchomo/node.js:337
-#: htdocs/luci-static/resources/view/fchomo/node.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:340
+#: htdocs/luci-static/resources/view/fchomo/node.js:399
+#: htdocs/luci-static/resources/view/fchomo/node.js:550
msgid "Chipher"
msgstr "加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:284
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr "如果下行链路混淆功能被禁用,则必须启用加密。"
@@ -582,10 +606,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:862
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr "客户端"
@@ -598,7 +622,7 @@ msgstr "客户端认证证书路径"
msgid "Client Auth type"
msgstr "客户端认证类型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1608
msgid "Client fingerprint"
msgstr "客户端指纹"
@@ -606,16 +630,24 @@ msgstr "客户端指纹"
msgid "Client key"
msgstr "客户端密钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:600
+#: htdocs/luci-static/resources/view/fchomo/node.js:603
msgid "Client metadata"
msgstr "客户端元数据"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1094
+msgid "Client private key"
+msgstr "客户端私钥"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+msgid "Client public key"
+msgstr "客户端公钥"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:176
msgid "Client status"
msgstr "客户端状态"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "Cloudflare WARP"
msgstr ""
@@ -623,18 +655,18 @@ msgstr ""
msgid "Collecting data..."
msgstr "收集数据中..."
-#: htdocs/luci-static/resources/fchomo.js:253
#: htdocs/luci-static/resources/fchomo.js:254
+#: htdocs/luci-static/resources/fchomo.js:255
msgid "Common ports (bypass P2P traffic)"
msgstr "常用端口(绕过 P2P 流量)"
-#: htdocs/luci-static/resources/fchomo.js:1747
-msgid "Complete"
-msgstr "完成"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1040
+msgid "Configuration Document"
+msgstr "配置文档"
#: htdocs/luci-static/resources/fchomo/listeners.js:638
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:1065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "Congestion controller"
msgstr "拥塞控制器"
@@ -642,12 +674,12 @@ msgstr "拥塞控制器"
msgid "Connection check"
msgstr "连接检查"
-#: htdocs/luci-static/resources/view/fchomo/node.js:521
+#: htdocs/luci-static/resources/view/fchomo/node.js:524
msgid "Connection reuse"
msgstr "连接复用"
#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:781
+#: htdocs/luci-static/resources/view/fchomo/node.js:784
msgid "Connection-level receive window size"
msgstr "连接级接收窗口大小"
@@ -655,20 +687,20 @@ msgstr "连接级接收窗口大小"
msgid "Conservative"
msgstr "保守"
-#: htdocs/luci-static/resources/fchomo.js:631
+#: htdocs/luci-static/resources/fchomo.js:632
msgid "Content copied to clipboard!"
msgstr "内容已复制到剪贴板!"
#: htdocs/luci-static/resources/view/fchomo/client.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:2148
-#: htdocs/luci-static/resources/view/fchomo/node.js:2174
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:2388
+#: htdocs/luci-static/resources/view/fchomo/node.js:2414
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:350
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "内容将不会被验证,请确保输入正确。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2147
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
+#: htdocs/luci-static/resources/view/fchomo/node.js:2387
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:349
msgid "Contents"
msgstr "内容"
@@ -676,11 +708,11 @@ msgstr "内容"
msgid "Contents have been saved."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:958
+#: htdocs/luci-static/resources/view/fchomo/node.js:967
msgid "Control server"
msgstr "控制服务器"
-#: htdocs/luci-static/resources/fchomo.js:633
+#: htdocs/luci-static/resources/fchomo.js:634
msgid "Copy"
msgstr "复制"
@@ -692,25 +724,25 @@ msgstr "核心版本"
msgid "Cron expression"
msgstr "Cron 表达式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Custom %s control server."
msgstr "自定义 %s 控制服务器。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:913
+#: htdocs/luci-static/resources/view/fchomo/global.js:914
msgid "Custom Direct List"
msgstr "自定义直连列表"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2279
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:2519
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:422
msgid "Custom HTTP header."
msgstr "自定义 HTTP header。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:931
+#: htdocs/luci-static/resources/view/fchomo/global.js:932
msgid "Custom Proxy List"
msgstr "自定义代理列表"
#: htdocs/luci-static/resources/fchomo/listeners.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:423
msgid "Custom byte layout"
msgstr "自定义字节布局"
@@ -726,6 +758,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1835
#: htdocs/luci-static/resources/view/fchomo/client.js:1844
#: htdocs/luci-static/resources/view/fchomo/client.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
msgid "DNS policy"
msgstr "DNS 策略"
@@ -736,7 +769,8 @@ msgstr " DNS 端口"
#: htdocs/luci-static/resources/view/fchomo/client.js:911
#: htdocs/luci-static/resources/view/fchomo/client.js:1528
#: htdocs/luci-static/resources/view/fchomo/client.js:1537
-#: htdocs/luci-static/resources/view/fchomo/node.js:1664
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "DNS server"
msgstr "DNS 服务器"
@@ -744,7 +778,7 @@ msgstr "DNS 服务器"
msgid "DNS settings"
msgstr "DNS 设置"
-#: htdocs/luci-static/resources/view/fchomo/global.js:898
+#: htdocs/luci-static/resources/view/fchomo/global.js:899
msgid "DSCP list"
msgstr "DSCP 列表"
@@ -753,7 +787,7 @@ msgid "Dashboard version"
msgstr "面板版本"
#: htdocs/luci-static/resources/fchomo.js:94
-#: htdocs/luci-static/resources/view/fchomo/node.js:822
+#: htdocs/luci-static/resources/view/fchomo/node.js:825
msgid "Debug"
msgstr "调试"
@@ -779,24 +813,24 @@ msgstr "默认版本,支持 %s。"
msgid "Derive from priv-key"
msgstr "从私钥派生"
-#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:944
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允许通过 WireGuard 转发的目的地址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2502
+#: htdocs/luci-static/resources/view/fchomo/node.js:2748
msgid "Destination provider"
msgstr "落地供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2513
+#: htdocs/luci-static/resources/view/fchomo/node.js:2759
msgid "Destination proxy node"
msgstr "落地代理节点"
-#: htdocs/luci-static/resources/view/fchomo/node.js:257
+#: htdocs/luci-static/resources/view/fchomo/node.js:260
msgid "Dial fields"
msgstr "拨号字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
msgid "Different chain head/tail"
msgstr "不同的链头/链尾"
@@ -804,38 +838,42 @@ msgstr "不同的链头/链尾"
msgid "Direct"
msgstr "直连"
-#: htdocs/luci-static/resources/view/fchomo/global.js:801
+#: htdocs/luci-static/resources/view/fchomo/global.js:802
msgid "Direct IPv4 IP-s"
msgstr "直连 IPv4 地址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:804
+#: htdocs/luci-static/resources/view/fchomo/global.js:805
msgid "Direct IPv6 IP-s"
msgstr "直连 IPv6 地址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:807
+#: htdocs/luci-static/resources/view/fchomo/global.js:808
msgid "Direct MAC-s"
msgstr "直连 MAC 地址"
#: htdocs/luci-static/resources/fchomo/listeners.js:493
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:715
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Disable"
msgstr "禁用"
-#: htdocs/luci-static/resources/view/fchomo/global.js:735
+#: htdocs/luci-static/resources/view/fchomo/global.js:736
msgid "Disable ECN of quic-go"
msgstr "禁用 quic-go 的 显式拥塞通知(ECN)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:732
+#: htdocs/luci-static/resources/view/fchomo/global.js:733
msgid "Disable GSO of quic-go"
msgstr "禁用 quic-go 的 通用分段卸载(GSO)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:544
+#: htdocs/luci-static/resources/view/fchomo/global.js:545
msgid "Disable ICMP Forwarding"
msgstr "禁用 ICMP 转发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+msgid "Disable P2P"
+msgstr "禁用 P2P"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "Disable SNI"
msgstr "禁用 SNI"
@@ -843,7 +881,7 @@ msgstr "禁用 SNI"
msgid "Disable UDP"
msgstr "禁用 UDP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:729
+#: htdocs/luci-static/resources/view/fchomo/global.js:730
msgid "Disable safe path check"
msgstr "禁用安全路径检查"
@@ -863,31 +901,31 @@ msgstr ""
msgid "Domain"
msgstr "域名"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "Donot send server name in ClientHello."
msgstr "不要在 ClientHello 中发送服务器名称。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1403
-#: htdocs/luci-static/resources/view/fchomo/node.js:2361
+#: htdocs/luci-static/resources/view/fchomo/node.js:1555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2601
msgid "Donot verifying server certificate."
msgstr "不验证服务器证书。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1935
+#: htdocs/luci-static/resources/view/fchomo/node.js:2175
msgid "Download bandwidth"
msgstr "下载带宽"
#: htdocs/luci-static/resources/fchomo/listeners.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1936
+#: htdocs/luci-static/resources/view/fchomo/node.js:2176
msgid "Download bandwidth in Mbps."
msgstr "下载带宽(单位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo.js:1626
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "Download failed: %s"
msgstr "下载失败: %s"
-#: htdocs/luci-static/resources/fchomo.js:1624
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Download successful."
msgstr "下载成功。"
@@ -895,12 +933,12 @@ msgstr "下载成功。"
msgid "Dual stack"
msgstr "双栈"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
msgid "ECH HTTPS record query servername"
msgstr "ECH HTTPS 记录查询域名"
#: htdocs/luci-static/resources/fchomo/listeners.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:1444
+#: htdocs/luci-static/resources/view/fchomo/node.js:1596
msgid "ECH config"
msgstr "ECH 配置"
@@ -920,32 +958,36 @@ msgstr "EDNS 客户端子网"
msgid "ETag support"
msgstr "ETag 支持"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1775
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Early Data first packet length limit."
msgstr "前置数据长度阈值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Early Data header name"
msgstr "前置数据标头"
+#: htdocs/luci-static/resources/fchomo.js:211
+msgid "EasyTier"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/inbound.js:20
msgid "Edit inbound"
msgstr "编辑入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:217
+#: htdocs/luci-static/resources/view/fchomo/node.js:220
msgid "Edit outbound"
msgstr "编辑出站"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:138
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:140
msgid "Edit ruleset"
msgstr "编辑规则集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2145
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
+#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Editer"
msgstr "编辑器"
-#: htdocs/luci-static/resources/fchomo.js:399
+#: htdocs/luci-static/resources/fchomo.js:400
msgid "Eliminate encryption header characteristics"
msgstr "消除加密头特征"
@@ -962,17 +1004,17 @@ msgstr "为空时回退"
#: htdocs/luci-static/resources/view/fchomo/client.js:1827
#: htdocs/luci-static/resources/view/fchomo/client.js:1883
#: htdocs/luci-static/resources/view/fchomo/global.js:422
-#: htdocs/luci-static/resources/view/fchomo/global.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:264
-#: htdocs/luci-static/resources/view/fchomo/node.js:2118
-#: htdocs/luci-static/resources/view/fchomo/node.js:2400
-#: htdocs/luci-static/resources/view/fchomo/node.js:2489
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
+#: htdocs/luci-static/resources/view/fchomo/global.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:2358
+#: htdocs/luci-static/resources/view/fchomo/node.js:2640
+#: htdocs/luci-static/resources/view/fchomo/node.js:2735
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:274
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr "启用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:669
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
强烈建议禁用此功能,因为它容易受到重放攻击。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Enable 0-RTT handshake"
msgstr "启用 0-RTT 握手"
-#: htdocs/luci-static/resources/view/fchomo/global.js:738
+#: htdocs/luci-static/resources/view/fchomo/global.js:739
msgid ""
"Enable IP4P "
"conversion for outbound connections"
@@ -993,64 +1035,76 @@ msgstr ""
"为出站连接启用 IP4P 转换"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1438
+#: htdocs/luci-static/resources/view/fchomo/node.js:1590
msgid "Enable ECH"
msgstr "启用 ECH"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1165
+msgid "Enable MagicDNS"
+msgstr "启用 MagicDNS"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1398
-#: htdocs/luci-static/resources/view/fchomo/node.js:1923
+#: htdocs/luci-static/resources/view/fchomo/node.js:2163
msgid "Enable TCP Brutal"
msgstr "启用 TCP Brutal"
#: htdocs/luci-static/resources/fchomo/listeners.js:1399
-#: htdocs/luci-static/resources/view/fchomo/node.js:1924
+#: htdocs/luci-static/resources/view/fchomo/node.js:2164
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "启用 TCP Brutal 拥塞控制算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:663
+#: htdocs/luci-static/resources/view/fchomo/node.js:1130
+msgid "Enable encryption"
+msgstr "启用加密"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:666
msgid "Enable fast open"
msgstr "启用 Fast open"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1912
+#: htdocs/luci-static/resources/view/fchomo/node.js:2152
msgid "Enable multiplexing only for TCP."
msgstr "仅为 TCP 启用多路复用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:353
-#: htdocs/luci-static/resources/view/fchomo/node.js:448
+#: htdocs/luci-static/resources/view/fchomo/node.js:451
msgid "Enable obfuscate for downlink"
msgstr "启用下行链路混淆"
#: htdocs/luci-static/resources/fchomo/listeners.js:1393
-#: htdocs/luci-static/resources/view/fchomo/node.js:1906
+#: htdocs/luci-static/resources/view/fchomo/node.js:2146
msgid "Enable padding"
msgstr "启用填充"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:2157
msgid "Enable statistic"
msgstr "启用统计"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1104
-#: htdocs/luci-static/resources/view/fchomo/node.js:2337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1256
+#: htdocs/luci-static/resources/view/fchomo/node.js:2577
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:500
-#: htdocs/luci-static/resources/view/fchomo/node.js:722
+#: htdocs/luci-static/resources/view/fchomo/node.js:725
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr "启用混淆将使服务器与标准的 QUIC 连接不兼容,失去 HTTP/3 伪装的能力。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:840
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "Encrypted Hello"
msgstr "加密 Hello"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1135
+msgid "Encryption algorithm"
+msgstr "加密算法"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:825
msgid "Encryption method"
msgstr "加密方法"
-#: htdocs/luci-static/resources/view/fchomo/global.js:540
+#: htdocs/luci-static/resources/view/fchomo/global.js:541
msgid "Endpoint-Independent NAT"
msgstr "端点独立 NAT"
@@ -1069,7 +1123,7 @@ msgid ""
"if empty."
msgstr "超过此限制将会触发强制健康检查。留空则使用 5。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2458
+#: htdocs/luci-static/resources/view/fchomo/node.js:2698
msgid "Exclude matched node types."
msgstr "排除匹配的节点类型。"
@@ -1082,53 +1136,35 @@ msgstr ""
"rel=\"noreferrer noopener\">此处。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1255
-#: htdocs/luci-static/resources/view/fchomo/node.js:2451
+#: htdocs/luci-static/resources/view/fchomo/node.js:2691
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配关键词或表达式的节点。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:980
+#: htdocs/luci-static/resources/view/fchomo/node.js:989
msgid "Exit node"
msgstr "出口节点"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1115
+msgid "Exit nodes"
+msgstr "出口节点"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:265
msgid "Expand/Collapse result"
msgstr "展开/收起 结果"
#: htdocs/luci-static/resources/view/fchomo/client.js:1198
-#: htdocs/luci-static/resources/view/fchomo/node.js:2436
+#: htdocs/luci-static/resources/view/fchomo/node.js:2676
msgid "Expected HTTP code. 204 will be used if empty."
msgstr "预期的 HTTP code。留空则使用 204。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1200
-#: htdocs/luci-static/resources/view/fchomo/node.js:2438
+#: htdocs/luci-static/resources/view/fchomo/node.js:2678
msgid "Expected status"
msgstr "预期状态"
-#: htdocs/luci-static/resources/fchomo.js:456
-#: htdocs/luci-static/resources/fchomo.js:459
-#: htdocs/luci-static/resources/fchomo.js:462
-#: htdocs/luci-static/resources/fchomo.js:1764
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1806
-#: htdocs/luci-static/resources/fchomo.js:1813
-#: htdocs/luci-static/resources/fchomo.js:1829
-#: htdocs/luci-static/resources/fchomo.js:1838
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-#: htdocs/luci-static/resources/fchomo.js:1863
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-#: htdocs/luci-static/resources/fchomo.js:1891
-#: htdocs/luci-static/resources/fchomo.js:1900
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1947
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-#: htdocs/luci-static/resources/fchomo.js:1973
-#: htdocs/luci-static/resources/fchomo.js:1982
+#: htdocs/luci-static/resources/fchomo.js:457
+#: htdocs/luci-static/resources/fchomo.js:460
+#: htdocs/luci-static/resources/fchomo.js:463
#: htdocs/luci-static/resources/fchomo/listeners.js:284
#: htdocs/luci-static/resources/fchomo/listeners.js:339
#: htdocs/luci-static/resources/fchomo/listeners.js:854
@@ -1137,18 +1173,18 @@ msgstr "预期状态"
#: htdocs/luci-static/resources/view/fchomo/client.js:71
#: htdocs/luci-static/resources/view/fchomo/client.js:1063
#: htdocs/luci-static/resources/view/fchomo/client.js:1608
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1262
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Expecting: %s"
msgstr "请输入:%s"
@@ -1157,7 +1193,7 @@ msgid "Expecting: Cannot be empty."
msgstr "请输入:不能为空。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "Expecting: Cannot be enabled when %s is enabled."
msgstr "请输入:当 %s 启用时,无法启用。"
@@ -1165,8 +1201,8 @@ msgstr "请输入:当 %s 启用时,无法启用。"
msgid "Expecting: Keep empty when %s is enabled."
msgstr "请输入:启用 %s 时保持为空。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Expecting: Least one of %s or %s."
msgstr "请输入:至少包含 %s 或 %s 中的一个。"
@@ -1174,15 +1210,15 @@ msgstr "请输入:至少包含 %s 或 %s 中的一个。"
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "Expecting: Only support %s."
msgstr "请输入:仅支援 %s。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:723
+#: htdocs/luci-static/resources/view/fchomo/global.js:724
msgid "Experimental"
msgstr "实验性"
@@ -1198,23 +1234,7 @@ msgstr "实验性"
msgid "Factor"
msgstr "条件"
-#: htdocs/luci-static/resources/fchomo.js:1705
-msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
-msgstr "无法执行 \"/etc/init.d/fchomo %s %s\" 原因: %s"
-
-#: htdocs/luci-static/resources/fchomo.js:1658
-msgid "Failed to generate %s, error: %s."
-msgstr "生成 %s 失败,错误:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:2082
-msgid "Failed to upload %s, error: %s."
-msgstr "上传 %s 失败,错误:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:2101
-msgid "Failed to upload, error: %s."
-msgstr "上传失败,错误:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:246
+#: htdocs/luci-static/resources/fchomo.js:247
#: htdocs/luci-static/resources/fchomo/listeners.js:378
msgid "Fallback"
msgstr "自动回退"
@@ -1230,16 +1250,16 @@ msgstr "後備 DNS 服务器"
msgid "Fallback filter"
msgstr "後備过滤器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Fallback mode"
msgstr "自动回退模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:853
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Fallback relay"
msgstr "自动回退中继"
#: htdocs/luci-static/resources/view/fchomo/client.js:1250
-#: htdocs/luci-static/resources/view/fchomo/node.js:2445
+#: htdocs/luci-static/resources/view/fchomo/node.js:2685
msgid "Filter nodes that meet keywords or regexps."
msgstr "过滤匹配关键字或表达式的节点。"
@@ -1265,12 +1285,12 @@ msgid "Final DNS server (For poisoned domains)"
msgstr "兜底 DNS 服务器 (用于已被投毒污染的域名)"
#: htdocs/luci-static/resources/fchomo/listeners.js:138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1500
+#: htdocs/luci-static/resources/view/fchomo/node.js:1652
msgid "Firewall"
msgstr "防火墙"
#: htdocs/luci-static/resources/fchomo/listeners.js:409
-#: htdocs/luci-static/resources/view/fchomo/node.js:533
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
msgid "Flow"
msgstr "流控"
@@ -1283,9 +1303,9 @@ msgstr ""
"noopener\">%s."
#: htdocs/luci-static/resources/view/fchomo/client.js:1199
-#: htdocs/luci-static/resources/view/fchomo/node.js:2298
-#: htdocs/luci-static/resources/view/fchomo/node.js:2306
-#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/node.js:2538
+#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:2677
msgid ""
"For format see %s."
@@ -1293,19 +1313,23 @@ msgstr ""
"格式请参阅 %s"
"a>."
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Force"
msgstr "强制"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1659
+#: htdocs/luci-static/resources/view/fchomo/node.js:1899
msgid "Force DNS remote resolution."
msgstr "强制 DNS 远程解析。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:683
+#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+msgid "Force UDP"
+msgstr "强制开启 UDP"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:684
msgid "Forced sniffing domain"
msgstr "强制嗅探域名"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
msgid "Format"
msgstr "格式"
@@ -1320,7 +1344,7 @@ msgstr "转发速率限制"
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1970
msgid "GET"
msgstr ""
@@ -1329,7 +1353,7 @@ msgid "GFW list version"
msgstr "GFW 域名列表版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:495
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:720
msgid "Gecko"
msgstr ""
@@ -1339,8 +1363,8 @@ msgstr "常规"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1054
-#: htdocs/luci-static/resources/view/fchomo/node.js:249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2108
+#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:2348
msgid "General fields"
msgstr "常规字段"
@@ -1348,21 +1372,21 @@ msgstr "常规字段"
msgid "General settings"
msgstr "常规设置"
-#: htdocs/luci-static/resources/fchomo.js:582
-#: htdocs/luci-static/resources/fchomo.js:584
-#: htdocs/luci-static/resources/fchomo.js:598
-#: htdocs/luci-static/resources/fchomo.js:600
+#: htdocs/luci-static/resources/fchomo.js:583
+#: htdocs/luci-static/resources/fchomo.js:585
+#: htdocs/luci-static/resources/fchomo.js:599
+#: htdocs/luci-static/resources/fchomo.js:601
#: htdocs/luci-static/resources/fchomo/listeners.js:262
#: htdocs/luci-static/resources/fchomo/listeners.js:306
#: htdocs/luci-static/resources/fchomo/listeners.js:308
#: htdocs/luci-static/resources/fchomo/listeners.js:958
#: htdocs/luci-static/resources/fchomo/listeners.js:1223
-#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:2266
+#: htdocs/luci-static/resources/view/fchomo/global.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:2506
msgid "Generate"
msgstr "生成"
-#: htdocs/luci-static/resources/view/fchomo/global.js:527
+#: htdocs/luci-static/resources/view/fchomo/global.js:528
msgid "Generic segmentation offload"
msgstr "通用分段卸载(GSO)"
@@ -1405,7 +1429,7 @@ msgstr "全局"
msgid "Global Authentication"
msgstr "全局认证"
-#: htdocs/luci-static/resources/view/fchomo/node.js:557
+#: htdocs/luci-static/resources/view/fchomo/node.js:560
msgid "Global padding"
msgstr "全局填充"
@@ -1413,7 +1437,7 @@ msgstr "全局填充"
msgid "Google"
msgstr "谷歌"
-#: htdocs/luci-static/resources/fchomo.js:258
+#: htdocs/luci-static/resources/fchomo.js:259
msgid "Google FCM"
msgstr "谷歌 FCM"
@@ -1428,47 +1452,47 @@ msgstr "组"
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:191
#: htdocs/luci-static/resources/fchomo/listeners.js:710
-#: htdocs/luci-static/resources/view/fchomo/node.js:1154
-#: htdocs/luci-static/resources/view/fchomo/node.js:1677
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
+#: htdocs/luci-static/resources/view/fchomo/node.js:1306
+#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:330
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
-#: htdocs/luci-static/resources/view/fchomo/node.js:2278
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
+#: htdocs/luci-static/resources/view/fchomo/node.js:2518
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:421
msgid "HTTP header"
msgstr "HTTP header"
#: htdocs/luci-static/resources/fchomo/listeners.js:359
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:457
msgid "HTTP mask"
msgstr "HTTP 伪装"
#: htdocs/luci-static/resources/fchomo/listeners.js:364
-#: htdocs/luci-static/resources/view/fchomo/node.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "HTTP mask mode"
msgstr "HTTP 伪装模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:484
+#: htdocs/luci-static/resources/view/fchomo/node.js:487
msgid "HTTP mask multiplex"
msgstr "HTTP 伪装多路复用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "HTTP mask: %s"
msgstr "HTTP 伪装: %s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1729
+#: htdocs/luci-static/resources/view/fchomo/node.js:1969
msgid "HTTP request method"
msgstr "HTTP 请求方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:483
msgid "HTTP root path"
msgstr "HTTP 根路径"
@@ -1482,17 +1506,17 @@ msgid ""
"returned if empty."
msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1678
-#: htdocs/luci-static/resources/view/fchomo/node.js:1691
-#: htdocs/luci-static/resources/view/fchomo/node.js:1698
+#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:879
+#: htdocs/luci-static/resources/view/fchomo/global.js:880
msgid "Handle domain"
msgstr "处理域名"
-#: htdocs/luci-static/resources/view/fchomo/node.js:376
+#: htdocs/luci-static/resources/view/fchomo/node.js:379
msgid "Handshake mode"
msgstr "握手模式"
@@ -1505,7 +1529,7 @@ msgid "Handshake target that supports TLS 1.3"
msgstr "握手目标 (支援 TLS 1.3)"
#: htdocs/luci-static/resources/fchomo/listeners.js:346
-#: htdocs/luci-static/resources/view/fchomo/node.js:1089
+#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "Handshake timeout"
msgstr "握手超时"
@@ -1513,41 +1537,41 @@ msgstr "握手超时"
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr "用于读取客户端真实 IP 的 Header(例如 X-Forwarded-For)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Headscale/Tailscale"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:793
+#: htdocs/luci-static/resources/view/fchomo/node.js:796
msgid "Health check"
msgstr "健康检查"
#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:2405
+#: htdocs/luci-static/resources/view/fchomo/node.js:2645
msgid "Health check URL"
msgstr "健康检查 URL"
#: htdocs/luci-static/resources/view/fchomo/client.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:2435
+#: htdocs/luci-static/resources/view/fchomo/node.js:2675
msgid "Health check expected status"
msgstr "健康检查预期状态"
#: htdocs/luci-static/resources/view/fchomo/client.js:1177
-#: htdocs/luci-static/resources/view/fchomo/node.js:2415
+#: htdocs/luci-static/resources/view/fchomo/node.js:2655
msgid "Health check interval"
msgstr "健康检查间隔"
#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2422
+#: htdocs/luci-static/resources/view/fchomo/node.js:2662
msgid "Health check timeout"
msgstr "健康检查超时"
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:2110
+#: htdocs/luci-static/resources/view/fchomo/node.js:2350
msgid "Health fields"
msgstr "健康字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:756
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
+#: htdocs/luci-static/resources/view/fchomo/node.js:759
msgid "Heartbeat interval"
msgstr "心跳间隔"
@@ -1556,23 +1580,27 @@ msgid "Hidden"
msgstr "隐藏"
#: htdocs/luci-static/resources/fchomo/listeners.js:723
-#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Host that supports TLS 1.3"
msgstr "主机名称 (支援 TLS 1.3)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1042
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
msgid "Host-key"
msgstr "主机密钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/view/fchomo/node.js:1189
msgid "Host-key algorithms"
msgstr "主机密钥算法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Host/SNI override"
msgstr "主机/SNI 覆盖"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
+#: htdocs/luci-static/resources/view/fchomo/node.js:1062
+msgid "Hostname"
+msgstr "主机名"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1483
msgid ""
"Hostname that the client attempts to connect to at the start of the TLS "
"handshake process."
@@ -1593,7 +1621,7 @@ msgid "Hysteria2 Realm Server"
msgstr "Hysteria2 Realm 服务器"
#: htdocs/luci-static/resources/fchomo/listeners.js:122
-#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:255
msgid "Hysteria2 Realm fields"
msgstr "Hysteria2 Realm 字段"
@@ -1606,23 +1634,24 @@ msgstr ""
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:632
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "IP override"
msgstr "IP 覆写"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "IP stack"
msgstr "IP 协议栈"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1972
-#: htdocs/luci-static/resources/view/fchomo/node.js:2391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2212
+#: htdocs/luci-static/resources/view/fchomo/node.js:2631
msgid "IP version"
msgstr "IP 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
msgid "IPv4"
msgstr "IPv4"
@@ -1630,9 +1659,9 @@ msgstr "IPv4"
msgid "IPv4 only"
msgstr "仅 IPv4"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "IPv6"
msgstr "IPv6"
@@ -1649,11 +1678,11 @@ msgstr "IPv6 支持"
msgid "Icon"
msgstr "图标"
-#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:608
msgid "Idle session check interval"
msgstr "闲置会话检查间隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:612
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Idle session timeout"
msgstr "闲置会话超时"
@@ -1661,10 +1690,6 @@ msgstr "闲置会话超时"
msgid "Idle timeout"
msgstr "闲置超时"
-#: htdocs/luci-static/resources/fchomo.js:1806
-msgid "If All ports is selected, uncheck others"
-msgstr "如果选择了“所有端口”,则取消选中“其他”"
-
#: htdocs/luci-static/resources/view/fchomo/client.js:71
msgid "If Block is selected, uncheck others"
msgstr "如果选择了“阻止”,则取消选中“其他”"
@@ -1673,7 +1698,13 @@ msgstr "如果选择了“阻止”,则取消选中“其他”"
msgid "Ignore client bandwidth"
msgstr "忽略客户端带宽"
-#: htdocs/luci-static/resources/fchomo.js:767
+#: htdocs/luci-static/resources/view/fchomo/node.js:1154
+msgid ""
+"Ignore the number of intermediate hops and select the path with the lowest "
+"total latency."
+msgstr "忽略中继跳数,选择总延迟最低的路径。"
+
+#: htdocs/luci-static/resources/fchomo.js:768
msgid "Import"
msgstr "导入"
@@ -1689,25 +1720,25 @@ msgstr "导入"
#: htdocs/luci-static/resources/view/fchomo/client.js:1816
#: htdocs/luci-static/resources/view/fchomo/client.js:1851
#: htdocs/luci-static/resources/view/fchomo/client.js:1872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1998
-#: htdocs/luci-static/resources/view/fchomo/node.js:2096
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
+#: htdocs/luci-static/resources/view/fchomo/node.js:2238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:156
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
msgid "Import mihomo config"
msgstr "导入 mihomo 配置"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:205
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:207
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:255
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:257
msgid "Import rule-set links"
msgstr "导入规则集链接"
#: htdocs/luci-static/resources/fchomo/listeners.js:474
#: htdocs/luci-static/resources/fchomo/listeners.js:480
-#: htdocs/luci-static/resources/view/fchomo/node.js:691
-#: htdocs/luci-static/resources/view/fchomo/node.js:697
-#: htdocs/luci-static/resources/view/fchomo/node.js:2343
-#: htdocs/luci-static/resources/view/fchomo/node.js:2349
+#: htdocs/luci-static/resources/view/fchomo/node.js:694
+#: htdocs/luci-static/resources/view/fchomo/node.js:700
+#: htdocs/luci-static/resources/view/fchomo/node.js:2583
+#: htdocs/luci-static/resources/view/fchomo/node.js:2589
msgid "In Mbps."
msgstr "单位为 Mbps。"
@@ -1715,56 +1746,56 @@ msgstr "单位为 Mbps。"
msgid "In bps. 0 means no speed limit."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2186
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
+#: htdocs/luci-static/resources/view/fchomo/node.js:2426
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:394
msgid "In bytes. %s will be used if empty."
msgstr "单位为字节。留空则使用 %s。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1294
-#: htdocs/luci-static/resources/view/fchomo/node.js:676
-#: htdocs/luci-static/resources/view/fchomo/node.js:683
-#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:686
+#: htdocs/luci-static/resources/view/fchomo/node.js:760
msgid "In millisecond."
msgstr "单位为毫秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1185
#: htdocs/luci-static/resources/view/fchomo/client.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:2423
+#: htdocs/luci-static/resources/view/fchomo/node.js:2663
msgid "In millisecond. %s will be used if empty."
msgstr "单位为毫秒。留空则使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1821
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
msgid "In milliseconds."
msgstr "单位为毫秒。"
#: htdocs/luci-static/resources/fchomo/listeners.js:347
#: htdocs/luci-static/resources/fchomo/listeners.js:466
#: htdocs/luci-static/resources/fchomo/listeners.js:656
-#: htdocs/luci-static/resources/view/fchomo/node.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:613
-#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:2008
msgid "In seconds."
msgstr "单位为秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1178
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
-#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:2192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2416
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
+#: htdocs/luci-static/resources/view/fchomo/global.js:537
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2432
+#: htdocs/luci-static/resources/view/fchomo/node.js:2656
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "In seconds. %s will be used if empty."
msgstr "单位为秒。留空则使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1090
+#: htdocs/luci-static/resources/view/fchomo/node.js:1242
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr "单位为秒。配置后握手时不受外层连接超时影响。"
#: htdocs/luci-static/resources/fchomo/listeners.js:874
-#: htdocs/luci-static/resources/view/fchomo/node.js:1251
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1807,20 +1838,20 @@ msgid "Info"
msgstr "信息"
#: htdocs/luci-static/resources/fchomo/listeners.js:565
-#: htdocs/luci-static/resources/view/fchomo/node.js:763
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "Initial congestion window size"
msgstr "初始拥塞窗口大小"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2125
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:290
msgid "Inline"
msgstr "内嵌"
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:826
msgid "Insane"
msgstr "噩梦"
-#: htdocs/luci-static/resources/view/fchomo/global.js:751
+#: htdocs/luci-static/resources/view/fchomo/global.js:752
msgid "Interface Control"
msgstr "接口控制"
@@ -1829,38 +1860,39 @@ msgstr "接口控制"
#: htdocs/luci-static/resources/fchomo/listeners.js:700
#: htdocs/luci-static/resources/fchomo/listeners.js:1131
#: htdocs/luci-static/resources/fchomo/listeners.js:1247
-#: htdocs/luci-static/resources/view/fchomo/node.js:1129
-#: htdocs/luci-static/resources/view/fchomo/node.js:1139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1144
-#: htdocs/luci-static/resources/view/fchomo/node.js:1474
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
+#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1626
msgid "JLS"
msgstr "JLS"
-#: htdocs/luci-static/resources/view/fchomo/node.js:884
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
msgid "Join %s. Format: %s"
msgstr "加入 %s。格式:%s"
#: htdocs/luci-static/resources/fchomo.js:53
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:174
-#: htdocs/luci-static/resources/fchomo.js:381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1049
-#: htdocs/luci-static/resources/view/fchomo/node.js:1057
-#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/fchomo.js:382
+#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/view/fchomo/node.js:2605
msgid "Keep default"
msgstr "保持缺省"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "Keep-alive period"
msgstr "Keep-alive 周期"
#: htdocs/luci-static/resources/fchomo/listeners.js:217
-#: htdocs/luci-static/resources/view/fchomo/node.js:390
+#: htdocs/luci-static/resources/view/fchomo/node.js:393
msgid "Key"
msgstr "密钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:1150
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
msgid "Key path"
msgstr "证书路径"
@@ -1879,15 +1911,19 @@ msgstr "L2"
#: htdocs/luci-static/resources/view/fchomo/client.js:1588
#: htdocs/luci-static/resources/view/fchomo/client.js:1822
#: htdocs/luci-static/resources/view/fchomo/client.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2113
-#: htdocs/luci-static/resources/view/fchomo/node.js:2484
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:262
+#: htdocs/luci-static/resources/view/fchomo/node.js:2353
+#: htdocs/luci-static/resources/view/fchomo/node.js:2730
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:269
msgid "Label"
msgstr "标签"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+msgid "Latency first"
+msgstr "延迟优先"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:2429
+#: htdocs/luci-static/resources/view/fchomo/node.js:2669
msgid "Lazy"
msgstr "怠惰状态"
@@ -1900,7 +1936,7 @@ msgid "Lazy query."
msgstr "怠惰查询。"
#: htdocs/luci-static/resources/fchomo/listeners.js:366
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
msgid "Legacy"
msgstr "传统"
@@ -1916,8 +1952,18 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr "有时性能更好。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+msgid "List of exit nodes to use (%s of peer nodes)."
+msgstr "要使用的出口节点列表(对端节点的 %s)。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1124
+msgid ""
+"List of local subnets (CIDR) to be open to other peers in the EasyTier "
+"network."
+msgstr "要向 EasyTier 网络中的其他对端开放的本地子网的列表(CIDR)。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:1337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1489
msgid "List of supported application level protocols, in order of preference."
msgstr "支持的应用层协议协商列表,按顺序排列。"
@@ -1929,14 +1975,14 @@ msgstr "监听地址"
msgid "Listen fields"
msgstr "监听字段"
-#: htdocs/luci-static/resources/view/fchomo/global.js:753
+#: htdocs/luci-static/resources/view/fchomo/global.js:754
msgid "Listen interfaces"
msgstr "监听接口"
#: htdocs/luci-static/resources/fchomo/listeners.js:154
#: htdocs/luci-static/resources/view/fchomo/client.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Listen port"
msgstr "监听端口"
@@ -1948,12 +1994,16 @@ msgstr "监听端口"
msgid "Listen routing mark (Fwmark)"
msgstr "监听路由标记 (Fwmark)"
-#: htdocs/luci-static/resources/fchomo.js:248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+msgid "Listeners"
+msgstr "监听"
+
+#: htdocs/luci-static/resources/fchomo.js:249
msgid "Load balance"
msgstr "负载均衡"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2123
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
+#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Local"
msgstr "本地"
@@ -1973,7 +2023,7 @@ msgstr "日志为空。"
msgid "Log level"
msgstr "日志等级"
-#: htdocs/luci-static/resources/view/fchomo/node.js:834
+#: htdocs/luci-static/resources/view/fchomo/node.js:837
msgid "Low Bandwidth Mode"
msgstr "低带宽模式"
@@ -1981,19 +2031,19 @@ msgstr "低带宽模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Low-entropy data stream"
msgstr "低熵数据流"
-#: htdocs/luci-static/resources/fchomo.js:456
+#: htdocs/luci-static/resources/fchomo.js:457
msgid "Lowercase only"
msgstr "仅限小写"
-#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:1631
+#: htdocs/luci-static/resources/view/fchomo/global.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
msgid "MTU"
msgstr "MTU"
@@ -2033,12 +2083,12 @@ msgstr "匹配响应通过 ipcidr"
msgid "Match rule set."
msgstr "匹配规则集。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1774
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid "Max Early Data"
msgstr "前置数据最大值"
#: htdocs/luci-static/resources/fchomo/listeners.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:657
+#: htdocs/luci-static/resources/view/fchomo/node.js:660
msgid "Max UDP relay packet size"
msgstr "UDP 中继数据包最大尺寸"
@@ -2046,11 +2096,11 @@ msgstr "UDP 中继数据包最大尺寸"
msgid "Max buffered posts"
msgstr "POST 最大缓冲"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Max concurrency"
msgstr "最大并发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
msgid "Max connections"
msgstr "最大连接数"
@@ -2059,21 +2109,21 @@ msgid "Max count of failures"
msgstr "最大失败次数"
#: htdocs/luci-static/resources/fchomo/listeners.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:772
msgid "Max datagram frame size"
msgstr "最大数据报帧大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:479
-#: htdocs/luci-static/resources/view/fchomo/node.js:696
+#: htdocs/luci-static/resources/view/fchomo/node.js:699
msgid "Max download speed"
msgstr "最大下载速度"
#: htdocs/luci-static/resources/fchomo/listeners.js:1381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1814
+#: htdocs/luci-static/resources/view/fchomo/node.js:2054
msgid "Max each POST bytes"
msgstr "POST 最大字节数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1083
+#: htdocs/luci-static/resources/view/fchomo/node.js:1235
msgid "Max open streams"
msgstr "限制打开流的数量"
@@ -2085,29 +2135,29 @@ msgstr "最大 Realms 总数"
msgid "Max realms per client IP"
msgstr "每客户端 IP 最大 Realms 总数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
msgid "Max request times"
msgstr "最大请求次数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
msgid "Max reusable seconds"
msgstr "最大可复用秒数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
msgid "Max reuse times"
msgstr "最大复用次数"
#: htdocs/luci-static/resources/fchomo/listeners.js:473
-#: htdocs/luci-static/resources/view/fchomo/node.js:690
+#: htdocs/luci-static/resources/view/fchomo/node.js:693
msgid "Max upload speed"
msgstr "最大上传速度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2118
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Maximum connections"
msgstr "最大连接数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1896
+#: htdocs/luci-static/resources/view/fchomo/node.js:2136
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
@@ -2116,18 +2166,18 @@ msgstr ""
"%s 冲突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:327
-#: htdocs/luci-static/resources/view/fchomo/node.js:433
+#: htdocs/luci-static/resources/view/fchomo/node.js:436
msgid "Maximum padding rate"
msgstr "最大填充率"
#: htdocs/luci-static/resources/fchomo/listeners.js:339
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr "最大填充率必须大于等于最小填充率。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1895
+#: htdocs/luci-static/resources/view/fchomo/node.js:2135
msgid "Maximum streams"
msgstr "最大流数量"
@@ -2148,26 +2198,26 @@ msgstr "Mihomo 客户端"
msgid "Mihomo server"
msgstr "Mihomo 服务端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:619
+#: htdocs/luci-static/resources/view/fchomo/node.js:622
msgid "Min of idle sessions to keep"
msgstr "要保留的最少闲置会话数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1820
+#: htdocs/luci-static/resources/view/fchomo/node.js:2060
msgid "Min posts interval"
msgstr "POST 请求最小间隔时间"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:2127
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
#: htdocs/luci-static/resources/fchomo/listeners.js:316
-#: htdocs/luci-static/resources/view/fchomo/node.js:426
+#: htdocs/luci-static/resources/view/fchomo/node.js:429
msgid "Minimum padding rate"
msgstr "最小填充率"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2126
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Minimum streams"
msgstr "最小流数量"
@@ -2185,19 +2235,23 @@ msgid "Mixed port"
msgstr "混合端口"
#: htdocs/luci-static/resources/fchomo/listeners.js:1388
-#: htdocs/luci-static/resources/view/fchomo/node.js:1864
+#: htdocs/luci-static/resources/view/fchomo/node.js:2104
msgid "Multiplex"
msgstr "多路复用"
#: htdocs/luci-static/resources/fchomo/listeners.js:125
-#: htdocs/luci-static/resources/view/fchomo/node.js:256
+#: htdocs/luci-static/resources/view/fchomo/node.js:259
msgid "Multiplex fields"
msgstr "多路复用字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:367
+#: htdocs/luci-static/resources/view/fchomo/node.js:370
msgid "Multiplexing"
msgstr "多路复用"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+msgid "NO Listener"
+msgstr "无监听"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:642
#: htdocs/luci-static/resources/view/fchomo/client.js:718
msgid "NOT"
@@ -2207,11 +2261,11 @@ msgstr "NOT"
msgid "Name of the Proxy group as outbound."
msgstr "出站代理组的名称。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2438
msgid "Name of the Proxy group to download provider."
msgstr "用于下载供应商订阅的代理组名称。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:404
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:406
msgid "Name of the Proxy group to download rule set."
msgstr "用于下载规则集订阅的代理组名称。"
@@ -2219,23 +2273,33 @@ msgstr "用于下载规则集订阅的代理组名称。"
msgid "Name of the Sub rule used for inbound matching."
msgstr "用于入站匹配的子规则名称。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:641
+#: htdocs/luci-static/resources/view/fchomo/node.js:644
msgid "Native UDP"
msgstr "原生 UDP"
-#: htdocs/luci-static/resources/fchomo.js:398
+#: htdocs/luci-static/resources/fchomo.js:399
msgid "Native appearance"
msgstr "原生外观"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1007
+#: htdocs/luci-static/resources/view/fchomo/node.js:1016
msgid "Network"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network name"
+msgstr "网络名称"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network secret"
+msgstr "网络密码"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:662
msgid "Network type"
msgstr "网络类型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2367
+#: htdocs/luci-static/resources/view/fchomo/node.js:2607
msgid "No"
msgstr ""
@@ -2251,40 +2315,40 @@ msgstr "无 SSE header"
msgid "No add'l params"
msgstr "无附加参数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1804
+#: htdocs/luci-static/resources/view/fchomo/node.js:2044
msgid "No gRPC header"
msgstr "无 gRPC header"
#: htdocs/luci-static/resources/view/fchomo/client.js:1192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2430
+#: htdocs/luci-static/resources/view/fchomo/node.js:2670
msgid "No testing is performed when this provider node is not in use."
msgstr "当此供应商的节点未使用时,不执行任何测试。"
-#: htdocs/luci-static/resources/fchomo.js:728
+#: htdocs/luci-static/resources/fchomo.js:729
msgid "No valid %s found."
msgstr "未找到有效的%s。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:229
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
msgid "No valid rule-set link found."
msgstr "未找到有效的规则集链接。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1092
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Node"
msgstr "节点"
#: htdocs/luci-static/resources/view/fchomo/client.js:1254
-#: htdocs/luci-static/resources/view/fchomo/node.js:2450
+#: htdocs/luci-static/resources/view/fchomo/node.js:2690
msgid "Node exclude filter"
msgstr "排除节点"
#: htdocs/luci-static/resources/view/fchomo/client.js:1259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2457
+#: htdocs/luci-static/resources/view/fchomo/node.js:2697
msgid "Node exclude type"
msgstr "排除节点类型"
#: htdocs/luci-static/resources/view/fchomo/client.js:1249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2444
+#: htdocs/luci-static/resources/view/fchomo/node.js:2684
msgid "Node filter"
msgstr "过滤节点"
@@ -2292,65 +2356,65 @@ msgstr "过滤节点"
msgid "Node switch tolerance"
msgstr "节点切换容差"
-#: htdocs/luci-static/resources/fchomo.js:425
+#: htdocs/luci-static/resources/fchomo.js:426
msgid "None"
msgstr "无"
-#: htdocs/luci-static/resources/view/fchomo/node.js:819
+#: htdocs/luci-static/resources/view/fchomo/node.js:822
msgid "Normal"
msgstr "正常"
-#: htdocs/luci-static/resources/view/fchomo/global.js:634
+#: htdocs/luci-static/resources/view/fchomo/global.js:635
msgid "Not Installed"
msgstr "未安装"
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Not Running"
msgstr "未在运行"
-#: htdocs/luci-static/resources/view/fchomo/node.js:487
+#: htdocs/luci-static/resources/view/fchomo/node.js:490
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "ON"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Obfs Mode"
msgstr "Obfs 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:734
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Obfuscate maximum packet size"
msgstr "混淆最大数据包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:507
-#: htdocs/luci-static/resources/view/fchomo/node.js:729
+#: htdocs/luci-static/resources/view/fchomo/node.js:732
msgid "Obfuscate minimum packet size"
msgstr "混淆最小数据包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:721
+#: htdocs/luci-static/resources/view/fchomo/node.js:724
msgid "Obfuscate password"
msgstr "混淆密码"
#: htdocs/luci-static/resources/fchomo/listeners.js:291
#: htdocs/luci-static/resources/fchomo/listeners.js:492
-#: htdocs/luci-static/resources/view/fchomo/node.js:412
-#: htdocs/luci-static/resources/view/fchomo/node.js:714
+#: htdocs/luci-static/resources/view/fchomo/node.js:415
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "Obfuscate type"
msgstr "混淆类型"
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:293
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
+#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
msgid "Obfuscated as %s"
msgstr "混淆为%s"
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
msgid "One or more numbers in the range 0-63 separated by commas"
msgstr "0-63 范围内的一个或多个数字,以逗号分隔"
@@ -2359,15 +2423,25 @@ msgid "Only applicable when %s are used as a frontend."
msgstr "仅当 %s 用作前端时适用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Only applies to the %s."
msgstr "只对%s生效。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:754
+#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+msgid ""
+"Only nodes using the same %s and %s as this network are permitted to perform "
+"a handshake or relay traffic through this node."
+msgstr "仅允许使用与本网络相同的 %s 和 %s 的节点通过此节点执行握手或中继流量。"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:755
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr "只处理来自指定接口的流量。留空表示全部。"
-#: htdocs/luci-static/resources/fchomo.js:1578
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
+msgid "Only the address %s is valid."
+msgstr "只有地址 %s 是有效的。"
+
+#: htdocs/luci-static/resources/fchomo.js:1579
msgid "Open Dashboard"
msgstr "打开面板"
@@ -2379,7 +2453,7 @@ msgstr "运行模式"
msgid "Option is deprecated. Please use %s instead."
msgstr "该选项已弃用,请使用%s作为代替。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2315
+#: htdocs/luci-static/resources/view/fchomo/node.js:2555
msgid "Other configuration items"
msgstr "其他配置项"
@@ -2387,22 +2461,22 @@ msgstr "其他配置项"
msgid "Outbound"
msgstr "出站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1396
-#: htdocs/luci-static/resources/view/fchomo/node.js:2354
+#: htdocs/luci-static/resources/view/fchomo/node.js:1548
+#: htdocs/luci-static/resources/view/fchomo/node.js:2594
msgid "Override cert DNSName"
msgstr "覆盖证书 DNSName"
-#: htdocs/luci-static/resources/view/fchomo/global.js:679
-#: htdocs/luci-static/resources/view/fchomo/global.js:717
+#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:718
msgid "Override destination"
msgstr "覆盖目标地址"
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2349
msgid "Override fields"
msgstr "覆盖字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:633
+#: htdocs/luci-static/resources/view/fchomo/node.js:636
msgid "Override the IP address of the server that DNS response."
msgstr "覆盖 DNS 回应的服务器的 IP 地址。"
@@ -2410,7 +2484,7 @@ msgstr "覆盖 DNS 回应的服务器的 IP 地址。"
msgid "Override the Proxy group of DNS server."
msgstr "覆盖 DNS 服务器所使用的代理组。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:681
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的域名覆盖连接目标。"
@@ -2418,7 +2492,7 @@ msgstr "使用嗅探到的域名覆盖连接目标。"
msgid "Override the existing ECS in original request."
msgstr "覆盖原始请求中已有的 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
msgid "Overrides the domain name used for HTTPS record queries."
msgstr "覆盖用于 HTTPS 记录查询的域名。"
@@ -2426,19 +2500,19 @@ msgstr "覆盖用于 HTTPS 记录查询的域名。"
msgid "Overview"
msgstr "概览"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1731
+#: htdocs/luci-static/resources/view/fchomo/node.js:1971
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1732
+#: htdocs/luci-static/resources/view/fchomo/node.js:1972
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:569
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Packet encoding"
msgstr "数据包编码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1809
+#: htdocs/luci-static/resources/view/fchomo/node.js:2049
msgid "Padding bytes"
msgstr "填充字节"
@@ -2447,65 +2521,69 @@ msgid "Padding scheme"
msgstr "填充方案"
#: htdocs/luci-static/resources/fchomo/listeners.js:872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Paddings"
msgstr "填充 (Paddings)"
#: htdocs/luci-static/resources/fchomo/listeners.js:167
#: htdocs/luci-static/resources/fchomo/listeners.js:184
#: htdocs/luci-static/resources/fchomo/listeners.js:738
-#: htdocs/luci-static/resources/view/fchomo/node.js:324
-#: htdocs/luci-static/resources/view/fchomo/node.js:345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+#: htdocs/luci-static/resources/view/fchomo/node.js:327
+#: htdocs/luci-static/resources/view/fchomo/node.js:348
+#: htdocs/luci-static/resources/view/fchomo/node.js:1326
msgid "Password"
msgstr "密码"
#: htdocs/luci-static/resources/fchomo/listeners.js:589
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
+#: htdocs/luci-static/resources/view/fchomo/node.js:790
msgid "Path MTU Discovery"
msgstr "路径 MTU 发现"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:387
msgid "Path in bundle"
msgstr "捆绑包路径"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:386
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Path in bundle: %s"
msgstr "在捆绑包%s中的路径"
#: htdocs/luci-static/resources/fchomo/listeners.js:812
-#: htdocs/luci-static/resources/view/fchomo/node.js:2173
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
+#: htdocs/luci-static/resources/view/fchomo/node.js:2413
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:375
msgid "Payload"
msgstr "Payload"
-#: htdocs/luci-static/resources/view/fchomo/node.js:920
+#: htdocs/luci-static/resources/view/fchomo/node.js:929
msgid "Peer public key"
msgstr "对端公钥"
-#: htdocs/luci-static/resources/view/fchomo/global.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:1068
+msgid "Peers"
+msgstr "对等端点"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:542
msgid ""
"Performance may degrade slightly, so it is not recommended to enable on when "
"it is not needed."
msgstr "性能可能会略有下降,建议仅在需要时开启。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:947
+#: htdocs/luci-static/resources/view/fchomo/node.js:956
msgid "Periodically sends data packets to maintain connection persistence."
msgstr "定期发送数据包以维持连接持久性。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:946
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Persistent keepalive"
msgstr "持久连接"
-#: htdocs/luci-static/resources/view/fchomo/node.js:827
+#: htdocs/luci-static/resources/view/fchomo/node.js:830
msgid "Physical MTU"
msgstr "物理 MTU"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:306
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
msgid "Plain text"
msgstr "纯文本 text"
-#: htdocs/luci-static/resources/view/fchomo/global.js:881
+#: htdocs/luci-static/resources/view/fchomo/global.js:882
msgid ""
"Please ensure that the DNS query of the domains to be processed in the DNS "
"policyare send via DIRECT/Proxy Node in the same semantics as Routing "
@@ -2514,16 +2592,16 @@ msgstr ""
"请在 DNS 策略 中确保要处理的域名的 DNS 查询以与路由模式相同的语义通过 直"
"连/代理节点 发送。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:210
msgid ""
"Please refer to %s for link format "
"standards."
msgstr "链接格式标准请参考 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2146
-#: htdocs/luci-static/resources/view/fchomo/node.js:2172
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
+#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/node.js:2412
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid ""
"Please type %s"
"a>."
@@ -2536,60 +2614,56 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1545
#: htdocs/luci-static/resources/view/fchomo/client.js:1800
#: htdocs/luci-static/resources/view/fchomo/client.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1999
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
+#: htdocs/luci-static/resources/view/fchomo/node.js:2239
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:157
msgid "Please type %s fields of mihomo config."
msgstr "请输入 mihomo 配置的 %s 字段。"
#: htdocs/luci-static/resources/fchomo/listeners.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Plugin"
msgstr "插件"
#: htdocs/luci-static/resources/fchomo/listeners.js:120
-#: htdocs/luci-static/resources/view/fchomo/node.js:250
+#: htdocs/luci-static/resources/view/fchomo/node.js:253
msgid "Plugin fields"
msgstr "插件字段"
#: htdocs/luci-static/resources/fchomo/listeners.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/view/fchomo/node.js:1275
msgid "Plugin type"
msgstr "插件类型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:279
+#: htdocs/luci-static/resources/view/fchomo/node.js:282
msgid "Port"
msgstr "端口"
-#: htdocs/luci-static/resources/fchomo.js:1815
-msgid "Port %s alrealy exists!"
-msgstr "端口 %s 已存在!"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:708
+#: htdocs/luci-static/resources/view/fchomo/node.js:711
msgid "Port hop interval"
msgstr "端口跳跃间隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:355
+#: htdocs/luci-static/resources/view/fchomo/node.js:358
msgid "Port range"
msgstr "端口范围"
-#: htdocs/luci-static/resources/view/fchomo/global.js:714
+#: htdocs/luci-static/resources/view/fchomo/global.js:715
msgid "Ports"
msgstr "端口"
#: htdocs/luci-static/resources/fchomo/listeners.js:154
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Ports pool"
msgstr "端口池"
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:524
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:927
+#: htdocs/luci-static/resources/view/fchomo/node.js:507
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
msgid "Pre-shared key"
msgstr "预共享密钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:1010
-#: htdocs/luci-static/resources/view/fchomo/node.js:1284
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Pre-shared key of rendezvous server"
msgstr "牵线服务器的预共享密钥"
@@ -2601,69 +2675,73 @@ msgstr "优先 IPv4"
msgid "Prefer IPv6"
msgstr "优先 IPv6"
-#: htdocs/luci-static/resources/view/fchomo/global.js:545
+#: htdocs/luci-static/resources/view/fchomo/global.js:546
msgid ""
"Prevent ICMP loopback issues in some cases. Ping will not show real delay."
msgstr "防止某些情况下的 ICMP 环回问题。Ping 不会显示实际延迟。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Primary"
msgstr "主要"
-#: htdocs/luci-static/resources/view/fchomo/global.js:760
-#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1960
-#: htdocs/luci-static/resources/view/fchomo/node.js:1967
-#: htdocs/luci-static/resources/view/fchomo/node.js:2379
-#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/global.js:761
+#: htdocs/luci-static/resources/view/fchomo/global.js:778
+#: htdocs/luci-static/resources/view/fchomo/node.js:2200
+#: htdocs/luci-static/resources/view/fchomo/node.js:2207
+#: htdocs/luci-static/resources/view/fchomo/node.js:2619
+#: htdocs/luci-static/resources/view/fchomo/node.js:2626
msgid "Priority: Proxy Node > Global."
msgstr "优先级: 代理节点 > 全局。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1028
+#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "Priv-key"
msgstr "密钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1032
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "Priv-key passphrase"
msgstr "密钥密码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:899
-#: htdocs/luci-static/resources/view/fchomo/node.js:992
+#: htdocs/luci-static/resources/view/fchomo/node.js:908
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
msgid "Private key"
msgstr "私钥"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1055
+msgid "Private network"
+msgstr "私密网络"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:421
msgid "Process matching mode"
msgstr "进程匹配模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2545
msgid "Programmable replacement"
msgstr "可编程替换"
-#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1870
+#: htdocs/luci-static/resources/view/fchomo/global.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:2110
msgid "Protocol"
msgstr "协议"
-#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "Protocol parameter. Enable length block encryption."
msgstr "协议参数。启用长度块加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:558
+#: htdocs/luci-static/resources/view/fchomo/node.js:561
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1112
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
-#: htdocs/luci-static/resources/view/fchomo/node.js:2495
+#: htdocs/luci-static/resources/view/fchomo/node.js:2222
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
+#: htdocs/luci-static/resources/view/fchomo/node.js:2741
msgid "Provider"
msgstr "供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2419
msgid "Provider URL"
msgstr "供应商订阅 URL"
@@ -2673,33 +2751,33 @@ msgstr "供应商订阅 URL"
msgid "Proxy Group"
msgstr "代理组"
-#: htdocs/luci-static/resources/view/fchomo/global.js:810
+#: htdocs/luci-static/resources/view/fchomo/global.js:811
msgid "Proxy IPv4 IP-s"
msgstr "代理 IPv4 地址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:813
+#: htdocs/luci-static/resources/view/fchomo/global.js:814
msgid "Proxy IPv6 IP-s"
msgstr "代理 IPv6 地址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:816
+#: htdocs/luci-static/resources/view/fchomo/global.js:817
msgid "Proxy MAC-s"
msgstr "代理 MAC 地址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:222
-#: htdocs/luci-static/resources/view/fchomo/node.js:2494
+#: htdocs/luci-static/resources/view/fchomo/node.js:225
+#: htdocs/luci-static/resources/view/fchomo/node.js:2740
msgid "Proxy Node"
msgstr "代理节点"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2470
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2716
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Proxy chain"
msgstr "代理链"
#: htdocs/luci-static/resources/fchomo/listeners.js:622
#: htdocs/luci-static/resources/view/fchomo/client.js:813
#: htdocs/luci-static/resources/view/fchomo/client.js:1643
-#: htdocs/luci-static/resources/view/fchomo/node.js:2197
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
+#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:405
msgid "Proxy group"
msgstr "代理组"
@@ -2711,26 +2789,26 @@ msgstr "代理组覆盖"
msgid "Proxy mode"
msgstr "代理模式"
-#: htdocs/luci-static/resources/view/fchomo/global.js:819
+#: htdocs/luci-static/resources/view/fchomo/global.js:820
msgid "Proxy routerself"
msgstr "代理路由器自身"
-#: htdocs/luci-static/resources/view/fchomo/node.js:916
+#: htdocs/luci-static/resources/view/fchomo/node.js:925
msgid "Public key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:645
+#: htdocs/luci-static/resources/view/fchomo/node.js:801
msgid "QUIC"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/view/fchomo/node.js:751
+#: htdocs/luci-static/resources/view/fchomo/node.js:754
msgid "QUIC based 0-RTT"
msgstr "基于 QUIC 的 0-RTT"
#: htdocs/luci-static/resources/fchomo/listeners.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "QUIC versions"
msgstr "QUIC 版本"
@@ -2741,11 +2819,11 @@ msgstr "快速重载"
#: htdocs/luci-static/resources/fchomo/listeners.js:1132
#: htdocs/luci-static/resources/fchomo/listeners.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1617
msgid "REALITY"
msgstr "REALITY"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "REALITY X25519MLKEM768 PQC support"
msgstr "REALITY X25519MLKEM768 后量子加密支持"
@@ -2766,46 +2844,46 @@ msgid "REALITY private key"
msgstr "REALITY 私钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1481
+#: htdocs/luci-static/resources/view/fchomo/node.js:1633
msgid "REALITY public key"
msgstr "REALITY 公钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:1280
-#: htdocs/luci-static/resources/view/fchomo/node.js:1486
+#: htdocs/luci-static/resources/view/fchomo/node.js:1638
msgid "REALITY short ID"
msgstr "REALITY 标识符"
-#: htdocs/luci-static/resources/view/fchomo/node.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:289
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "REMATCH-NAME marking"
msgstr "REMATCH-NAME 打标"
#: htdocs/luci-static/resources/fchomo/listeners.js:843
#: htdocs/luci-static/resources/fchomo/listeners.js:862
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
msgid "RTT"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:390
+#: htdocs/luci-static/resources/fchomo.js:391
msgid "Random"
msgstr "随机"
-#: htdocs/luci-static/resources/view/fchomo/global.js:668
+#: htdocs/luci-static/resources/view/fchomo/global.js:669
msgid "Random will be used if empty."
msgstr "留空将使用随机令牌。"
-#: htdocs/luci-static/resources/fchomo.js:400
+#: htdocs/luci-static/resources/fchomo.js:401
msgid "Randomized traffic characteristics"
msgstr "随机化流量特征"
#: htdocs/luci-static/resources/fchomo/listeners.js:999
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "Realm"
msgstr "Realm"
#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Realm ID"
msgstr "Realm ID"
@@ -2829,7 +2907,7 @@ msgstr "Redirect TCP + TProxy UDP"
msgid "Redirect TCP + Tun UDP"
msgstr "Redirect TCP + Tun UDP"
-#: htdocs/luci-static/resources/view/fchomo/node.js:835
+#: htdocs/luci-static/resources/view/fchomo/node.js:838
msgid "Reduces background traffic and network configuration refresh frequency."
msgstr "降低后台流量和网络配置刷新频率。"
@@ -2837,7 +2915,7 @@ msgstr "降低后台流量和网络配置刷新频率。"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/fchomo.js:1571
+#: htdocs/luci-static/resources/fchomo.js:1572
#: htdocs/luci-static/resources/view/fchomo/client.js:970
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
@@ -2856,78 +2934,73 @@ msgstr "再路由"
msgid "Rematching routing rules"
msgstr "重新匹配路由规则"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2124
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
+#: htdocs/luci-static/resources/view/fchomo/node.js:2364
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:289
msgid "Remote"
msgstr "远程"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1658
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Remote DNS resolve"
msgstr "远程 DNS 解析"
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
msgid "Remote trace level"
msgstr "远程跟踪级别"
-#: htdocs/luci-static/resources/view/fchomo/node.js:811
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "Remote trace target"
msgstr "远程跟踪目标"
-#: htdocs/luci-static/resources/fchomo.js:1736
-msgid "Remove"
-msgstr "移除"
-
-#: htdocs/luci-static/resources/fchomo.js:1741
-#: htdocs/luci-static/resources/view/fchomo/node.js:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2100
-#: htdocs/luci-static/resources/view/fchomo/node.js:2102
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
+#: htdocs/luci-static/resources/view/fchomo/node.js:244
+#: htdocs/luci-static/resources/view/fchomo/node.js:246
+#: htdocs/luci-static/resources/view/fchomo/node.js:2340
+#: htdocs/luci-static/resources/view/fchomo/node.js:2342
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:263
msgid "Remove idles"
msgstr "移除闲置"
#: htdocs/luci-static/resources/fchomo/listeners.js:1004
-#: htdocs/luci-static/resources/view/fchomo/node.js:1278
+#: htdocs/luci-static/resources/view/fchomo/node.js:1430
msgid "Rendezvous server"
msgstr "牵线服务器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2296
+#: htdocs/luci-static/resources/view/fchomo/node.js:2536
msgid "Replace name"
msgstr "名称替换"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2297
+#: htdocs/luci-static/resources/view/fchomo/node.js:2537
msgid "Replace node name."
msgstr "替换节点名称"
-#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/fchomo.js:375
msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1344
-#: htdocs/luci-static/resources/view/fchomo/node.js:1738
-#: htdocs/luci-static/resources/view/fchomo/node.js:1745
+#: htdocs/luci-static/resources/view/fchomo/node.js:1978
+#: htdocs/luci-static/resources/view/fchomo/node.js:1985
msgid "Request path"
msgstr "请求路径"
-#: htdocs/luci-static/resources/view/fchomo/node.js:682
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Request timeout"
msgstr "请求超时"
-#: htdocs/luci-static/resources/fchomo.js:377
+#: htdocs/luci-static/resources/fchomo.js:378
msgid "Require and verify"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:375
+#: htdocs/luci-static/resources/fchomo.js:376
msgid "Require any"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
-#: htdocs/luci-static/resources/view/fchomo/node.js:1492
+#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/view/fchomo/node.js:1644
msgid "Requires server support."
msgstr "需要服务器支持。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:941
+#: htdocs/luci-static/resources/view/fchomo/node.js:950
msgid "Reserved field bytes"
msgstr "保留字段字节"
@@ -2940,15 +3013,15 @@ msgstr "资源管理"
#: htdocs/luci-static/resources/fchomo/listeners.js:699
#: htdocs/luci-static/resources/fchomo/listeners.js:1130
#: htdocs/luci-static/resources/fchomo/listeners.js:1246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1128
-#: htdocs/luci-static/resources/view/fchomo/node.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1473
+#: htdocs/luci-static/resources/view/fchomo/node.js:1280
+#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "Restls"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:753
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Restls script"
msgstr "Restls 剧本"
@@ -2962,49 +3035,49 @@ msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr "在 API 返回 icon 所输入的字符串,以在该代理组显示。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr "重用 HTTP 连接以减少每次建立连接的 RTT。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:485
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr "复用单条隧道使其内部承载多条目标连线。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:838
+#: htdocs/luci-static/resources/view/fchomo/global.js:839
msgid "Routing Control"
msgstr "路由控制"
-#: htdocs/luci-static/resources/view/fchomo/global.js:893
-#: htdocs/luci-static/resources/view/fchomo/global.js:896
+#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:897
msgid "Routing DSCP"
msgstr "路由 DSCP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:863
+#: htdocs/luci-static/resources/view/fchomo/global.js:864
msgid "Routing GFW"
msgstr "路由 GFW 流量"
#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/global.js:777
+#: htdocs/luci-static/resources/view/fchomo/node.js:2206
+#: htdocs/luci-static/resources/view/fchomo/node.js:2625
msgid "Routing mark (Fwmark)"
msgstr "路由标记 (Fwmark)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:858
+#: htdocs/luci-static/resources/view/fchomo/global.js:859
msgid "Routing mode"
msgstr "路由模式"
-#: htdocs/luci-static/resources/view/fchomo/global.js:859
+#: htdocs/luci-static/resources/view/fchomo/global.js:860
msgid "Routing mode of the traffic enters mihomo via firewall rules."
msgstr "流量通过防火墙规则进入 mihomo 的路由模式。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:880
+#: htdocs/luci-static/resources/view/fchomo/global.js:881
msgid "Routing mode will be handle domain."
msgstr "路由模式将处理域名。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:840
-#: htdocs/luci-static/resources/view/fchomo/global.js:849
+#: htdocs/luci-static/resources/view/fchomo/global.js:841
+#: htdocs/luci-static/resources/view/fchomo/global.js:850
msgid "Routing ports"
msgstr "路由端口"
@@ -3013,11 +3086,11 @@ msgstr "路由端口"
msgid "Routing rule"
msgstr "路由规则"
-#: htdocs/luci-static/resources/view/fchomo/global.js:770
+#: htdocs/luci-static/resources/view/fchomo/global.js:771
msgid "Routing rule priority"
msgstr "路由规则优先权"
-#: htdocs/luci-static/resources/view/fchomo/global.js:764
+#: htdocs/luci-static/resources/view/fchomo/global.js:765
msgid "Routing table ID"
msgstr "路由表 ID"
@@ -3027,15 +3100,15 @@ msgstr "规则"
#: htdocs/luci-static/resources/view/fchomo/client.js:878
#: htdocs/luci-static/resources/view/fchomo/client.js:891
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Rule set"
msgstr "规则集"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:379
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:381
msgid "Rule set URL"
msgstr "规则集订阅 URL"
-#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:824
msgid "Rules"
msgstr "规则"
@@ -3043,15 +3116,15 @@ msgstr "规则"
msgid "Ruleset"
msgstr "规则集"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:209
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:211
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Running"
msgstr "正在运行"
-#: htdocs/luci-static/resources/fchomo.js:255
+#: htdocs/luci-static/resources/fchomo.js:256
msgid "SMTP"
msgstr ""
@@ -3063,16 +3136,16 @@ msgstr ""
msgid "SOCKS5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
msgid "SSH"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:256
+#: htdocs/luci-static/resources/fchomo.js:257
msgid "STUN"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1021
-#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1447
msgid "STUN servers"
msgstr "STUN 服务器"
@@ -3080,12 +3153,12 @@ msgstr "STUN 服务器"
msgid "SUB-RULE"
msgstr "SUB-RULE"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1109
+#: htdocs/luci-static/resources/view/fchomo/node.js:1261
msgid "SUoT version"
msgstr "SUoT 版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:716
+#: htdocs/luci-static/resources/view/fchomo/node.js:719
msgid "Salamander"
msgstr "Salamander"
@@ -3102,24 +3175,28 @@ msgstr "相同 来源地址 和 目标地址 请求。相同节点"
msgid "Save"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "Secondary"
msgstr "次要"
-#: htdocs/luci-static/resources/view/fchomo/global.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+msgid "Secure Mode"
+msgstr "安全模式"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:531
msgid "Segment maximum size"
msgstr "分段最大尺寸"
-#: htdocs/luci-static/resources/fchomo.js:245
+#: htdocs/luci-static/resources/fchomo.js:246
msgid "Select"
msgstr "手动选择"
-#: htdocs/luci-static/resources/view/fchomo/global.js:626
+#: htdocs/luci-static/resources/view/fchomo/global.js:627
msgid "Select Dashboard"
msgstr "选择面板"
-#: htdocs/luci-static/resources/fchomo.js:414
+#: htdocs/luci-static/resources/fchomo.js:415
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr "以 50% 的概率发送随机 0-3333 字节的填充。"
@@ -3127,8 +3204,8 @@ msgstr "以 50% 的概率发送随机 0-3333 字节的填充。"
msgid "Send queries to both the %s and the %s."
msgstr "同时向%s和%s发起查询。"
-#: htdocs/luci-static/resources/fchomo.js:403
#: htdocs/luci-static/resources/fchomo.js:404
+#: htdocs/luci-static/resources/fchomo.js:405
msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse."
msgstr "发送 300-600 秒的随机票证,以供客户端 0-RTT 重用。"
@@ -3140,17 +3217,17 @@ msgstr "发送 300-600 秒的随机票证,以供客户端 0-RTT 重用。"
msgid "Server"
msgstr "服务端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:277
msgid "Server address"
msgstr "服务器地址"
#: htdocs/luci-static/resources/fchomo/listeners.js:1338
-#: htdocs/luci-static/resources/view/fchomo/node.js:1717
-#: htdocs/luci-static/resources/view/fchomo/node.js:1723
+#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Server hostname"
msgstr "服务器主机名称"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1009
msgid "Server public key"
msgstr "服务器公钥"
@@ -3172,10 +3249,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1129
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1127
-#: htdocs/luci-static/resources/view/fchomo/node.js:1137
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1279
+#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "ShadowTLS"
msgstr ""
@@ -3185,21 +3262,21 @@ msgid "Shadowsocks"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Shadowsocks chipher"
msgstr "Shadowsocks 加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:577
+#: htdocs/luci-static/resources/view/fchomo/node.js:580
msgid "Shadowsocks encrypt"
msgstr "Shadowsocks 加密"
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:590
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Shadowsocks password"
msgstr "Shadowsocks 密码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:2158
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中显示连接以便于打断连接。"
@@ -3211,26 +3288,26 @@ msgstr "静音"
msgid "Simple round-robin all nodes"
msgstr "简单轮替所有节点"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2185
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2425
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:393
msgid "Size limit"
msgstr "大小限制"
#: htdocs/luci-static/resources/view/fchomo/client.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
-#: htdocs/luci-static/resources/view/fchomo/node.js:2360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1554
+#: htdocs/luci-static/resources/view/fchomo/node.js:2600
msgid "Skip cert verify"
msgstr "跳过证书验证"
-#: htdocs/luci-static/resources/view/fchomo/global.js:686
+#: htdocs/luci-static/resources/view/fchomo/global.js:687
msgid "Skiped sniffing domain"
msgstr "跳过嗅探域名"
-#: htdocs/luci-static/resources/view/fchomo/global.js:692
+#: htdocs/luci-static/resources/view/fchomo/global.js:693
msgid "Skiped sniffing dst address"
msgstr "跳过嗅探目标地址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:689
+#: htdocs/luci-static/resources/view/fchomo/global.js:690
msgid "Skiped sniffing src address"
msgstr "跳过嗅探来源地址"
@@ -3239,24 +3316,24 @@ msgstr "跳过嗅探来源地址"
msgid "Snell"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:696
+#: htdocs/luci-static/resources/view/fchomo/global.js:697
msgid "Sniff protocol"
msgstr "嗅探协议"
-#: htdocs/luci-static/resources/view/fchomo/global.js:673
+#: htdocs/luci-static/resources/view/fchomo/global.js:674
msgid "Sniffer"
msgstr "嗅探器"
-#: htdocs/luci-static/resources/view/fchomo/global.js:676
+#: htdocs/luci-static/resources/view/fchomo/global.js:677
msgid "Sniffer settings"
msgstr "嗅探器设置"
-#: htdocs/luci-static/resources/fchomo.js:446
+#: htdocs/luci-static/resources/fchomo.js:447
msgid "Specify a ID"
msgstr "指定一个ID"
-#: htdocs/luci-static/resources/view/fchomo/global.js:841
-#: htdocs/luci-static/resources/view/fchomo/global.js:850
+#: htdocs/luci-static/resources/view/fchomo/global.js:842
+#: htdocs/luci-static/resources/view/fchomo/global.js:851
msgid ""
"Specify target ports to be proxied. Multiple ports must be separated by "
"commas."
@@ -3270,11 +3347,11 @@ msgstr "堆栈"
msgid "Standard"
msgstr "标准"
-#: htdocs/luci-static/resources/fchomo.js:259
+#: htdocs/luci-static/resources/fchomo.js:260
msgid "Steam Client"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "Steam P2P"
msgstr ""
@@ -3284,7 +3361,7 @@ msgid "Strategy"
msgstr "策略"
#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:775
+#: htdocs/luci-static/resources/view/fchomo/node.js:778
msgid "Stream-level receive window size"
msgstr "流级接收窗口大小"
@@ -3298,8 +3375,12 @@ msgstr "子规则"
msgid "Sub rule group"
msgstr "子规则组"
-#: htdocs/luci-static/resources/fchomo.js:731
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+msgid "Subnet proxy"
+msgstr "子网代理"
+
+#: htdocs/luci-static/resources/fchomo.js:732
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:233
msgid "Successfully imported %s %s of total %s."
msgstr "已成功导入 %s 个%s (共 %s 个)。"
@@ -3307,20 +3388,16 @@ msgstr "已成功导入 %s 个%s (共 %s 个)。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/fchomo.js:2098
-msgid "Successfully uploaded."
-msgstr "已成功上传。"
-
#: htdocs/luci-static/resources/fchomo.js:159
#: htdocs/luci-static/resources/fchomo.js:196
msgid "Sudoku"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:741
+#: htdocs/luci-static/resources/view/fchomo/node.js:744
msgid "Support %s, default %s."
msgstr "支持 %s,默认 %s。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:206
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
msgid ""
"Supports rule-set links of type: %s and format: %s."
""
@@ -3350,7 +3427,7 @@ msgstr "系统 DNS"
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:201
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
#: htdocs/luci-static/resources/fchomo/listeners.js:663
#: htdocs/luci-static/resources/view/fchomo/client.js:618
#: htdocs/luci-static/resources/view/fchomo/client.js:710
@@ -3361,7 +3438,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 并发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1911
+#: htdocs/luci-static/resources/view/fchomo/node.js:2151
msgid "TCP only"
msgstr "仅 TCP"
@@ -3385,34 +3462,43 @@ msgstr "TCP-Keep-Alive 间隔"
#: htdocs/luci-static/resources/fchomo.js:193
#: htdocs/luci-static/resources/fchomo.js:195
#: htdocs/luci-static/resources/fchomo.js:206
+#: htdocs/luci-static/resources/fchomo.js:211
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1942
-#: htdocs/luci-static/resources/view/fchomo/node.js:2321
+#: htdocs/luci-static/resources/view/fchomo/node.js:2182
+#: htdocs/luci-static/resources/view/fchomo/node.js:2561
msgid "TFO"
msgstr "TCP 快速打开 (TFO)"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1171
+msgid "TLD DNS zone"
+msgstr "TLD DNS 区域"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1172
+msgid "TLD DNS zone used by MagicDNS, default is %s."
+msgstr "MagicDNS 使用的 TLD DNS 区域,默认为 %s。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:711
#: htdocs/luci-static/resources/fchomo/listeners.js:1031
-#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1305
+#: htdocs/luci-static/resources/view/fchomo/global.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1457
msgid "TLS"
msgstr "TLS"
#: htdocs/luci-static/resources/fchomo/listeners.js:1072
-#: htdocs/luci-static/resources/view/fchomo/node.js:1336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1488
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1330
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
msgid "TLS SNI"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:123
-#: htdocs/luci-static/resources/view/fchomo/node.js:253
+#: htdocs/luci-static/resources/view/fchomo/node.js:256
msgid "TLS fields"
msgstr "TLS 字段"
@@ -3421,12 +3507,12 @@ msgstr "TLS 字段"
msgid "TUIC"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:257
+#: htdocs/luci-static/resources/fchomo.js:258
msgid "TURN"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:209
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "Tailscale"
msgstr ""
@@ -3439,34 +3525,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr "让客户端使用 BBR 流控算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1595
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1616
-#: htdocs/luci-static/resources/view/fchomo/node.js:1620
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1801
+#: htdocs/luci-static/resources/view/fchomo/node.js:1805
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1833
+#: htdocs/luci-static/resources/view/fchomo/node.js:1837
msgid "The %s address used by local machine in the %s network."
msgstr "本机 %s 地址,用于在 %s 网络中使用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1151
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
msgid "The %s private key, in PEM format."
msgstr "%s私钥,需要 PEM 格式。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1121
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
msgid "The %s public key, in PEM format."
msgstr "%s公钥,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr "域名的 HTTPS 记录的 ECH 参数。留空则通过 DNS 解析。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:394
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr "Sudoku 服务器提供的 ED25519 可用私钥 或 UUID。"
@@ -3474,7 +3561,7 @@ msgstr "Sudoku 服务器提供的 ED25519 可用私钥 或 UUID。"
msgid "The ED25519 master public key or UUID generated by Sudoku."
msgstr "Sudoku 生成的 ED25519 主公钥 或 UUID。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "The client metadata sent to the server."
msgstr "发送到服务器的客户端元数据。"
@@ -3482,14 +3569,14 @@ msgstr "发送到服务器的客户端元数据。"
msgid "The default value is 2:00 every day."
msgstr "默认值为每天 2:00。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:1243
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr "默认值为%s,表示仅使用外层连接超时。"
#: htdocs/luci-static/resources/fchomo/listeners.js:875
-#: htdocs/luci-static/resources/view/fchomo/node.js:1252
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr "首个填充必须为 100% 的概率并且至少 35 字节。"
@@ -3509,25 +3596,25 @@ msgid "The proxy used to connect to the handshake target."
msgstr "用于连接握手目标的代理。"
#: htdocs/luci-static/resources/fchomo/listeners.js:873
-#: htdocs/luci-static/resources/view/fchomo/node.js:1250
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "The server and client can set different padding parameters."
msgstr "服务器和客户端可以设置不同的填充参数。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1232
-#: htdocs/luci-static/resources/view/fchomo/global.js:615
+#: htdocs/luci-static/resources/view/fchomo/global.js:616
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr "此 ECH 参数需要添加到域名的 HTTPS 记录中。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1682
-#: htdocs/luci-static/resources/view/fchomo/node.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1557
+#: htdocs/luci-static/resources/view/fchomo/node.js:2603
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
"这是危险行为,您的流量将几乎等同于明文!使用风险自负!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:647
+#: htdocs/luci-static/resources/view/fchomo/node.js:650
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3547,11 +3634,11 @@ msgid ""
msgstr ""
"要启用 Tun 支持,您需要安装 ip-full 和 kmod-tun。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:885
+#: htdocs/luci-static/resources/view/fchomo/global.js:886
msgid "To enable, you need to install dnsmasq-full."
msgstr "要启用,您需要安装 dnsmasq-full。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:783
+#: htdocs/luci-static/resources/view/fchomo/global.js:784
msgid "Tproxy Fwmark/fwmask"
msgstr "Tproxy Fwmark/fwmask"
@@ -3560,32 +3647,32 @@ msgid "Tproxy port"
msgstr "Tproxy 端口"
#: htdocs/luci-static/resources/fchomo/listeners.js:206
-#: htdocs/luci-static/resources/view/fchomo/node.js:383
+#: htdocs/luci-static/resources/view/fchomo/node.js:386
msgid "Traffic pattern"
msgstr "流量模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2532
+#: htdocs/luci-static/resources/view/fchomo/node.js:2778
msgid "Transit proxy group"
msgstr "中转代理组"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2543
+#: htdocs/luci-static/resources/view/fchomo/node.js:2789
msgid "Transit proxy node"
msgstr "中转代理节点"
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/fchomo/listeners.js:1302
-#: htdocs/luci-static/resources/view/fchomo/node.js:360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1910
msgid "Transport"
msgstr "传输层"
#: htdocs/luci-static/resources/fchomo/listeners.js:124
-#: htdocs/luci-static/resources/view/fchomo/node.js:255
+#: htdocs/luci-static/resources/view/fchomo/node.js:258
msgid "Transport fields"
msgstr "传输层字段"
#: htdocs/luci-static/resources/fchomo/listeners.js:1307
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/node.js:1915
msgid "Transport type"
msgstr "传输层类型"
@@ -3607,7 +3694,7 @@ msgstr ""
msgid "Trusted proxy header"
msgstr "可信代理 Header"
-#: htdocs/luci-static/resources/view/fchomo/global.js:788
+#: htdocs/luci-static/resources/view/fchomo/global.js:789
msgid "Tun Fwmark/fwmask"
msgstr "Tun Fwmark/fwmask"
@@ -3627,7 +3714,7 @@ msgstr "Tun 堆栈"
msgid "Tunnel"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Turns TCP relay off."
msgstr "关闭 TCP 中继。"
@@ -3637,10 +3724,10 @@ msgstr "关闭 TCP 中继。"
#: htdocs/luci-static/resources/view/fchomo/client.js:767
#: htdocs/luci-static/resources/view/fchomo/client.js:875
#: htdocs/luci-static/resources/view/fchomo/client.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:268
-#: htdocs/luci-static/resources/view/fchomo/node.js:2122
-#: htdocs/luci-static/resources/view/fchomo/node.js:2493
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
+#: htdocs/luci-static/resources/view/fchomo/node.js:271
+#: htdocs/luci-static/resources/view/fchomo/node.js:2362
+#: htdocs/luci-static/resources/view/fchomo/node.js:2739
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Type"
msgstr "类型"
@@ -3658,52 +3745,51 @@ msgstr "类型"
#: htdocs/luci-static/resources/fchomo/listeners.js:669
#: htdocs/luci-static/resources/view/fchomo/client.js:617
#: htdocs/luci-static/resources/view/fchomo/client.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1097
-#: htdocs/luci-static/resources/view/fchomo/node.js:2331
+#: htdocs/luci-static/resources/view/fchomo/node.js:2571
msgid "UDP"
msgstr "UDP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:534
+#: htdocs/luci-static/resources/view/fchomo/global.js:535
msgid "UDP NAT expiration time"
msgstr "UDP NAT 过期时间"
-#: htdocs/luci-static/resources/view/fchomo/node.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
+#: htdocs/luci-static/resources/view/fchomo/node.js:649
+#: htdocs/luci-static/resources/view/fchomo/node.js:749
msgid "UDP over stream"
msgstr "UDP over stream"
-#: htdocs/luci-static/resources/view/fchomo/node.js:652
+#: htdocs/luci-static/resources/view/fchomo/node.js:655
msgid "UDP over stream version"
msgstr "UDP over stream 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:639
+#: htdocs/luci-static/resources/view/fchomo/node.js:642
msgid "UDP packet relay mode."
msgstr "UDP 包中继模式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:638
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "UDP relay mode"
msgstr "UDP 中继模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "UP: %s; DOWN: %s"
msgstr "上传: %s; 下载: %s"
-#: htdocs/luci-static/resources/fchomo.js:247
+#: htdocs/luci-static/resources/fchomo.js:248
msgid "URL test"
msgstr "自动选择"
#: htdocs/luci-static/resources/fchomo/listeners.js:215
#: htdocs/luci-static/resources/fchomo/listeners.js:403
#: htdocs/luci-static/resources/fchomo/listeners.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
-#: htdocs/luci-static/resources/view/fchomo/node.js:626
+#: htdocs/luci-static/resources/view/fchomo/node.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:629
msgid "UUID"
msgstr "UUID"
-#: htdocs/luci-static/resources/fchomo.js:1629
+#: htdocs/luci-static/resources/fchomo.js:1630
msgid "Unable to download unsupported type: %s"
msgstr "无法下载不支持的类型: %s"
@@ -3728,8 +3814,8 @@ msgstr "未知错误。"
msgid "Unknown error: %s"
msgstr "未知错误:%s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1103
-#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:2576
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@@ -3737,24 +3823,24 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失败。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2191
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
+#: htdocs/luci-static/resources/view/fchomo/node.js:2431
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "Update interval"
msgstr "更新间隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/node.js:2169
msgid "Upload bandwidth"
msgstr "上传带宽"
#: htdocs/luci-static/resources/fchomo/listeners.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:2170
msgid "Upload bandwidth in Mbps."
msgstr "上传带宽(单位:Mbps)。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1142
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
msgid "Upload certificate"
msgstr "上传证书"
@@ -3763,7 +3849,7 @@ msgid "Upload initial package"
msgstr "上传初始资源包"
#: htdocs/luci-static/resources/fchomo/listeners.js:1157
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "Upload key"
msgstr "上传密钥"
@@ -3771,25 +3857,41 @@ msgstr "上传密钥"
#: htdocs/luci-static/resources/fchomo/listeners.js:1160
#: htdocs/luci-static/resources/fchomo/listeners.js:1185
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1419
-#: htdocs/luci-static/resources/view/fchomo/node.js:1433
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1585
msgid "Upload..."
msgstr "上传..."
-#: htdocs/luci-static/resources/view/fchomo/node.js:841
+#: htdocs/luci-static/resources/view/fchomo/node.js:1848
+msgid "Use DHCP"
+msgstr "使用 DHCP"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1849
+msgid "Use DHCP to obtain IP address."
+msgstr "使用 DHCP 获取 IP 地址。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:844
msgid "Use protocol-13 extended encryption for outgoing HELLO packets."
msgstr "对传出的 HELLO 数据包使用 协议-13 扩展加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:302
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Use sub rule"
msgstr "使用子规则"
-#: htdocs/luci-static/resources/view/fchomo/node.js:860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+msgid "Used to forward traffic to the specified nodes for external access."
+msgstr "用于将流量转发至指定节点,以供外部访问。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Used to replace the built-in official %s."
msgstr "用于替换内置的官方 %s。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
+msgid "Used to replace the contents of default %s."
+msgstr "用于替换默认的 %s 的内容。"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1499
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
@@ -3810,8 +3912,8 @@ msgstr "用于解析 DNS 服务器的域名。必须是 IP。"
msgid "Used to resolve the domain of the Proxy node."
msgstr "用于解析代理节点的域名。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
-#: htdocs/luci-static/resources/view/fchomo/node.js:2355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1549
+#: htdocs/luci-static/resources/view/fchomo/node.js:2595
msgid "Used to verify the hostname on the returned certificates."
msgstr "用于验证返回的证书上的主机名。"
@@ -3825,28 +3927,32 @@ msgstr "User-hint 是必填项"
#: htdocs/luci-static/resources/fchomo/listeners.js:162
#: htdocs/luci-static/resources/fchomo/listeners.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1319
msgid "Username"
msgstr "用户名"
-#: htdocs/luci-static/resources/view/fchomo/global.js:796
+#: htdocs/luci-static/resources/view/fchomo/global.js:797
msgid "Users filter mode"
msgstr "使用者过滤模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Uses TCP relay only."
msgstr "仅使用 TCP 中继。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "Uses relay after UDP direct failure."
msgstr "UDP 直连失败后使用中继。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+msgid "Using this in conjunction with %s is recommended."
+msgstr "建议与 %s 结合使用。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2026
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1791
+#: htdocs/luci-static/resources/view/fchomo/node.js:2031
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3860,58 +3966,65 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
msgid "VPN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:254
+#: htdocs/luci-static/resources/view/fchomo/node.js:257
msgid "VPN fields"
msgstr "VPN 字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
msgid "Valid 16-digit Moon World ID and 10-digit Node ID of Moon Root server."
msgstr "有效的 16-位数 Moon World ID 和 10-位数 Moon Root 服务器 Node ID。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2128
-#: htdocs/luci-static/resources/view/fchomo/node.js:2499
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
+#: htdocs/luci-static/resources/view/fchomo/node.js:2368
+#: htdocs/luci-static/resources/view/fchomo/node.js:2745
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:330
msgid "Value"
msgstr "可视化值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:820
+#: htdocs/luci-static/resources/view/fchomo/node.js:823
msgid "Verbose"
msgstr "详细"
-#: htdocs/luci-static/resources/fchomo.js:376
+#: htdocs/luci-static/resources/fchomo.js:377
msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:392
#: htdocs/luci-static/resources/fchomo/listeners.js:745
-#: htdocs/luci-static/resources/view/fchomo/node.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "Version"
msgstr "版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1341
msgid "Version hint"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1607
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1817
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Virtual IPv4 address"
+msgstr "虚拟 IPv4 地址"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1824
msgid "Virtual IPv6 address"
msgstr "虚拟 IPv6 地址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1581
+#: htdocs/luci-static/resources/view/fchomo/node.js:1791
msgid "Virtual address"
msgstr "虚拟地址"
#: htdocs/luci-static/resources/fchomo/listeners.js:121
-#: htdocs/luci-static/resources/view/fchomo/node.js:251
+#: htdocs/luci-static/resources/view/fchomo/node.js:254
msgid "Vless Encryption fields"
msgstr "Vless Encryption 字段"
-#: htdocs/luci-static/resources/fchomo.js:413
+#: htdocs/luci-static/resources/fchomo.js:414
msgid "Wait a random 0-111 milliseconds with 75% probability."
msgstr "以 75% 的概率等待随机 0-111 毫秒。"
@@ -3923,12 +4036,12 @@ msgstr "警告"
#: htdocs/luci-static/resources/fchomo/listeners.js:1309
#: htdocs/luci-static/resources/fchomo/listeners.js:1320
#: htdocs/luci-static/resources/fchomo/listeners.js:1327
-#: htdocs/luci-static/resources/view/fchomo/node.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1693
-#: htdocs/luci-static/resources/view/fchomo/node.js:1700
-#: htdocs/luci-static/resources/view/fchomo/node.js:1706
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
+#: htdocs/luci-static/resources/view/fchomo/node.js:1946
msgid "WebSocket"
msgstr ""
@@ -3936,11 +4049,15 @@ msgstr ""
msgid "When used as a server, HomeProxy is a better choice."
msgstr "用作服务端时,HomeProxy 是更好的选择。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:975
+#: htdocs/luci-static/resources/view/fchomo/node.js:1166
+msgid "Whether to accept DNS configurations distributed by the network."
+msgstr "是否接受由网络分发的 DNS 配置。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:984
msgid "Whether to accept routes advertised by other nodes."
msgstr "是否接受其他节点发布的路由。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:799
msgid "White list"
msgstr "白名单"
@@ -3948,45 +4065,45 @@ msgstr "白名单"
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:930
msgid "WireGuard peer public key."
msgstr "WireGuard 对端公钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "WireGuard pre-shared key."
msgstr "WireGuard 预共享密钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:909
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 编码的私钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
msgid "Wireguard"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1310
#: htdocs/luci-static/resources/fchomo/listeners.js:1321
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
+#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:1941
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:1796
+#: htdocs/luci-static/resources/view/fchomo/node.js:2036
msgid "XHTTP mode"
msgstr "XHTTP 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1827
+#: htdocs/luci-static/resources/view/fchomo/node.js:2067
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "XMUX:"
msgstr ""
@@ -3994,55 +4111,64 @@ msgstr ""
msgid "XOR mode"
msgstr "XOR 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:575
msgid "Xudp (Xray-core)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:309
msgid "Yaml text"
msgstr "Yaml 格式文本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2366
+#: htdocs/luci-static/resources/view/fchomo/node.js:2606
msgid "Yes"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+msgid ""
+"You can add %s in the %s to resolve A/PTR records within the virtual network."
+msgstr "您可以将 %s 添加到 %s 中,以解析虚拟网络内的 A/PTR 记录。"
+
#: htdocs/luci-static/resources/fchomo.js:47
msgid "YouTube"
msgstr "油管"
-#: htdocs/luci-static/resources/fchomo.js:2080
-msgid "Your %s was successfully uploaded. Size: %sB."
-msgstr "您的 %s 已成功上传。大小:%sB。"
-
#: htdocs/luci-static/resources/fchomo.js:207
msgid "ZeroTier"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:828
+#: htdocs/luci-static/resources/view/fchomo/node.js:831
msgid "ZeroTier UDP payload MTU."
msgstr "ZeroTier UDP 有效载荷 MTU。"
-#: htdocs/luci-static/resources/fchomo.js:349
-#: htdocs/luci-static/resources/fchomo.js:362
-#: htdocs/luci-static/resources/fchomo.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
+#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:363
+#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
msgid "aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:351
msgid "aes-192-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:351
-#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/fchomo.js:352
+#: htdocs/luci-static/resources/fchomo.js:369
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1139
+msgid "aes-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1140
+msgid "aes-gcm-256"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2453
msgid "age private key"
msgstr "age 私钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2274
+#: htdocs/luci-static/resources/view/fchomo/node.js:2514
msgid "age public key"
msgstr "age 公钥"
@@ -4054,37 +4180,41 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:549
+#: htdocs/luci-static/resources/view/fchomo/node.js:552
msgid "auto"
msgstr "自动"
#: htdocs/luci-static/resources/fchomo.js:56
-#: htdocs/luci-static/resources/view/fchomo/node.js:1060
+#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "bbr"
msgstr "bbr"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1061
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "bbr3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1147
#: htdocs/luci-static/resources/fchomo/listeners.js:1187
-#: htdocs/luci-static/resources/view/fchomo/node.js:1421
+#: htdocs/luci-static/resources/view/fchomo/node.js:1573
msgid "certificate"
msgstr "证书"
-#: htdocs/luci-static/resources/fchomo.js:352
-#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/fchomo.js:369
+#: htdocs/luci-static/resources/view/fchomo/node.js:1138
+msgid "chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:364
+#: htdocs/luci-static/resources/fchomo.js:370
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:556
msgid "chacha20-poly1305"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:54
-#: htdocs/luci-static/resources/view/fchomo/node.js:1058
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "cubic"
msgstr "cubic"
@@ -4093,66 +4223,66 @@ msgstr "cubic"
msgid "decryption"
msgstr "decryption"
-#: htdocs/luci-static/resources/view/fchomo/global.js:832
+#: htdocs/luci-static/resources/view/fchomo/global.js:833
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行选择上游服务器。 (可能影响 CDN 准确性)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2348
+#: htdocs/luci-static/resources/view/fchomo/node.js:2588
msgid "down"
msgstr "Hysteria 下载速率"
#: htdocs/luci-static/resources/fchomo/listeners.js:821
-#: htdocs/luci-static/resources/view/fchomo/node.js:1204
-#: htdocs/luci-static/resources/view/fchomo/node.js:1227
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "encryption"
msgstr "encryption"
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:449
+#: htdocs/luci-static/resources/view/fchomo/node.js:452
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr "false = 带宽优化下行 true = 纯 Sudoku 下行。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1308
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1939
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2002
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1767
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "gRPC ping interval"
msgstr "gRPC ping 间隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1351
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1998
msgid "gRPC service name"
msgstr "gRPC 服务名称"
#: htdocs/luci-static/resources/view/fchomo/global.js:517
-#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1203
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1011
+#: htdocs/luci-static/resources/view/fchomo/node.js:1020
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1874
+#: htdocs/luci-static/resources/view/fchomo/node.js:2114
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1009
+#: htdocs/luci-static/resources/view/fchomo/node.js:1018
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1010
+#: htdocs/luci-static/resources/view/fchomo/node.js:1019
msgid "h3-l4proxy"
msgstr ""
@@ -4160,11 +4290,17 @@ msgstr ""
msgid "least one keypair required"
msgstr "至少需要一对密钥"
+#: htdocs/luci-static/resources/view/fchomo/node.js:2710
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:435
+msgid "luci-app-tinyfilemanager is not installed, please install it first."
+msgstr "luci-app-tinyfilemanager 未安装,请先安装它。"
+
#: htdocs/luci-static/resources/fchomo.js:77
msgid "metacubexd"
msgstr "metacubexd"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1052
+#: htdocs/luci-static/resources/view/fchomo/global.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:1204
msgid "mihomo IP stack (MIPS)"
msgstr "mihomo IP 协议栈(MIPS)"
@@ -4174,17 +4310,17 @@ msgstr "mihomo IP 协议栈(MIPS)"
#: htdocs/luci-static/resources/view/fchomo/client.js:1580
#: htdocs/luci-static/resources/view/fchomo/client.js:1814
#: htdocs/luci-static/resources/view/fchomo/client.js:1870
-#: htdocs/luci-static/resources/view/fchomo/node.js:2094
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2334
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "mihomo config"
msgstr "mihomo 配置"
-#: htdocs/luci-static/resources/fchomo.js:395
+#: htdocs/luci-static/resources/fchomo.js:396
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1947
-#: htdocs/luci-static/resources/view/fchomo/node.js:2326
+#: htdocs/luci-static/resources/view/fchomo/node.js:2187
+#: htdocs/luci-static/resources/view/fchomo/node.js:2566
msgid "mpTCP"
msgstr "多路径 TCP (mpTCP)"
@@ -4196,19 +4332,12 @@ msgstr "new_reno"
msgid "no-resolve"
msgstr "no-resolve"
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1973
-msgid "non-empty value"
-msgstr "非空值"
-
-#: htdocs/luci-static/resources/fchomo.js:347
-#: htdocs/luci-static/resources/fchomo.js:361
-#: htdocs/luci-static/resources/fchomo.js:373
-#: htdocs/luci-static/resources/view/fchomo/node.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:570
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
+#: htdocs/luci-static/resources/fchomo.js:348
+#: htdocs/luci-static/resources/fchomo.js:362
+#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:326
msgid "none"
msgstr "无"
@@ -4220,7 +4349,7 @@ msgstr "未找到"
msgid "not included \",\""
msgstr "不包含 \",\""
-#: htdocs/luci-static/resources/fchomo.js:233
+#: htdocs/luci-static/resources/fchomo.js:234
#: htdocs/luci-static/resources/fchomo/listeners.js:612
#: htdocs/luci-static/resources/fchomo/listeners.js:615
msgid "null"
@@ -4228,43 +4357,55 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:682
#: htdocs/luci-static/resources/fchomo/listeners.js:692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "only applies when %s is %s."
msgstr "仅当 %s 为 %s 时适用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
msgid "only applies when %s is not %s."
msgstr "仅当 %s 不为 %s 时适用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1141
+msgid "openssl-aes128-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1142
+msgid "openssl-aes256-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1143
+msgid "openssl-chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2547
msgid "override.override-expr"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2299
+#: htdocs/luci-static/resources/view/fchomo/node.js:2539
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:574
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1361
-#: htdocs/luci-static/resources/view/fchomo/node.js:1800
+#: htdocs/luci-static/resources/view/fchomo/node.js:2040
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:368
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
msgid "poll"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1162
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1587
msgid "private key"
msgstr "私钥"
@@ -4272,7 +4413,7 @@ msgstr "私钥"
msgid "razord-meta"
msgstr "razord-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1211
msgid "reno"
msgstr ""
@@ -4281,16 +4422,16 @@ msgstr ""
msgid "requires front-end adaptation using the API."
msgstr "需要使用 API 的前端适配。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:232
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:234
msgid "rule-set"
msgstr "规则集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1872
+#: htdocs/luci-static/resources/view/fchomo/node.js:2112
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "split-stream"
msgstr ""
@@ -4299,12 +4440,12 @@ msgid "src"
msgstr "src"
#: htdocs/luci-static/resources/fchomo/listeners.js:1359
-#: htdocs/luci-static/resources/view/fchomo/node.js:1798
+#: htdocs/luci-static/resources/view/fchomo/node.js:2038
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1799
+#: htdocs/luci-static/resources/view/fchomo/node.js:2039
msgid "stream-up"
msgstr ""
@@ -4312,7 +4453,7 @@ msgstr ""
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "stream/poll/auto"
msgstr ""
@@ -4320,11 +4461,11 @@ msgstr ""
msgid "sudoku-keypair"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1343
msgid "tls12"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1344
msgid "tls13"
msgstr ""
@@ -4332,112 +4473,77 @@ msgstr ""
msgid "unchecked"
msgstr "未检查"
-#: htdocs/luci-static/resources/fchomo.js:459
+#: htdocs/luci-static/resources/fchomo.js:460
msgid "unique UCI identifier"
msgstr "独立 UCI 标识"
-#: htdocs/luci-static/resources/fchomo.js:462
+#: htdocs/luci-static/resources/fchomo.js:463
msgid "unique identifier"
msgstr "独立标识"
-#: htdocs/luci-static/resources/fchomo.js:1982
-msgid "unique value"
-msgstr "独立值"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:2342
+#: htdocs/luci-static/resources/view/fchomo/node.js:2582
msgid "up"
msgstr "Hysteria 上传速率"
#: htdocs/luci-static/resources/fchomo/listeners.js:393
#: htdocs/luci-static/resources/fchomo/listeners.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:653
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
-#: htdocs/luci-static/resources/view/fchomo/node.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:656
+#: htdocs/luci-static/resources/view/fchomo/node.js:1262
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "v1"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:394
#: htdocs/luci-static/resources/fchomo/listeners.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:513
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:1263
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "v2"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:395
#: htdocs/luci-static/resources/fchomo/listeners.js:748
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
-#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:517
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "v3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:518
msgid "v4"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:397
-#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:519
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-msgid "valid JSON format"
-msgstr "有效的 JSON 格式"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
msgid "valid SHA256 string with %d characters"
msgstr "包含 %d 个字符的有效 SHA256 字符串"
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-msgid "valid URL"
-msgstr "有效网址"
-
-#: htdocs/luci-static/resources/fchomo.js:1900
-msgid "valid base64 key with %d characters"
-msgstr "包含 %d 个字符的有效 base64 密钥"
-
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-msgid "valid format: 2x, 2p, 4v"
-msgstr "有效格式: 2x, 2p, 4v"
-
-#: htdocs/luci-static/resources/fchomo.js:1891
-msgid "valid hex string with %d characters"
-msgstr "包含 %d 个字符的有效 Hex 字符串"
-
-#: htdocs/luci-static/resources/fchomo.js:1947
-msgid "valid key length with %d characters"
-msgstr "包含 %d 个字符的有效密钥"
-
-#: htdocs/luci-static/resources/fchomo.js:1813
-msgid "valid port value"
-msgstr "有效端口值"
-
-#: htdocs/luci-static/resources/fchomo.js:1863
-msgid "valid uuid"
-msgstr "有效 uuid"
-
-#: htdocs/luci-static/resources/fchomo.js:419
+#: htdocs/luci-static/resources/fchomo.js:420
msgid "vless-mlkem768"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:418
+#: htdocs/luci-static/resources/fchomo.js:419
msgid "vless-x25519"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:354
msgid "xchacha20-ietf-poly1305"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1137
+msgid "xor"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo.js:78
msgid "yacd-meta"
msgstr "yacd-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1873
+#: htdocs/luci-static/resources/view/fchomo/node.js:2113
msgid "yamux"
msgstr ""
@@ -4445,10 +4551,70 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:554
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1631
+#: htdocs/luci-static/resources/fchomo.js:1632
msgid "🡇"
msgstr ""
+
+#~ msgid "Complete"
+#~ msgstr "完成"
+
+#~ msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
+#~ msgstr "无法执行 \"/etc/init.d/fchomo %s %s\" 原因: %s"
+
+#~ msgid "Failed to generate %s, error: %s."
+#~ msgstr "生成 %s 失败,错误:%s。"
+
+#~ msgid "Failed to upload %s, error: %s."
+#~ msgstr "上传 %s 失败,错误:%s。"
+
+#~ msgid "Failed to upload, error: %s."
+#~ msgstr "上传失败,错误:%s。"
+
+#~ msgid "If All ports is selected, uncheck others"
+#~ msgstr "如果选择了“所有端口”,则取消选中“其他”"
+
+#~ msgid "Port %s alrealy exists!"
+#~ msgstr "端口 %s 已存在!"
+
+#~ msgid "Remove"
+#~ msgstr "移除"
+
+#~ msgid "Successfully uploaded."
+#~ msgstr "已成功上传。"
+
+#~ msgid "Your %s was successfully uploaded. Size: %sB."
+#~ msgstr "您的 %s 已成功上传。大小:%sB。"
+
+#~ msgid "non-empty value"
+#~ msgstr "非空值"
+
+#~ msgid "unique value"
+#~ msgstr "独立值"
+
+#~ msgid "valid JSON format"
+#~ msgstr "有效的 JSON 格式"
+
+#~ msgid "valid URL"
+#~ msgstr "有效网址"
+
+#~ msgid "valid base64 key with %d characters"
+#~ msgstr "包含 %d 个字符的有效 base64 密钥"
+
+#~ msgid "valid format: 2x, 2p, 4v"
+#~ msgstr "有效格式: 2x, 2p, 4v"
+
+#~ msgid "valid hex string with %d characters"
+#~ msgstr "包含 %d 个字符的有效 Hex 字符串"
+
+#~ msgid "valid key length with %d characters"
+#~ msgstr "包含 %d 个字符的有效密钥"
+
+#~ msgid "valid port value"
+#~ msgstr "有效端口值"
+
+#~ msgid "valid uuid"
+#~ msgstr "有效 uuid"
diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po
index aac4b0e79..fa7d3d91f 100644
--- a/luci-app-fchomo/po/zh_Hant/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hant/fchomo.po
@@ -8,12 +8,12 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "%s Hostname"
msgstr "%s 主機名稱"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "%s UDP port. 0 selects an available port."
msgstr "%s UDP 連接埠。 0 自動選擇一個可用連接埠。"
@@ -21,21 +21,21 @@ msgstr "%s UDP 連接埠。 0 自動選擇一個可用連接埠。"
msgid "%s log"
msgstr "%s 日誌"
-#: htdocs/luci-static/resources/view/fchomo/node.js:812
+#: htdocs/luci-static/resources/view/fchomo/node.js:815
msgid "%s of the %s used to receiving remote debugging log."
msgstr "%s,用於接收遠端偵錯日誌的 %s 的。"
-#: htdocs/luci-static/resources/fchomo.js:255
#: htdocs/luci-static/resources/fchomo.js:256
#: htdocs/luci-static/resources/fchomo.js:257
#: htdocs/luci-static/resources/fchomo.js:258
#: htdocs/luci-static/resources/fchomo.js:259
#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "%s ports"
msgstr "%s 連接埠"
-#: htdocs/luci-static/resources/fchomo.js:646
-#: htdocs/luci-static/resources/fchomo.js:649
+#: htdocs/luci-static/resources/fchomo.js:647
+#: htdocs/luci-static/resources/fchomo.js:650
#: htdocs/luci-static/resources/view/fchomo/client.js:318
msgid "(Imported)"
msgstr "(已導入)"
@@ -43,12 +43,12 @@ msgstr "(已導入)"
#: htdocs/luci-static/resources/fchomo/listeners.js:1165
#: htdocs/luci-static/resources/fchomo/listeners.js:1173
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "(mTLS)"
msgstr ""
@@ -65,7 +65,7 @@ msgstr ""
msgid "-- PROXY-NODE --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:836
+#: htdocs/luci-static/resources/fchomo.js:837
#: htdocs/luci-static/resources/view/fchomo/client.js:573
#: htdocs/luci-static/resources/view/fchomo/client.js:893
#: htdocs/luci-static/resources/view/fchomo/client.js:896
@@ -74,11 +74,11 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1113
#: htdocs/luci-static/resources/view/fchomo/client.js:1117
#: htdocs/luci-static/resources/view/fchomo/client.js:1373
-#: htdocs/luci-static/resources/view/fchomo/node.js:302
-#: htdocs/luci-static/resources/view/fchomo/node.js:2505
-#: htdocs/luci-static/resources/view/fchomo/node.js:2516
-#: htdocs/luci-static/resources/view/fchomo/node.js:2535
-#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2751
+#: htdocs/luci-static/resources/view/fchomo/node.js:2762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2792
msgid "-- Please choose --"
msgstr "-- 請選擇 --"
@@ -90,16 +90,16 @@ msgstr ""
msgid "-- RULE-SET --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:837
+#: htdocs/luci-static/resources/fchomo.js:838
msgid "-- custom --"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
+#: htdocs/luci-static/resources/fchomo.js:409
msgid "0-RTT reuse."
msgstr "0-RTT 重用。"
-#: htdocs/luci-static/resources/fchomo.js:405
-#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/fchomo.js:406
+#: htdocs/luci-static/resources/fchomo.js:410
msgid "1-RTT only."
msgstr "僅限 1-RTT。"
@@ -107,19 +107,19 @@ msgstr "僅限 1-RTT。"
msgid "163Music"
msgstr "網易雲音樂"
-#: htdocs/luci-static/resources/fchomo.js:355
+#: htdocs/luci-static/resources/fchomo.js:356
msgid "2022-blake3-aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:356
+#: htdocs/luci-static/resources/fchomo.js:357
msgid "2022-blake3-aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:357
+#: htdocs/luci-static/resources/fchomo.js:358
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
+#: htdocs/luci-static/resources/view/fchomo/node.js:1732
msgid "-1 disables it."
msgstr "-1 表示停用它。"
@@ -130,13 +130,13 @@ msgstr "僅限 0 或 1。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1143
#: htdocs/luci-static/resources/fchomo/listeners.js:1158
#: htdocs/luci-static/resources/fchomo/listeners.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1417
-#: htdocs/luci-static/resources/view/fchomo/node.js:1431
+#: htdocs/luci-static/resources/view/fchomo/node.js:1569
+#: htdocs/luci-static/resources/view/fchomo/node.js:1583
msgid "Save your configuration before uploading files!"
msgstr "上傳文件前請先保存配置!"
#: htdocs/luci-static/resources/fchomo/listeners.js:207
-#: htdocs/luci-static/resources/view/fchomo/node.js:384
+#: htdocs/luci-static/resources/view/fchomo/node.js:387
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
@@ -145,60 +145,60 @@ msgstr ""
"一個 base64 字串用於微調網路行為。
格式請參考文檔。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:620
+#: htdocs/luci-static/resources/view/fchomo/global.js:621
msgid "API"
msgstr "API"
-#: htdocs/luci-static/resources/view/fchomo/global.js:570
+#: htdocs/luci-static/resources/view/fchomo/global.js:571
msgid "API Client Auth Certificate path"
msgstr "API 客戶端認證憑證路徑"
-#: htdocs/luci-static/resources/view/fchomo/global.js:564
+#: htdocs/luci-static/resources/view/fchomo/global.js:565
msgid "API Client Auth type"
msgstr "API 客戶端認證類型"
-#: htdocs/luci-static/resources/view/fchomo/global.js:663
+#: htdocs/luci-static/resources/view/fchomo/global.js:664
msgid "API DoH service"
msgstr "API DoH 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/global.js:614
+#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "API ECH config"
msgstr "API ECH 配置"
-#: htdocs/luci-static/resources/view/fchomo/global.js:575
+#: htdocs/luci-static/resources/view/fchomo/global.js:576
msgid "API ECH key"
msgstr "API ECH 密鑰"
-#: htdocs/luci-static/resources/view/fchomo/global.js:654
+#: htdocs/luci-static/resources/view/fchomo/global.js:655
msgid "API HTTP port"
msgstr "API HTTP 連接埠"
-#: htdocs/luci-static/resources/view/fchomo/global.js:658
+#: htdocs/luci-static/resources/view/fchomo/global.js:659
msgid "API HTTPS port"
msgstr "API HTTPS 連接埠"
-#: htdocs/luci-static/resources/view/fchomo/global.js:556
+#: htdocs/luci-static/resources/view/fchomo/global.js:557
msgid "API TLS certificate path"
msgstr "API TLS 憑證路徑"
-#: htdocs/luci-static/resources/view/fchomo/global.js:560
+#: htdocs/luci-static/resources/view/fchomo/global.js:561
msgid "API TLS private key path"
msgstr "API TLS 私鑰"
-#: htdocs/luci-static/resources/view/fchomo/global.js:651
+#: htdocs/luci-static/resources/view/fchomo/global.js:652
msgid "API routing mark (Fwmark)"
msgstr "API 路由標記 (Fwmark)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:667
+#: htdocs/luci-static/resources/view/fchomo/global.js:668
msgid "API secret"
msgstr "API 令牌"
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "ASCII data stream"
msgstr "ASCII 資料流"
@@ -206,12 +206,12 @@ msgstr "ASCII 資料流"
msgid "ASN version"
msgstr "ASN 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:974
+#: htdocs/luci-static/resources/view/fchomo/node.js:983
msgid "Accept routes"
msgstr "接受路由"
-#: htdocs/luci-static/resources/view/fchomo/global.js:744
-#: htdocs/luci-static/resources/view/fchomo/global.js:794
+#: htdocs/luci-static/resources/view/fchomo/global.js:745
+#: htdocs/luci-static/resources/view/fchomo/global.js:795
msgid "Access Control"
msgstr "訪問控制"
@@ -227,7 +227,7 @@ msgstr "新增 DNS 策略"
msgid "Add a DNS server"
msgstr "新增 DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Add a Node"
msgstr "新增 節點"
@@ -235,11 +235,11 @@ msgstr "新增 節點"
msgid "Add a inbound"
msgstr "新增 入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
msgid "Add a provider"
msgstr "新增 供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Add a proxy chain"
msgstr "新增 代理鏈"
@@ -251,7 +251,7 @@ msgstr "新增 代理組"
msgid "Add a routing rule"
msgstr "新增 路由規則"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Add a rule set"
msgstr "新增 規則集"
@@ -263,15 +263,15 @@ msgstr "新增 伺服器"
msgid "Add a sub rule"
msgstr "新增 子規則"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2528
msgid "Add prefix"
msgstr "添加前綴"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2292
+#: htdocs/luci-static/resources/view/fchomo/node.js:2532
msgid "Add suffix"
msgstr "添加後綴"
-#: htdocs/luci-static/resources/view/fchomo/node.js:861
+#: htdocs/luci-static/resources/view/fchomo/node.js:870
msgid "Add the base64 text of the planet file here."
msgstr "在此處新增行星檔案的 base64 文本。"
@@ -280,7 +280,11 @@ msgstr "在此處新增行星檔案的 base64 文本。"
msgid "Address"
msgstr "位址"
-#: htdocs/luci-static/resources/fchomo.js:412
+#: htdocs/luci-static/resources/view/fchomo/node.js:1160
+msgid "After disabling, communication will only be possible via relay."
+msgstr "停用後,只能透過中繼進行通訊。"
+
+#: htdocs/luci-static/resources/fchomo.js:413
msgid ""
"After the 1-RTT client/server hello, padding randomly 111-1111 bytes with "
"100% probability."
@@ -291,32 +295,32 @@ msgstr ""
msgid "Aggressive"
msgstr "侵略性"
-#: htdocs/luci-static/resources/view/fchomo/global.js:535
+#: htdocs/luci-static/resources/view/fchomo/global.js:536
msgid "Aging time of NAT map maintained by client."
msgstr "客戶端維護的 NAT 映射 的老化時間。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:797
-#: htdocs/luci-static/resources/view/fchomo/global.js:860
-#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:895
msgid "All allowed"
msgstr "允許所有"
-#: htdocs/luci-static/resources/fchomo.js:252
+#: htdocs/luci-static/resources/fchomo.js:253
msgid "All ports"
msgstr "所有連接埠"
-#: htdocs/luci-static/resources/view/fchomo/node.js:985
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "Allow LAN access"
msgstr "允許區域網路訪問"
-#: htdocs/luci-static/resources/view/fchomo/global.js:647
+#: htdocs/luci-static/resources/view/fchomo/global.js:648
msgid ""
"Allow access from private network.To access the API on a private "
"network from a public website, it must be enabled."
msgstr ""
"允許從私有網路訪問。要從公共網站訪問私有網路上的 API,則必須啟用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:986
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "Allow access to the local LAN via the exit node."
msgstr "允許透過出口節點存取本地區域網路。"
@@ -324,7 +328,11 @@ msgstr "允許透過出口節點存取本地區域網路。"
msgid "Allow insecure connections"
msgstr "允許不安全的連線"
-#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:1148
+msgid "Allow this node to be an exit node."
+msgstr "允許此節點成為出口節點。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:943
msgid "Allowed IPs"
msgstr "允許的 IP"
@@ -337,7 +345,7 @@ msgid "Already in updating."
msgstr "已在更新中。"
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:544
msgid "Alter ID"
msgstr "額外 ID"
@@ -350,16 +358,20 @@ msgstr ""
msgid "Application version"
msgstr "應用版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:969
+#: htdocs/luci-static/resources/view/fchomo/node.js:978
msgid "As ephemeral node"
msgstr "作為臨時節點"
-#: htdocs/luci-static/resources/view/fchomo/global.js:822
+#: htdocs/luci-static/resources/view/fchomo/node.js:1147
+msgid "As exit node"
+msgstr "作為出口節點"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:823
msgid "As the TOP upstream of dnsmasq"
msgstr "作為 dnsmasq 的最優先上游"
-#: htdocs/luci-static/resources/view/fchomo/global.js:823
-#: htdocs/luci-static/resources/view/fchomo/global.js:830
+#: htdocs/luci-static/resources/view/fchomo/global.js:824
+#: htdocs/luci-static/resources/view/fchomo/global.js:831
msgid "As the TOP upstream of dnsmasq."
msgstr "作為 dnsmasq 的最優先上游。"
@@ -367,27 +379,31 @@ msgstr "作為 dnsmasq 的最優先上游。"
msgid "Auth timeout"
msgstr "認證逾時"
-#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "Authenticated length"
msgstr "認證長度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Authentication key"
msgstr "認證金鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:1358
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1050
-#: htdocs/luci-static/resources/view/fchomo/node.js:1797
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
+#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/view/fchomo/node.js:2037
msgid "Auto"
msgstr "自動"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Auto Enable when %s is empty."
+msgstr "當 %s 為空時自動啟用。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1501
+#: htdocs/luci-static/resources/view/fchomo/node.js:1653
msgid "Auto configure firewall"
msgstr "自動配置防火牆"
@@ -400,7 +416,7 @@ msgid "Auto update resources."
msgstr "自動更新資源文件。"
#: htdocs/luci-static/resources/fchomo/listeners.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+#: htdocs/luci-static/resources/view/fchomo/node.js:1226
msgid "BBR profile"
msgstr "BBR 設定檔"
@@ -408,48 +424,56 @@ msgstr "BBR 設定檔"
msgid "Baidu"
msgstr "百度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:993
+#: htdocs/luci-static/resources/view/fchomo/node.js:1002
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr "基於 NIST P-256 曲線的 Base64 編碼 ECDSA 私鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1010
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr "基於 NIST P-256 曲線的 Base64 編碼 ECDSA 公鑰。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1095
+msgid "Base64 encoded X25519 private key."
+msgstr "Base64 編碼的 X25519 私鑰。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+msgid "Base64 encoded X25519 public key."
+msgstr "Base64 編碼的 X25519 公鑰。"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:517
msgid "Based on google/gvisor."
msgstr "基於 google/gvisor。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:293
msgid "Behavior"
msgstr "行為"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Binary format only supports domain / ipcidr"
msgstr "二進位格式僅支持 domain/ipcidr"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:310
msgid "Binary mrs"
msgstr "二進位 mrs"
-#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1958
-#: htdocs/luci-static/resources/view/fchomo/node.js:2377
+#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2617
msgid "Bind interface"
msgstr "綁定介面"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1959
-#: htdocs/luci-static/resources/view/fchomo/node.js:2378
+#: htdocs/luci-static/resources/view/fchomo/node.js:2199
+#: htdocs/luci-static/resources/view/fchomo/node.js:2618
msgid "Bind outbound interface."
msgstr "綁定出站介面。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:759
+#: htdocs/luci-static/resources/view/fchomo/global.js:760
msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr "綁定出站流量至指定介面。留空自動檢測。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:799
+#: htdocs/luci-static/resources/view/fchomo/global.js:800
msgid "Black list"
msgstr "黑名單"
@@ -474,11 +498,11 @@ msgstr "引導 DNS 伺服器 (節點)"
msgid "BundleMRS version"
msgstr "BundleMRS 版本"
-#: htdocs/luci-static/resources/view/fchomo/global.js:861
+#: htdocs/luci-static/resources/view/fchomo/global.js:862
msgid "Bypass CN"
msgstr "繞過 CN 流量"
-#: htdocs/luci-static/resources/view/fchomo/global.js:895
+#: htdocs/luci-static/resources/view/fchomo/global.js:896
msgid "Bypass DSCP"
msgstr "繞過 DSCP"
@@ -486,40 +510,40 @@ msgstr "繞過 DSCP"
#: htdocs/luci-static/resources/fchomo/listeners.js:368
#: htdocs/luci-static/resources/fchomo/listeners.js:369
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
-#: htdocs/luci-static/resources/view/fchomo/node.js:464
#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
msgid "CDN support"
msgstr "CDN 支援"
-#: htdocs/luci-static/resources/view/fchomo/global.js:642
+#: htdocs/luci-static/resources/view/fchomo/global.js:643
msgid "CORS Allow origins"
msgstr "CORS 允許的來源"
-#: htdocs/luci-static/resources/view/fchomo/global.js:646
+#: htdocs/luci-static/resources/view/fchomo/global.js:647
msgid "CORS Allow private network"
msgstr "CORS 允許私有網路"
-#: htdocs/luci-static/resources/view/fchomo/global.js:643
+#: htdocs/luci-static/resources/view/fchomo/global.js:644
msgid "CORS allowed origins, * will be used if empty."
msgstr "CORS 允許的來源,留空則使用 *。"
-#: htdocs/luci-static/resources/fchomo.js:762
+#: htdocs/luci-static/resources/fchomo.js:763
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1383
+#: htdocs/luci-static/resources/view/fchomo/node.js:1535
msgid "Cert fingerprint"
msgstr "憑證指紋"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1536
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr "憑證指紋。用於實現 SSL憑證固定 並防止 MitM。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1410
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
msgid "Certificate path"
msgstr "憑證路徑"
@@ -557,14 +581,14 @@ msgstr "大陸網域清單版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:275
-#: htdocs/luci-static/resources/view/fchomo/node.js:337
-#: htdocs/luci-static/resources/view/fchomo/node.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:340
+#: htdocs/luci-static/resources/view/fchomo/node.js:399
+#: htdocs/luci-static/resources/view/fchomo/node.js:550
msgid "Chipher"
msgstr "加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:284
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr "如果下行鏈路混淆功能已停用,則必須啟用加密。"
@@ -582,10 +606,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:862
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr "客戶端"
@@ -598,7 +622,7 @@ msgstr "客戶端認證憑證路徑"
msgid "Client Auth type"
msgstr "客戶端認證類型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1608
msgid "Client fingerprint"
msgstr "客戶端指紋"
@@ -606,16 +630,24 @@ msgstr "客戶端指紋"
msgid "Client key"
msgstr "客戶端密鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:600
+#: htdocs/luci-static/resources/view/fchomo/node.js:603
msgid "Client metadata"
msgstr "客戶端元資料"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1094
+msgid "Client private key"
+msgstr "客戶端私鑰"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+msgid "Client public key"
+msgstr "客戶端公鑰"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:176
msgid "Client status"
msgstr "客戶端狀態"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "Cloudflare WARP"
msgstr ""
@@ -623,18 +655,18 @@ msgstr ""
msgid "Collecting data..."
msgstr "收集資料中..."
-#: htdocs/luci-static/resources/fchomo.js:253
#: htdocs/luci-static/resources/fchomo.js:254
+#: htdocs/luci-static/resources/fchomo.js:255
msgid "Common ports (bypass P2P traffic)"
msgstr "常用連接埠(繞過 P2P 流量)"
-#: htdocs/luci-static/resources/fchomo.js:1747
-msgid "Complete"
-msgstr "完成"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1040
+msgid "Configuration Document"
+msgstr "配置文檔"
#: htdocs/luci-static/resources/fchomo/listeners.js:638
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:1065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "Congestion controller"
msgstr "擁塞控制器"
@@ -642,12 +674,12 @@ msgstr "擁塞控制器"
msgid "Connection check"
msgstr "連接檢查"
-#: htdocs/luci-static/resources/view/fchomo/node.js:521
+#: htdocs/luci-static/resources/view/fchomo/node.js:524
msgid "Connection reuse"
msgstr "連接重用"
#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:781
+#: htdocs/luci-static/resources/view/fchomo/node.js:784
msgid "Connection-level receive window size"
msgstr "連接級接收視窗大小"
@@ -655,20 +687,20 @@ msgstr "連接級接收視窗大小"
msgid "Conservative"
msgstr "保守"
-#: htdocs/luci-static/resources/fchomo.js:631
+#: htdocs/luci-static/resources/fchomo.js:632
msgid "Content copied to clipboard!"
msgstr "內容已複製到剪貼簿!"
#: htdocs/luci-static/resources/view/fchomo/client.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:2148
-#: htdocs/luci-static/resources/view/fchomo/node.js:2174
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:2388
+#: htdocs/luci-static/resources/view/fchomo/node.js:2414
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:350
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "內容將不會被驗證,請確保輸入正確。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2147
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
+#: htdocs/luci-static/resources/view/fchomo/node.js:2387
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:349
msgid "Contents"
msgstr "內容"
@@ -676,11 +708,11 @@ msgstr "內容"
msgid "Contents have been saved."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:958
+#: htdocs/luci-static/resources/view/fchomo/node.js:967
msgid "Control server"
msgstr "控制伺服器"
-#: htdocs/luci-static/resources/fchomo.js:633
+#: htdocs/luci-static/resources/fchomo.js:634
msgid "Copy"
msgstr "複製"
@@ -692,25 +724,25 @@ msgstr "核心版本"
msgid "Cron expression"
msgstr "Cron 表達式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Custom %s control server."
msgstr "自訂 %s 控制伺服器。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:913
+#: htdocs/luci-static/resources/view/fchomo/global.js:914
msgid "Custom Direct List"
msgstr "自訂直連清單"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2279
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:2519
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:422
msgid "Custom HTTP header."
msgstr "自訂 HTTP header。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:931
+#: htdocs/luci-static/resources/view/fchomo/global.js:932
msgid "Custom Proxy List"
msgstr "自訂代理清單"
#: htdocs/luci-static/resources/fchomo/listeners.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:420
+#: htdocs/luci-static/resources/view/fchomo/node.js:423
msgid "Custom byte layout"
msgstr "自訂位元組佈局"
@@ -726,6 +758,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1835
#: htdocs/luci-static/resources/view/fchomo/client.js:1844
#: htdocs/luci-static/resources/view/fchomo/client.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
msgid "DNS policy"
msgstr "DNS 策略"
@@ -736,7 +769,8 @@ msgstr " DNS 連接埠"
#: htdocs/luci-static/resources/view/fchomo/client.js:911
#: htdocs/luci-static/resources/view/fchomo/client.js:1528
#: htdocs/luci-static/resources/view/fchomo/client.js:1537
-#: htdocs/luci-static/resources/view/fchomo/node.js:1664
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "DNS server"
msgstr "DNS 伺服器"
@@ -744,7 +778,7 @@ msgstr "DNS 伺服器"
msgid "DNS settings"
msgstr "DNS 設定"
-#: htdocs/luci-static/resources/view/fchomo/global.js:898
+#: htdocs/luci-static/resources/view/fchomo/global.js:899
msgid "DSCP list"
msgstr "DSCP 清單"
@@ -753,7 +787,7 @@ msgid "Dashboard version"
msgstr "面板版本"
#: htdocs/luci-static/resources/fchomo.js:94
-#: htdocs/luci-static/resources/view/fchomo/node.js:822
+#: htdocs/luci-static/resources/view/fchomo/node.js:825
msgid "Debug"
msgstr "調試"
@@ -779,24 +813,24 @@ msgstr "預設版本,支援 %s。"
msgid "Derive from priv-key"
msgstr "從私鑰派生"
-#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:944
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允許通過 WireGuard 轉發的目的位址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2502
+#: htdocs/luci-static/resources/view/fchomo/node.js:2748
msgid "Destination provider"
msgstr "落地供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2513
+#: htdocs/luci-static/resources/view/fchomo/node.js:2759
msgid "Destination proxy node"
msgstr "落地代理節點"
-#: htdocs/luci-static/resources/view/fchomo/node.js:257
+#: htdocs/luci-static/resources/view/fchomo/node.js:260
msgid "Dial fields"
msgstr "撥號欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
msgid "Different chain head/tail"
msgstr "不同的鏈頭/鏈尾"
@@ -804,38 +838,42 @@ msgstr "不同的鏈頭/鏈尾"
msgid "Direct"
msgstr "直連"
-#: htdocs/luci-static/resources/view/fchomo/global.js:801
+#: htdocs/luci-static/resources/view/fchomo/global.js:802
msgid "Direct IPv4 IP-s"
msgstr "直連 IPv4 位址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:804
+#: htdocs/luci-static/resources/view/fchomo/global.js:805
msgid "Direct IPv6 IP-s"
msgstr "直連 IPv6 位址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:807
+#: htdocs/luci-static/resources/view/fchomo/global.js:808
msgid "Direct MAC-s"
msgstr "直連 MAC 位址"
#: htdocs/luci-static/resources/fchomo/listeners.js:493
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:715
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Disable"
msgstr "停用"
-#: htdocs/luci-static/resources/view/fchomo/global.js:735
+#: htdocs/luci-static/resources/view/fchomo/global.js:736
msgid "Disable ECN of quic-go"
msgstr "停用 quic-go 的 明確壅塞通知(ECN)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:732
+#: htdocs/luci-static/resources/view/fchomo/global.js:733
msgid "Disable GSO of quic-go"
msgstr "停用 quic-go 的 通用分段卸載(GSO)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:544
+#: htdocs/luci-static/resources/view/fchomo/global.js:545
msgid "Disable ICMP Forwarding"
msgstr "禁用 ICMP 轉發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+msgid "Disable P2P"
+msgstr "停用 P2P"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "Disable SNI"
msgstr "停用 SNI"
@@ -843,7 +881,7 @@ msgstr "停用 SNI"
msgid "Disable UDP"
msgstr "停用 UDP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:729
+#: htdocs/luci-static/resources/view/fchomo/global.js:730
msgid "Disable safe path check"
msgstr "禁用安全路徑檢查"
@@ -863,31 +901,31 @@ msgstr ""
msgid "Domain"
msgstr "網域"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "Donot send server name in ClientHello."
msgstr "不要在 ClientHello 中傳送伺服器名稱。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1403
-#: htdocs/luci-static/resources/view/fchomo/node.js:2361
+#: htdocs/luci-static/resources/view/fchomo/node.js:1555
+#: htdocs/luci-static/resources/view/fchomo/node.js:2601
msgid "Donot verifying server certificate."
msgstr "不驗證伺服器憑證。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1410
-#: htdocs/luci-static/resources/view/fchomo/node.js:1935
+#: htdocs/luci-static/resources/view/fchomo/node.js:2175
msgid "Download bandwidth"
msgstr "下載頻寬"
#: htdocs/luci-static/resources/fchomo/listeners.js:1411
-#: htdocs/luci-static/resources/view/fchomo/node.js:1936
+#: htdocs/luci-static/resources/view/fchomo/node.js:2176
msgid "Download bandwidth in Mbps."
msgstr "下載頻寬(單位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo.js:1626
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "Download failed: %s"
msgstr "下載失敗: %s"
-#: htdocs/luci-static/resources/fchomo.js:1624
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Download successful."
msgstr "下載成功。"
@@ -895,12 +933,12 @@ msgstr "下載成功。"
msgid "Dual stack"
msgstr "雙棧"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
msgid "ECH HTTPS record query servername"
msgstr "ECH HTTPS 記錄查詢網域"
#: htdocs/luci-static/resources/fchomo/listeners.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:1444
+#: htdocs/luci-static/resources/view/fchomo/node.js:1596
msgid "ECH config"
msgstr "ECH 配置"
@@ -920,32 +958,36 @@ msgstr "EDNS 客戶端子網"
msgid "ETag support"
msgstr "ETag 支援"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1775
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Early Data first packet length limit."
msgstr "前置數據長度閾值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1781
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Early Data header name"
msgstr "前置數據標頭"
+#: htdocs/luci-static/resources/fchomo.js:211
+msgid "EasyTier"
+msgstr ""
+
#: htdocs/luci-static/resources/view/fchomo/inbound.js:20
msgid "Edit inbound"
msgstr "編輯入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:217
+#: htdocs/luci-static/resources/view/fchomo/node.js:220
msgid "Edit outbound"
msgstr "編輯出站"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:138
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:140
msgid "Edit ruleset"
msgstr "編輯規則集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2145
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
+#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Editer"
msgstr "編輯器"
-#: htdocs/luci-static/resources/fchomo.js:399
+#: htdocs/luci-static/resources/fchomo.js:400
msgid "Eliminate encryption header characteristics"
msgstr "消除加密頭特徵"
@@ -962,17 +1004,17 @@ msgstr "為空時回退"
#: htdocs/luci-static/resources/view/fchomo/client.js:1827
#: htdocs/luci-static/resources/view/fchomo/client.js:1883
#: htdocs/luci-static/resources/view/fchomo/global.js:422
-#: htdocs/luci-static/resources/view/fchomo/global.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:264
-#: htdocs/luci-static/resources/view/fchomo/node.js:2118
-#: htdocs/luci-static/resources/view/fchomo/node.js:2400
-#: htdocs/luci-static/resources/view/fchomo/node.js:2489
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
+#: htdocs/luci-static/resources/view/fchomo/global.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:2358
+#: htdocs/luci-static/resources/view/fchomo/node.js:2640
+#: htdocs/luci-static/resources/view/fchomo/node.js:2735
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:274
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr "啟用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:669
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
強烈建議停用此功能,因為它容易受到重放攻擊。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Enable 0-RTT handshake"
msgstr "啟用 0-RTT 握手"
-#: htdocs/luci-static/resources/view/fchomo/global.js:738
+#: htdocs/luci-static/resources/view/fchomo/global.js:739
msgid ""
"Enable IP4P "
"conversion for outbound connections"
@@ -993,64 +1035,76 @@ msgstr ""
"為出站連線啟用 IP4P 轉換"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1438
+#: htdocs/luci-static/resources/view/fchomo/node.js:1590
msgid "Enable ECH"
msgstr "啟用 ECH"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1165
+msgid "Enable MagicDNS"
+msgstr "啟用 MagicDNS"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1398
-#: htdocs/luci-static/resources/view/fchomo/node.js:1923
+#: htdocs/luci-static/resources/view/fchomo/node.js:2163
msgid "Enable TCP Brutal"
msgstr "啟用 TCP Brutal"
#: htdocs/luci-static/resources/fchomo/listeners.js:1399
-#: htdocs/luci-static/resources/view/fchomo/node.js:1924
+#: htdocs/luci-static/resources/view/fchomo/node.js:2164
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "啟用 TCP Brutal 擁塞控制演算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:663
+#: htdocs/luci-static/resources/view/fchomo/node.js:1130
+msgid "Enable encryption"
+msgstr "啟用加密"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:666
msgid "Enable fast open"
msgstr "啟用 Fast open"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1912
+#: htdocs/luci-static/resources/view/fchomo/node.js:2152
msgid "Enable multiplexing only for TCP."
msgstr "僅為 TCP 啟用多路復用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:353
-#: htdocs/luci-static/resources/view/fchomo/node.js:448
+#: htdocs/luci-static/resources/view/fchomo/node.js:451
msgid "Enable obfuscate for downlink"
msgstr "啟用下行鏈路混淆"
#: htdocs/luci-static/resources/fchomo/listeners.js:1393
-#: htdocs/luci-static/resources/view/fchomo/node.js:1906
+#: htdocs/luci-static/resources/view/fchomo/node.js:2146
msgid "Enable padding"
msgstr "啟用填充"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:2157
msgid "Enable statistic"
msgstr "啟用統計"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1104
-#: htdocs/luci-static/resources/view/fchomo/node.js:2337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1256
+#: htdocs/luci-static/resources/view/fchomo/node.js:2577
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "啟用 SUoT 協議,需要服務端支援。與多路復用衝突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:500
-#: htdocs/luci-static/resources/view/fchomo/node.js:722
+#: htdocs/luci-static/resources/view/fchomo/node.js:725
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr "啟用混淆將使伺服器與標準的 QUIC 連線不相容,失去 HTTP/3 偽裝的能力。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:840
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "Encrypted Hello"
msgstr "加密 Hello"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1135
+msgid "Encryption algorithm"
+msgstr "加密演算法"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:825
msgid "Encryption method"
msgstr "加密方法"
-#: htdocs/luci-static/resources/view/fchomo/global.js:540
+#: htdocs/luci-static/resources/view/fchomo/global.js:541
msgid "Endpoint-Independent NAT"
msgstr "端點獨立 NAT"
@@ -1069,7 +1123,7 @@ msgid ""
"if empty."
msgstr "超過此限制將會觸發強制健康檢查。留空則使用 5。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2458
+#: htdocs/luci-static/resources/view/fchomo/node.js:2698
msgid "Exclude matched node types."
msgstr "排除匹配的節點類型。"
@@ -1082,53 +1136,35 @@ msgstr ""
"rel=\"noreferrer noopener\">此處。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1255
-#: htdocs/luci-static/resources/view/fchomo/node.js:2451
+#: htdocs/luci-static/resources/view/fchomo/node.js:2691
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配關鍵字或表達式的節點。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:980
+#: htdocs/luci-static/resources/view/fchomo/node.js:989
msgid "Exit node"
msgstr "出口節點"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1115
+msgid "Exit nodes"
+msgstr "出口節點"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:265
msgid "Expand/Collapse result"
msgstr "展開/收起 結果"
#: htdocs/luci-static/resources/view/fchomo/client.js:1198
-#: htdocs/luci-static/resources/view/fchomo/node.js:2436
+#: htdocs/luci-static/resources/view/fchomo/node.js:2676
msgid "Expected HTTP code. 204 will be used if empty."
msgstr "預期的 HTTP code。留空則使用 204。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1200
-#: htdocs/luci-static/resources/view/fchomo/node.js:2438
+#: htdocs/luci-static/resources/view/fchomo/node.js:2678
msgid "Expected status"
msgstr "預期狀態"
-#: htdocs/luci-static/resources/fchomo.js:456
-#: htdocs/luci-static/resources/fchomo.js:459
-#: htdocs/luci-static/resources/fchomo.js:462
-#: htdocs/luci-static/resources/fchomo.js:1764
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1806
-#: htdocs/luci-static/resources/fchomo.js:1813
-#: htdocs/luci-static/resources/fchomo.js:1829
-#: htdocs/luci-static/resources/fchomo.js:1838
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-#: htdocs/luci-static/resources/fchomo.js:1863
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-#: htdocs/luci-static/resources/fchomo.js:1891
-#: htdocs/luci-static/resources/fchomo.js:1900
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1947
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-#: htdocs/luci-static/resources/fchomo.js:1973
-#: htdocs/luci-static/resources/fchomo.js:1982
+#: htdocs/luci-static/resources/fchomo.js:457
+#: htdocs/luci-static/resources/fchomo.js:460
+#: htdocs/luci-static/resources/fchomo.js:463
#: htdocs/luci-static/resources/fchomo/listeners.js:284
#: htdocs/luci-static/resources/fchomo/listeners.js:339
#: htdocs/luci-static/resources/fchomo/listeners.js:854
@@ -1137,18 +1173,18 @@ msgstr "預期狀態"
#: htdocs/luci-static/resources/view/fchomo/client.js:71
#: htdocs/luci-static/resources/view/fchomo/client.js:1063
#: htdocs/luci-static/resources/view/fchomo/client.js:1608
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:405
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1262
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
-#: htdocs/luci-static/resources/view/fchomo/node.js:2525
-#: htdocs/luci-static/resources/view/fchomo/node.js:2555
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:408
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
+#: htdocs/luci-static/resources/view/fchomo/node.js:2771
+#: htdocs/luci-static/resources/view/fchomo/node.js:2801
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:302
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:316
msgid "Expecting: %s"
msgstr "請輸入:%s"
@@ -1157,7 +1193,7 @@ msgid "Expecting: Cannot be empty."
msgstr "請輸入:不能為空。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "Expecting: Cannot be enabled when %s is enabled."
msgstr "請輸入:當 %s 啟用時,無法啟用。"
@@ -1165,8 +1201,8 @@ msgstr "請輸入:當 %s 啟用時,無法啟用。"
msgid "Expecting: Keep empty when %s is enabled."
msgstr "請輸入:啟用 %s 時保持為空。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Expecting: Least one of %s or %s."
msgstr "請輸入:至少包含 %s 或 %s 中的一個。"
@@ -1174,15 +1210,15 @@ msgstr "請輸入:至少包含 %s 或 %s 中的一個。"
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "Expecting: Only support %s."
msgstr "請輸入:僅支援 %s。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:723
+#: htdocs/luci-static/resources/view/fchomo/global.js:724
msgid "Experimental"
msgstr "實驗性"
@@ -1198,23 +1234,7 @@ msgstr "實驗性"
msgid "Factor"
msgstr "條件"
-#: htdocs/luci-static/resources/fchomo.js:1705
-msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
-msgstr "無法執行 \"/etc/init.d/fchomo %s %s\" 原因: %s"
-
-#: htdocs/luci-static/resources/fchomo.js:1658
-msgid "Failed to generate %s, error: %s."
-msgstr "生成 %s 失敗,錯誤:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:2082
-msgid "Failed to upload %s, error: %s."
-msgstr "上傳 %s 失敗,錯誤:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:2101
-msgid "Failed to upload, error: %s."
-msgstr "上傳失敗,錯誤:%s。"
-
-#: htdocs/luci-static/resources/fchomo.js:246
+#: htdocs/luci-static/resources/fchomo.js:247
#: htdocs/luci-static/resources/fchomo/listeners.js:378
msgid "Fallback"
msgstr "自動回退"
@@ -1230,16 +1250,16 @@ msgstr "後備 DNS 伺服器"
msgid "Fallback filter"
msgstr "後備過濾器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Fallback mode"
msgstr "自動回退模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:853
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Fallback relay"
msgstr "自動回退中繼"
#: htdocs/luci-static/resources/view/fchomo/client.js:1250
-#: htdocs/luci-static/resources/view/fchomo/node.js:2445
+#: htdocs/luci-static/resources/view/fchomo/node.js:2685
msgid "Filter nodes that meet keywords or regexps."
msgstr "過濾匹配關鍵字或表達式的節點。"
@@ -1265,12 +1285,12 @@ msgid "Final DNS server (For poisoned domains)"
msgstr "兜底 DNS 伺服器 (用於已被投毒汙染的網域)"
#: htdocs/luci-static/resources/fchomo/listeners.js:138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1500
+#: htdocs/luci-static/resources/view/fchomo/node.js:1652
msgid "Firewall"
msgstr "防火牆"
#: htdocs/luci-static/resources/fchomo/listeners.js:409
-#: htdocs/luci-static/resources/view/fchomo/node.js:533
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
msgid "Flow"
msgstr "流控"
@@ -1283,9 +1303,9 @@ msgstr ""
"noopener\">%s."
#: htdocs/luci-static/resources/view/fchomo/client.js:1199
-#: htdocs/luci-static/resources/view/fchomo/node.js:2298
-#: htdocs/luci-static/resources/view/fchomo/node.js:2306
-#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/node.js:2538
+#: htdocs/luci-static/resources/view/fchomo/node.js:2546
+#: htdocs/luci-static/resources/view/fchomo/node.js:2677
msgid ""
"For format see %s."
@@ -1293,19 +1313,23 @@ msgstr ""
"格式請參閱 %s"
"a>."
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Force"
msgstr "強制"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1659
+#: htdocs/luci-static/resources/view/fchomo/node.js:1899
msgid "Force DNS remote resolution."
msgstr "強制 DNS 遠端解析。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:683
+#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+msgid "Force UDP"
+msgstr "強制開啟 UDP"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:684
msgid "Forced sniffing domain"
msgstr "強制嗅探網域"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
msgid "Format"
msgstr "格式"
@@ -1320,7 +1344,7 @@ msgstr "轉發速率限制"
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1970
msgid "GET"
msgstr ""
@@ -1329,7 +1353,7 @@ msgid "GFW list version"
msgstr "GFW 網域清單版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:495
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:720
msgid "Gecko"
msgstr ""
@@ -1339,8 +1363,8 @@ msgstr "常規"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1054
-#: htdocs/luci-static/resources/view/fchomo/node.js:249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2108
+#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:2348
msgid "General fields"
msgstr "常規欄位"
@@ -1348,21 +1372,21 @@ msgstr "常規欄位"
msgid "General settings"
msgstr "常規設定"
-#: htdocs/luci-static/resources/fchomo.js:582
-#: htdocs/luci-static/resources/fchomo.js:584
-#: htdocs/luci-static/resources/fchomo.js:598
-#: htdocs/luci-static/resources/fchomo.js:600
+#: htdocs/luci-static/resources/fchomo.js:583
+#: htdocs/luci-static/resources/fchomo.js:585
+#: htdocs/luci-static/resources/fchomo.js:599
+#: htdocs/luci-static/resources/fchomo.js:601
#: htdocs/luci-static/resources/fchomo/listeners.js:262
#: htdocs/luci-static/resources/fchomo/listeners.js:306
#: htdocs/luci-static/resources/fchomo/listeners.js:308
#: htdocs/luci-static/resources/fchomo/listeners.js:958
#: htdocs/luci-static/resources/fchomo/listeners.js:1223
-#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:2266
+#: htdocs/luci-static/resources/view/fchomo/global.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:2506
msgid "Generate"
msgstr "生成"
-#: htdocs/luci-static/resources/view/fchomo/global.js:527
+#: htdocs/luci-static/resources/view/fchomo/global.js:528
msgid "Generic segmentation offload"
msgstr "通用分段卸載(GSO)"
@@ -1405,7 +1429,7 @@ msgstr "全域"
msgid "Global Authentication"
msgstr "全域認證"
-#: htdocs/luci-static/resources/view/fchomo/node.js:557
+#: htdocs/luci-static/resources/view/fchomo/node.js:560
msgid "Global padding"
msgstr "全域填充"
@@ -1413,7 +1437,7 @@ msgstr "全域填充"
msgid "Google"
msgstr "Google"
-#: htdocs/luci-static/resources/fchomo.js:258
+#: htdocs/luci-static/resources/fchomo.js:259
msgid "Google FCM"
msgstr ""
@@ -1428,47 +1452,47 @@ msgstr "組"
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:191
#: htdocs/luci-static/resources/fchomo/listeners.js:710
-#: htdocs/luci-static/resources/view/fchomo/node.js:1154
-#: htdocs/luci-static/resources/view/fchomo/node.js:1677
-#: htdocs/luci-static/resources/view/fchomo/node.js:1690
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
+#: htdocs/luci-static/resources/view/fchomo/node.js:1306
+#: htdocs/luci-static/resources/view/fchomo/node.js:1917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:330
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
-#: htdocs/luci-static/resources/view/fchomo/node.js:2278
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
+#: htdocs/luci-static/resources/view/fchomo/node.js:2518
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:421
msgid "HTTP header"
msgstr "HTTP header"
#: htdocs/luci-static/resources/fchomo/listeners.js:359
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:457
msgid "HTTP mask"
msgstr "HTTP 偽裝"
#: htdocs/luci-static/resources/fchomo/listeners.js:364
-#: htdocs/luci-static/resources/view/fchomo/node.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "HTTP mask mode"
msgstr "HTTP 偽裝模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:484
+#: htdocs/luci-static/resources/view/fchomo/node.js:487
msgid "HTTP mask multiplex"
msgstr "HTTP 偽裝多路復用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "HTTP mask: %s"
msgstr "HTTP 偽裝: %s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1729
+#: htdocs/luci-static/resources/view/fchomo/node.js:1969
msgid "HTTP request method"
msgstr "HTTP 請求方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:483
msgid "HTTP root path"
msgstr "HTTP 根路徑"
@@ -1482,17 +1506,17 @@ msgid ""
"returned if empty."
msgstr "身份驗證失敗時的 HTTP3 伺服器回應。預設回傳 404 頁面。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1678
-#: htdocs/luci-static/resources/view/fchomo/node.js:1691
-#: htdocs/luci-static/resources/view/fchomo/node.js:1698
+#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:879
+#: htdocs/luci-static/resources/view/fchomo/global.js:880
msgid "Handle domain"
msgstr "處理網域"
-#: htdocs/luci-static/resources/view/fchomo/node.js:376
+#: htdocs/luci-static/resources/view/fchomo/node.js:379
msgid "Handshake mode"
msgstr "握手模式"
@@ -1505,7 +1529,7 @@ msgid "Handshake target that supports TLS 1.3"
msgstr "握手目標 (支援 TLS 1.3)"
#: htdocs/luci-static/resources/fchomo/listeners.js:346
-#: htdocs/luci-static/resources/view/fchomo/node.js:1089
+#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "Handshake timeout"
msgstr "握手逾時"
@@ -1513,41 +1537,41 @@ msgstr "握手逾時"
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr "用於讀取客戶端真實 IP 的 Header(例如 X-Forwarded-For)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:959
+#: htdocs/luci-static/resources/view/fchomo/node.js:968
msgid "Headscale/Tailscale"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:793
+#: htdocs/luci-static/resources/view/fchomo/node.js:796
msgid "Health check"
msgstr "健康檢查"
#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:2405
+#: htdocs/luci-static/resources/view/fchomo/node.js:2645
msgid "Health check URL"
msgstr "健康檢查 URL"
#: htdocs/luci-static/resources/view/fchomo/client.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:2435
+#: htdocs/luci-static/resources/view/fchomo/node.js:2675
msgid "Health check expected status"
msgstr "健康檢查预期状态"
#: htdocs/luci-static/resources/view/fchomo/client.js:1177
-#: htdocs/luci-static/resources/view/fchomo/node.js:2415
+#: htdocs/luci-static/resources/view/fchomo/node.js:2655
msgid "Health check interval"
msgstr "健康檢查間隔"
#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2422
+#: htdocs/luci-static/resources/view/fchomo/node.js:2662
msgid "Health check timeout"
msgstr "健康檢查逾時"
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
-#: htdocs/luci-static/resources/view/fchomo/node.js:2110
+#: htdocs/luci-static/resources/view/fchomo/node.js:2350
msgid "Health fields"
msgstr "健康欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:756
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
+#: htdocs/luci-static/resources/view/fchomo/node.js:759
msgid "Heartbeat interval"
msgstr "心跳間隔"
@@ -1556,23 +1580,27 @@ msgid "Hidden"
msgstr "隱藏"
#: htdocs/luci-static/resources/fchomo/listeners.js:723
-#: htdocs/luci-static/resources/view/fchomo/node.js:1159
+#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Host that supports TLS 1.3"
msgstr "主機名稱 (支援 TLS 1.3)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1042
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
msgid "Host-key"
msgstr "主機金鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/view/fchomo/node.js:1189
msgid "Host-key algorithms"
msgstr "主機金鑰演算法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:474
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Host/SNI override"
msgstr "主機/SNI 覆蓋"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
+#: htdocs/luci-static/resources/view/fchomo/node.js:1062
+msgid "Hostname"
+msgstr "主機名稱"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1483
msgid ""
"Hostname that the client attempts to connect to at the start of the TLS "
"handshake process."
@@ -1593,7 +1621,7 @@ msgid "Hysteria2 Realm Server"
msgstr "Hysteria2 Realm 伺服器"
#: htdocs/luci-static/resources/fchomo/listeners.js:122
-#: htdocs/luci-static/resources/view/fchomo/node.js:252
+#: htdocs/luci-static/resources/view/fchomo/node.js:255
msgid "Hysteria2 Realm fields"
msgstr "Hysteria2 Realm 欄位"
@@ -1606,23 +1634,24 @@ msgstr ""
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:632
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "IP override"
msgstr "IP 覆寫"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "IP stack"
msgstr "IP 協定棧"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1972
-#: htdocs/luci-static/resources/view/fchomo/node.js:2391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2212
+#: htdocs/luci-static/resources/view/fchomo/node.js:2631
msgid "IP version"
msgstr "IP 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1596
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1806
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
msgid "IPv4"
msgstr "IPv4"
@@ -1630,9 +1659,9 @@ msgstr "IPv4"
msgid "IPv4 only"
msgstr "僅 IPv4"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
-#: htdocs/luci-static/resources/view/fchomo/node.js:1621
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
+#: htdocs/luci-static/resources/view/fchomo/node.js:1838
msgid "IPv6"
msgstr "IPv6"
@@ -1649,11 +1678,11 @@ msgstr "IPv6 支援"
msgid "Icon"
msgstr "圖標"
-#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:608
msgid "Idle session check interval"
msgstr "閒置會話檢查間隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:612
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Idle session timeout"
msgstr "閒置會話逾時"
@@ -1661,10 +1690,6 @@ msgstr "閒置會話逾時"
msgid "Idle timeout"
msgstr "閒置逾時"
-#: htdocs/luci-static/resources/fchomo.js:1806
-msgid "If All ports is selected, uncheck others"
-msgstr "如果選擇了“所有連接埠”,則取消選取“其他”"
-
#: htdocs/luci-static/resources/view/fchomo/client.js:71
msgid "If Block is selected, uncheck others"
msgstr "如果選擇了“封鎖”,則取消選取“其他”"
@@ -1673,7 +1698,13 @@ msgstr "如果選擇了“封鎖”,則取消選取“其他”"
msgid "Ignore client bandwidth"
msgstr "忽略客戶端頻寬"
-#: htdocs/luci-static/resources/fchomo.js:767
+#: htdocs/luci-static/resources/view/fchomo/node.js:1154
+msgid ""
+"Ignore the number of intermediate hops and select the path with the lowest "
+"total latency."
+msgstr "忽略中繼跳數,選擇總延遲最低的路徑。"
+
+#: htdocs/luci-static/resources/fchomo.js:768
msgid "Import"
msgstr "導入"
@@ -1689,25 +1720,25 @@ msgstr "導入"
#: htdocs/luci-static/resources/view/fchomo/client.js:1816
#: htdocs/luci-static/resources/view/fchomo/client.js:1851
#: htdocs/luci-static/resources/view/fchomo/client.js:1872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1998
-#: htdocs/luci-static/resources/view/fchomo/node.js:2096
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
+#: htdocs/luci-static/resources/view/fchomo/node.js:2238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:156
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
msgid "Import mihomo config"
msgstr "導入 mihomo 配置"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:205
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:207
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:255
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:257
msgid "Import rule-set links"
msgstr "導入規則集連結"
#: htdocs/luci-static/resources/fchomo/listeners.js:474
#: htdocs/luci-static/resources/fchomo/listeners.js:480
-#: htdocs/luci-static/resources/view/fchomo/node.js:691
-#: htdocs/luci-static/resources/view/fchomo/node.js:697
-#: htdocs/luci-static/resources/view/fchomo/node.js:2343
-#: htdocs/luci-static/resources/view/fchomo/node.js:2349
+#: htdocs/luci-static/resources/view/fchomo/node.js:694
+#: htdocs/luci-static/resources/view/fchomo/node.js:700
+#: htdocs/luci-static/resources/view/fchomo/node.js:2583
+#: htdocs/luci-static/resources/view/fchomo/node.js:2589
msgid "In Mbps."
msgstr "單位為 Mbps。"
@@ -1715,56 +1746,56 @@ msgstr "單位為 Mbps。"
msgid "In bps. 0 means no speed limit."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2186
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
+#: htdocs/luci-static/resources/view/fchomo/node.js:2426
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:394
msgid "In bytes. %s will be used if empty."
msgstr "單位為位元組。留空則使用 %s。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1294
-#: htdocs/luci-static/resources/view/fchomo/node.js:676
-#: htdocs/luci-static/resources/view/fchomo/node.js:683
-#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:686
+#: htdocs/luci-static/resources/view/fchomo/node.js:760
msgid "In millisecond."
msgstr "單位為毫秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1185
#: htdocs/luci-static/resources/view/fchomo/client.js:1231
-#: htdocs/luci-static/resources/view/fchomo/node.js:2423
+#: htdocs/luci-static/resources/view/fchomo/node.js:2663
msgid "In millisecond. %s will be used if empty."
msgstr "單位為毫秒。留空則使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1821
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
msgid "In milliseconds."
msgstr "單位為毫秒。"
#: htdocs/luci-static/resources/fchomo/listeners.js:347
#: htdocs/luci-static/resources/fchomo/listeners.js:466
#: htdocs/luci-static/resources/fchomo/listeners.js:656
-#: htdocs/luci-static/resources/view/fchomo/node.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:613
-#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:2008
msgid "In seconds."
msgstr "單位為秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1178
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
-#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:2192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2416
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
+#: htdocs/luci-static/resources/view/fchomo/global.js:537
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2432
+#: htdocs/luci-static/resources/view/fchomo/node.js:2656
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "In seconds. %s will be used if empty."
msgstr "單位為秒。留空則使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1090
+#: htdocs/luci-static/resources/view/fchomo/node.js:1242
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr "單位為秒。配置後握手時不受外層連線逾時影響。"
#: htdocs/luci-static/resources/fchomo/listeners.js:874
-#: htdocs/luci-static/resources/view/fchomo/node.js:1251
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1807,20 +1838,20 @@ msgid "Info"
msgstr "訊息"
#: htdocs/luci-static/resources/fchomo/listeners.js:565
-#: htdocs/luci-static/resources/view/fchomo/node.js:763
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "Initial congestion window size"
msgstr "初始擁塞視窗大小"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2125
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
+#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:290
msgid "Inline"
msgstr "內嵌"
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:826
msgid "Insane"
msgstr "噩夢"
-#: htdocs/luci-static/resources/view/fchomo/global.js:751
+#: htdocs/luci-static/resources/view/fchomo/global.js:752
msgid "Interface Control"
msgstr "介面控制"
@@ -1829,38 +1860,39 @@ msgstr "介面控制"
#: htdocs/luci-static/resources/fchomo/listeners.js:700
#: htdocs/luci-static/resources/fchomo/listeners.js:1131
#: htdocs/luci-static/resources/fchomo/listeners.js:1247
-#: htdocs/luci-static/resources/view/fchomo/node.js:1129
-#: htdocs/luci-static/resources/view/fchomo/node.js:1139
-#: htdocs/luci-static/resources/view/fchomo/node.js:1144
-#: htdocs/luci-static/resources/view/fchomo/node.js:1474
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
+#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1626
msgid "JLS"
msgstr "JLS"
-#: htdocs/luci-static/resources/view/fchomo/node.js:884
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
msgid "Join %s. Format: %s"
msgstr "加入 %s。格式:%s"
#: htdocs/luci-static/resources/fchomo.js:53
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:174
-#: htdocs/luci-static/resources/fchomo.js:381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1049
-#: htdocs/luci-static/resources/view/fchomo/node.js:1057
-#: htdocs/luci-static/resources/view/fchomo/node.js:2365
+#: htdocs/luci-static/resources/fchomo.js:382
+#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/view/fchomo/node.js:2605
msgid "Keep default"
msgstr "保持預設"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "Keep-alive period"
msgstr "Keep-alive 週期"
#: htdocs/luci-static/resources/fchomo/listeners.js:217
-#: htdocs/luci-static/resources/view/fchomo/node.js:390
+#: htdocs/luci-static/resources/view/fchomo/node.js:393
msgid "Key"
msgstr "密鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:1150
-#: htdocs/luci-static/resources/view/fchomo/node.js:1424
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
msgid "Key path"
msgstr "憑證路徑"
@@ -1879,15 +1911,19 @@ msgstr "L2"
#: htdocs/luci-static/resources/view/fchomo/client.js:1588
#: htdocs/luci-static/resources/view/fchomo/client.js:1822
#: htdocs/luci-static/resources/view/fchomo/client.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2113
-#: htdocs/luci-static/resources/view/fchomo/node.js:2484
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:262
+#: htdocs/luci-static/resources/view/fchomo/node.js:2353
+#: htdocs/luci-static/resources/view/fchomo/node.js:2730
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:269
msgid "Label"
msgstr "標籤"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+msgid "Latency first"
+msgstr "延遲優先"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:2429
+#: htdocs/luci-static/resources/view/fchomo/node.js:2669
msgid "Lazy"
msgstr "怠惰狀態"
@@ -1900,7 +1936,7 @@ msgid "Lazy query."
msgstr "怠惰查詢。"
#: htdocs/luci-static/resources/fchomo/listeners.js:366
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
msgid "Legacy"
msgstr "傳統"
@@ -1916,8 +1952,18 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr "有時效能較好。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+msgid "List of exit nodes to use (%s of peer nodes)."
+msgstr "要使用的出口節點清單(對端節點的 %s)。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1124
+msgid ""
+"List of local subnets (CIDR) to be open to other peers in the EasyTier "
+"network."
+msgstr "要向 EasyTier 網路中的其他對端開放的本機子網的清單(CIDR)。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:1337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1489
msgid "List of supported application level protocols, in order of preference."
msgstr "支援的應用層協議協商清單,依序排列。"
@@ -1929,14 +1975,14 @@ msgstr "監聽位址"
msgid "Listen fields"
msgstr "監聽欄位"
-#: htdocs/luci-static/resources/view/fchomo/global.js:753
+#: htdocs/luci-static/resources/view/fchomo/global.js:754
msgid "Listen interfaces"
msgstr "監聽介面"
#: htdocs/luci-static/resources/fchomo/listeners.js:154
#: htdocs/luci-static/resources/view/fchomo/client.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Listen port"
msgstr "監聽埠"
@@ -1948,12 +1994,16 @@ msgstr "監聽埠"
msgid "Listen routing mark (Fwmark)"
msgstr "監聽路由標記 (Fwmark)"
-#: htdocs/luci-static/resources/fchomo.js:248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1768
+msgid "Listeners"
+msgstr "監聽"
+
+#: htdocs/luci-static/resources/fchomo.js:249
msgid "Load balance"
msgstr "負載均衡"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2123
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
+#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Local"
msgstr "本地"
@@ -1973,7 +2023,7 @@ msgstr "日誌為空。"
msgid "Log level"
msgstr "日誌等級"
-#: htdocs/luci-static/resources/view/fchomo/node.js:834
+#: htdocs/luci-static/resources/view/fchomo/node.js:837
msgid "Low Bandwidth Mode"
msgstr "低頻寬模式"
@@ -1981,19 +2031,19 @@ msgstr "低頻寬模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Low-entropy data stream"
msgstr "低熵資料流"
-#: htdocs/luci-static/resources/fchomo.js:456
+#: htdocs/luci-static/resources/fchomo.js:457
msgid "Lowercase only"
msgstr "僅限小寫"
-#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:1631
+#: htdocs/luci-static/resources/view/fchomo/global.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
msgid "MTU"
msgstr "MTU"
@@ -2033,12 +2083,12 @@ msgstr "匹配回應通過 ipcidr"
msgid "Match rule set."
msgstr "匹配規則集。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1774
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid "Max Early Data"
msgstr "前置數據最大值"
#: htdocs/luci-static/resources/fchomo/listeners.js:459
-#: htdocs/luci-static/resources/view/fchomo/node.js:657
+#: htdocs/luci-static/resources/view/fchomo/node.js:660
msgid "Max UDP relay packet size"
msgstr "UDP 中繼數據包最大尺寸"
@@ -2046,11 +2096,11 @@ msgstr "UDP 中繼數據包最大尺寸"
msgid "Max buffered posts"
msgstr "POST 最大緩衝"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Max concurrency"
msgstr "最大並發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
msgid "Max connections"
msgstr "最大連線數"
@@ -2059,21 +2109,21 @@ msgid "Max count of failures"
msgstr "最大失敗次數"
#: htdocs/luci-static/resources/fchomo/listeners.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:772
msgid "Max datagram frame size"
msgstr "最大資料封包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:479
-#: htdocs/luci-static/resources/view/fchomo/node.js:696
+#: htdocs/luci-static/resources/view/fchomo/node.js:699
msgid "Max download speed"
msgstr "最大下載速度"
#: htdocs/luci-static/resources/fchomo/listeners.js:1381
-#: htdocs/luci-static/resources/view/fchomo/node.js:1814
+#: htdocs/luci-static/resources/view/fchomo/node.js:2054
msgid "Max each POST bytes"
msgstr "POST 最大位元組數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1083
+#: htdocs/luci-static/resources/view/fchomo/node.js:1235
msgid "Max open streams"
msgstr "限制打開流的數量"
@@ -2085,29 +2135,29 @@ msgstr "最大 Realms 數量"
msgid "Max realms per client IP"
msgstr "每客戶端 IP 最大 Realms 數量"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
msgid "Max request times"
msgstr "最大請求次數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
msgid "Max reusable seconds"
msgstr "最大可重用秒數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
msgid "Max reuse times"
msgstr "最大重用次數"
#: htdocs/luci-static/resources/fchomo/listeners.js:473
-#: htdocs/luci-static/resources/view/fchomo/node.js:690
+#: htdocs/luci-static/resources/view/fchomo/node.js:693
msgid "Max upload speed"
msgstr "最大上傳速度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2118
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Maximum connections"
msgstr "最大連線數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1896
+#: htdocs/luci-static/resources/view/fchomo/node.js:2136
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
@@ -2116,18 +2166,18 @@ msgstr ""
"%s 衝突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:327
-#: htdocs/luci-static/resources/view/fchomo/node.js:433
+#: htdocs/luci-static/resources/view/fchomo/node.js:436
msgid "Maximum padding rate"
msgstr "最大填充率"
#: htdocs/luci-static/resources/fchomo/listeners.js:339
-#: htdocs/luci-static/resources/view/fchomo/node.js:441
+#: htdocs/luci-static/resources/view/fchomo/node.js:444
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr "最大填充率必須大於等于最小填充率。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1895
+#: htdocs/luci-static/resources/view/fchomo/node.js:2135
msgid "Maximum streams"
msgstr "最大流數量"
@@ -2148,26 +2198,26 @@ msgstr "Mihomo 客戶端"
msgid "Mihomo server"
msgstr "Mihomo 服務端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:619
+#: htdocs/luci-static/resources/view/fchomo/node.js:622
msgid "Min of idle sessions to keep"
msgstr "要保留的最少閒置會話數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1820
+#: htdocs/luci-static/resources/view/fchomo/node.js:2060
msgid "Min posts interval"
msgstr "POST 請求最小間隔時間"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:2127
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在開啟新連線之前,連線中的最小多路復用流數量。"
#: htdocs/luci-static/resources/fchomo/listeners.js:316
-#: htdocs/luci-static/resources/view/fchomo/node.js:426
+#: htdocs/luci-static/resources/view/fchomo/node.js:429
msgid "Minimum padding rate"
msgstr "最小填充率"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:2126
+#: htdocs/luci-static/resources/view/fchomo/node.js:2138
msgid "Minimum streams"
msgstr "最小流數量"
@@ -2185,19 +2235,23 @@ msgid "Mixed port"
msgstr "混合連接埠"
#: htdocs/luci-static/resources/fchomo/listeners.js:1388
-#: htdocs/luci-static/resources/view/fchomo/node.js:1864
+#: htdocs/luci-static/resources/view/fchomo/node.js:2104
msgid "Multiplex"
msgstr "多路復用"
#: htdocs/luci-static/resources/fchomo/listeners.js:125
-#: htdocs/luci-static/resources/view/fchomo/node.js:256
+#: htdocs/luci-static/resources/view/fchomo/node.js:259
msgid "Multiplex fields"
msgstr "多路復用欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:367
+#: htdocs/luci-static/resources/view/fchomo/node.js:370
msgid "Multiplexing"
msgstr "多路復用"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+msgid "NO Listener"
+msgstr "無監聽"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:642
#: htdocs/luci-static/resources/view/fchomo/client.js:718
msgid "NOT"
@@ -2207,11 +2261,11 @@ msgstr "NOT"
msgid "Name of the Proxy group as outbound."
msgstr "出站代理組的名稱。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2198
+#: htdocs/luci-static/resources/view/fchomo/node.js:2438
msgid "Name of the Proxy group to download provider."
msgstr "用於下載供應商訂閱的代理組名稱。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:404
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:406
msgid "Name of the Proxy group to download rule set."
msgstr "用於下載規則集訂閱的代理組名稱。"
@@ -2219,23 +2273,33 @@ msgstr "用於下載規則集訂閱的代理組名稱。"
msgid "Name of the Sub rule used for inbound matching."
msgstr "用於入站匹配的子規則名稱。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:641
+#: htdocs/luci-static/resources/view/fchomo/node.js:644
msgid "Native UDP"
msgstr "原生 UDP"
-#: htdocs/luci-static/resources/fchomo.js:398
+#: htdocs/luci-static/resources/fchomo.js:399
msgid "Native appearance"
msgstr "原生外觀"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1007
+#: htdocs/luci-static/resources/view/fchomo/node.js:1016
msgid "Network"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network name"
+msgstr "網路名稱"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1057
+msgid "Network secret"
+msgstr "網路密碼"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:662
msgid "Network type"
msgstr "網路類型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2367
+#: htdocs/luci-static/resources/view/fchomo/node.js:2607
msgid "No"
msgstr ""
@@ -2251,40 +2315,40 @@ msgstr "無 SSE header"
msgid "No add'l params"
msgstr "無附加參數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1804
+#: htdocs/luci-static/resources/view/fchomo/node.js:2044
msgid "No gRPC header"
msgstr "無 gRPC header"
#: htdocs/luci-static/resources/view/fchomo/client.js:1192
-#: htdocs/luci-static/resources/view/fchomo/node.js:2430
+#: htdocs/luci-static/resources/view/fchomo/node.js:2670
msgid "No testing is performed when this provider node is not in use."
msgstr "當此供應商的節點未使用時,不執行任何測試。"
-#: htdocs/luci-static/resources/fchomo.js:728
+#: htdocs/luci-static/resources/fchomo.js:729
msgid "No valid %s found."
msgstr "未找到有效的%s。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:229
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
msgid "No valid rule-set link found."
msgstr "未找到有效的規則集連結。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1092
-#: htdocs/luci-static/resources/view/fchomo/node.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:234
msgid "Node"
msgstr "節點"
#: htdocs/luci-static/resources/view/fchomo/client.js:1254
-#: htdocs/luci-static/resources/view/fchomo/node.js:2450
+#: htdocs/luci-static/resources/view/fchomo/node.js:2690
msgid "Node exclude filter"
msgstr "排除節點"
#: htdocs/luci-static/resources/view/fchomo/client.js:1259
-#: htdocs/luci-static/resources/view/fchomo/node.js:2457
+#: htdocs/luci-static/resources/view/fchomo/node.js:2697
msgid "Node exclude type"
msgstr "排除節點類型"
#: htdocs/luci-static/resources/view/fchomo/client.js:1249
-#: htdocs/luci-static/resources/view/fchomo/node.js:2444
+#: htdocs/luci-static/resources/view/fchomo/node.js:2684
msgid "Node filter"
msgstr "過濾節點"
@@ -2292,65 +2356,65 @@ msgstr "過濾節點"
msgid "Node switch tolerance"
msgstr "節點切換容差"
-#: htdocs/luci-static/resources/fchomo.js:425
+#: htdocs/luci-static/resources/fchomo.js:426
msgid "None"
msgstr "無"
-#: htdocs/luci-static/resources/view/fchomo/node.js:819
+#: htdocs/luci-static/resources/view/fchomo/node.js:822
msgid "Normal"
msgstr "正常"
-#: htdocs/luci-static/resources/view/fchomo/global.js:634
+#: htdocs/luci-static/resources/view/fchomo/global.js:635
msgid "Not Installed"
msgstr "未安裝"
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Not Running"
msgstr "未在運作"
-#: htdocs/luci-static/resources/view/fchomo/node.js:487
+#: htdocs/luci-static/resources/view/fchomo/node.js:490
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "ON"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Obfs Mode"
msgstr "Obfs 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:734
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Obfuscate maximum packet size"
msgstr "混淆最大資料包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:507
-#: htdocs/luci-static/resources/view/fchomo/node.js:729
+#: htdocs/luci-static/resources/view/fchomo/node.js:732
msgid "Obfuscate minimum packet size"
msgstr "混淆最小資料包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:721
+#: htdocs/luci-static/resources/view/fchomo/node.js:724
msgid "Obfuscate password"
msgstr "混淆密碼"
#: htdocs/luci-static/resources/fchomo/listeners.js:291
#: htdocs/luci-static/resources/fchomo/listeners.js:492
-#: htdocs/luci-static/resources/view/fchomo/node.js:412
-#: htdocs/luci-static/resources/view/fchomo/node.js:714
+#: htdocs/luci-static/resources/view/fchomo/node.js:415
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "Obfuscate type"
msgstr "混淆類型"
#: htdocs/luci-static/resources/fchomo/listeners.js:292
#: htdocs/luci-static/resources/fchomo/listeners.js:293
-#: htdocs/luci-static/resources/view/fchomo/node.js:413
-#: htdocs/luci-static/resources/view/fchomo/node.js:414
+#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:417
msgid "Obfuscated as %s"
msgstr "混淆為%s"
-#: htdocs/luci-static/resources/view/fchomo/global.js:904
+#: htdocs/luci-static/resources/view/fchomo/global.js:905
msgid "One or more numbers in the range 0-63 separated by commas"
msgstr "0-63 範圍內的一個或多個數字,以逗號分隔"
@@ -2359,15 +2423,25 @@ msgid "Only applicable when %s are used as a frontend."
msgstr "僅當 %s 用作前端時適用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:300
-#: htdocs/luci-static/resources/view/fchomo/node.js:421
+#: htdocs/luci-static/resources/view/fchomo/node.js:424
msgid "Only applies to the %s."
msgstr "只對%s生效。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:754
+#: htdocs/luci-static/resources/view/fchomo/node.js:1056
+msgid ""
+"Only nodes using the same %s and %s as this network are permitted to perform "
+"a handshake or relay traffic through this node."
+msgstr "僅允許使用與本網路相同的 %s 和 %s 的節點透過此節點執行握手或中繼流量。"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:755
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr "只處理來自指定介面的流量。留空表示全部。"
-#: htdocs/luci-static/resources/fchomo.js:1578
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
+msgid "Only the address %s is valid."
+msgstr "只有位址 %s 是有效的。"
+
+#: htdocs/luci-static/resources/fchomo.js:1579
msgid "Open Dashboard"
msgstr "打開面板"
@@ -2379,7 +2453,7 @@ msgstr "運作模式"
msgid "Option is deprecated. Please use %s instead."
msgstr "該選項已棄用,請使用%s作為代替。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2315
+#: htdocs/luci-static/resources/view/fchomo/node.js:2555
msgid "Other configuration items"
msgstr "其他配置項"
@@ -2387,22 +2461,22 @@ msgstr "其他配置項"
msgid "Outbound"
msgstr "出站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1396
-#: htdocs/luci-static/resources/view/fchomo/node.js:2354
+#: htdocs/luci-static/resources/view/fchomo/node.js:1548
+#: htdocs/luci-static/resources/view/fchomo/node.js:2594
msgid "Override cert DNSName"
msgstr "覆蓋憑證 DNSName"
-#: htdocs/luci-static/resources/view/fchomo/global.js:679
-#: htdocs/luci-static/resources/view/fchomo/global.js:717
+#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:718
msgid "Override destination"
msgstr "覆蓋目標位址"
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2349
msgid "Override fields"
msgstr "覆蓋欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:633
+#: htdocs/luci-static/resources/view/fchomo/node.js:636
msgid "Override the IP address of the server that DNS response."
msgstr "覆蓋 DNS 回應的伺服器的 IP 位址。"
@@ -2410,7 +2484,7 @@ msgstr "覆蓋 DNS 回應的伺服器的 IP 位址。"
msgid "Override the Proxy group of DNS server."
msgstr "覆蓋 DNS 伺服器所使用的代理組。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:680
+#: htdocs/luci-static/resources/view/fchomo/global.js:681
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的網域覆寫連線目標。"
@@ -2418,7 +2492,7 @@ msgstr "使用嗅探到的網域覆寫連線目標。"
msgid "Override the existing ECS in original request."
msgstr "覆蓋原始請求中已有的 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
msgid "Overrides the domain name used for HTTPS record queries."
msgstr "覆蓋用於 HTTPS 記錄查詢的網域。"
@@ -2426,19 +2500,19 @@ msgstr "覆蓋用於 HTTPS 記錄查詢的網域。"
msgid "Overview"
msgstr "概覽"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1731
+#: htdocs/luci-static/resources/view/fchomo/node.js:1971
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1732
+#: htdocs/luci-static/resources/view/fchomo/node.js:1972
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:569
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Packet encoding"
msgstr "數據包編碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1809
+#: htdocs/luci-static/resources/view/fchomo/node.js:2049
msgid "Padding bytes"
msgstr "填充位元組"
@@ -2447,65 +2521,69 @@ msgid "Padding scheme"
msgstr "填充方案"
#: htdocs/luci-static/resources/fchomo/listeners.js:872
-#: htdocs/luci-static/resources/view/fchomo/node.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Paddings"
msgstr "填充 (Paddings)"
#: htdocs/luci-static/resources/fchomo/listeners.js:167
#: htdocs/luci-static/resources/fchomo/listeners.js:184
#: htdocs/luci-static/resources/fchomo/listeners.js:738
-#: htdocs/luci-static/resources/view/fchomo/node.js:324
-#: htdocs/luci-static/resources/view/fchomo/node.js:345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+#: htdocs/luci-static/resources/view/fchomo/node.js:327
+#: htdocs/luci-static/resources/view/fchomo/node.js:348
+#: htdocs/luci-static/resources/view/fchomo/node.js:1326
msgid "Password"
msgstr "密碼"
#: htdocs/luci-static/resources/fchomo/listeners.js:589
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
+#: htdocs/luci-static/resources/view/fchomo/node.js:790
msgid "Path MTU Discovery"
msgstr "路徑 MTU 發現"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:385
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:387
msgid "Path in bundle"
msgstr "捆綁包路徑"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:386
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Path in bundle: %s"
msgstr "在捆綁包%s中的路徑"
#: htdocs/luci-static/resources/fchomo/listeners.js:812
-#: htdocs/luci-static/resources/view/fchomo/node.js:2173
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
+#: htdocs/luci-static/resources/view/fchomo/node.js:2413
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:375
msgid "Payload"
msgstr "Payload"
-#: htdocs/luci-static/resources/view/fchomo/node.js:920
+#: htdocs/luci-static/resources/view/fchomo/node.js:929
msgid "Peer public key"
msgstr "對端公鑰"
-#: htdocs/luci-static/resources/view/fchomo/global.js:541
+#: htdocs/luci-static/resources/view/fchomo/node.js:1068
+msgid "Peers"
+msgstr "對等端點"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:542
msgid ""
"Performance may degrade slightly, so it is not recommended to enable on when "
"it is not needed."
msgstr "效能可能會略有下降,建議僅在需要時開啟。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:947
+#: htdocs/luci-static/resources/view/fchomo/node.js:956
msgid "Periodically sends data packets to maintain connection persistence."
msgstr "定期發送資料包以維持連線持久性。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:946
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Persistent keepalive"
msgstr "持久連接"
-#: htdocs/luci-static/resources/view/fchomo/node.js:827
+#: htdocs/luci-static/resources/view/fchomo/node.js:830
msgid "Physical MTU"
msgstr "物理 MTU"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:306
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:308
msgid "Plain text"
msgstr "純文本 text"
-#: htdocs/luci-static/resources/view/fchomo/global.js:881
+#: htdocs/luci-static/resources/view/fchomo/global.js:882
msgid ""
"Please ensure that the DNS query of the domains to be processed in the DNS "
"policyare send via DIRECT/Proxy Node in the same semantics as Routing "
@@ -2514,16 +2592,16 @@ msgstr ""
"請在 DNS 策略 中確保要處理的網域的 DNS 查詢以與路由模式相同的語意透過 直"
"連/代理節點 傳送。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:210
msgid ""
"Please refer to %s for link format "
"standards."
msgstr "連結格式標準請參考 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2146
-#: htdocs/luci-static/resources/view/fchomo/node.js:2172
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
+#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/node.js:2412
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid ""
"Please type %s"
"a>."
@@ -2536,60 +2614,56 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1545
#: htdocs/luci-static/resources/view/fchomo/client.js:1800
#: htdocs/luci-static/resources/view/fchomo/client.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1999
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
+#: htdocs/luci-static/resources/view/fchomo/node.js:2239
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:157
msgid "Please type %s fields of mihomo config."
msgstr "請輸入 mihomo 配置的 %s 欄位。"
#: htdocs/luci-static/resources/fchomo/listeners.js:675
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Plugin"
msgstr "外掛"
#: htdocs/luci-static/resources/fchomo/listeners.js:120
-#: htdocs/luci-static/resources/view/fchomo/node.js:250
+#: htdocs/luci-static/resources/view/fchomo/node.js:253
msgid "Plugin fields"
msgstr "外掛欄位"
#: htdocs/luci-static/resources/fchomo/listeners.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/view/fchomo/node.js:1275
msgid "Plugin type"
msgstr "外掛類型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:279
+#: htdocs/luci-static/resources/view/fchomo/node.js:282
msgid "Port"
msgstr "連接埠"
-#: htdocs/luci-static/resources/fchomo.js:1815
-msgid "Port %s alrealy exists!"
-msgstr "連接埠 %s 已存在!"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:708
+#: htdocs/luci-static/resources/view/fchomo/node.js:711
msgid "Port hop interval"
msgstr "連接埠跳躍間隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:355
+#: htdocs/luci-static/resources/view/fchomo/node.js:358
msgid "Port range"
msgstr "連接埠範圍"
-#: htdocs/luci-static/resources/view/fchomo/global.js:714
+#: htdocs/luci-static/resources/view/fchomo/global.js:715
msgid "Ports"
msgstr "連接埠"
#: htdocs/luci-static/resources/fchomo/listeners.js:154
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Ports pool"
msgstr "連接埠池"
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:524
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:927
+#: htdocs/luci-static/resources/view/fchomo/node.js:507
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
msgid "Pre-shared key"
msgstr "預先共用金鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:1010
-#: htdocs/luci-static/resources/view/fchomo/node.js:1284
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Pre-shared key of rendezvous server"
msgstr "牽線伺服器的預先共用金鑰"
@@ -2601,69 +2675,73 @@ msgstr "優先 IPv4"
msgid "Prefer IPv6"
msgstr "優先 IPv6"
-#: htdocs/luci-static/resources/view/fchomo/global.js:545
+#: htdocs/luci-static/resources/view/fchomo/global.js:546
msgid ""
"Prevent ICMP loopback issues in some cases. Ping will not show real delay."
msgstr "防止某些情況下的 ICMP 環回問題。 Ping 不會顯示實際延遲。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1520
-#: htdocs/luci-static/resources/view/fchomo/node.js:1521
+#: htdocs/luci-static/resources/view/fchomo/node.js:1720
+#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Primary"
msgstr "主要"
-#: htdocs/luci-static/resources/view/fchomo/global.js:760
-#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1960
-#: htdocs/luci-static/resources/view/fchomo/node.js:1967
-#: htdocs/luci-static/resources/view/fchomo/node.js:2379
-#: htdocs/luci-static/resources/view/fchomo/node.js:2386
+#: htdocs/luci-static/resources/view/fchomo/global.js:761
+#: htdocs/luci-static/resources/view/fchomo/global.js:778
+#: htdocs/luci-static/resources/view/fchomo/node.js:2200
+#: htdocs/luci-static/resources/view/fchomo/node.js:2207
+#: htdocs/luci-static/resources/view/fchomo/node.js:2619
+#: htdocs/luci-static/resources/view/fchomo/node.js:2626
msgid "Priority: Proxy Node > Global."
msgstr "優先權: 代理節點 > 全域。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1028
+#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "Priv-key"
msgstr "金鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1032
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "Priv-key passphrase"
msgstr "金鑰密碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:899
-#: htdocs/luci-static/resources/view/fchomo/node.js:992
+#: htdocs/luci-static/resources/view/fchomo/node.js:908
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
msgid "Private key"
msgstr "私鑰"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1055
+msgid "Private network"
+msgstr "私密網路"
+
#: htdocs/luci-static/resources/view/fchomo/global.js:421
msgid "Process matching mode"
msgstr "進程匹配模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2305
+#: htdocs/luci-static/resources/view/fchomo/node.js:2545
msgid "Programmable replacement"
msgstr "可編程替換"
-#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1870
+#: htdocs/luci-static/resources/view/fchomo/global.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:2110
msgid "Protocol"
msgstr "協議"
-#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "Protocol parameter. Enable length block encryption."
msgstr "協議參數。啟用長度塊加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:558
+#: htdocs/luci-static/resources/view/fchomo/node.js:561
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr "協議參數。 如啟用會隨機浪費流量(在 v2ray 中預設為啟用且無法停用)。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1112
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
-#: htdocs/luci-static/resources/view/fchomo/node.js:1991
-#: htdocs/luci-static/resources/view/fchomo/node.js:2495
+#: htdocs/luci-static/resources/view/fchomo/node.js:2222
+#: htdocs/luci-static/resources/view/fchomo/node.js:2231
+#: htdocs/luci-static/resources/view/fchomo/node.js:2741
msgid "Provider"
msgstr "供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2419
msgid "Provider URL"
msgstr "供應商訂閱 URL"
@@ -2673,33 +2751,33 @@ msgstr "供應商訂閱 URL"
msgid "Proxy Group"
msgstr "代理組"
-#: htdocs/luci-static/resources/view/fchomo/global.js:810
+#: htdocs/luci-static/resources/view/fchomo/global.js:811
msgid "Proxy IPv4 IP-s"
msgstr "代理 IPv4 位址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:813
+#: htdocs/luci-static/resources/view/fchomo/global.js:814
msgid "Proxy IPv6 IP-s"
msgstr "代理 IPv6 位址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:816
+#: htdocs/luci-static/resources/view/fchomo/global.js:817
msgid "Proxy MAC-s"
msgstr "代理 MAC 位址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:222
-#: htdocs/luci-static/resources/view/fchomo/node.js:2494
+#: htdocs/luci-static/resources/view/fchomo/node.js:225
+#: htdocs/luci-static/resources/view/fchomo/node.js:2740
msgid "Proxy Node"
msgstr "代理節點"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2470
-#: htdocs/luci-static/resources/view/fchomo/node.js:2479
+#: htdocs/luci-static/resources/view/fchomo/node.js:2716
+#: htdocs/luci-static/resources/view/fchomo/node.js:2725
msgid "Proxy chain"
msgstr "代理鏈"
#: htdocs/luci-static/resources/fchomo/listeners.js:622
#: htdocs/luci-static/resources/view/fchomo/client.js:813
#: htdocs/luci-static/resources/view/fchomo/client.js:1643
-#: htdocs/luci-static/resources/view/fchomo/node.js:2197
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
+#: htdocs/luci-static/resources/view/fchomo/node.js:2437
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:405
msgid "Proxy group"
msgstr "代理組"
@@ -2711,26 +2789,26 @@ msgstr "代理組覆蓋"
msgid "Proxy mode"
msgstr "代理模式"
-#: htdocs/luci-static/resources/view/fchomo/global.js:819
+#: htdocs/luci-static/resources/view/fchomo/global.js:820
msgid "Proxy routerself"
msgstr "代理路由器自身"
-#: htdocs/luci-static/resources/view/fchomo/node.js:916
+#: htdocs/luci-static/resources/view/fchomo/node.js:925
msgid "Public key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:645
+#: htdocs/luci-static/resources/view/fchomo/node.js:801
msgid "QUIC"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/view/fchomo/node.js:751
+#: htdocs/luci-static/resources/view/fchomo/node.js:754
msgid "QUIC based 0-RTT"
msgstr "基於 QUIC 的 0-RTT"
#: htdocs/luci-static/resources/fchomo/listeners.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "QUIC versions"
msgstr "QUIC 版本"
@@ -2741,11 +2819,11 @@ msgstr "快速重載"
#: htdocs/luci-static/resources/fchomo/listeners.js:1132
#: htdocs/luci-static/resources/fchomo/listeners.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1617
msgid "REALITY"
msgstr "REALITY"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "REALITY X25519MLKEM768 PQC support"
msgstr "REALITY X25519MLKEM768 後量子加密支援"
@@ -2766,46 +2844,46 @@ msgid "REALITY private key"
msgstr "REALITY 私鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1481
+#: htdocs/luci-static/resources/view/fchomo/node.js:1633
msgid "REALITY public key"
msgstr "REALITY 公鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:1280
-#: htdocs/luci-static/resources/view/fchomo/node.js:1486
+#: htdocs/luci-static/resources/view/fchomo/node.js:1638
msgid "REALITY short ID"
msgstr "REALITY 標識符"
-#: htdocs/luci-static/resources/view/fchomo/node.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:289
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "REMATCH-NAME marking"
msgstr "REMATCH-NAME 打標"
#: htdocs/luci-static/resources/fchomo/listeners.js:843
#: htdocs/luci-static/resources/fchomo/listeners.js:862
-#: htdocs/luci-static/resources/view/fchomo/node.js:1239
+#: htdocs/luci-static/resources/view/fchomo/node.js:1391
msgid "RTT"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:390
+#: htdocs/luci-static/resources/fchomo.js:391
msgid "Random"
msgstr "隨機"
-#: htdocs/luci-static/resources/view/fchomo/global.js:668
+#: htdocs/luci-static/resources/view/fchomo/global.js:669
msgid "Random will be used if empty."
msgstr "留空將使用隨機令牌。"
-#: htdocs/luci-static/resources/fchomo.js:400
+#: htdocs/luci-static/resources/fchomo.js:401
msgid "Randomized traffic characteristics"
msgstr "隨機化流量特徵"
#: htdocs/luci-static/resources/fchomo/listeners.js:999
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "Realm"
msgstr "Realm"
#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Realm ID"
msgstr "Realm ID"
@@ -2829,7 +2907,7 @@ msgstr "Redirect TCP + TProxy UDP"
msgid "Redirect TCP + Tun UDP"
msgstr "Redirect TCP + Tun UDP"
-#: htdocs/luci-static/resources/view/fchomo/node.js:835
+#: htdocs/luci-static/resources/view/fchomo/node.js:838
msgid "Reduces background traffic and network configuration refresh frequency."
msgstr "降低後台流量和網路配置刷新頻率。"
@@ -2837,7 +2915,7 @@ msgstr "降低後台流量和網路配置刷新頻率。"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/fchomo.js:1571
+#: htdocs/luci-static/resources/fchomo.js:1572
#: htdocs/luci-static/resources/view/fchomo/client.js:970
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
@@ -2856,78 +2934,73 @@ msgstr "再路由"
msgid "Rematching routing rules"
msgstr "重新匹配路由規則"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2124
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
+#: htdocs/luci-static/resources/view/fchomo/node.js:2364
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:289
msgid "Remote"
msgstr "遠端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1658
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Remote DNS resolve"
msgstr "遠端 DNS 解析"
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
msgid "Remote trace level"
msgstr "遠端追蹤等級"
-#: htdocs/luci-static/resources/view/fchomo/node.js:811
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "Remote trace target"
msgstr "遠端追蹤目標"
-#: htdocs/luci-static/resources/fchomo.js:1736
-msgid "Remove"
-msgstr "移除"
-
-#: htdocs/luci-static/resources/fchomo.js:1741
-#: htdocs/luci-static/resources/view/fchomo/node.js:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2100
-#: htdocs/luci-static/resources/view/fchomo/node.js:2102
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
+#: htdocs/luci-static/resources/view/fchomo/node.js:244
+#: htdocs/luci-static/resources/view/fchomo/node.js:246
+#: htdocs/luci-static/resources/view/fchomo/node.js:2340
+#: htdocs/luci-static/resources/view/fchomo/node.js:2342
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:263
msgid "Remove idles"
msgstr "移除閒置"
#: htdocs/luci-static/resources/fchomo/listeners.js:1004
-#: htdocs/luci-static/resources/view/fchomo/node.js:1278
+#: htdocs/luci-static/resources/view/fchomo/node.js:1430
msgid "Rendezvous server"
msgstr "牽線伺服器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2296
+#: htdocs/luci-static/resources/view/fchomo/node.js:2536
msgid "Replace name"
msgstr "名稱替換"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2297
+#: htdocs/luci-static/resources/view/fchomo/node.js:2537
msgid "Replace node name."
msgstr "替換節點名稱"
-#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/fchomo.js:375
msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1344
-#: htdocs/luci-static/resources/view/fchomo/node.js:1738
-#: htdocs/luci-static/resources/view/fchomo/node.js:1745
+#: htdocs/luci-static/resources/view/fchomo/node.js:1978
+#: htdocs/luci-static/resources/view/fchomo/node.js:1985
msgid "Request path"
msgstr "請求路徑"
-#: htdocs/luci-static/resources/view/fchomo/node.js:682
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Request timeout"
msgstr "請求逾時"
-#: htdocs/luci-static/resources/fchomo.js:377
+#: htdocs/luci-static/resources/fchomo.js:378
msgid "Require and verify"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:375
+#: htdocs/luci-static/resources/fchomo.js:376
msgid "Require any"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:408
-#: htdocs/luci-static/resources/view/fchomo/node.js:1492
+#: htdocs/luci-static/resources/fchomo.js:409
+#: htdocs/luci-static/resources/view/fchomo/node.js:1644
msgid "Requires server support."
msgstr "需要伺服器支援。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:941
+#: htdocs/luci-static/resources/view/fchomo/node.js:950
msgid "Reserved field bytes"
msgstr "保留字段位元組"
@@ -2940,15 +3013,15 @@ msgstr "資源管理"
#: htdocs/luci-static/resources/fchomo/listeners.js:699
#: htdocs/luci-static/resources/fchomo/listeners.js:1130
#: htdocs/luci-static/resources/fchomo/listeners.js:1246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1128
-#: htdocs/luci-static/resources/view/fchomo/node.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1473
+#: htdocs/luci-static/resources/view/fchomo/node.js:1280
+#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "Restls"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:753
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Restls script"
msgstr "Restls 劇本"
@@ -2962,49 +3035,49 @@ msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr "在 API 傳回 icon 所輸入的字串,以在該代理組顯示。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr "重用 HTTP 連接以減少每次建立連接的 RTT。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:485
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr "複用單條隧道使其內部承載多條目標連線。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:838
+#: htdocs/luci-static/resources/view/fchomo/global.js:839
msgid "Routing Control"
msgstr "路由控制"
-#: htdocs/luci-static/resources/view/fchomo/global.js:893
-#: htdocs/luci-static/resources/view/fchomo/global.js:896
+#: htdocs/luci-static/resources/view/fchomo/global.js:894
+#: htdocs/luci-static/resources/view/fchomo/global.js:897
msgid "Routing DSCP"
msgstr "路由 DSCP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:863
+#: htdocs/luci-static/resources/view/fchomo/global.js:864
msgid "Routing GFW"
msgstr "路由 GFW 流量"
#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2385
+#: htdocs/luci-static/resources/view/fchomo/global.js:777
+#: htdocs/luci-static/resources/view/fchomo/node.js:2206
+#: htdocs/luci-static/resources/view/fchomo/node.js:2625
msgid "Routing mark (Fwmark)"
msgstr "路由標記 (Fwmark)"
-#: htdocs/luci-static/resources/view/fchomo/global.js:858
+#: htdocs/luci-static/resources/view/fchomo/global.js:859
msgid "Routing mode"
msgstr "路由模式"
-#: htdocs/luci-static/resources/view/fchomo/global.js:859
+#: htdocs/luci-static/resources/view/fchomo/global.js:860
msgid "Routing mode of the traffic enters mihomo via firewall rules."
msgstr "流量經由防火牆規則進入 mihomo 的路由模式。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:880
+#: htdocs/luci-static/resources/view/fchomo/global.js:881
msgid "Routing mode will be handle domain."
msgstr "路由模式將處理網域。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:840
-#: htdocs/luci-static/resources/view/fchomo/global.js:849
+#: htdocs/luci-static/resources/view/fchomo/global.js:841
+#: htdocs/luci-static/resources/view/fchomo/global.js:850
msgid "Routing ports"
msgstr "路由連接埠"
@@ -3013,11 +3086,11 @@ msgstr "路由連接埠"
msgid "Routing rule"
msgstr "路由規則"
-#: htdocs/luci-static/resources/view/fchomo/global.js:770
+#: htdocs/luci-static/resources/view/fchomo/global.js:771
msgid "Routing rule priority"
msgstr "路由規則優先權"
-#: htdocs/luci-static/resources/view/fchomo/global.js:764
+#: htdocs/luci-static/resources/view/fchomo/global.js:765
msgid "Routing table ID"
msgstr "路由表 ID"
@@ -3027,15 +3100,15 @@ msgstr "規則"
#: htdocs/luci-static/resources/view/fchomo/client.js:878
#: htdocs/luci-static/resources/view/fchomo/client.js:891
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:149
msgid "Rule set"
msgstr "規則集"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:379
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:381
msgid "Rule set URL"
msgstr "規則集訂閱 URL"
-#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:824
msgid "Rules"
msgstr "規則"
@@ -3043,15 +3116,15 @@ msgstr "規則"
msgid "Ruleset"
msgstr "規則集"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:209
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:211
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1584
+#: htdocs/luci-static/resources/fchomo.js:1585
msgid "Running"
msgstr "正在運作"
-#: htdocs/luci-static/resources/fchomo.js:255
+#: htdocs/luci-static/resources/fchomo.js:256
msgid "SMTP"
msgstr ""
@@ -3063,16 +3136,16 @@ msgstr ""
msgid "SOCKS5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
msgid "SSH"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:256
+#: htdocs/luci-static/resources/fchomo.js:257
msgid "STUN"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1021
-#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1447
msgid "STUN servers"
msgstr "STUN 伺服器"
@@ -3080,12 +3153,12 @@ msgstr "STUN 伺服器"
msgid "SUB-RULE"
msgstr "SUB-RULE"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1109
+#: htdocs/luci-static/resources/view/fchomo/node.js:1261
msgid "SUoT version"
msgstr "SUoT 版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:716
+#: htdocs/luci-static/resources/view/fchomo/node.js:719
msgid "Salamander"
msgstr "Salamander"
@@ -3102,24 +3175,28 @@ msgstr "相同 來源位址 和 目標位址 請求。相同節點"
msgid "Save"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1550
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1730
+#: htdocs/luci-static/resources/view/fchomo/node.js:1731
msgid "Secondary"
msgstr "次要"
-#: htdocs/luci-static/resources/view/fchomo/global.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:1074
+msgid "Secure Mode"
+msgstr "安全模式"
+
+#: htdocs/luci-static/resources/view/fchomo/global.js:531
msgid "Segment maximum size"
msgstr "分段最大尺寸"
-#: htdocs/luci-static/resources/fchomo.js:245
+#: htdocs/luci-static/resources/fchomo.js:246
msgid "Select"
msgstr "手動選擇"
-#: htdocs/luci-static/resources/view/fchomo/global.js:626
+#: htdocs/luci-static/resources/view/fchomo/global.js:627
msgid "Select Dashboard"
msgstr "選擇面板"
-#: htdocs/luci-static/resources/fchomo.js:414
+#: htdocs/luci-static/resources/fchomo.js:415
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr "以 50% 的機率發送隨機 0 到 3333 位元組的填充。"
@@ -3127,8 +3204,8 @@ msgstr "以 50% 的機率發送隨機 0 到 3333 位元組的填充。"
msgid "Send queries to both the %s and the %s."
msgstr "同時向%s和%s發起查詢。"
-#: htdocs/luci-static/resources/fchomo.js:403
#: htdocs/luci-static/resources/fchomo.js:404
+#: htdocs/luci-static/resources/fchomo.js:405
msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse."
msgstr "發送 300-600 秒的隨機票證,以供客戶端 0-RTT 重用。"
@@ -3140,17 +3217,17 @@ msgstr "發送 300-600 秒的隨機票證,以供客戶端 0-RTT 重用。"
msgid "Server"
msgstr "服務端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:277
msgid "Server address"
msgstr "伺服器位址"
#: htdocs/luci-static/resources/fchomo/listeners.js:1338
-#: htdocs/luci-static/resources/view/fchomo/node.js:1717
-#: htdocs/luci-static/resources/view/fchomo/node.js:1723
+#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Server hostname"
msgstr "伺服器主機名稱"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1009
msgid "Server public key"
msgstr "伺服器公鑰"
@@ -3172,10 +3249,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:698
#: htdocs/luci-static/resources/fchomo/listeners.js:1129
#: htdocs/luci-static/resources/fchomo/listeners.js:1245
-#: htdocs/luci-static/resources/view/fchomo/node.js:1127
-#: htdocs/luci-static/resources/view/fchomo/node.js:1137
-#: htdocs/luci-static/resources/view/fchomo/node.js:1142
-#: htdocs/luci-static/resources/view/fchomo/node.js:1472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1279
+#: htdocs/luci-static/resources/view/fchomo/node.js:1289
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1624
msgid "ShadowTLS"
msgstr ""
@@ -3185,21 +3262,21 @@ msgid "Shadowsocks"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Shadowsocks chipher"
msgstr "Shadowsocks 加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:577
+#: htdocs/luci-static/resources/view/fchomo/node.js:580
msgid "Shadowsocks encrypt"
msgstr "Shadowsocks 加密"
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:590
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Shadowsocks password"
msgstr "Shadowsocks 密碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1918
+#: htdocs/luci-static/resources/view/fchomo/node.js:2158
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中顯示連線以便於打斷連線。"
@@ -3211,26 +3288,26 @@ msgstr "靜音"
msgid "Simple round-robin all nodes"
msgstr "簡單輪替所有節點"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2185
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:2425
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:393
msgid "Size limit"
msgstr "大小限制"
#: htdocs/luci-static/resources/view/fchomo/client.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
-#: htdocs/luci-static/resources/view/fchomo/node.js:2360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1554
+#: htdocs/luci-static/resources/view/fchomo/node.js:2600
msgid "Skip cert verify"
msgstr "跳過憑證驗證"
-#: htdocs/luci-static/resources/view/fchomo/global.js:686
+#: htdocs/luci-static/resources/view/fchomo/global.js:687
msgid "Skiped sniffing domain"
msgstr "跳過嗅探網域"
-#: htdocs/luci-static/resources/view/fchomo/global.js:692
+#: htdocs/luci-static/resources/view/fchomo/global.js:693
msgid "Skiped sniffing dst address"
msgstr "跳過嗅探目標位址"
-#: htdocs/luci-static/resources/view/fchomo/global.js:689
+#: htdocs/luci-static/resources/view/fchomo/global.js:690
msgid "Skiped sniffing src address"
msgstr "跳過嗅探來源位址"
@@ -3239,24 +3316,24 @@ msgstr "跳過嗅探來源位址"
msgid "Snell"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/global.js:696
+#: htdocs/luci-static/resources/view/fchomo/global.js:697
msgid "Sniff protocol"
msgstr "嗅探協議"
-#: htdocs/luci-static/resources/view/fchomo/global.js:673
+#: htdocs/luci-static/resources/view/fchomo/global.js:674
msgid "Sniffer"
msgstr "嗅探器"
-#: htdocs/luci-static/resources/view/fchomo/global.js:676
+#: htdocs/luci-static/resources/view/fchomo/global.js:677
msgid "Sniffer settings"
msgstr "嗅探器設定"
-#: htdocs/luci-static/resources/fchomo.js:446
+#: htdocs/luci-static/resources/fchomo.js:447
msgid "Specify a ID"
msgstr "指定一個ID"
-#: htdocs/luci-static/resources/view/fchomo/global.js:841
-#: htdocs/luci-static/resources/view/fchomo/global.js:850
+#: htdocs/luci-static/resources/view/fchomo/global.js:842
+#: htdocs/luci-static/resources/view/fchomo/global.js:851
msgid ""
"Specify target ports to be proxied. Multiple ports must be separated by "
"commas."
@@ -3270,11 +3347,11 @@ msgstr "堆栈"
msgid "Standard"
msgstr "標準"
-#: htdocs/luci-static/resources/fchomo.js:259
+#: htdocs/luci-static/resources/fchomo.js:260
msgid "Steam Client"
msgstr "Steam 客戶端"
-#: htdocs/luci-static/resources/fchomo.js:260
+#: htdocs/luci-static/resources/fchomo.js:261
msgid "Steam P2P"
msgstr ""
@@ -3284,7 +3361,7 @@ msgid "Strategy"
msgstr "策略"
#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:775
+#: htdocs/luci-static/resources/view/fchomo/node.js:778
msgid "Stream-level receive window size"
msgstr "流級接收視窗大小"
@@ -3298,8 +3375,12 @@ msgstr "子規則"
msgid "Sub rule group"
msgstr "子規則組"
-#: htdocs/luci-static/resources/fchomo.js:731
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:231
+#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+msgid "Subnet proxy"
+msgstr "子網代理"
+
+#: htdocs/luci-static/resources/fchomo.js:732
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:233
msgid "Successfully imported %s %s of total %s."
msgstr "已成功匯入 %s 個%s (共 %s 個)。"
@@ -3307,20 +3388,16 @@ msgstr "已成功匯入 %s 個%s (共 %s 個)。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/fchomo.js:2098
-msgid "Successfully uploaded."
-msgstr "已成功上傳。"
-
#: htdocs/luci-static/resources/fchomo.js:159
#: htdocs/luci-static/resources/fchomo.js:196
msgid "Sudoku"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:741
+#: htdocs/luci-static/resources/view/fchomo/node.js:744
msgid "Support %s, default %s."
msgstr "支援 %s,預設 %s。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:206
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:208
msgid ""
"Supports rule-set links of type: %s and format: %s."
""
@@ -3350,7 +3427,7 @@ msgstr "系統 DNS"
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:201
-#: htdocs/luci-static/resources/fchomo.js:211
+#: htdocs/luci-static/resources/fchomo.js:212
#: htdocs/luci-static/resources/fchomo/listeners.js:663
#: htdocs/luci-static/resources/view/fchomo/client.js:618
#: htdocs/luci-static/resources/view/fchomo/client.js:710
@@ -3361,7 +3438,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 併發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1911
+#: htdocs/luci-static/resources/view/fchomo/node.js:2151
msgid "TCP only"
msgstr "僅 TCP"
@@ -3385,34 +3462,43 @@ msgstr "TCP-Keep-Alive 間隔"
#: htdocs/luci-static/resources/fchomo.js:193
#: htdocs/luci-static/resources/fchomo.js:195
#: htdocs/luci-static/resources/fchomo.js:206
+#: htdocs/luci-static/resources/fchomo.js:211
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1942
-#: htdocs/luci-static/resources/view/fchomo/node.js:2321
+#: htdocs/luci-static/resources/view/fchomo/node.js:2182
+#: htdocs/luci-static/resources/view/fchomo/node.js:2561
msgid "TFO"
msgstr "TCP 快速開啟 (TFO)"
+#: htdocs/luci-static/resources/view/fchomo/node.js:1171
+msgid "TLD DNS zone"
+msgstr "TLD DNS 區域"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1172
+msgid "TLD DNS zone used by MagicDNS, default is %s."
+msgstr "MagicDNS 使用的 TLD DNS 區域,預設為 %s。"
+
#: htdocs/luci-static/resources/fchomo/listeners.js:711
#: htdocs/luci-static/resources/fchomo/listeners.js:1031
-#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:469
-#: htdocs/luci-static/resources/view/fchomo/node.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1305
+#: htdocs/luci-static/resources/view/fchomo/global.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
+#: htdocs/luci-static/resources/view/fchomo/node.js:1307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1457
msgid "TLS"
msgstr "TLS"
#: htdocs/luci-static/resources/fchomo/listeners.js:1072
-#: htdocs/luci-static/resources/view/fchomo/node.js:1336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1488
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1330
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
msgid "TLS SNI"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:123
-#: htdocs/luci-static/resources/view/fchomo/node.js:253
+#: htdocs/luci-static/resources/view/fchomo/node.js:256
msgid "TLS fields"
msgstr "TLS 欄位"
@@ -3421,12 +3507,12 @@ msgstr "TLS 欄位"
msgid "TUIC"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:257
+#: htdocs/luci-static/resources/fchomo.js:258
msgid "TURN"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:209
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/view/fchomo/node.js:962
msgid "Tailscale"
msgstr ""
@@ -3439,34 +3525,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr "讓客戶端使用 BBR 流控演算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1595
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1616
-#: htdocs/luci-static/resources/view/fchomo/node.js:1620
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1801
+#: htdocs/luci-static/resources/view/fchomo/node.js:1805
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
+#: htdocs/luci-static/resources/view/fchomo/node.js:1833
+#: htdocs/luci-static/resources/view/fchomo/node.js:1837
msgid "The %s address used by local machine in the %s network."
msgstr "本機 %s 位址,用於在 %s 網路中使用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1151
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1577
msgid "The %s private key, in PEM format."
msgstr "%s私鑰,需要 PEM 格式。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1121
#: htdocs/luci-static/resources/fchomo/listeners.js:1174
-#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1411
+#: htdocs/luci-static/resources/view/fchomo/global.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
msgid "The %s public key, in PEM format."
msgstr "%s公鑰,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr "網域的 HTTPS 記錄的 ECH 參數。留空則透過 DNS 解析。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:391
+#: htdocs/luci-static/resources/view/fchomo/node.js:394
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr "Sudoku 伺服器提供的 ED25519 可用私鑰 或 UUID。"
@@ -3474,7 +3561,7 @@ msgstr "Sudoku 伺服器提供的 ED25519 可用私鑰 或 UUID。"
msgid "The ED25519 master public key or UUID generated by Sudoku."
msgstr "Sudoku 產生的 ED25519 主公鑰 或 UUID。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "The client metadata sent to the server."
msgstr "發送到伺服器的客戶端元資料。"
@@ -3482,14 +3569,14 @@ msgstr "發送到伺服器的客戶端元資料。"
msgid "The default value is 2:00 every day."
msgstr "預設值為每天 2:00。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:1243
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr "預設值為%s,表示僅使用外層連線逾時。"
#: htdocs/luci-static/resources/fchomo/listeners.js:875
-#: htdocs/luci-static/resources/view/fchomo/node.js:1252
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr "首個填充必須為 100% 的機率並且至少 35 位元組。"
@@ -3509,25 +3596,25 @@ msgid "The proxy used to connect to the handshake target."
msgstr "用於連接握手目標的代理。"
#: htdocs/luci-static/resources/fchomo/listeners.js:873
-#: htdocs/luci-static/resources/view/fchomo/node.js:1250
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "The server and client can set different padding parameters."
msgstr "伺服器和客戶端可以設定不同的填充參數。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1232
-#: htdocs/luci-static/resources/view/fchomo/global.js:615
+#: htdocs/luci-static/resources/view/fchomo/global.js:616
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr "此 ECH 參數需要加入到網域的 HTTPS 記錄中。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1682
-#: htdocs/luci-static/resources/view/fchomo/node.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:2363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1557
+#: htdocs/luci-static/resources/view/fchomo/node.js:2603
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
"這是危險行為,您的流量將幾乎等同於明文!使用風險自負!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:647
+#: htdocs/luci-static/resources/view/fchomo/node.js:650
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3547,11 +3634,11 @@ msgid ""
msgstr ""
"要啟用 Tun 支持,您需要安裝 ip-full 和 kmod-tun。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:885
+#: htdocs/luci-static/resources/view/fchomo/global.js:886
msgid "To enable, you need to install dnsmasq-full."
msgstr "要啟用,您需要安裝 dnsmasq-full。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:783
+#: htdocs/luci-static/resources/view/fchomo/global.js:784
msgid "Tproxy Fwmark/fwmask"
msgstr "Tproxy Fwmark/fwmask"
@@ -3560,32 +3647,32 @@ msgid "Tproxy port"
msgstr "Tproxy 連接埠"
#: htdocs/luci-static/resources/fchomo/listeners.js:206
-#: htdocs/luci-static/resources/view/fchomo/node.js:383
+#: htdocs/luci-static/resources/view/fchomo/node.js:386
msgid "Traffic pattern"
msgstr "流量模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2532
+#: htdocs/luci-static/resources/view/fchomo/node.js:2778
msgid "Transit proxy group"
msgstr "中轉代理組"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2543
+#: htdocs/luci-static/resources/view/fchomo/node.js:2789
msgid "Transit proxy node"
msgstr "中轉代理節點"
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/fchomo/listeners.js:1302
-#: htdocs/luci-static/resources/view/fchomo/node.js:360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:363
+#: htdocs/luci-static/resources/view/fchomo/node.js:1910
msgid "Transport"
msgstr "傳輸層"
#: htdocs/luci-static/resources/fchomo/listeners.js:124
-#: htdocs/luci-static/resources/view/fchomo/node.js:255
+#: htdocs/luci-static/resources/view/fchomo/node.js:258
msgid "Transport fields"
msgstr "傳輸層欄位"
#: htdocs/luci-static/resources/fchomo/listeners.js:1307
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/node.js:1915
msgid "Transport type"
msgstr "傳輸層類型"
@@ -3607,7 +3694,7 @@ msgstr ""
msgid "Trusted proxy header"
msgstr "可信代理 Header"
-#: htdocs/luci-static/resources/view/fchomo/global.js:788
+#: htdocs/luci-static/resources/view/fchomo/global.js:789
msgid "Tun Fwmark/fwmask"
msgstr "Tun Fwmark/fwmask"
@@ -3627,7 +3714,7 @@ msgstr "Tun 堆栈"
msgid "Tunnel"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:849
+#: htdocs/luci-static/resources/view/fchomo/node.js:852
msgid "Turns TCP relay off."
msgstr "關閉 TCP 中繼。"
@@ -3637,10 +3724,10 @@ msgstr "關閉 TCP 中繼。"
#: htdocs/luci-static/resources/view/fchomo/client.js:767
#: htdocs/luci-static/resources/view/fchomo/client.js:875
#: htdocs/luci-static/resources/view/fchomo/client.js:1073
-#: htdocs/luci-static/resources/view/fchomo/node.js:268
-#: htdocs/luci-static/resources/view/fchomo/node.js:2122
-#: htdocs/luci-static/resources/view/fchomo/node.js:2493
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
+#: htdocs/luci-static/resources/view/fchomo/node.js:271
+#: htdocs/luci-static/resources/view/fchomo/node.js:2362
+#: htdocs/luci-static/resources/view/fchomo/node.js:2739
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Type"
msgstr "類型"
@@ -3658,52 +3745,51 @@ msgstr "類型"
#: htdocs/luci-static/resources/fchomo/listeners.js:669
#: htdocs/luci-static/resources/view/fchomo/client.js:617
#: htdocs/luci-static/resources/view/fchomo/client.js:709
-#: htdocs/luci-static/resources/view/fchomo/node.js:1097
-#: htdocs/luci-static/resources/view/fchomo/node.js:2331
+#: htdocs/luci-static/resources/view/fchomo/node.js:2571
msgid "UDP"
msgstr "UDP"
-#: htdocs/luci-static/resources/view/fchomo/global.js:534
+#: htdocs/luci-static/resources/view/fchomo/global.js:535
msgid "UDP NAT expiration time"
msgstr "UDP NAT 過期時間"
-#: htdocs/luci-static/resources/view/fchomo/node.js:646
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
+#: htdocs/luci-static/resources/view/fchomo/node.js:649
+#: htdocs/luci-static/resources/view/fchomo/node.js:749
msgid "UDP over stream"
msgstr "UDP over stream"
-#: htdocs/luci-static/resources/view/fchomo/node.js:652
+#: htdocs/luci-static/resources/view/fchomo/node.js:655
msgid "UDP over stream version"
msgstr "UDP over stream 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:639
+#: htdocs/luci-static/resources/view/fchomo/node.js:642
msgid "UDP packet relay mode."
msgstr "UDP 包中繼模式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:638
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "UDP relay mode"
msgstr "UDP 中繼模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
#: htdocs/luci-static/resources/fchomo/listeners.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:415
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
+#: htdocs/luci-static/resources/view/fchomo/node.js:419
msgid "UP: %s; DOWN: %s"
msgstr "上傳: %s; 下載: %s"
-#: htdocs/luci-static/resources/fchomo.js:247
+#: htdocs/luci-static/resources/fchomo.js:248
msgid "URL test"
msgstr "自動選擇"
#: htdocs/luci-static/resources/fchomo/listeners.js:215
#: htdocs/luci-static/resources/fchomo/listeners.js:403
#: htdocs/luci-static/resources/fchomo/listeners.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
-#: htdocs/luci-static/resources/view/fchomo/node.js:626
+#: htdocs/luci-static/resources/view/fchomo/node.js:530
+#: htdocs/luci-static/resources/view/fchomo/node.js:629
msgid "UUID"
msgstr "UUID"
-#: htdocs/luci-static/resources/fchomo.js:1629
+#: htdocs/luci-static/resources/fchomo.js:1630
msgid "Unable to download unsupported type: %s"
msgstr "無法下載不支援的類型: %s"
@@ -3728,8 +3814,8 @@ msgstr "未知錯誤。"
msgid "Unknown error: %s"
msgstr "未知錯誤:%s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1103
-#: htdocs/luci-static/resources/view/fchomo/node.js:2336
+#: htdocs/luci-static/resources/view/fchomo/node.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:2576
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@@ -3737,24 +3823,24 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失敗。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2191
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
+#: htdocs/luci-static/resources/view/fchomo/node.js:2431
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "Update interval"
msgstr "更新間隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/node.js:2169
msgid "Upload bandwidth"
msgstr "上傳頻寬"
#: htdocs/luci-static/resources/fchomo/listeners.js:1405
-#: htdocs/luci-static/resources/view/fchomo/node.js:1930
+#: htdocs/luci-static/resources/view/fchomo/node.js:2170
msgid "Upload bandwidth in Mbps."
msgstr "上傳頻寬(單位:Mbps)。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1142
#: htdocs/luci-static/resources/fchomo/listeners.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:1416
+#: htdocs/luci-static/resources/view/fchomo/node.js:1568
msgid "Upload certificate"
msgstr "上傳憑證"
@@ -3763,7 +3849,7 @@ msgid "Upload initial package"
msgstr "上傳初始資源包"
#: htdocs/luci-static/resources/fchomo/listeners.js:1157
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1582
msgid "Upload key"
msgstr "上傳金鑰"
@@ -3771,25 +3857,41 @@ msgstr "上傳金鑰"
#: htdocs/luci-static/resources/fchomo/listeners.js:1160
#: htdocs/luci-static/resources/fchomo/listeners.js:1185
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1419
-#: htdocs/luci-static/resources/view/fchomo/node.js:1433
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1585
msgid "Upload..."
msgstr "上傳..."
-#: htdocs/luci-static/resources/view/fchomo/node.js:841
+#: htdocs/luci-static/resources/view/fchomo/node.js:1848
+msgid "Use DHCP"
+msgstr "使用 DHCP"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1849
+msgid "Use DHCP to obtain IP address."
+msgstr "使用 DHCP 取得 IP 位址。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:844
msgid "Use protocol-13 extended encryption for outgoing HELLO packets."
msgstr "對傳出的 HELLO 封包使用 協定-13 擴充加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:292
-#: htdocs/luci-static/resources/view/fchomo/node.js:299
-#: htdocs/luci-static/resources/view/fchomo/node.js:310
+#: htdocs/luci-static/resources/view/fchomo/node.js:295
+#: htdocs/luci-static/resources/view/fchomo/node.js:302
+#: htdocs/luci-static/resources/view/fchomo/node.js:313
msgid "Use sub rule"
msgstr "使用子規則"
-#: htdocs/luci-static/resources/view/fchomo/node.js:860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+msgid "Used to forward traffic to the specified nodes for external access."
+msgstr "用於將流量轉送至指定節點,以供外部存取。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Used to replace the built-in official %s."
msgstr "用於替換內建的官方 %s。"
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
+msgid "Used to replace the contents of default %s."
+msgstr "用於替換預設的 %s 的內容。"
+
#: htdocs/luci-static/resources/view/fchomo/client.js:1499
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
@@ -3810,8 +3912,8 @@ msgstr "用於解析 DNS 伺服器的網域。必須是 IP。"
msgid "Used to resolve the domain of the Proxy node."
msgstr "用於解析代理節點的網域。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
-#: htdocs/luci-static/resources/view/fchomo/node.js:2355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1549
+#: htdocs/luci-static/resources/view/fchomo/node.js:2595
msgid "Used to verify the hostname on the returned certificates."
msgstr "用於驗證傳回的憑證上的主機名稱。"
@@ -3825,28 +3927,32 @@ msgstr "User-hint 是必填項"
#: htdocs/luci-static/resources/fchomo/listeners.js:162
#: htdocs/luci-static/resources/fchomo/listeners.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1319
msgid "Username"
msgstr "使用者名稱"
-#: htdocs/luci-static/resources/view/fchomo/global.js:796
+#: htdocs/luci-static/resources/view/fchomo/global.js:797
msgid "Users filter mode"
msgstr "使用者過濾模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:848
+#: htdocs/luci-static/resources/view/fchomo/node.js:851
msgid "Uses TCP relay only."
msgstr "僅使用 TCP 中繼。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:847
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "Uses relay after UDP direct failure."
msgstr "UDP 直連失敗後使用中繼。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1786
+#: htdocs/luci-static/resources/view/fchomo/node.js:1174
+msgid "Using this in conjunction with %s is recommended."
+msgstr "建議與 %s 結合使用。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2026
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1791
+#: htdocs/luci-static/resources/view/fchomo/node.js:2031
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3860,58 +3966,65 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1582
-#: htdocs/luci-static/resources/view/fchomo/node.js:1608
+#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1818
+#: htdocs/luci-static/resources/view/fchomo/node.js:1825
msgid "VPN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:254
+#: htdocs/luci-static/resources/view/fchomo/node.js:257
msgid "VPN fields"
msgstr "VPN 欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:891
+#: htdocs/luci-static/resources/view/fchomo/node.js:900
msgid "Valid 16-digit Moon World ID and 10-digit Node ID of Moon Root server."
msgstr "有效的 16-位數 Moon World ID 和 10-位數 Moon Root 伺服器 Node ID。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2128
-#: htdocs/luci-static/resources/view/fchomo/node.js:2499
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
+#: htdocs/luci-static/resources/view/fchomo/node.js:2368
+#: htdocs/luci-static/resources/view/fchomo/node.js:2745
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:330
msgid "Value"
msgstr "可視化值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:820
+#: htdocs/luci-static/resources/view/fchomo/node.js:823
msgid "Verbose"
msgstr "詳細"
-#: htdocs/luci-static/resources/fchomo.js:376
+#: htdocs/luci-static/resources/fchomo.js:377
msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:392
#: htdocs/luci-static/resources/fchomo/listeners.js:745
-#: htdocs/luci-static/resources/view/fchomo/node.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "Version"
msgstr "版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1341
msgid "Version hint"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1607
+#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1817
+#: htdocs/luci-static/resources/view/fchomo/node.js:1850
+msgid "Virtual IPv4 address"
+msgstr "虛擬 IPv4 位址"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1824
msgid "Virtual IPv6 address"
msgstr "虛擬 IPv6 位址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1581
+#: htdocs/luci-static/resources/view/fchomo/node.js:1791
msgid "Virtual address"
msgstr "虛擬位址"
#: htdocs/luci-static/resources/fchomo/listeners.js:121
-#: htdocs/luci-static/resources/view/fchomo/node.js:251
+#: htdocs/luci-static/resources/view/fchomo/node.js:254
msgid "Vless Encryption fields"
msgstr "Vless Encryption 欄位"
-#: htdocs/luci-static/resources/fchomo.js:413
+#: htdocs/luci-static/resources/fchomo.js:414
msgid "Wait a random 0-111 milliseconds with 75% probability."
msgstr "以 75% 的機率等待隨機 0-111 毫秒。"
@@ -3923,12 +4036,12 @@ msgstr "警告"
#: htdocs/luci-static/resources/fchomo/listeners.js:1309
#: htdocs/luci-static/resources/fchomo/listeners.js:1320
#: htdocs/luci-static/resources/fchomo/listeners.js:1327
-#: htdocs/luci-static/resources/view/fchomo/node.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
-#: htdocs/luci-static/resources/view/fchomo/node.js:1680
-#: htdocs/luci-static/resources/view/fchomo/node.js:1693
-#: htdocs/luci-static/resources/view/fchomo/node.js:1700
-#: htdocs/luci-static/resources/view/fchomo/node.js:1706
+#: htdocs/luci-static/resources/view/fchomo/node.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
+#: htdocs/luci-static/resources/view/fchomo/node.js:1946
msgid "WebSocket"
msgstr ""
@@ -3936,11 +4049,15 @@ msgstr ""
msgid "When used as a server, HomeProxy is a better choice."
msgstr "用作服務端時,HomeProxy 是更好的選擇。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:975
+#: htdocs/luci-static/resources/view/fchomo/node.js:1166
+msgid "Whether to accept DNS configurations distributed by the network."
+msgstr "是否接受由網路分發的 DNS 配置。"
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:984
msgid "Whether to accept routes advertised by other nodes."
msgstr "是否接受其他節點發布的路由。"
-#: htdocs/luci-static/resources/view/fchomo/global.js:798
+#: htdocs/luci-static/resources/view/fchomo/global.js:799
msgid "White list"
msgstr "白名單"
@@ -3948,45 +4065,45 @@ msgstr "白名單"
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:930
msgid "WireGuard peer public key."
msgstr "WireGuard 對端公鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "WireGuard pre-shared key."
msgstr "WireGuard 預先共用金鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:900
+#: htdocs/luci-static/resources/view/fchomo/node.js:909
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 編碼的私鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
-#: htdocs/luci-static/resources/view/fchomo/node.js:1617
+#: htdocs/luci-static/resources/view/fchomo/node.js:1802
+#: htdocs/luci-static/resources/view/fchomo/node.js:1834
msgid "Wireguard"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1310
#: htdocs/luci-static/resources/fchomo/listeners.js:1321
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
+#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:1941
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:1796
+#: htdocs/luci-static/resources/view/fchomo/node.js:2036
msgid "XHTTP mode"
msgstr "XHTTP 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1827
+#: htdocs/luci-static/resources/view/fchomo/node.js:2067
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1832
-#: htdocs/luci-static/resources/view/fchomo/node.js:1837
-#: htdocs/luci-static/resources/view/fchomo/node.js:1842
-#: htdocs/luci-static/resources/view/fchomo/node.js:1847
-#: htdocs/luci-static/resources/view/fchomo/node.js:1852
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
+#: htdocs/luci-static/resources/view/fchomo/node.js:2077
+#: htdocs/luci-static/resources/view/fchomo/node.js:2082
+#: htdocs/luci-static/resources/view/fchomo/node.js:2087
+#: htdocs/luci-static/resources/view/fchomo/node.js:2092
+#: htdocs/luci-static/resources/view/fchomo/node.js:2097
msgid "XMUX:"
msgstr ""
@@ -3994,55 +4111,64 @@ msgstr ""
msgid "XOR mode"
msgstr "XOR 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:575
msgid "Xudp (Xray-core)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:307
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:309
msgid "Yaml text"
msgstr "Yaml 格式文本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2366
+#: htdocs/luci-static/resources/view/fchomo/node.js:2606
msgid "Yes"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+msgid ""
+"You can add %s in the %s to resolve A/PTR records within the virtual network."
+msgstr "您可以將 %s 新增到 %s 中,以解析虛擬網路內的 A/PTR 記錄。"
+
#: htdocs/luci-static/resources/fchomo.js:47
msgid "YouTube"
msgstr "YouTube"
-#: htdocs/luci-static/resources/fchomo.js:2080
-msgid "Your %s was successfully uploaded. Size: %sB."
-msgstr "您的 %s 已成功上傳。大小:%sB。"
-
#: htdocs/luci-static/resources/fchomo.js:207
msgid "ZeroTier"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:828
+#: htdocs/luci-static/resources/view/fchomo/node.js:831
msgid "ZeroTier UDP payload MTU."
msgstr "ZeroTier UDP 有效載荷 MTU。"
-#: htdocs/luci-static/resources/fchomo.js:349
-#: htdocs/luci-static/resources/fchomo.js:362
-#: htdocs/luci-static/resources/fchomo.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
+#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:363
+#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
msgid "aes-128-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:350
+#: htdocs/luci-static/resources/fchomo.js:351
msgid "aes-192-gcm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:351
-#: htdocs/luci-static/resources/fchomo.js:368
+#: htdocs/luci-static/resources/fchomo.js:352
+#: htdocs/luci-static/resources/fchomo.js:369
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1139
+msgid "aes-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1140
+msgid "aes-gcm-256"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2453
msgid "age private key"
msgstr "age 私鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2274
+#: htdocs/luci-static/resources/view/fchomo/node.js:2514
msgid "age public key"
msgstr "age 公鑰"
@@ -4054,37 +4180,41 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:549
+#: htdocs/luci-static/resources/view/fchomo/node.js:552
msgid "auto"
msgstr "自動"
#: htdocs/luci-static/resources/fchomo.js:56
-#: htdocs/luci-static/resources/view/fchomo/node.js:1060
+#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "bbr"
msgstr "bbr"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1061
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "bbr3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1147
#: htdocs/luci-static/resources/fchomo/listeners.js:1187
-#: htdocs/luci-static/resources/view/fchomo/node.js:1421
+#: htdocs/luci-static/resources/view/fchomo/node.js:1573
msgid "certificate"
msgstr "憑證"
-#: htdocs/luci-static/resources/fchomo.js:352
-#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/fchomo.js:369
+#: htdocs/luci-static/resources/view/fchomo/node.js:1138
+msgid "chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:364
+#: htdocs/luci-static/resources/fchomo.js:370
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:556
msgid "chacha20-poly1305"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:54
-#: htdocs/luci-static/resources/view/fchomo/node.js:1058
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "cubic"
msgstr "cubic"
@@ -4093,66 +4223,66 @@ msgstr "cubic"
msgid "decryption"
msgstr "decryption"
-#: htdocs/luci-static/resources/view/fchomo/global.js:832
+#: htdocs/luci-static/resources/view/fchomo/global.js:833
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行選擇上游服務器。 (可能影響 CDN 準確性)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2348
+#: htdocs/luci-static/resources/view/fchomo/node.js:2588
msgid "down"
msgstr "Hysteria 下載速率"
#: htdocs/luci-static/resources/fchomo/listeners.js:821
-#: htdocs/luci-static/resources/view/fchomo/node.js:1204
-#: htdocs/luci-static/resources/view/fchomo/node.js:1227
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "encryption"
msgstr "encryption"
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:449
+#: htdocs/luci-static/resources/view/fchomo/node.js:452
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr "false = 頻寬最佳化下行 true = 純 Sudoku 下行。"
#: htdocs/luci-static/resources/fchomo/listeners.js:1308
#: htdocs/luci-static/resources/fchomo/listeners.js:1319
#: htdocs/luci-static/resources/fchomo/listeners.js:1326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1705
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1939
+#: htdocs/luci-static/resources/view/fchomo/node.js:1945
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1762
+#: htdocs/luci-static/resources/view/fchomo/node.js:2002
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1767
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "gRPC ping interval"
msgstr "gRPC ping 間隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1351
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1998
msgid "gRPC service name"
msgstr "gRPC 服務名稱"
#: htdocs/luci-static/resources/view/fchomo/global.js:517
-#: htdocs/luci-static/resources/view/fchomo/node.js:1051
+#: htdocs/luci-static/resources/view/fchomo/node.js:1203
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1011
+#: htdocs/luci-static/resources/view/fchomo/node.js:1020
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1874
+#: htdocs/luci-static/resources/view/fchomo/node.js:2114
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1009
+#: htdocs/luci-static/resources/view/fchomo/node.js:1018
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1010
+#: htdocs/luci-static/resources/view/fchomo/node.js:1019
msgid "h3-l4proxy"
msgstr ""
@@ -4160,11 +4290,17 @@ msgstr ""
msgid "least one keypair required"
msgstr "至少需要一對密鑰"
+#: htdocs/luci-static/resources/view/fchomo/node.js:2710
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:435
+msgid "luci-app-tinyfilemanager is not installed, please install it first."
+msgstr "luci-app-tinyfilemanager 未安裝,請先安裝它。"
+
#: htdocs/luci-static/resources/fchomo.js:77
msgid "metacubexd"
msgstr "metacubexd"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1052
+#: htdocs/luci-static/resources/view/fchomo/global.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:1204
msgid "mihomo IP stack (MIPS)"
msgstr "mihomo IP 協定棧(MIPS)"
@@ -4174,17 +4310,17 @@ msgstr "mihomo IP 協定棧(MIPS)"
#: htdocs/luci-static/resources/view/fchomo/client.js:1580
#: htdocs/luci-static/resources/view/fchomo/client.js:1814
#: htdocs/luci-static/resources/view/fchomo/client.js:1870
-#: htdocs/luci-static/resources/view/fchomo/node.js:2094
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2334
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "mihomo config"
msgstr "mihomo 配置"
-#: htdocs/luci-static/resources/fchomo.js:395
+#: htdocs/luci-static/resources/fchomo.js:396
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1947
-#: htdocs/luci-static/resources/view/fchomo/node.js:2326
+#: htdocs/luci-static/resources/view/fchomo/node.js:2187
+#: htdocs/luci-static/resources/view/fchomo/node.js:2566
msgid "mpTCP"
msgstr "多路徑 TCP (mpTCP)"
@@ -4196,19 +4332,12 @@ msgstr "new_reno"
msgid "no-resolve"
msgstr "no-resolve"
-#: htdocs/luci-static/resources/fchomo.js:1803
-#: htdocs/luci-static/resources/fchomo.js:1910
-#: htdocs/luci-static/resources/fchomo.js:1945
-#: htdocs/luci-static/resources/fchomo.js:1973
-msgid "non-empty value"
-msgstr "非空值"
-
-#: htdocs/luci-static/resources/fchomo.js:347
-#: htdocs/luci-static/resources/fchomo.js:361
-#: htdocs/luci-static/resources/fchomo.js:373
-#: htdocs/luci-static/resources/view/fchomo/node.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:570
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
+#: htdocs/luci-static/resources/fchomo.js:348
+#: htdocs/luci-static/resources/fchomo.js:362
+#: htdocs/luci-static/resources/fchomo.js:374
+#: htdocs/luci-static/resources/view/fchomo/node.js:553
+#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:326
msgid "none"
msgstr "無"
@@ -4220,7 +4349,7 @@ msgstr "未找到"
msgid "not included \",\""
msgstr "不包含 \",\""
-#: htdocs/luci-static/resources/fchomo.js:233
+#: htdocs/luci-static/resources/fchomo.js:234
#: htdocs/luci-static/resources/fchomo/listeners.js:612
#: htdocs/luci-static/resources/fchomo/listeners.js:615
msgid "null"
@@ -4228,43 +4357,55 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:682
#: htdocs/luci-static/resources/fchomo/listeners.js:692
-#: htdocs/luci-static/resources/view/fchomo/node.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1136
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
+#: htdocs/luci-static/resources/view/fchomo/node.js:1288
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "only applies when %s is %s."
msgstr "僅當 %s 為 %s 時適用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:497
msgid "only applies when %s is not %s."
msgstr "僅當 %s 不為 %s 時適用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2307
+#: htdocs/luci-static/resources/view/fchomo/node.js:1141
+msgid "openssl-aes128-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1142
+msgid "openssl-aes256-gcm"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:1143
+msgid "openssl-chacha20"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/node.js:2547
msgid "override.override-expr"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2299
+#: htdocs/luci-static/resources/view/fchomo/node.js:2539
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:571
+#: htdocs/luci-static/resources/view/fchomo/node.js:574
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1361
-#: htdocs/luci-static/resources/view/fchomo/node.js:1800
+#: htdocs/luci-static/resources/view/fchomo/node.js:2040
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:368
-#: htdocs/luci-static/resources/view/fchomo/node.js:463
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
msgid "poll"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1162
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1587
msgid "private key"
msgstr "私鑰"
@@ -4272,7 +4413,7 @@ msgstr "私鑰"
msgid "razord-meta"
msgstr "razord-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1211
msgid "reno"
msgstr ""
@@ -4281,16 +4422,16 @@ msgstr ""
msgid "requires front-end adaptation using the API."
msgstr "需要使用 API 的前端適配。"
-#: htdocs/luci-static/resources/view/fchomo/ruleset.js:232
+#: htdocs/luci-static/resources/view/fchomo/ruleset.js:234
msgid "rule-set"
msgstr "規則集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1872
+#: htdocs/luci-static/resources/view/fchomo/node.js:2112
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:367
-#: htdocs/luci-static/resources/view/fchomo/node.js:462
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "split-stream"
msgstr ""
@@ -4299,12 +4440,12 @@ msgid "src"
msgstr "src"
#: htdocs/luci-static/resources/fchomo/listeners.js:1359
-#: htdocs/luci-static/resources/view/fchomo/node.js:1798
+#: htdocs/luci-static/resources/view/fchomo/node.js:2038
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1360
-#: htdocs/luci-static/resources/view/fchomo/node.js:1799
+#: htdocs/luci-static/resources/view/fchomo/node.js:2039
msgid "stream-up"
msgstr ""
@@ -4312,7 +4453,7 @@ msgstr ""
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:496
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "stream/poll/auto"
msgstr ""
@@ -4320,11 +4461,11 @@ msgstr ""
msgid "sudoku-keypair"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1343
msgid "tls12"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1344
msgid "tls13"
msgstr ""
@@ -4332,112 +4473,77 @@ msgstr ""
msgid "unchecked"
msgstr "未檢查"
-#: htdocs/luci-static/resources/fchomo.js:459
+#: htdocs/luci-static/resources/fchomo.js:460
msgid "unique UCI identifier"
msgstr "獨立 UCI 識別"
-#: htdocs/luci-static/resources/fchomo.js:462
+#: htdocs/luci-static/resources/fchomo.js:463
msgid "unique identifier"
msgstr "獨立標識"
-#: htdocs/luci-static/resources/fchomo.js:1982
-msgid "unique value"
-msgstr "獨立值"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:2342
+#: htdocs/luci-static/resources/view/fchomo/node.js:2582
msgid "up"
msgstr "Hysteria 上傳速率"
#: htdocs/luci-static/resources/fchomo/listeners.js:393
#: htdocs/luci-static/resources/fchomo/listeners.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:512
-#: htdocs/luci-static/resources/view/fchomo/node.js:653
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
-#: htdocs/luci-static/resources/view/fchomo/node.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:656
+#: htdocs/luci-static/resources/view/fchomo/node.js:1262
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "v1"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:394
#: htdocs/luci-static/resources/fchomo/listeners.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:513
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:1263
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "v2"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:395
#: htdocs/luci-static/resources/fchomo/listeners.js:748
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
-#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:517
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "v3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:396
-#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:518
msgid "v4"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:397
-#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:519
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1850
-#: htdocs/luci-static/resources/fchomo.js:1853
-msgid "valid JSON format"
-msgstr "有效的 JSON 格式"
-
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/view/fchomo/node.js:1541
msgid "valid SHA256 string with %d characters"
msgstr "包含 %d 個字元的有效 SHA256 字串"
-#: htdocs/luci-static/resources/fchomo.js:1875
-#: htdocs/luci-static/resources/fchomo.js:1878
-msgid "valid URL"
-msgstr "有效網址"
-
-#: htdocs/luci-static/resources/fchomo.js:1900
-msgid "valid base64 key with %d characters"
-msgstr "包含 %d 個字元的有效 base64 金鑰"
-
-#: htdocs/luci-static/resources/fchomo.js:1960
-#: htdocs/luci-static/resources/fchomo.js:1966
-msgid "valid format: 2x, 2p, 4v"
-msgstr "有效格式: 2x, 2p, 4v"
-
-#: htdocs/luci-static/resources/fchomo.js:1891
-msgid "valid hex string with %d characters"
-msgstr "包含 %d 个字符的有效 Hex 字串"
-
-#: htdocs/luci-static/resources/fchomo.js:1947
-msgid "valid key length with %d characters"
-msgstr "包含 %d 個字元的有效金鑰"
-
-#: htdocs/luci-static/resources/fchomo.js:1813
-msgid "valid port value"
-msgstr "有效連接埠值"
-
-#: htdocs/luci-static/resources/fchomo.js:1863
-msgid "valid uuid"
-msgstr "有效 uuid"
-
-#: htdocs/luci-static/resources/fchomo.js:419
+#: htdocs/luci-static/resources/fchomo.js:420
msgid "vless-mlkem768"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:418
+#: htdocs/luci-static/resources/fchomo.js:419
msgid "vless-x25519"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:353
+#: htdocs/luci-static/resources/fchomo.js:354
msgid "xchacha20-ietf-poly1305"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/node.js:1137
+msgid "xor"
+msgstr ""
+
#: htdocs/luci-static/resources/fchomo.js:78
msgid "yacd-meta"
msgstr "yacd-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1873
+#: htdocs/luci-static/resources/view/fchomo/node.js:2113
msgid "yamux"
msgstr ""
@@ -4445,10 +4551,70 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
+#: htdocs/luci-static/resources/view/fchomo/node.js:554
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1631
+#: htdocs/luci-static/resources/fchomo.js:1632
msgid "🡇"
msgstr ""
+
+#~ msgid "Complete"
+#~ msgstr "完成"
+
+#~ msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
+#~ msgstr "無法執行 \"/etc/init.d/fchomo %s %s\" 原因: %s"
+
+#~ msgid "Failed to generate %s, error: %s."
+#~ msgstr "生成 %s 失敗,錯誤:%s。"
+
+#~ msgid "Failed to upload %s, error: %s."
+#~ msgstr "上傳 %s 失敗,錯誤:%s。"
+
+#~ msgid "Failed to upload, error: %s."
+#~ msgstr "上傳失敗,錯誤:%s。"
+
+#~ msgid "If All ports is selected, uncheck others"
+#~ msgstr "如果選擇了“所有連接埠”,則取消選取“其他”"
+
+#~ msgid "Port %s alrealy exists!"
+#~ msgstr "連接埠 %s 已存在!"
+
+#~ msgid "Remove"
+#~ msgstr "移除"
+
+#~ msgid "Successfully uploaded."
+#~ msgstr "已成功上傳。"
+
+#~ msgid "Your %s was successfully uploaded. Size: %sB."
+#~ msgstr "您的 %s 已成功上傳。大小:%sB。"
+
+#~ msgid "non-empty value"
+#~ msgstr "非空值"
+
+#~ msgid "unique value"
+#~ msgstr "獨立值"
+
+#~ msgid "valid JSON format"
+#~ msgstr "有效的 JSON 格式"
+
+#~ msgid "valid URL"
+#~ msgstr "有效網址"
+
+#~ msgid "valid base64 key with %d characters"
+#~ msgstr "包含 %d 個字元的有效 base64 金鑰"
+
+#~ msgid "valid format: 2x, 2p, 4v"
+#~ msgstr "有效格式: 2x, 2p, 4v"
+
+#~ msgid "valid hex string with %d characters"
+#~ msgstr "包含 %d 个字符的有效 Hex 字串"
+
+#~ msgid "valid key length with %d characters"
+#~ msgstr "包含 %d 個字元的有效金鑰"
+
+#~ msgid "valid port value"
+#~ msgstr "有效連接埠值"
+
+#~ msgid "valid uuid"
+#~ msgstr "有效 uuid"
diff --git a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc
index 9dbca0b58..66b7fb15f 100644
--- a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc
+++ b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc
@@ -516,14 +516,15 @@ uci.foreach(uciconf, ucinode, (cfg) => {
"target-rematch-name": cfg.target_rematch_name,
"target-sub-rule": cfg.target_sub_rule,
- /* HTTP / SOCKS / Shadowsocks / VMess / VLESS / Trojan / TUIC / hysteria2 / ZeroTier / Tailscale / Masque */
+ /* HTTP / SOCKS / Shadowsocks / VMess / VLESS / Trojan / TUIC / hysteria2 / ZeroTier / Tailscale / Masque / EasyTier */
username: cfg.username,
uuid: cfg.vmess_uuid || cfg.uuid,
cipher: cfg.vmess_chipher || cfg.shadowsocks_chipher,
password: cfg.shadowsocks_password || cfg.password,
+ hostname: cfg.tailscale_hostname || cfg.easytier_hostname,
headers: cfg.headers ? json(cfg.headers) : null,
network: cfg.zerotier_network_id || cfg.masque_network || null,
- "state-dir": `${HM_DIR}/${ucinode}/${cfg['.name']}`,
+ "state-dir": (cfg.type in ['zerotier', 'tailscale', 'easytier']) ? `${HM_DIR}/${ucinode}/${cfg['.name']}` : null,
/* Shadowsocks */
@@ -642,6 +643,7 @@ uci.foreach(uciconf, ucinode, (cfg) => {
"remote-trace-level": strToInt(cfg.zerotier_trace_level),
"low-bandwidth": strToBool(cfg.zerotier_low_bandwidth),
"encrypted-hello": strToBool(cfg.zerotier_encrypted_hello),
+ "identity-secret": cfg.zerotier_identity_secret,
//planet: `${HM_DIR}/${ucinode}/${cfg['.name']}/planet`,
...(isEmpty(cfg.zerotier_orbit) ? {} : {
orbit: map([0], () => {
@@ -663,7 +665,6 @@ uci.foreach(uciconf, ucinode, (cfg) => {
"persistent-keepalive": strToInt(cfg.wireguard_persistent_keepalive),
/* Tailscale */
- hostname: cfg.tailscale_hostname,
"auth-key": cfg.tailscale_auth_key,
"control-url": cfg.tailscale_control_url,
ephemeral: strToBool(cfg.tailscale_ephemeral),
@@ -673,6 +674,25 @@ uci.foreach(uciconf, ucinode, (cfg) => {
/* Masque */
+ /* EasyTier */
+ "instance-name": cfg.type === 'easytier' ? cfg['.name'] : null,
+ "network-name": cfg.easytier_network_name,
+ "network-secret": cfg.easytier_network_secret,
+ "private-mode": strToBool(cfg.easytier_private_mode),
+ peers: cfg.easytier_peers, // Array
+ "secure-mode": strToBool(cfg.easytier_secure_mode),
+ "local-private-key": cfg.easytier_local_private_key,
+ "local-public-key": cfg.easytier_local_public_key,
+ "exit-nodes": cfg.easytier_exit_nodes, // Array
+ "proxy-networks": cfg.easytier_proxy_networks, // Array
+ "enable-encryption": cfg.easytier_enable_encryption === '0' ? false : null,
+ "encryption-algorithm": cfg.easytier_encryption_algorithm,
+ "enable-exit-node": strToBool(cfg.easytier_enable_exit_node),
+ "latency-first": strToBool(cfg.easytier_latency_first),
+ "disable-p2p": strToBool(cfg.easytier_disable_p2p),
+ "accept-dns": strToBool(cfg.easytier_accept_dns),
+ "tld-dns-zone": cfg.easytier_tld_dns_zone,
+
/* SSH */
"private-key-passphrase": cfg.ssh_priv_key_passphrase,
"host-key-algorithms": cfg.ssh_host_key_algorithms,
@@ -759,8 +779,13 @@ uci.foreach(uciconf, ucinode, (cfg) => {
} : null,
/* VPN fields */
+ listeners: cfg.endpoint_listeners, // Array
+ //"mapped-listeners": cfg.endpoint_mapped_listeners, // Array
+ "no-listener": cfg.endpoint_no_listener === '0' ? false : cfg.type === 'easytier' ? true : null,
ip: cfg.endpoint_ip,
+ ipv4: cfg.endpoint_ipv4,
ipv6: cfg.endpoint_ipv6,
+ dhcp: strToBool(cfg.endpoint_dhcp),
mtu: strToInt(cfg.endpoint_mtu) || null,
"remote-dns-resolve": strToBool(cfg.endpoint_remote_dns_resolve),
dns: cfg.endpoint_dns, // Array
diff --git a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
index 12ce00943..143672d84 100644
--- a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
+++ b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
@@ -197,6 +197,7 @@ const methods = {
features.app_version = trim(popen(`${use_apk ? 'apk list -I --manifest' : 'opkg list-installed'} luci-app-fchomo | ` +
`awk '{print $NF}'`).read('all')) || null; // @less_25_12
+ features.has_luci_app_tinyfilemanager = system(`[ -n "$(${use_apk ? 'apk list -qI' : 'opkg list-installed'} luci-app-tinyfilemanager)" ]`) == 0 || null; // @less_25_12
features.has_dnsmasq_full = system(`[ -n "$(${use_apk ? 'apk list -qI' : 'opkg list-installed'} dnsmasq-full)" ]`) == 0 || null; // @less_25_12
features.has_ip_full = access('/usr/libexec/ip-full');
features.has_stunclient = access('/usr/bin/stunclient');
diff --git a/luci-app-fwlive/Makefile b/luci-app-fwlive/Makefile
index d2eff5fd4..fae77be17 100644
--- a/luci-app-fwlive/Makefile
+++ b/luci-app-fwlive/Makefile
@@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter
LUCI_PKGARCH:=all
PKG_VERSION:=0.1.41
-PKG_RELEASE:=18
+PKG_RELEASE:=19
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
ifdef SOURCE_DATE_EPOCH
diff --git a/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js b/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js
index bf79405b8..a0e63803a 100644
--- a/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js
+++ b/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js
@@ -2236,6 +2236,21 @@ return view.extend({
'Display options on the bar set Limit, row tint, palette, and hostnames.'
)
]),
+ E('li', {}, [
+ _(
+ 'For a responsive table on a weak device, keep Limit at 250 rows or below. The weak-device cap affects rendered rows; the buffer can still retain more.'
+ )
+ ]),
+ E('li', {}, [
+ _(
+ 'Switching tabs pauses polling; returning performs one catch-up poll. Hostnames are off by default because lookups add work.'
+ )
+ ]),
+ E('li', {}, [
+ _(
+ 'The router log ring may evict older events before fwlive reads them. fwlive cannot recover evicted entries or change forwarding behavior.'
+ )
+ ]),
E('li', {}, [
_(
'The rate shown for WAN logging is the firewall zone log_limit. OpenWrt defaults to 10/minute when no explicit limit is configured; fwlive does not impose this cap.'
diff --git a/luci-app-fwlive/po/de/luci-app-fwlive.po b/luci-app-fwlive/po/de/luci-app-fwlive.po
index ce8f68199..b82722aef 100644
--- a/luci-app-fwlive/po/de/luci-app-fwlive.po
+++ b/luci-app-fwlive/po/de/luci-app-fwlive.po
@@ -185,6 +185,18 @@ msgstr ""
"Anzeigeoptionen in der Leiste setzen Limit, Zeilenfärbung, Palette und "
"Hostnamen."
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2240
+msgid "For a responsive table on a weak device, keep Limit at 250 rows or below. The weak-device cap affects rendered rows; the buffer can still retain more."
+msgstr "Für eine responsive Tabelle auf einem schwachen Gerät sollte Limit auf höchstens 250 Zeilen stehen. Die Schwachgerätebegrenzung betrifft die angezeigten Zeilen; der Puffer kann weiterhin mehr Zeilen behalten."
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
+msgid "Switching tabs pauses polling; returning performs one catch-up poll. Hostnames are off by default because lookups add work."
+msgstr "Beim Wechseln des Tabs wird das Polling pausiert; bei der Rückkehr erfolgt eine einmalige Aufholabfrage. Hostnamen sind standardmäßig deaktiviert, da Auflösungen zusätzliche Arbeit verursachen."
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2250
+msgid "The router log ring may evict older events before fwlive reads them. fwlive cannot recover evicted entries or change forwarding behavior."
+msgstr "Der Protokollring des Routers kann ältere Ereignisse verdrängen, bevor fwlive sie liest. fwlive kann verdrängte Einträge nicht wiederherstellen und ändert das Weiterleitungsverhalten nicht."
+
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
diff --git a/luci-app-fwlive/po/ru/luci-app-fwlive.po b/luci-app-fwlive/po/ru/luci-app-fwlive.po
index c80bb3617..b9f3a86b8 100644
--- a/luci-app-fwlive/po/ru/luci-app-fwlive.po
+++ b/luci-app-fwlive/po/ru/luci-app-fwlive.po
@@ -187,6 +187,18 @@ msgstr ""
"Параметры отображения на панели задают лимит, окраску строк, палитру и имена "
"узлов."
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2240
+msgid "For a responsive table on a weak device, keep Limit at 250 rows or below. The weak-device cap affects rendered rows; the buffer can still retain more."
+msgstr "Для отзывчивой таблицы на слабом устройстве установите Limit не выше 250 строк. Ограничение слабого устройства влияет на отображаемые строки; буфер всё ещё может хранить больше."
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
+msgid "Switching tabs pauses polling; returning performs one catch-up poll. Hostnames are off by default because lookups add work."
+msgstr "При переключении вкладки опрос приостанавливается; при возврате выполняется один догоняющий опрос. Имена хостов по умолчанию отключены, поскольку их разрешение создаёт дополнительную нагрузку."
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2250
+msgid "The router log ring may evict older events before fwlive reads them. fwlive cannot recover evicted entries or change forwarding behavior."
+msgstr "Кольцевой журнал маршрутизатора может вытеснить старые события до того, как fwlive их прочитает. fwlive не может восстановить вытесненные записи и не изменяет пересылку."
+
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
diff --git a/luci-app-fwlive/po/templates/luci-app-fwlive.pot b/luci-app-fwlive/po/templates/luci-app-fwlive.pot
index 1e8d6ddb8..823c30fe3 100644
--- a/luci-app-fwlive/po/templates/luci-app-fwlive.pot
+++ b/luci-app-fwlive/po/templates/luci-app-fwlive.pot
@@ -156,6 +156,18 @@ msgstr ""
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr ""
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2240
+msgid "For a responsive table on a weak device, keep Limit at 250 rows or below. The weak-device cap affects rendered rows; the buffer can still retain more."
+msgstr ""
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
+msgid "Switching tabs pauses polling; returning performs one catch-up poll. Hostnames are off by default because lookups add work."
+msgstr ""
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2250
+msgid "The router log ring may evict older events before fwlive reads them. fwlive cannot recover evicted entries or change forwarding behavior."
+msgstr ""
+
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr ""
diff --git a/luci-app-fwlive/po/zh_Hans/luci-app-fwlive.po b/luci-app-fwlive/po/zh_Hans/luci-app-fwlive.po
index 6780927bc..4834b5e65 100644
--- a/luci-app-fwlive/po/zh_Hans/luci-app-fwlive.po
+++ b/luci-app-fwlive/po/zh_Hans/luci-app-fwlive.po
@@ -171,6 +171,18 @@ msgstr "æ¾ç¤ºé项"
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr "栏上的显示选项可设置行数限制、行着色、调色板和主机名。"
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2240
+msgid "For a responsive table on a weak device, keep Limit at 250 rows or below. The weak-device cap affects rendered rows; the buffer can still retain more."
+msgstr "要让弱设备上的表格保持响应,请将 Limit 保持在 250 行或更少。弱设备限制影响渲染的行数;缓冲区仍可保留更多行。"
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2245
+msgid "Switching tabs pauses polling; returning performs one catch-up poll. Hostnames are off by default because lookups add work."
+msgstr "切换到其他标签页会暂停轮询;返回时执行一次追赶轮询。主机名默认关闭,因为解析会增加工作量。"
+
+#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:2250
+msgid "The router log ring may evict older events before fwlive reads them. fwlive cannot recover evicted entries or change forwarding behavior."
+msgstr "路由器日志环形缓冲区可能在 fwlive 读取前淘汰较旧事件。fwlive 无法恢复已淘汰的条目,也不会改变转发行为。"
+
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
diff --git a/luci-app-natmapt/htdocs/luci-static/resources/view/natmap.js b/luci-app-natmapt/htdocs/luci-static/resources/view/natmap.js
index 6d3d09c9f..facff3ab5 100644
--- a/luci-app-natmapt/htdocs/luci-static/resources/view/natmap.js
+++ b/luci-app-natmapt/htdocs/luci-static/resources/view/natmap.js
@@ -148,6 +148,10 @@ return view.extend({
o.default = o.disabled;
o.rmempty = false;
+ o = s.option(form.Value, 'boot_delay', _('Boot delay'),
+ _('Delay in seconds before starting the service.'));
+ o.datatype = 'uinteger';
+
o = s.option(form.Value, 'def_tcp_stun', _('Default ') + _('TCP STUN ') + _('Server'),
_('Available server references')
.format(_('https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780_tcp.txt')));
diff --git a/luci-app-natmapt/po/cs/natmap.po b/luci-app-natmapt/po/cs/natmap.po
index 56d6d9b84..ea23adf9a 100644
--- a/luci-app-natmapt/po/cs/natmap.po
+++ b/luci-app-natmapt/po/cs/natmap.po
@@ -4,20 +4,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -25,138 +25,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -164,27 +172,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -197,23 +205,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -226,24 +234,24 @@ msgstr ""
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -255,44 +263,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -301,74 +309,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -376,7 +384,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -384,83 +392,83 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/da/natmap.po b/luci-app-natmapt/po/da/natmap.po
index e308ba016..4370ea568 100644
--- a/luci-app-natmapt/po/da/natmap.po
+++ b/luci-app-natmapt/po/da/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15.1-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Bind port"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Aktiver"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Ekstern IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Ekstern port"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "For TCP-tilstand"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Videresendelsestilstand"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Videresendelses mål"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Videresendelses målport"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Giv adgang til LuCI-appen natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP server"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interface"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Hold i live interval"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protokol"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Begræns til adresse familie"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "STUN server"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/de/natmap.po b/luci-app-natmapt/po/de/natmap.po
index 721c1ab37..ee6f9e50c 100644
--- a/luci-app-natmapt/po/de/natmap.po
+++ b/luci-app-natmapt/po/de/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Bindungsport"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "aktivieren"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Externe IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Externer Port"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Für den TCP-Modus"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Forward-Modus"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Ziel für Forwards"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Zielport für Forwards"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Gewähre zugang zu LuCI app natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP Server"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Schnittstelle"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Keep-Alive-Intervall"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protokoll"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Auf Adressfamilie beschränken"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "STUN-Server"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/es/natmap.po b/luci-app-natmapt/po/es/natmap.po
index 97f6950be..c612474c9 100644
--- a/luci-app-natmapt/po/es/natmap.po
+++ b/luci-app-natmapt/po/es/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Vincular puerto"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Activar"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP externa"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Puerto externo"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Para el modo TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Modo de reenvío"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Reenviar objetivo"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Puerto de destino de reenvío"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Otorgar acceso a la aplicación LuCI natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Servidor HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interfaz"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Intervalo de mantenimiento"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocolo"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Restringir para dirigirse a la familia"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Servidor STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/fr/natmap.po b/luci-app-natmapt/po/fr/natmap.po
index 60e2ef11a..a4f06ee3c 100644
--- a/luci-app-natmapt/po/fr/natmap.po
+++ b/luci-app-natmapt/po/fr/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.18-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Port de liaison"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Active"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP externe"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Port externe"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Pour mode TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Transmission mode"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Transfert Cible"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Transférer le port cible"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Accorder l’accès à l’application LuCI natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Serveur HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interface"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Intervalle Keep-alive"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "Carte NAT"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocole"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Restreindre à la famille d’adresses"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Serveur STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/it/natmap.po b/luci-app-natmapt/po/it/natmap.po
index 620d110d0..ad6958cea 100644
--- a/luci-app-natmapt/po/it/natmap.po
+++ b/luci-app-natmapt/po/it/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "collega porta"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Attiva"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Ip Esterno"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Porta Esterna"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Per la modalità TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Modalità forward"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Obiettivo della modalità forward"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr ""
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,83 +398,83 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/lt/natmap.po b/luci-app-natmapt/po/lt/natmap.po
index c161d8779..01569bfaf 100644
--- a/luci-app-natmapt/po/lt/natmap.po
+++ b/luci-app-natmapt/po/lt/natmap.po
@@ -12,20 +12,20 @@ msgstr ""
"1 : 2);\n"
"X-Generator: Weblate 5.0-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -33,138 +33,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Priskirti prievadą"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Įjungti"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Išorinis „IP“"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Išorinis prievadas"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Dėl „TCP“ režimo"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Pravedimo režimas"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Pravedimo numatymas (taikinys)"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Pravedimo numatymo (taikinio) prievadas"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -172,27 +180,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Duoti prieigą „LuCI app natmap“"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "„HTTP“ serveris"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -205,23 +213,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Išvaizda"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "„Laikyti-gyvą“ intervalas"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -234,24 +242,24 @@ msgstr "„NATMap“"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -263,44 +271,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protokolas"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -309,74 +317,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Riboti tik adresų šeimai"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "„STUN“ serveris"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -384,7 +392,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -392,84 +400,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/nl/natmap.po b/luci-app-natmapt/po/nl/natmap.po
index 8073e5983..e3abc4a55 100644
--- a/luci-app-natmapt/po/nl/natmap.po
+++ b/luci-app-natmapt/po/nl/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Bind poort"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Activeren"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Externe IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Externe poort"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Voor TCP-modus"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Forward Mode"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Forward doel"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Forward doelpoort"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Toegang verlenen tot LuCI app natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP-server"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interface"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Keep-alive interval"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocol"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Beperken tot adres familie"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "STUN-server"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/pl/natmap.po b/luci-app-natmapt/po/pl/natmap.po
index a6ac08dce..839f2d7c2 100644
--- a/luci-app-natmapt/po/pl/natmap.po
+++ b/luci-app-natmapt/po/pl/natmap.po
@@ -11,20 +11,20 @@ msgstr ""
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.15.1-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -32,138 +32,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Zwiąż port"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Włącz"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Zewnętrzny adres IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Port zewnętrzny"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Dla trybu TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Tryb przekazywania"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Cel przekazywania"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Port celu przekazywania"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -171,27 +179,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Przyznaj dostęp do aplikacji LuCI natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Serwer HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -204,23 +212,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interfejs"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Interwał utrzymywania aktywności"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -233,24 +241,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -262,44 +270,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protokół"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -308,74 +316,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Ogranicz do rodziny adresów"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Serwer STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -383,7 +391,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -391,84 +399,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/pt/natmap.po b/luci-app-natmapt/po/pt/natmap.po
index 0ed8edc4c..a016fa952 100644
--- a/luci-app-natmapt/po/pt/natmap.po
+++ b/luci-app-natmapt/po/pt/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.18.1\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Porta do bind"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Ativar"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP externo"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Porta externa"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Para o modo TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Modo de encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Alvo de encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Porta de destino do encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Conceda acesso LuCi à app natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Servidor HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interface"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Intervalo do keep-alive interno"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocolo"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Restringe à uma família de endereços"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Servidor STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/pt_BR/natmap.po b/luci-app-natmapt/po/pt_BR/natmap.po
index e2bd1e603..406905873 100644
--- a/luci-app-natmapt/po/pt_BR/natmap.po
+++ b/luci-app-natmapt/po/pt_BR/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.15.1-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Porta do bind"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Ativar"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP externo"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Porta externa"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Para o modo TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Modo de encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Alvo de encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Porta de destino do encaminhamento"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Conceda acesso LuCi ao aplicativo natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Servidor HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interface"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Intervalo do keep-alive interno"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocolo"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Restringe à uma família de endereços"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Servidor STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/ro/natmap.po b/luci-app-natmapt/po/ro/natmap.po
index 0d14f2cb7..bc1df61aa 100644
--- a/luci-app-natmapt/po/ro/natmap.po
+++ b/luci-app-natmapt/po/ro/natmap.po
@@ -11,20 +11,20 @@ msgstr ""
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 4.18-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -32,138 +32,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Legați portul"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Activează"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP extern"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Port extern"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Pentru modul TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Mod de redirecționare"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "redirectionare tinta"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Redirecționarea portului țintă"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -171,27 +179,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Acordarea accesului la aplicația LuCI natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "Server HTTP"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -204,23 +212,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Interfață"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Interval de păstrare în viață"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -233,24 +241,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -262,44 +270,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Protocol"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -308,74 +316,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Restricționarea la adresa familiei"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Server STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -383,7 +391,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -391,84 +399,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/ru/natmap.po b/luci-app-natmapt/po/ru/natmap.po
index a7c139eff..2966945f5 100644
--- a/luci-app-natmapt/po/ru/natmap.po
+++ b/luci-app-natmapt/po/ru/natmap.po
@@ -11,20 +11,20 @@ msgstr ""
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -32,138 +32,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Порт сервера"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Включить"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "Внешний IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Внешний порт"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Для режима TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Режим перенаправления"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Цель перенаправления"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Порт переадресованной цели"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -171,27 +179,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Предоставить доступ LuCI к приложению natmap"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP-сервер"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -204,23 +212,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Интерфейс"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Keep-alive интервал"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -233,24 +241,24 @@ msgstr "NATMap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -262,44 +270,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Протокол"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -308,74 +316,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Использовать протокол"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Сервер STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -383,7 +391,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -391,84 +399,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/sv/natmap.po b/luci-app-natmapt/po/sv/natmap.po
index 0a9f7c604..d8c4b2a4f 100644
--- a/luci-app-natmapt/po/sv/natmap.po
+++ b/luci-app-natmapt/po/sv/natmap.po
@@ -4,20 +4,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -25,138 +25,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -164,27 +172,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -197,23 +205,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -226,24 +234,24 @@ msgstr ""
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -255,44 +263,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -301,74 +309,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -376,7 +384,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -384,83 +392,83 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/templates/natmap.pot b/luci-app-natmapt/po/templates/natmap.pot
index 4b43e6d3d..1d0bb4dd4 100644
--- a/luci-app-natmapt/po/templates/natmap.pot
+++ b/luci-app-natmapt/po/templates/natmap.pot
@@ -1,20 +1,20 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -22,138 +22,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -161,27 +169,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -194,23 +202,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -223,24 +231,24 @@ msgstr ""
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -252,44 +260,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -298,74 +306,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -373,7 +381,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -381,83 +389,83 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/tr/natmap.po b/luci-app-natmapt/po/tr/natmap.po
index 894fdf7f3..a52adf7f2 100644
--- a/luci-app-natmapt/po/tr/natmap.po
+++ b/luci-app-natmapt/po/tr/natmap.po
@@ -4,20 +4,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -25,138 +25,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -164,27 +172,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -197,23 +205,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -226,24 +234,24 @@ msgstr ""
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -255,44 +263,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -301,74 +309,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -376,7 +384,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -384,83 +392,83 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/vi/natmap.po b/luci-app-natmapt/po/vi/natmap.po
index 23890d504..626c2c90b 100644
--- a/luci-app-natmapt/po/vi/natmap.po
+++ b/luci-app-natmapt/po/vi/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.18.1\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr ""
@@ -31,138 +31,146 @@ msgstr ""
msgid "Active NATMap Portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "Cổng Bind"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr ""
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr ""
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "Bật lên"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "IP bên ngoài"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "Cổng bên ngoài"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "Cho chế độ TCP"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "Chế độ Forward"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "Điểm đến Forward"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "Cổng Forward target"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr ""
@@ -170,27 +178,27 @@ msgstr ""
msgid "Grant access to LuCI app natmap"
msgstr "Cấp quyền truy cập vào natmap LuCI"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP server"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr ""
@@ -203,23 +211,23 @@ msgstr ""
msgid "Inner Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "Giao diện"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Vòng lặp keep-alive"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr ""
@@ -232,24 +240,24 @@ msgstr "NATmap"
msgid "Name"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr ""
@@ -261,44 +269,44 @@ msgstr ""
msgid "Outer Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "Giao thức"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr ""
@@ -307,74 +315,74 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "Giới hạn địa chỉ gia đình"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "Máy chủ STUN"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -382,7 +390,7 @@ msgid ""
"KEY variables."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr ""
@@ -390,84 +398,84 @@ msgstr ""
msgid "There are no active portmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/zh_Hans/natmap.po b/luci-app-natmapt/po/zh_Hans/natmap.po
index 7865333c7..4780ccfd4 100644
--- a/luci-app-natmapt/po/zh_Hans/natmap.po
+++ b/luci-app-natmapt/po/zh_Hans/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.18-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr "%s 设为 0 将重写客户端监听端口"
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr "# All external tokens required 字段"
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr "A 记录"
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr "AAAA 记录"
@@ -31,138 +31,146 @@ msgstr "AAAA 记录"
msgid "Active NATMap Portmap"
msgstr "活动的 NATMap 端口映射"
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr "随机分配端口,而不是按顺序分配。"
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr "可用的服务器参考"
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "绑定端口"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr "启动延迟"
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr "可以参考 RFC8552"
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr "检测"
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr "检测 NAT 行为"
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr "备注"
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr "自定义脚本"
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr "DDNS 脚本"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr "默认"
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr "启动服务前的延迟时间(秒)。"
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr "启用DDNS"
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr "启用通知"
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "启用"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr "展开/收起 结果"
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "外部 IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "外部端口"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr "防火墙 DNAT"
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "用于 TCP 模式"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr "用于 UDP 模式"
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr "转发设置"
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr "转发方法"
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "转发模式"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "转发目标"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "转发目标端口"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr "转发超时"
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr " Fwmark 值"
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr "常规设置"
@@ -170,27 +178,27 @@ msgstr "常规设置"
msgid "Grant access to LuCI app natmap"
msgstr "授予访问 LuCI 应用 natmap 的权限"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP 服务器"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr "HTTPS 记录"
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr "IPv4"
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr "IPv6"
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr "如果您开启了通知脚本, 将被大量消息轰炸"
@@ -203,23 +211,23 @@ msgstr "内部地址"
msgid "Inner Port"
msgstr "内部端口"
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "接口"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Keep-alive 间隔"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr "为 STUN/HTTP 出站流量标记 fwmark"
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr "NAT 环回"
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr "NATBehavior-Test 端口打开于"
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr "名称"
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr "非 0 端口"
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr "注意: 使用 portrange 后, 会轮换打开公网端口"
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr "通知脚本"
@@ -261,44 +269,44 @@ msgstr "外部地址"
msgid "Outer Port"
msgstr "外部端口"
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr "密码"
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr "请检查防火墙规则以避免端口冲突"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr "端口转发会话空闲超时 (以秒为单位)"
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr "优先权"
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr "私有 API 域名"
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "协议"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr "随机分配端口"
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr "客户端刷新脚本"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr "刷新客户端"
@@ -307,74 +315,74 @@ msgstr "刷新客户端"
msgid "Reload"
msgstr "重新载入"
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "地址族限制"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr "SRV 记录"
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr "STUN 检查周期 (每 n 个间隔一次)"
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "STUN 服务器"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr "服务器"
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr "服务"
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr "设为 0 将跟随公共端口"
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr "服务参数"
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr "TCP 拥塞控制"
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr "目标"
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr "文本内容"
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr "DNAT 方法不支持在 IPv6 下使用"
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -384,7 +392,7 @@ msgstr ""
"上面脚本所需的 KEY。请查看 %s 以获得对应"
"脚本所需的 KEY 列表。请输入格式为 KEY=VAL 的多个 KEY 条目"
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr "DNAT 模式下不支持主机名"
@@ -392,84 +400,84 @@ msgstr "DNAT 模式下不支持主机名"
msgid "There are no active portmap"
msgstr "没有活动的端口映射"
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr "此装置默认 LAN"
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr "此装置默认 WAN"
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr "该端口已被使用"
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr "检测 NAT 行为需要先安装 stuntman-client"
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr "用户名"
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr "经由 natmap"
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr "Web UI 端口"
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr "权重"
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr "keep-alive 间隔 (秒)"
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr "luci 检查可能无法检测到所有冲突"
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-natmapt/po/zh_Hant/natmap.po b/luci-app-natmapt/po/zh_Hant/natmap.po
index 611377f70..42da038ce 100644
--- a/luci-app-natmapt/po/zh_Hant/natmap.po
+++ b/luci-app-natmapt/po/zh_Hant/natmap.po
@@ -10,20 +10,20 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.15.1-dev\n"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "%s set 0 will rewrite client listen port"
msgstr "%s 設為 0 將重寫用戶端監聽埠"
-#: htdocs/luci-static/resources/view/natmap.js:598
-#: htdocs/luci-static/resources/view/natmap.js:634
+#: htdocs/luci-static/resources/view/natmap.js:602
+#: htdocs/luci-static/resources/view/natmap.js:638
msgid "# All external tokens required Field"
msgstr "# All external tokens required 字段"
-#: htdocs/luci-static/resources/view/natmap.js:640
+#: htdocs/luci-static/resources/view/natmap.js:644
msgid "A Record"
msgstr "A 記錄"
-#: htdocs/luci-static/resources/view/natmap.js:647
+#: htdocs/luci-static/resources/view/natmap.js:651
msgid "AAAA Record"
msgstr "AAAA 記錄"
@@ -31,138 +31,146 @@ msgstr "AAAA 記錄"
msgid "Active NATMap Portmap"
msgstr "活動的 NATMap 埠映射"
-#: htdocs/luci-static/resources/view/natmap.js:396
+#: htdocs/luci-static/resources/view/natmap.js:400
msgid "Allocation ports randomly instead of sequentially."
msgstr "隨機分配端口,而不是按順序分配。"
-#: htdocs/luci-static/resources/view/natmap.js:152
-#: htdocs/luci-static/resources/view/natmap.js:158
+#: htdocs/luci-static/resources/view/natmap.js:156
+#: htdocs/luci-static/resources/view/natmap.js:162
msgid "Available server references"
msgstr "可用的伺服器參考"
-#: htdocs/luci-static/resources/view/natmap.js:381
+#: htdocs/luci-static/resources/view/natmap.js:385
msgid "Bind port"
msgstr "綁定埠"
-#: htdocs/luci-static/resources/view/natmap.js:675
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:151
+msgid "Boot delay"
+msgstr "啟動延遲"
+
+#: htdocs/luci-static/resources/view/natmap.js:679
+#: htdocs/luci-static/resources/view/natmap.js:688
msgid "Can refer to RFC8552"
msgstr "可以參考 RFC8552"
-#: htdocs/luci-static/resources/view/natmap.js:267
+#: htdocs/luci-static/resources/view/natmap.js:271
msgid "Check"
msgstr "檢查"
-#: htdocs/luci-static/resources/view/natmap.js:266
+#: htdocs/luci-static/resources/view/natmap.js:270
msgid "Check NAT Behavior"
msgstr "檢查 NAT 行為"
-#: htdocs/luci-static/resources/view/natmap.js:334
+#: htdocs/luci-static/resources/view/natmap.js:338
msgid "Comment"
msgstr "備註"
-#: htdocs/luci-static/resources/view/natmap.js:302
-#: htdocs/luci-static/resources/view/natmap.js:755
+#: htdocs/luci-static/resources/view/natmap.js:306
+#: htdocs/luci-static/resources/view/natmap.js:759
msgid "Custom Script"
msgstr "自定義腳本"
-#: htdocs/luci-static/resources/view/natmap.js:301
-#: htdocs/luci-static/resources/view/natmap.js:620
+#: htdocs/luci-static/resources/view/natmap.js:305
+#: htdocs/luci-static/resources/view/natmap.js:624
msgid "DDNS Scripts"
msgstr "DDNS 腳本"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:447
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:451
msgid "Default"
msgstr "默認"
-#: htdocs/luci-static/resources/view/natmap.js:615
+#: htdocs/luci-static/resources/view/natmap.js:152
+msgid "Delay in seconds before starting the service."
+msgstr "啟動服務前的延遲時間(秒)。"
+
+#: htdocs/luci-static/resources/view/natmap.js:619
msgid "EnDDNS"
msgstr "啟用DDNS"
-#: htdocs/luci-static/resources/view/natmap.js:579
+#: htdocs/luci-static/resources/view/natmap.js:583
msgid "EnNotify"
msgstr "啟用通知"
#: htdocs/luci-static/resources/view/natmap.js:147
-#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:308
msgid "Enable"
msgstr "啟用"
-#: htdocs/luci-static/resources/view/natmap.js:288
+#: htdocs/luci-static/resources/view/natmap.js:292
msgid "Expand/Collapse result"
msgstr "展開/折疊 結果"
-#: htdocs/luci-static/resources/view/natmap.js:390
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:394
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:565
+#: htdocs/luci-static/resources/view/natmap.js:569
msgid "External IP"
msgstr "外部 IP"
-#: htdocs/luci-static/resources/view/natmap.js:572
+#: htdocs/luci-static/resources/view/natmap.js:576
msgid "External Port"
msgstr "外部通訊埠"
-#: htdocs/luci-static/resources/view/natmap.js:640
-#: htdocs/luci-static/resources/view/natmap.js:647
-#: htdocs/luci-static/resources/view/natmap.js:669
-#: htdocs/luci-static/resources/view/natmap.js:727
+#: htdocs/luci-static/resources/view/natmap.js:644
+#: htdocs/luci-static/resources/view/natmap.js:651
+#: htdocs/luci-static/resources/view/natmap.js:673
+#: htdocs/luci-static/resources/view/natmap.js:731
msgid "FQDN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:423
msgid "Firewall DNAT"
msgstr "防火牆 DNAT"
-#: htdocs/luci-static/resources/view/natmap.js:325
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:329
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "For TCP mode"
msgstr "用於 TCP 模式"
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "For UDP mode"
msgstr "用於 UDP 模式"
-#: htdocs/luci-static/resources/view/natmap.js:299
+#: htdocs/luci-static/resources/view/natmap.js:303
msgid "Forward Settings"
msgstr "轉發設定"
-#: htdocs/luci-static/resources/view/natmap.js:418
+#: htdocs/luci-static/resources/view/natmap.js:422
msgid "Forward method"
msgstr "轉發方法"
-#: htdocs/luci-static/resources/view/natmap.js:401
+#: htdocs/luci-static/resources/view/natmap.js:405
msgid "Forward mode"
msgstr "轉發模式"
-#: htdocs/luci-static/resources/view/natmap.js:462
+#: htdocs/luci-static/resources/view/natmap.js:466
msgid "Forward target"
msgstr "轉發目標"
-#: htdocs/luci-static/resources/view/natmap.js:494
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:498
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Forward target port"
msgstr "轉發目標埠"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Forward timeout"
msgstr "轉發逾時"
-#: htdocs/luci-static/resources/view/natmap.js:167
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:171
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Fwmark value"
msgstr " Fwmark 值"
-#: htdocs/luci-static/resources/view/natmap.js:298
+#: htdocs/luci-static/resources/view/natmap.js:302
msgid "General Settings"
msgstr "一般設定"
@@ -170,27 +178,27 @@ msgstr "一般設定"
msgid "Grant access to LuCI app natmap"
msgstr "授予訪問 LuCI 應用 natmap 的權限"
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "HTTP keep-alive"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:325
+#: htdocs/luci-static/resources/view/natmap.js:329
msgid "HTTP server"
msgstr "HTTP 伺服器"
-#: htdocs/luci-static/resources/view/natmap.js:714
+#: htdocs/luci-static/resources/view/natmap.js:718
msgid "HTTPS Record"
msgstr "HTTPS 記錄"
-#: htdocs/luci-static/resources/view/natmap.js:349
+#: htdocs/luci-static/resources/view/natmap.js:353
msgid "IPv4"
msgstr "IPv4"
-#: htdocs/luci-static/resources/view/natmap.js:350
+#: htdocs/luci-static/resources/view/natmap.js:354
msgid "IPv6"
msgstr "IPv6"
-#: htdocs/luci-static/resources/view/natmap.js:383
+#: htdocs/luci-static/resources/view/natmap.js:387
msgid ""
"If you enable Notify Scripts, you will be bombarded with messages"
msgstr "如果您開啟了通知腳本, 將被大量訊息轟炸"
@@ -203,23 +211,23 @@ msgstr "內部位址"
msgid "Inner Port"
msgstr "內部埠"
-#: htdocs/luci-static/resources/view/natmap.js:374
+#: htdocs/luci-static/resources/view/natmap.js:378
msgid "Interface"
msgstr "介面"
-#: htdocs/luci-static/resources/view/natmap.js:310
+#: htdocs/luci-static/resources/view/natmap.js:314
msgid "Keep-alive interval"
msgstr "Keep-alive 間隔"
-#: htdocs/luci-static/resources/view/natmap.js:330
+#: htdocs/luci-static/resources/view/natmap.js:334
msgid "Mark fwmark for STUN/HTTP outbound traffic"
msgstr "為 STUN/HTTP 出站流量標記 fwmark"
-#: htdocs/luci-static/resources/view/natmap.js:439
+#: htdocs/luci-static/resources/view/natmap.js:443
msgid "NAT loopback"
msgstr "NAT 環回"
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid "NATBehavior-Test port open on"
msgstr "NATBehavior-Test 通訊埠打開於"
@@ -232,24 +240,24 @@ msgstr "NATMap"
msgid "Name"
msgstr "名称"
-#: htdocs/luci-static/resources/view/natmap.js:415
-#: htdocs/luci-static/resources/view/natmap.js:491
-#: htdocs/luci-static/resources/view/natmap.js:514
+#: htdocs/luci-static/resources/view/natmap.js:419
+#: htdocs/luci-static/resources/view/natmap.js:495
+#: htdocs/luci-static/resources/view/natmap.js:518
msgid "No"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:390
+#: htdocs/luci-static/resources/view/natmap.js:394
msgid "Non-0 port"
msgstr "非 0 埠"
-#: htdocs/luci-static/resources/view/natmap.js:382
+#: htdocs/luci-static/resources/view/natmap.js:386
msgid ""
"Note: After using portrange, the public ports will be opened in "
"rotation"
msgstr "注意: 使用 portrange 後, 會輪換打開公網埠"
-#: htdocs/luci-static/resources/view/natmap.js:300
-#: htdocs/luci-static/resources/view/natmap.js:584
+#: htdocs/luci-static/resources/view/natmap.js:304
+#: htdocs/luci-static/resources/view/natmap.js:588
msgid "Notify Scripts"
msgstr "通知腳本"
@@ -261,44 +269,44 @@ msgstr "外部位址"
msgid "Outer Port"
msgstr "外部通訊埠"
-#: htdocs/luci-static/resources/view/natmap.js:559
+#: htdocs/luci-static/resources/view/natmap.js:563
msgid "Password"
msgstr "密碼"
-#: htdocs/luci-static/resources/view/natmap.js:185
+#: htdocs/luci-static/resources/view/natmap.js:189
msgid ""
"Please check Firewall Rules to avoid port "
"conflicts."
msgstr "請檢查防火牆規則以避免埠衝突"
-#: htdocs/luci-static/resources/view/natmap.js:455
+#: htdocs/luci-static/resources/view/natmap.js:459
msgid "Port forwarding session idle timeout in seconds"
msgstr "連接埠轉發會話空閒逾時 (以秒為單位)"
-#: htdocs/luci-static/resources/view/natmap.js:700
-#: htdocs/luci-static/resources/view/natmap.js:748
+#: htdocs/luci-static/resources/view/natmap.js:704
+#: htdocs/luci-static/resources/view/natmap.js:752
msgid "Priority"
msgstr "優先權"
-#: htdocs/luci-static/resources/view/natmap.js:604
+#: htdocs/luci-static/resources/view/natmap.js:608
msgid "Private API Domain"
msgstr "私有 API 域名"
-#: htdocs/luci-static/resources/view/natmap.js:337
-#: htdocs/luci-static/resources/view/natmap.js:684
+#: htdocs/luci-static/resources/view/natmap.js:341
+#: htdocs/luci-static/resources/view/natmap.js:688
#: htdocs/luci-static/resources/view/status/include/72_natmap.js:60
msgid "Protocol"
msgstr "協議"
-#: htdocs/luci-static/resources/view/natmap.js:395
+#: htdocs/luci-static/resources/view/natmap.js:399
msgid "Randomly allocation ports"
msgstr "隨機分配端口"
-#: htdocs/luci-static/resources/view/natmap.js:524
+#: htdocs/luci-static/resources/view/natmap.js:528
msgid "Refresh Scripts"
msgstr "用戶端更新腳本"
-#: htdocs/luci-static/resources/view/natmap.js:517
+#: htdocs/luci-static/resources/view/natmap.js:521
msgid "Refresh client"
msgstr "更新用戶端"
@@ -307,74 +315,74 @@ msgstr "更新用戶端"
msgid "Reload"
msgstr "重新載入"
-#: htdocs/luci-static/resources/view/natmap.js:347
+#: htdocs/luci-static/resources/view/natmap.js:351
msgid "Restrict to address family"
msgstr "限制到位址群"
-#: htdocs/luci-static/resources/view/natmap.js:654
+#: htdocs/luci-static/resources/view/natmap.js:658
msgid "SRV Record"
msgstr "SRV 記錄"
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:315
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:319
msgid "STUN check cycle (once every n intervals)"
msgstr "STUN 檢查週期 (每 n 個間隔一次)"
-#: htdocs/luci-static/resources/view/natmap.js:320
+#: htdocs/luci-static/resources/view/natmap.js:324
msgid "STUN server"
msgstr "STUN 伺服器"
-#: htdocs/luci-static/resources/view/natmap.js:151
-#: htdocs/luci-static/resources/view/natmap.js:157
-#: htdocs/luci-static/resources/view/natmap.js:163
+#: htdocs/luci-static/resources/view/natmap.js:155
+#: htdocs/luci-static/resources/view/natmap.js:161
+#: htdocs/luci-static/resources/view/natmap.js:167
msgid "Server"
msgstr "伺服器"
-#: htdocs/luci-static/resources/view/natmap.js:675
+#: htdocs/luci-static/resources/view/natmap.js:679
msgid "Service"
msgstr "服務"
-#: htdocs/luci-static/resources/view/natmap.js:494
+#: htdocs/luci-static/resources/view/natmap.js:498
msgid "Set 0 will follow Public port"
msgstr "設為 0 將遵循公共埠"
-#: htdocs/luci-static/resources/view/natmap.js:741
+#: htdocs/luci-static/resources/view/natmap.js:745
msgid "SvcParams"
msgstr "服務參數"
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:685
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:689
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:446
+#: htdocs/luci-static/resources/view/natmap.js:450
msgid "TCP Congestion control"
msgstr "TCP 擁塞控制"
-#: htdocs/luci-static/resources/view/natmap.js:151
+#: htdocs/luci-static/resources/view/natmap.js:155
msgid "TCP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:687
+#: htdocs/luci-static/resources/view/natmap.js:691
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:693
-#: htdocs/luci-static/resources/view/natmap.js:733
+#: htdocs/luci-static/resources/view/natmap.js:697
+#: htdocs/luci-static/resources/view/natmap.js:737
msgid "Target"
msgstr "目標"
-#: htdocs/luci-static/resources/view/natmap.js:610
+#: htdocs/luci-static/resources/view/natmap.js:614
msgid "Text content"
msgstr "文本內容"
-#: htdocs/luci-static/resources/view/natmap.js:418
-#: htdocs/luci-static/resources/view/natmap.js:434
+#: htdocs/luci-static/resources/view/natmap.js:422
+#: htdocs/luci-static/resources/view/natmap.js:438
msgid "The DNAT method not support under IPv6"
msgstr "DNAT 方法不支援在 IPv6 下使用"
-#: htdocs/luci-static/resources/view/natmap.js:595
-#: htdocs/luci-static/resources/view/natmap.js:631
+#: htdocs/luci-static/resources/view/natmap.js:599
+#: htdocs/luci-static/resources/view/natmap.js:635
msgid ""
"The KEY required by the script above. See %s for the format of KEY required by each script. Add "
@@ -384,7 +392,7 @@ msgstr ""
"上面腳本所需的 KEY。請參閱 %s 以獲得對應"
"腳本所需的 KEY 清單。請輸入格式為 KEY=VAL 的多個 KEY 條目"
-#: htdocs/luci-static/resources/view/natmap.js:471
+#: htdocs/luci-static/resources/view/natmap.js:475
msgid "The hostname not support under DNAT mode"
msgstr "DNAT 模式下不支援主機名"
@@ -392,84 +400,84 @@ msgstr "DNAT 模式下不支援主機名"
msgid "There are no active portmap"
msgstr "沒有活動的通訊埠映射"
-#: htdocs/luci-static/resources/view/natmap.js:366
-#: htdocs/luci-static/resources/view/natmap.js:464
+#: htdocs/luci-static/resources/view/natmap.js:370
+#: htdocs/luci-static/resources/view/natmap.js:468
msgid "This device default Lan"
msgstr "本裝置默認 LAN"
-#: htdocs/luci-static/resources/view/natmap.js:367
-#: htdocs/luci-static/resources/view/natmap.js:465
+#: htdocs/luci-static/resources/view/natmap.js:371
+#: htdocs/luci-static/resources/view/natmap.js:469
msgid "This device default Wan"
msgstr "本裝置默認 WAN"
-#: htdocs/luci-static/resources/view/natmap.js:199
-#: htdocs/luci-static/resources/view/natmap.js:208
+#: htdocs/luci-static/resources/view/natmap.js:203
+#: htdocs/luci-static/resources/view/natmap.js:212
msgid "This port is already used"
msgstr "該埠已被使用"
-#: htdocs/luci-static/resources/view/natmap.js:270
+#: htdocs/luci-static/resources/view/natmap.js:274
msgid ""
"To check NAT Behavior you need to install stuntman-client"
"b> first"
msgstr "檢查 NAT 行為需要先安裝 stuntman-client"
-#: htdocs/luci-static/resources/view/natmap.js:594
-#: htdocs/luci-static/resources/view/natmap.js:630
+#: htdocs/luci-static/resources/view/natmap.js:598
+#: htdocs/luci-static/resources/view/natmap.js:634
msgid "Tokens"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:175
-#: htdocs/luci-static/resources/view/natmap.js:180
-#: htdocs/luci-static/resources/view/natmap.js:686
+#: htdocs/luci-static/resources/view/natmap.js:179
+#: htdocs/luci-static/resources/view/natmap.js:184
+#: htdocs/luci-static/resources/view/natmap.js:690
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:157
+#: htdocs/luci-static/resources/view/natmap.js:161
msgid "UDP STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:536
+#: htdocs/luci-static/resources/view/natmap.js:540
msgid "URI Scheme"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:553
+#: htdocs/luci-static/resources/view/natmap.js:557
msgid "Username"
msgstr "用戶名"
-#: htdocs/luci-static/resources/view/natmap.js:420
+#: htdocs/luci-static/resources/view/natmap.js:424
msgid "Via natmap"
msgstr "經由 natmap"
-#: htdocs/luci-static/resources/view/natmap.js:545
+#: htdocs/luci-static/resources/view/natmap.js:549
msgid "Web UI Port"
msgstr "Web UI 通訊埠"
-#: htdocs/luci-static/resources/view/natmap.js:707
+#: htdocs/luci-static/resources/view/natmap.js:711
msgid "Weight"
msgstr "權重"
-#: htdocs/luci-static/resources/view/natmap.js:159
+#: htdocs/luci-static/resources/view/natmap.js:163
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/valid_hosts_rfc5780."
"txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:153
+#: htdocs/luci-static/resources/view/natmap.js:157
msgid ""
"https://github.com/muink/rfc5780-stun-server/blob/master/"
"valid_hosts_rfc5780_tcp.txt"
msgstr ""
-#: htdocs/luci-static/resources/view/natmap.js:170
-#: htdocs/luci-static/resources/view/natmap.js:175
+#: htdocs/luci-static/resources/view/natmap.js:174
+#: htdocs/luci-static/resources/view/natmap.js:179
msgid "keep-alive interval (seconds)"
msgstr "keep-alive 間隔 (秒)"
-#: htdocs/luci-static/resources/view/natmap.js:187
+#: htdocs/luci-static/resources/view/natmap.js:191
msgid "luci check may not detect all conflicts."
msgstr "luci 檢查可能無法檢測到所有衝突"
-#: htdocs/luci-static/resources/view/natmap.js:760
+#: htdocs/luci-static/resources/view/natmap.js:764
msgid "⭮"
msgstr ""
diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile
index c1510e612..6f4ed6311 100644
--- a/luci-app-passwall/Makefile
+++ b/luci-app-passwall/Makefile
@@ -7,8 +7,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
-PKG_VERSION:=26.9.9
-PKG_RELEASE:=275
+PKG_VERSION:=26.9.16
+PKG_RELEASE:=276
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/1_sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/1_sing-box.lua
index 468484cba..769e125d9 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/1_sing-box.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/1_sing-box.lua
@@ -707,16 +707,6 @@ o = s:option(Value, "ws_path", translate("WebSocket Path"))
o.placeholder = "/"
o:depends({ transport = "ws" })
-o = s:option(Flag, "ws_enableEarlyData", translate("Enable early data"))
-o:depends({ transport = "ws" })
-
-o = s:option(Value, "ws_maxEarlyData", translate("Early data length"))
-o.default = "1024"
-o:depends({ ws_enableEarlyData = true })
-
-o = s:option(Value, "ws_earlyDataHeaderName", translate("Early data header name"), translate("Recommended value: Sec-WebSocket-Protocol"))
-o:depends({ ws_enableEarlyData = true })
-
-- [[ HTTPUpgrade部分 ]]--
o = s:option(Value, "httpupgrade_host", translate("HTTPUpgrade Host"))
o:depends({ transport = "httpupgrade" })
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua
index 05fb97242..b779aa5c1 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua
@@ -399,6 +399,10 @@ o:depends({ transport = "ws" })
o = s:option(Value, "ws_path", translate("WebSocket Path"))
o:depends({ transport = "ws" })
+o = s:option(Value, "ws_earlyDataHeaderName", translate("Early data header name"), translate("Recommended value: Sec-WebSocket-Protocol"))
+o.placeholder = "Sec-WebSocket-Protocol"
+o:depends({ transport = "ws" })
+
-- [[ HTTPUpgrade部分 ]]--
o = s:option(Value, "httpupgrade_host", translate("HTTPUpgrade Host"))
diff --git a/luci-app-passwall/luasrc/passwall/util_sing-box.lua b/luci-app-passwall/luasrc/passwall/util_sing-box.lua
index 697e78480..fb3fb2d2e 100644
--- a/luci-app-passwall/luasrc/passwall/util_sing-box.lua
+++ b/luci-app-passwall/luasrc/passwall/util_sing-box.lua
@@ -347,9 +347,20 @@ function gen_outbound(flag, node, tag, proxy_table)
Host = node.ws_host,
["User-Agent"] = node.user_agent
} or nil,
- max_early_data = tonumber(node.ws_maxEarlyData) or nil,
- early_data_header_name = (node.ws_earlyDataHeaderName) and node.ws_earlyDataHeaderName or nil --要与 Xray-core 兼容,请将其设置为 Sec-WebSocket-Protocol。它需要与服务器保持一致。
}
+ local path = api.UrlDecode(node.ws_path)
+ local path_dat = api.split(path, "?")
+ local params = {}
+ for _, v in pairs(api.split(path_dat[2], '&')) do
+ local t = api.split(v, '=')
+ params[t[1]] = t[2]
+ end
+ local ed = tonumber(params.ed)
+ if ed then
+ v2ray_transport.path = path_dat[1]
+ v2ray_transport.max_early_data = ed
+ end
+ v2ray_transport.early_data_header_name = params.eh or "Sec-WebSocket-Protocol"
end
if node.transport == "httpupgrade" then
@@ -762,7 +773,7 @@ function gen_config_server(node)
type = "ws",
path = node.ws_path or "/",
headers = (node.ws_host ~= nil) and { Host = node.ws_host } or nil,
- early_data_header_name = (node.ws_earlyDataHeaderName) and node.ws_earlyDataHeaderName or nil --要与 Xray-core 兼容,请将其设置为 Sec-WebSocket-Protocol。它需要与服务器保持一致。
+ early_data_header_name = (node.ws_earlyDataHeaderName) and node.ws_earlyDataHeaderName or "Sec-WebSocket-Protocol"
}
end
diff --git a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm
index c806e5690..c8a05439c 100644
--- a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm
+++ b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm
@@ -249,10 +249,6 @@ local current_node = map:get(section)
if (v_transport === "ws") {
params += opt.query("host", dom_prefix + "ws_host");
params += opt.query("path", dom_prefix + "ws_path");
- if (v_type == "sing-box" && opt.get(dom_prefix + "ws_enableEarlyData").checked) {
- var ws_maxEarlyData = opt.get(dom_prefix + "ws_maxEarlyData").value;
- params += "?ed=" + ws_maxEarlyData;
- }
} else if (v_transport === "http") {
params += opt.query("host", dom_prefix + "http_host");
params += opt.query("path", dom_prefix + "http_path");
@@ -371,10 +367,6 @@ local current_node = map:get(section)
if (v_transport === "ws") {
info.host = opt.get(dom_prefix + "ws_host").value;
info.path = opt.get(dom_prefix + "ws_path").value;
- if (v_type == "sing-box" && opt.get(dom_prefix + "ws_enableEarlyData").checked) {
- var ws_maxEarlyData = opt.get(dom_prefix + "ws_maxEarlyData").value;
- info.path = info.path + "?ed=" + ws_maxEarlyData;
- }
} else if (v_transport === "http") {
info.host = opt.get(dom_prefix + "http_host").value;
info.path = opt.get(dom_prefix + "http_path").value;
@@ -431,10 +423,6 @@ local current_node = map:get(section)
if (v_transport === "ws") {
params += opt.query("host", dom_prefix + "ws_host");
params += opt.query("path", dom_prefix + "ws_path");
- if (v_type == "sing-box" && opt.get(dom_prefix + "ws_enableEarlyData").checked) {
- var ws_maxEarlyData = opt.get(dom_prefix + "ws_maxEarlyData").value;
- params += encodeURIComponent("?ed=" + ws_maxEarlyData);
- }
} else if (v_transport === "http") {
params += opt.query("host", dom_prefix + "http_host");
params += opt.query("path", dom_prefix + "http_path");
@@ -523,10 +511,6 @@ local current_node = map:get(section)
if (v_transport === "ws") {
params += opt.query("host", dom_prefix + "ws_host");
params += opt.query("path", dom_prefix + "ws_path");
- if (v_type == "sing-box" && opt.get(dom_prefix + "ws_enableEarlyData").checked) {
- var ws_maxEarlyData = opt.get(dom_prefix + "ws_maxEarlyData").value;
- params += "?ed=" + ws_maxEarlyData;
- }
} else if (v_transport === "http") {
params += opt.query("host", dom_prefix + "http_host");
params += opt.query("path", dom_prefix + "http_path");
@@ -1085,24 +1069,6 @@ local current_node = map:get(section)
} else if (queryParam.type === "ws") {
opt.set(dom_prefix + 'ws_host', queryParam.host || "");
opt.set(dom_prefix + 'ws_path', queryParam.path || "");
- if (dom_prefix == "singbox_" && queryParam.path && queryParam.path.length > 1) {
- var ws_path_params = {};
- var ws_path_dat = queryParam.path.split('?');
- var ws_path = ws_path_dat[0];
- var ws_path_params = {};
- var ws_path_params_array = (ws_path_dat[1] || '').split('&');
- for (i = 0; i < ws_path_params_array.length; i++) {
- var kv = ws_path_params_array[i].split('=');
- ws_path_params[decodeURIComponent(kv[0]).toLowerCase()] = decodeURIComponent(kv[1] || '');
- }
-
- if (ws_path_params.ed) {
- opt.set(dom_prefix + 'ws_path', ws_path);
- opt.set(dom_prefix + 'ws_enableEarlyData', true);
- opt.set(dom_prefix + 'ws_maxEarlyData', ws_path_params.ed);
- opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
- }
- }
} else if (queryParam.type === "http") {
if (dom_prefix == "xray_") {
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
@@ -1232,24 +1198,6 @@ local current_node = map:get(section)
} else if (queryParam.type === "ws") {
opt.set(dom_prefix + 'ws_host', queryParam.host || "");
opt.set(dom_prefix + 'ws_path', queryParam.path || "");
- if (dom_prefix == "singbox_" && queryParam.path && queryParam.path.length > 1) {
- var ws_path_params = {};
- var ws_path_dat = queryParam.path.split('?');
- var ws_path = ws_path_dat[0];
- var ws_path_params = {};
- var ws_path_params_array = (ws_path_dat[1] || '').split('&');
- for (i = 0; i < ws_path_params_array.length; i++) {
- var kv = ws_path_params_array[i].split('=');
- ws_path_params[decodeURIComponent(kv[0]).toLowerCase()] = decodeURIComponent(kv[1] || '');
- }
-
- if (ws_path_params.ed) {
- opt.set(dom_prefix + 'ws_path', ws_path);
- opt.set(dom_prefix + 'ws_enableEarlyData', true);
- opt.set(dom_prefix + 'ws_maxEarlyData', ws_path_params.ed);
- opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
- }
- }
} else if (queryParam.type === "http") {
if (dom_prefix == "xray_") {
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
@@ -1374,24 +1322,6 @@ local current_node = map:get(section)
} else if (ssm.net === "ws") {
opt.set(dom_prefix + 'ws_host', ssm.host);
opt.set(dom_prefix + 'ws_path', ssm.path);
- if (dom_prefix == "singbox_" && ssm.path && ssm.path.length > 1) {
- var ws_path_params = {};
- var ws_path_dat = ssm.path.split('?');
- var ws_path = ws_path_dat[0];
- var ws_path_params = {};
- var ws_path_params_array = (ws_path_dat[1] || '').split('&');
- for (i = 0; i < ws_path_params_array.length; i++) {
- var kv = ws_path_params_array[i].split('=');
- ws_path_params[decodeURIComponent(kv[0]).toLowerCase()] = decodeURIComponent(kv[1] || '');
- }
-
- if (ws_path_params.ed) {
- opt.set(dom_prefix + 'ws_path', ws_path);
- opt.set(dom_prefix + 'ws_enableEarlyData', true);
- opt.set(dom_prefix + 'ws_maxEarlyData', ws_path_params.ed);
- opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
- }
- }
} else if (ssm.net === "http") {
if (dom_prefix == "xray_") {
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
@@ -1517,24 +1447,6 @@ local current_node = map:get(section)
} else if (queryParam.type === "ws") {
opt.set(dom_prefix + 'ws_host', queryParam.host || "");
opt.set(dom_prefix + 'ws_path', queryParam.path || "");
- if (dom_prefix == "singbox_" && queryParam.path && queryParam.path.length > 1) {
- var ws_path_params = {};
- var ws_path_dat = queryParam.path.split('?');
- var ws_path = ws_path_dat[0];
- var ws_path_params = {};
- var ws_path_params_array = (ws_path_dat[1] || '').split('&');
- for (i = 0; i < ws_path_params_array.length; i++) {
- var kv = ws_path_params_array[i].split('=');
- ws_path_params[decodeURIComponent(kv[0]).toLowerCase()] = decodeURIComponent(kv[1] || '');
- }
-
- if (ws_path_params.ed) {
- opt.set(dom_prefix + 'ws_path', ws_path);
- opt.set(dom_prefix + 'ws_enableEarlyData', true);
- opt.set(dom_prefix + 'ws_maxEarlyData', ws_path_params.ed);
- opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
- }
- }
} else if (queryParam.type === "h2" || queryParam.type === "http") {
if (dom_prefix == "xray_") {
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po
index 7b373555a..e08eedc9c 100644
--- a/luci-app-passwall/po/zh-cn/passwall.po
+++ b/luci-app-passwall/po/zh-cn/passwall.po
@@ -1757,12 +1757,6 @@ msgstr "XUDP 最大并发连接数"
msgid "Padding"
msgstr "填充"
-msgid "Enable early data"
-msgstr "启用前置数据"
-
-msgid "Early data length"
-msgstr "前置数据最大长度"
-
msgid "Early data header name"
msgstr "前置数据 HTTP 头名"
diff --git a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua
index 285072b88..07d161529 100644
--- a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua
+++ b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua
@@ -88,7 +88,16 @@ local function build_common(node)
if net == "ws" then
local opts = node["ws-opts"]
if opts then
- o.transport.path = opts.path
+ local path = opts.path or "/"
+ local ed = opts["max-early-data"]
+ local eh = opts["early-data-header-name"]
+ if ed then
+ path = path .. "?ed=" .. ed
+ end
+ if eh then
+ path = path .. (path:find("?", 1, true) and "&eh=" or "?eh=") .. eh
+ end
+ o.transport.path = path
o.transport.host = opts.headers and opts.headers.Host
end
diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
index 65a48d0b6..61b840d39 100755
--- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua
+++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
@@ -641,21 +641,6 @@ local function processData(szType, content, add_mode, group, sub_cfg)
if info.net == 'ws' then
result.ws_host = info.host
result.ws_path = info.path
- if result.type == "sing-box" and info.path then
- local ws_path_dat = split(info.path, "?")
- local ws_path = ws_path_dat[1]
- local ws_path_params = {}
- for _, v in pairs(split(ws_path_dat[2], '&')) do
- local t = split(v, '=')
- ws_path_params[t[1]] = t[2]
- end
- if ws_path_params.ed and tonumber(ws_path_params.ed) then
- result.ws_path = ws_path
- result.ws_enableEarlyData = "1"
- result.ws_maxEarlyData = tonumber(ws_path_params.ed)
- result.ws_earlyDataHeaderName = "Sec-WebSocket-Protocol"
- end
- end
end
if info.net == "http" then
if result.type == "Xray" then
@@ -897,21 +882,6 @@ local function processData(szType, content, add_mode, group, sub_cfg)
if params.type == 'ws' then
result.ws_host = params.host
result.ws_path = params.path
- if result.type == "sing-box" and params.path then
- local ws_path_dat = split(params.path, "%?")
- local ws_path = ws_path_dat[1]
- local ws_path_params = {}
- for _, v in pairs(split(ws_path_dat[2], '&')) do
- local t = split(v, '=')
- ws_path_params[t[1]] = t[2]
- end
- if ws_path_params.ed and tonumber(ws_path_params.ed) then
- result.ws_path = ws_path
- result.ws_enableEarlyData = "1"
- result.ws_maxEarlyData = tonumber(ws_path_params.ed)
- result.ws_earlyDataHeaderName = "Sec-WebSocket-Protocol"
- end
- end
end
if params.type == "http" then
if result.type == "sing-box" then
@@ -1124,21 +1094,6 @@ local function processData(szType, content, add_mode, group, sub_cfg)
if params.type == 'ws' then
result.ws_host = params.host
result.ws_path = params.path
- if result.type == "sing-box" and params.path then
- local ws_path_dat = split(params.path, "%?")
- local ws_path = ws_path_dat[1]
- local ws_path_params = {}
- for _, v in pairs(split(ws_path_dat[2], '&')) do
- local t = split(v, '=')
- ws_path_params[t[1]] = t[2]
- end
- if ws_path_params.ed and tonumber(ws_path_params.ed) then
- result.ws_path = ws_path
- result.ws_enableEarlyData = "1"
- result.ws_maxEarlyData = tonumber(ws_path_params.ed)
- result.ws_earlyDataHeaderName = "Sec-WebSocket-Protocol"
- end
- end
end
if params.type == "http" then
if result.type == "sing-box" then
@@ -1266,21 +1221,6 @@ local function processData(szType, content, add_mode, group, sub_cfg)
if params.type == 'ws' then
result.ws_host = params.host
result.ws_path = params.path
- if result.type == "sing-box" and params.path then
- local ws_path_dat = split(params.path, "%?")
- local ws_path = ws_path_dat[1]
- local ws_path_params = {}
- for _, v in pairs(split(ws_path_dat[2], '&')) do
- local t = split(v, '=')
- ws_path_params[t[1]] = t[2]
- end
- if ws_path_params.ed and tonumber(ws_path_params.ed) then
- result.ws_path = ws_path
- result.ws_enableEarlyData = "1"
- result.ws_maxEarlyData = tonumber(ws_path_params.ed)
- result.ws_earlyDataHeaderName = "Sec-WebSocket-Protocol"
- end
- end
end
if params.type == "http" then
if result.type == "sing-box" then
diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile
index e6ec3912d..34401d12f 100644
--- a/luci-app-passwall2/Makefile
+++ b/luci-app-passwall2/Makefile
@@ -6,8 +6,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall2
-PKG_VERSION:=26.9.12
-PKG_RELEASE:=124
+PKG_VERSION:=26.9.16
+PKG_RELEASE:=125
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
diff --git a/luci-app-temp-status/Makefile b/luci-app-temp-status/Makefile
index 97f6b8145..26b732eb6 100644
--- a/luci-app-temp-status/Makefile
+++ b/luci-app-temp-status/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-temp-status
PKG_VERSION:=0.8.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
LUCI_TITLE:=Temperature sensors data for the LuCI status page
LUCI_DEPENDS:=+ucode +ucode-mod-fs
LUCI_PKGARCH:=all
diff --git a/luci-app-temp-status/po/tr/temp-status.po b/luci-app-temp-status/po/tr/temp-status.po
new file mode 100644
index 000000000..d0191b143
--- /dev/null
+++ b/luci-app-temp-status/po/tr/temp-status.po
@@ -0,0 +1,52 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: egemen <95934830+projectaccc@users.noreply.github.com>\n"
+"Language-Team: \n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 3.9\n"
+
+msgid "(%d minute window, %d second interval)"
+msgstr "(%d dakikalık aralık, %d saniyelik sıklık)"
+
+msgid "Average:"
+msgstr "Ortalama:"
+
+msgid "Hide"
+msgstr "Gizle"
+
+msgid "Hot:"
+msgstr "Sıcak:"
+
+msgid "Minimum:"
+msgstr "En Düşük:"
+
+msgid "No temperature sensors available"
+msgstr "Kullanılabilir sıcaklık sensörü yok"
+
+msgid "Overheat:"
+msgstr "Aşırı Isınma:"
+
+msgid "Peak:"
+msgstr "En Yüksek:"
+
+msgid "Sensor"
+msgstr "Sensör"
+
+msgid "Show hidden sensors"
+msgstr "Gizlenmiş sensörleri göster"
+
+msgid "Switch view"
+msgstr "Görünümü değiştir"
+
+msgid "Temperature"
+msgstr "Sıcaklık"
+
+msgid "This page displays the temperature sensors data."
+msgstr "Bu sayfada sıcaklık sensörü verileri görüntülenir."
diff --git a/luci-theme-aurora/.claude/skills/aurora-motion/SKILL.md b/luci-theme-aurora/.claude/skills/aurora-motion/SKILL.md
new file mode 100644
index 000000000..4514bee84
--- /dev/null
+++ b/luci-theme-aurora/.claude/skills/aurora-motion/SKILL.md
@@ -0,0 +1,116 @@
+---
+name: aurora-motion
+description: Use when a change adds, removes or adjusts motion in the Aurora theme (transition, animation, View Transition, hover/press/focus feedback, menu or drawer timing, 动效/动画/过渡/丝滑) or when a request asks "what should this state look like when it changes". Maps each LuCI UI state to one effect (CSS animates, JS only decides when and how far), keeps main.css and the theme JS from growing, and rejects motion that janks a phone or replays on poll.
+---
+
+# Aurora motion: which state gets which effect
+
+## First principles
+
+1. **The device is small.** The router has little RAM and flash, and it serves every byte uncompressed. Motion must not grow the theme. Decorative motion must be net ≤ 0 bytes across main.css and the theme JS. Only a functional fix (§Traps) may add bytes, and each must stay under ~100 B.
+2. **CSS does the moving; JS decides, in moderation.** Transitions and keyframes animate. JS may decide *when* and *how far* (see §JS). No animation library: `motion/mini` alone is 9,751 B raw (measured 2026-09-16). At HEAD, main.css had 1,270 B left under its 193 KB budget and menu-aurora.js had 306 B left under 22 KB.
+3. **Motion explains a state change, nothing else.** If a state is not in the table below, the answer is "no motion". Plain and quiet beats impressive.
+4. **Never cause jank.** The client is usually a phone on the router's WiFi. See §Jank.
+
+## State → effect
+
+These timings are the only ones allowed: 150 ms for controls, 250 ms for surfaces, 300–320 ms only for large panels. Curves: `ease-out` for entering elements, `ease-in-out` for symmetric changes. `cubic-bezier(0.34,1.25,0.5,1)` is the float-button's overshoot and nothing else. "Today" describes HEAD.
+
+| State | Hook | Effect | Today |
+|---|---|---|---|
+| Hover 悬停 (desktop only) | `:hover` | Colour change, instant. Icon-size controls may use `scale-105`. | top nav pills instant; some links still `transition-colors` |
+| Focus 键盘聚焦 | `:focus-visible` | A ring appears. No movement. | `ring-2 ring-focus-ring` |
+| Press 按下 | `:active` | `scale-95`, only on icon-size controls. | header toggles, switcher, card icons |
+| Toggle 开关 | class flip | The thumb slides or the icon morphs. | `.theme-switcher`, hamburger → X |
+| Expand / collapse 展开收起 | theme classes | Fade. Grid rows only where they already animate. | mobile submenu |
+| Menu / drawer 菜单抽屉 | theme classes | Slide (translate) plus fade. A page scrim only dims; it is never blurred. The desktop sidebar pushes: its grid column eases with the panel's slide, same curve and length. | mega-menu (unblurred curtain), mobile nav, sidebar (push) |
+| Tooltip 提示 | hover / focus | Fade plus `scale-95` → 100, after the intent delay. | `_tooltip.css`, `delay-300` |
+| Dropdown open 下拉打开 | `.cbi-dropdown[open]` | Opacity .99 → 1 over 120 ms. This is functional: it fires luci-base's focus hand-off. | **missing** (Trap 2) |
+| Modal open 弹窗打开 | `body.modal-overlay-active` | Fade in, reusing `aurora-fade-in`. The overlay goes from `display:none` to shown, so the keyframe restarts by itself. | none |
+| Modal close 弹窗关闭 | class removed | None. luci-base provides no exit hook. | — |
+| Notification in 通知出现 | `.alert-message.fade-in` | Fade in. | `_utilities.css` |
+| Notification out 通知消失 | `.fade-out` (dismiss or timer) | Fade out. It must be a *running* transition. | **broken** (Trap 1) |
+| View loading 页面加载中 | `#view > .spinning` | Spinner only. It keeps spinning under reduced motion. | `.spinning` |
+| Page ready 内容就绪 | direct children of `#view` | At most one fade in, reusing `aurora-fade-in`. No stagger, no rise, and nothing deeper than the direct children. | none |
+| Route leave 离开页面 | `#view.view-leaving` | Dim to 60 %. | `_layout.css` |
+| Route enter 进入页面 | router swap | Same as "Page ready". Use one mechanism only: the View Transition or the fade, never both stacked. | router root crossfade |
+| Tab switch 切换标签 | `[data-tab-active="true"]` | Fade in the incoming pane. Its height snaps. | none |
+| Busy action 操作进行中 | `.spinning` on a button | Spinner. | `.spinning` |
+| Progress 进度 | `.cbi-progressbar > div` | Width. This is an existing exception; don't copy it. | `_progress.css` |
+| Drag 拖拽 | `.dragging` | A static state style, no motion. | `_form.css` |
+| Invalid / success / error 校验与结果 | `.cbi-input-invalid`, `.alert-message.*` | Colour plus text. No shake, no bounce. | — |
+| Poll refresh 数据刷新 | `LuCI.poll`, every 5 s | **None, ever.** | — |
+| Theme switch 主题切换 | header.ut | View Transition crossfade. | header.ut |
+| Disabled 禁用 | `:disabled` | None. | — |
+
+The source lines for every hook are in references/luci-hooks.md.
+
+### Never
+
+Blur or mask reveal, parallax, scroll-linked or scroll-triggered motion, stagger on rows, cards or sections, text reveal, tilt, magnetic or cursor-follow effects, hover lift or shadow on `.cbi-section` or `#view`, skeleton screens, layout (FLIP) animation, crossfading tab panes, shake, loops other than `.spinning`, autoplay, and any motion on polled content.
+
+## Bytes
+
+Measured on main.css (raw, Tailwind 4.3.2 plus lightningcss, 2026-09-16). What you write matters more than what the effect is:
+
+| Written as | Cost |
+|---|---|
+| Add a selector to an existing motion rule's selector list | **+17 B** |
+| One shorthand on a new selector: `@apply [transition:opacity_150ms_ease-out]` | +50 B |
+| Reuse the keyframe: `@apply animate-[aurora-fade-in_250ms_ease_backwards]` | +59 B |
+| New keyframe plus its use (e.g. opacity + scale pop-in) | +141 B |
+| Press as shorthand: `[transition:scale_150ms] active:[scale:.95]` | +99 B |
+| Split utilities: `transition-opacity duration-150 ease-out` | **+316 B** |
+| Split utilities for press: `transition-transform duration-150 active:scale-95` | +415 B |
+| `starting:` entry with split utilities (modal) | +508 B |
+
+Tailwind v4's split utilities expand into `--tw-*` fallback chains. So:
+
+- Write motion as **one shorthand declaration**, or reuse `aurora-fade-in`.
+- Prefer adding a selector to an existing rule over writing a new one.
+- Don't add `@starting-style`: an element that comes back from `display:none` restarts its keyframe anyway.
+
+Check every change. Run `pnpm build`, then compare `wc -c < htdocs/luci-static/aurora/main.css` with `git show HEAD:htdocs/luci-static/aurora/main.css | wc -c`. Put the delta in the commit body. If decorative motion comes out positive, remove bytes elsewhere or drop it.
+
+## Jank
+
+- Animate only `opacity`, `translate`, `scale` and `transform`. Never width, height, margins, `box-shadow`, `filter`, `backdrop-filter` or background. The only existing exceptions are the progress-bar width, the mobile-submenu grid rows, and the desktop sidebar column (user's call, 2026-09-16: a content column that snaps and then slides reads as broken; at 4× CPU the 250 ms push cost ~3 ms layout + style per frame on the overview page).
+- Never animate an element that carries `backdrop-blur`, because the blur is re-rasterised every frame. Animate an unblurred child instead. Under software compositing, the blurred mega-menu curtain dropped 3–5 frames per open; without the blur it dropped none (2026-09-16).
+- Keep `visibility` out of the tween. Write `[transition:opacity_220ms_…,visibility_0s_220ms]` and put `[transition-delay:0s]` on the shown state. A tweened `visibility` runs on the main thread, and on show it also keeps the paired `opacity` fade off the compositor.
+- A `color` or `background-color` transition repaints on the main thread every frame. Swap state colours instantly. Dropping the transition on the nav pills cut repaints by 61 %.
+- Always name the transitioned properties. Never use `transition-all`, and never use `will-change`.
+- Allow one motion per state change per region, lasting no more than 320 ms. Click, save and error feedback get no delay.
+- Under reduced motion, show the end state at once, but keep durations at 1 ms rather than `none` (Trap 1).
+- Verify on the Layout track at 4× CPU throttling: aurora-performance runtime.md R1–R3.
+
+## JS
+
+JS is worth its bytes where CSS cannot decide. The mega-menu in `menu-aurora.js` is the reference:
+
+- **Hover intent and aim.** Delay the first open. Hold the open category while the pointer heads into its panel. Every timer is cleared on leave.
+- **Measure once, then cache.** Measure after `document.fonts.ready`, in `requestIdleCallback`. Write the result to a custom property (`--mega-menu-height`) and let CSS use it. Invalidate on resize only.
+- **Distance-adaptive duration.** Write the computed duration to a custom property as well (`--mega-menu-duration`).
+- **Sequencing and cleanup.** Toggle classes (`.active` → `.closing` → removed). A `transitionend` wait always has a fallback timer that reads the real duration back.
+- **Reduced motion.** Check `prefers-reduced-motion` before any JS-timed motion, and jump straight to the end state.
+
+Not allowed:
+
+- a `requestAnimationFrame` loop that writes styles every frame;
+- scroll or pointer listeners whose only job is an effect;
+- layout reads (`offsetHeight`, `getBoundingClientRect`) on every event of a hot handler;
+- `el.animate()`, except for a one-off sequence CSS cannot express, cancelled on `luci-navigate`.
+
+## Traps (reproduced on a device, 2026-09-16)
+
+luci-base acts on `transitionend`, which only fires if a transition actually runs.
+
+1. **A dismissed notification never leaves the DOM.** The fill of `.fade-in` (`both`) holds `opacity`, so the `.fade-out` transition never starts. Every Dismiss and every expired notification leaves an invisible 84 px gap. Fix: `both` → `backwards` (+5 B). In `_reduced-motion.css`, replace `transition-none!` with `delay-0! duration-1!` (+57 B).
+2. **Arrow keys cannot enter a dropdown.** There is no transition on `.cbi-dropdown > ul`, so focus never moves into the list. Fix: `opacity-99 [transition:opacity_120ms_ease-out]`, with `&.dropdown { opacity-100 }` (+98 B).
+
+Any change touching `.fade-in`/`.fade-out`, dropdowns or `_reduced-motion.css` must pass this, run after `pnpm build`:
+
+```
+MAIN_CSS=htdocs/luci-static/aurora/main.css node .claude/skills/aurora-motion/scripts/transitionend-probe.mjs
+```
+
+The edit itself goes through /luci-change.
diff --git a/luci-theme-aurora/.claude/skills/aurora-motion/references/luci-hooks.md b/luci-theme-aurora/.claude/skills/aurora-motion/references/luci-hooks.md
new file mode 100644
index 000000000..353507ebd
--- /dev/null
+++ b/luci-theme-aurora/.claude/skills/aurora-motion/references/luci-hooks.md
@@ -0,0 +1,56 @@
+# Evidence for the state table
+
+luci-base line numbers are from openwrt/luci master (d19bf1358f, 2026-09-14),
+through `$LUCI_SRC` (see luci-knowledge). Router line numbers are from
+`@eamonxg/luci-theme-devkit` 0.3.1, `runtime/router.js`. Re-check them after
+a version bump.
+
+## Hooks luci-base emits
+
+| State | Source | What happens |
+|---|---|---|
+| Modal open / close | `ui.js:4224`, `ui.js:4242` | `showModal` adds `body.modal-overlay-active`. `hideModal` only removes that class, so there is no exit hook. `#modal_overlay` is `hidden` until the class is present (`_modal.css`). |
+| Notification | `ui.js:4359–4390`, `ui.js:4440` | `addNotification` creates `.alert-message.fade-in`. Dismiss adds `.fade-out`, and the node is removed on its `transitionend` (`ui.js:4364`). The time-limited variant adds `.fade-out` on a timer. |
+| Dropdown | `ui.js:1300–1306`, `1390–1395`, `1416–1423` | Opening sets `[open]`, and the focus layer gets `.cbi-dropdown-open`. Focus moves into the list only on `transitionend` of the `ul`. |
+| Dropdown keys | `ui.js:1881–1930` | ArrowUp/ArrowDown act only when a `li` or the `ul` already has focus. |
+| Tabs | `ui.js:4728`, `4882–4887` | Panes get `data-tab-active="true"/"false"`, and the pane fires the `cbi-tab-active` event. In this theme, inactive panes are `invisible h-0` (`_segmented.css`), not `display:none`. |
+| Busy button | `ui.js:5683` | Adds `.spinning` while a handler's promise is pending. |
+| Drag | `ui.js:2442–2449` | Adds `.dragging` on `dragstart` and removes it on `dragend` (`.cbi-dynlist`). |
+| Invalid input | `ui.js:2011` and the validators | `.cbi-input-invalid`. |
+| Header indicator | `ui.js:4492` | `#indicators span[data-indicator][data-style=active\|inactive]`. |
+| First render | `luci.js:2771` | `luci-loaded` fires after `initDOM()` and `Poll.start()`. |
+| Poll | `luci.js:1093`, `luci.js:1165` | Ticks once a second and runs each callback every `pollinterval` seconds: 5 by default (`/etc/config/luci`; luci-base `header.ut:20`). Clicking the `poll-status` indicator pauses it (`luci.js:2742–2750`). |
+
+For reference, bootstrap animates `max-height` over 125 ms on the dropdown
+`ul` (`themes/luci-theme-bootstrap/.../cascade.css:1738`). That transition
+is what makes the focus hand-off work there.
+
+## Hooks the router emits
+
+| Hook | Source | What happens |
+|---|---|---|
+| `.view-staging`, `#view.view-leaving` | `router.js:832–848` (`stage()`) | The incoming view renders off-screen, and the outgoing one is marked. |
+| `document.startViewTransition(swap)` | `router.js:872` (`commit()`) | Skipped when the API is missing or reduced motion is set. |
+| `luci-navigate` / `luci-navigated` | `router.js:733` / `router.js:756` | Document events; `detail` is the route. Neither fires on MPA browsers, so any motion must also work after a full page load. |
+| Departed view | `router.js:852–861` | The old view is cleared through `dom.content()` and removed synchronously, so it has no exit animation. |
+
+## Traps: how they were reproduced
+
+`scripts/transitionend-probe.mjs` logs in, renders a stock `ui.Dropdown` and
+calls `ui.addNotification` on a real page. It runs with and without
+`prefers-reduced-motion` and can serve any build as main.css (`MAIN_CSS`).
+
+| main.css | Dropdown after ArrowDown ×2 | Notification after Dismiss |
+|---|---|---|
+| HEAD (2026-09-16) | focus stays on the dropdown | still in the DOM, 84 px tall |
+| HEAD + reduced motion | same | same |
+| + `.fade-in` fill `backwards` + dropdown `ul` opacity transition | focus moves `li a` → `li b` | removed |
+| + the above + reduced motion at `duration 1ms` instead of `transition: none` | `li a` → `li b` | removed |
+
+The cause of Trap 1: Chrome does not start a transition on a property that
+a filling CSS animation still holds (`.fade-in` uses `… both`). Removing
+`.fade-in` before dismissing also made the removal work.
+
+Upstream direction (decision doc only, through /upstream-rfc): luci-base
+should not depend on `transitionend` alone, and should fall back when the
+computed transition duration is `0s`.
diff --git a/luci-theme-aurora/.claude/skills/aurora-motion/scripts/transitionend-probe.mjs b/luci-theme-aurora/.claude/skills/aurora-motion/scripts/transitionend-probe.mjs
new file mode 100644
index 000000000..567ae55f9
--- /dev/null
+++ b/luci-theme-aurora/.claude/skills/aurora-motion/scripts/transitionend-probe.mjs
@@ -0,0 +1,121 @@
+#!/usr/bin/env node
+/**
+ * transitionend-probe.mjs — luci-base removes a dismissed notification and
+ * moves dropdown focus into the list only on `transitionend`, so both break
+ * silently when the theme has no running transition there. Checks both on a
+ * real device, with and without prefers-reduced-motion. Writes nothing on
+ * the device. Raw CDP, no npm deps, node >= 22. Exit 1 if a contract fails.
+ *
+ * env:
+ * HOST http://192.168.1.1 (default: VITE_OPENWRT_HOST from .dev/.env)
+ * PAGE path after /cgi-bin/luci/ (default admin/system/system)
+ * MAIN_CSS file served as the theme's main.css (default: the device's own),
+ * e.g. htdocs/luci-static/aurora/main.css after `pnpm build`
+ * USER_NAME/PASS login (default root / empty)
+ * CHROME_BIN
+ */
+import { spawn } from "node:child_process";
+import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
+import { tmpdir } from "node:os";
+import { join, resolve } from "node:path";
+import { setTimeout as sleep } from "node:timers/promises";
+
+const root = resolve(import.meta.dirname, "../../../..");
+const envFile = join(root, ".dev/.env");
+const dotenv = existsSync(envFile)
+ ? Object.fromEntries(readFileSync(envFile, "utf8").split("\n").filter((l) => /^[A-Z_]+=/.test(l)).map((l) => l.split("=", 2)))
+ : {};
+const HOST = (process.env.HOST ?? (dotenv.VITE_OPENWRT_HOST ? `http://${dotenv.VITE_OPENWRT_HOST}` : "http://192.168.1.1")).replace(/\/+$/, "");
+const PAGE = process.env.PAGE ?? "admin/system/system";
+const MAIN_CSS = process.env.MAIN_CSS ? readFileSync(resolve(process.env.MAIN_CSS)) : null;
+const CHROME = process.env.CHROME_BIN ?? (process.platform === "darwin" ? "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" : "google-chrome");
+
+const login = await fetch(`${HOST}/cgi-bin/luci/`, {
+ method: "POST",
+ body: new URLSearchParams({ luci_username: process.env.USER_NAME ?? "root", luci_password: process.env.PASS ?? "" }),
+ redirect: "manual",
+});
+const cookie = (login.headers.get("set-cookie") ?? "").match(/(sysauth[^=]*)=([^;]+)/);
+if (!cookie) throw new Error(`login failed (${login.status})`);
+
+const profile = mkdtempSync(join(tmpdir(), "cdp-transitionend-"));
+const chrome = spawn(CHROME, ["--headless=new", "--remote-debugging-port=0", `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "about:blank"], { stdio: "ignore" });
+let port = null;
+for (let i = 0; i < 100 && !port; i++) {
+ await sleep(100);
+ const f = join(profile, "DevToolsActivePort");
+ if (existsSync(f)) port = +readFileSync(f, "utf8").split("\n")[0];
+}
+if (!port) throw new Error("chrome: no DevToolsActivePort");
+const ws = new WebSocket((await (await fetch(`http://127.0.0.1:${port}/json/version`)).json()).webSocketDebuggerUrl);
+await new Promise((res, rej) => { ws.addEventListener("open", res, { once: true }); ws.addEventListener("error", () => rej(new Error("CDP connect failed")), { once: true }); });
+let mid = 0; const pending = new Map(); const handlers = new Set();
+ws.addEventListener("message", (ev) => {
+ const m = JSON.parse(ev.data);
+ if (m.id && pending.has(m.id)) { const { res, rej } = pending.get(m.id); pending.delete(m.id); m.error ? rej(new Error(m.error.message)) : res(m.result); }
+ else for (const h of handlers) h(m);
+});
+const send = (method, params = {}, sessionId) => new Promise((res, rej) => { const id = ++mid; pending.set(id, { res, rej }); ws.send(JSON.stringify({ id, method, params, sessionId })); });
+
+async function probe(reduce) {
+ const { targetId } = await send("Target.createTarget", { url: "about:blank" });
+ const { sessionId: s } = await send("Target.attachToTarget", { targetId, flatten: true });
+ const ev = async (expression) => (await send("Runtime.evaluate", { expression, awaitPromise: true, returnByValue: true }, s)).result.value;
+ await send("Page.enable", {}, s);
+ await send("Network.setCookie", { name: cookie[1], value: cookie[2], domain: new URL(HOST).hostname, path: "/" }, s);
+ await send("Emulation.setDeviceMetricsOverride", { width: 1280, height: 900, deviceScaleFactor: 1, mobile: false }, s);
+ await send("Emulation.setEmulatedMedia", { features: [{ name: "prefers-reduced-motion", value: reduce ? "reduce" : "no-preference" }] }, s);
+ if (MAIN_CSS) {
+ await send("Fetch.enable", { patterns: [{ urlPattern: "*/luci-static/aurora/main.css*", requestStage: "Request" }] }, s);
+ handlers.add((m) => {
+ if (m.sessionId !== s || m.method !== "Fetch.requestPaused") return;
+ send("Fetch.fulfillRequest", { requestId: m.params.requestId, responseCode: 200, responseHeaders: [{ name: "Content-Type", value: "text/css" }, { name: "Cache-Control", value: "no-store" }], body: MAIN_CSS.toString("base64") }, s);
+ });
+ }
+ await send("Page.navigate", { url: `${HOST}/cgi-bin/luci/${PAGE}` }, s);
+ for (let i = 0; i < 80; i++) {
+ await sleep(250);
+ if (await ev(`!!(window.L?.loaded && document.querySelector('#view') && !document.querySelector('#view > .spinning'))`)) break;
+ }
+
+ // A stock single-select ui.Dropdown: open with ArrowDown, then ArrowDown again.
+ await ev(`L.require('ui').then(ui => {
+ const el = new ui.Dropdown('a', { a: 'A', b: 'B', c: 'C' }, {}).render();
+ el.id = 'probe-dd';
+ document.querySelector('#view').prepend(el);
+ el.focus();
+ })`);
+ const key = async () => {
+ for (const type of ["rawKeyDown", "keyUp"]) await send("Input.dispatchKeyEvent", { type, key: "ArrowDown", code: "ArrowDown", windowsVirtualKeyCode: 40, nativeVirtualKeyCode: 40 }, s);
+ await sleep(500);
+ };
+ const focused = `(document.activeElement.closest('#probe-dd li')?.dataset.value ?? 'none')`;
+ await key(); const first = await ev(focused);
+ await key(); const second = await ev(focused);
+ await ev(`document.querySelector('#probe-dd').remove()`);
+
+ // ui.addNotification, dismissed after its entrance has finished.
+ const note = await ev(`L.require('ui').then(ui => new Promise(res => {
+ const n = ui.addNotification(null, E('p', 'probe'), 'info');
+ setTimeout(() => {
+ n.querySelector('button.btn').click();
+ setTimeout(() => res({ removed: !n.isConnected, gapPx: n.isConnected ? n.offsetHeight : 0 }), 800);
+ }, 400);
+ }))`);
+ await send("Target.closeTarget", { targetId });
+
+ const dropdownOk = first === "a" && second === "b";
+ console.log(JSON.stringify({ reducedMotion: reduce, dropdownFocus: `${first} -> ${second}`, dropdownOk, notification: note, notificationOk: note.removed }));
+ return dropdownOk && note.removed;
+}
+
+let ok = true;
+try {
+ for (const reduce of [false, true]) ok = (await probe(reduce)) && ok;
+} finally {
+ chrome.kill();
+ ws.close();
+ await sleep(500);
+ rmSync(profile, { recursive: true, force: true, maxRetries: 5 });
+}
+process.exit(ok ? 0 : 1);
diff --git a/luci-theme-aurora/.claude/skills/aurora-performance/references/aurora-budgets.md b/luci-theme-aurora/.claude/skills/aurora-performance/references/aurora-budgets.md
index 8d67ce374..332ae02a8 100644
--- a/luci-theme-aurora/.claude/skills/aurora-performance/references/aurora-budgets.md
+++ b/luci-theme-aurora/.claude/skills/aurora-performance/references/aurora-budgets.md
@@ -11,13 +11,14 @@ address, so they stay local).
| Metric | Budget | Track | Source |
|---|---|---|---|
-| main.css (identity/raw) | ≤ 193 KB | size | production build, 2026-08 (191,899 B; +~2 KB custom-background mode, +~0.5 KB router progress bar / live region; the bar is now Turbo-shaped — width/opacity only, inserted per navigation) |
+| main.css (identity/raw) | ≤ 193 KB | size | production build, 2026-09-16 (189,650 B; −0.77 KB sidebar push as two transitions instead of run keyframes; +42 B replayed nav skips the fade; +~2 KB custom-background mode, +~0.5 KB router progress bar / live region; the bar is now Turbo-shaped — width/opacity only, inserted per navigation; −1.24 KB unblurred mega-menu curtain, delayed visibility, instant nav-pill colours) |
| login.css (identity/raw) | ≤ 12 KB | size | production build, 2026-07 (10,935 B, token-pruned) |
-| menu-aurora.js (identity/raw) | ≤ 22 KB | size | production build, 2026-08 (21,809 B; +0.8 KB palette recents: record on pick, pure-LRU browse order, storage validation; +0.2 KB ">" logout command) |
+| menu-aurora.js (identity/raw) | ≤ 22 KB | size | production build, 2026-09-16 (21,362 B; −0.24 KB sidebar toggle is a class flip; −0.09 KB pre-paint nav cache, its crumb renderer moved into header.ut (the replay itself is per-response HTML, see below); +0.8 KB palette recents: record on pick, pure-LRU browse order, storage validation; +0.2 KB ">" logout command) |
| router-aurora.js (identity/raw, Navigation-API browsers only) | ≤ 15 KB | size | production build, 2026-08 (14,844 B: template shells fetched, per-render listener teardown, timeout-as-failure, expiry gate, readonly folding, node css, wildcard actions, trickling progress bar, same-URL reload rule, visibility gate, contract check) |
| Default logo (identity/raw) | ≤ 16 KB | size | production build, 2026-07 (15,057 B) |
-| Core admin cold theme assets (identity/raw) | ≤ 267.5 KB | size | main CSS + menu JS + router JS + default font + logo, 2026-08 (≈267.2 KB; the router is a one-time cost that removes per-click dispatcher work; +1.0 KB palette recents and logout command) |
+| Core admin cold theme assets (identity/raw) | ≤ 267.5 KB | size | main CSS + menu JS + router JS + default font + logo, 2026-09-16 (265,420 B; −1.1 KB sidebar push and nav cache; the router is a one-time cost that removes per-click dispatcher work; +1.0 KB palette recents and logout command; −1.24 KB mega-menu curtain) |
| Login cold theme assets, excluding configured background (identity/raw) | ≤ 55 KB | size | login CSS + default font + logo, 2026-07 (49,572 B) |
+| Admin HTML inline scripts added per full load (identity, never cached) | — | size | header.ut, 2026-09-16: pre-paint nav replay ≈ +0.5 KB (mega-menu/dropdown) / ≈ +1.9 KB (sidebar, with the shared crumb renderer); login page +0.07 KB. Template shells the router fetches carry it too. |
| Blocking requests before first paint | ≤ 4 | count | current waterfall |
| Repeat-visit asset requests | ≈ 0 | count | target state; package-built CSS/JS URLs are versioned, but long-lived cache headers still need live verification |
| TTFB, login page (device) | proposed: ≤ 130 ms | latency | local device baseline, 2026-07 |
@@ -42,6 +43,10 @@ Budget revisions require a new baseline entry under `../baselines/`.
- Package-root `.DS_Store` metadata removed and covered by a regression test.
- login.css pruned to its reachable custom properties at build time (the
shared token sheet is admin-sized; the login page consumes a fraction).
+- Mega-menu curtain (2026-09-16): no backdrop blur, `visibility` delayed
+ instead of tweened, instant nav-pill colours; main.css −1,244 B. Device
+ trace, 4× CPU, median of 3: repaints 287 → 112, main-thread animations
+ 33 → 8. With `--disable-gpu`, dropped frames per open went 3–5 → 0.
- Client-side router (`router-aurora.js`, `.dev/docs/router.md`,
2026-08-16): view/alias/firstchild/overview navigations become
diff --git a/luci-theme-aurora/.claude/skills/luci-change/SKILL.md b/luci-theme-aurora/.claude/skills/luci-change/SKILL.md
index a21844a1d..6ffda10e1 100644
--- a/luci-theme-aurora/.claude/skills/luci-change/SKILL.md
+++ b/luci-theme-aurora/.claude/skills/luci-change/SKILL.md
@@ -20,7 +20,10 @@ workflow. No edit to a shipped or source path happens before gate 1, and the
cover them. If the request names a page, a package, a DOM element or
shows a page screenshot, load `luci-dom-compat` and complete its steps
1–2 (locate the page, read `.dev/compat/pages/` for the files and
- selectors about to change) before planning.
+ selectors about to change) before planning. If the request adds or
+ changes motion (transition, animation, View Transition), load
+ `aurora-motion`; the plan names the state, its effect from the table
+ and the measured main.css byte delta.
2. **Plan.** Call `EnterPlanMode`. The plan states: files to change; the
approach in ≤ 10 lines; budget impact (bytes per `tests/build-performance.test.js`,
per-request ubus/uci/fs calls, dispatches per navigation); floor it
diff --git a/luci-theme-aurora/.claude/skills/luci-knowledge/references/aurora-contract.md b/luci-theme-aurora/.claude/skills/luci-knowledge/references/aurora-contract.md
index 040e90818..ef92aa710 100644
--- a/luci-theme-aurora/.claude/skills/luci-knowledge/references/aurora-contract.md
+++ b/luci-theme-aurora/.claude/skills/luci-knowledge/references/aurora-contract.md
@@ -23,11 +23,21 @@ strings render untranslated (see `.dev/decisions/translations-catalog-caching.md
## DOM hooks shared by templates, CSS and JS
`body[data-page]` (request segments joined by `-`), `body[data-nav-type]`
(`mega-menu|dropdown|sidebar`), `body[data-asset-version]`, `body[data-patches]`,
-`body[data-bg]`; `#maincontent[tabindex=-1]`, `#tabmenu`, `#topmenu`, `#sidebar-list`,
+`body[data-bg]`, `body[data-nav-stamp]`; `#maincontent[tabindex=-1]`, `#tabmenu`, `#topmenu`, `#sidebar-list`,
`#sidebar-footer`, `#header-crumb`, `#mobile-nav-list`, `#mobile-nav-footer-action`,
`#indicators`, `#modemenu`, `#cmdk-trigger`, `.desktop-menu-container > .desktop-menu-sheet
> .desktop-menu-canvas`, `.desktop-menu-board` (template cloned per panel),
-`.theme-switcher .theme-option[data-theme]`. Renaming any of these is a
+`.theme-switcher .theme-option[data-theme]`, `#sidebar-list[data-active-path]`
+(dispatch segments 1–2), `[data-restored]` on replayed nav surfaces.
+Pre-paint nav: `menu-aurora.js` `cacheNav()` writes `sessionStorage["aurora.nav"]`
+= `[body[data-nav-stamp], {id: innerHTML}]` after render (stamp: nav type, lang,
+user, version); header.ut replays it after the nav markup, inert, only while the
+stamp matches and luci-base's `luci-session-store` still holds `menu` (sidebar:
+recomputes active marks, then the global `auroraCrumb()`, which `menu-aurora.js`
+also calls); `menu-aurora.js` lifts `inert` once `ui.menu.load()` settles; the
+login page clears the cache. A collapsed sidebar is restored first in `