diff --git a/gately/Makefile b/gately/Makefile index 99fcb8b28..3a9c6e88e 100644 --- a/gately/Makefile +++ b/gately/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gately -PKG_VERSION:=0.6.1 -PKG_RELEASE:=18 +PKG_VERSION:=0.6.1.1 +PKG_RELEASE:=19 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/wangwanjie/gately/tar.gz/v$(PKG_VERSION)? diff --git a/headscale/Makefile b/headscale/Makefile index 3bc8bf107..f70872b81 100644 --- a/headscale/Makefile +++ b/headscale/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=headscale -PKG_VERSION:=0.29.6 -PKG_RELEASE:=11 +PKG_VERSION:=0.29.7 +PKG_RELEASE:=12 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/juanfont/headscale/tar.gz/v$(PKG_VERSION)? diff --git a/luci-app-dockerman/htdocs/luci-static/resources/view/dockerman/overview.js b/luci-app-dockerman/htdocs/luci-static/resources/view/dockerman/overview.js index 8c25c1792..775f50394 100644 --- a/luci-app-dockerman/htdocs/luci-static/resources/view/dockerman/overview.js +++ b/luci-app-dockerman/htdocs/luci-static/resources/view/dockerman/overview.js @@ -110,9 +110,30 @@ return dm2.dv.extend({ isLocal = true; if (info_response?.code !== 200) { - return E('div', {}, [ info_response?.body?.message ]); + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, _('Docker Daemon Status')), + E('div', { 'class': 'alert-message warning', style: 'margin-bottom: 15px;' }, + info_response?.body?.message || _('Failed to connect to Docker daemon.') + ), + E('p', {}, _('The Docker daemon appears to be stopped. You can attempt to start it below:')), + E('div', { style: 'display: flex; gap: 5px; flex-wrap: wrap; margin-top: 10px;' }, [ + E('button', { + 'class': 'btn cbi-button-action positive', + 'click': () => { + this.handleAction('dockerd', 'start').then((success) => { + if (success) { + setTimeout(() => location.reload(), 1500); + } + }); + } + }, [_('Start')]), + E('button', { + 'class': 'btn cbi-button-action neutral', + 'click': () => location.reload() + }, [_('Refresh')]) + ]) + ]); } - this.parseHeaders(version_response.headers, version_headers); this.parseBody(version_response.body, version_body); this.parseBody(info_response.body, info_body); diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js index be949f0c8..b5df3718b 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js @@ -1420,6 +1420,84 @@ function getDashURL(isRunning) { String.format(dashrepos_urlparams[repo] || '', host, port, secret) } +function renderHy2Realm(s, uciconfig) { + let o; + + o = s.taboption('field_general', form.Flag, 'hysteria2_realm', _('Realm')); + o.default = o.disabled; + o.depends('type', 'hysteria2'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_server_url', _('Rendezvous server')); + o.placeholder = 'https://realm.hy2.io'; + o.rmempty = false; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_token', _('Pre-shared key of rendezvous server')); + o.placeholder = 'public'; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_id', _('Realm ID')); + o.placeholder = 'my-cabin-1f3a8c2e9b'; + o.rmempty = false; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.DynamicList, 'hysteria2_realm_stun_servers', _('STUN servers')); + o.datatype = 'hostport'; + o.default = ['stun.nextcloud.com:3478','stun.sip.us:3478','global.stun.twilio.com:3478']; + o.rmempty = false; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + // @ 下面支持填写针对server-url的TLS配置(sni, skip-cert-verify, name-cert-verify, fingerprint, certificate, private-key, alpn) + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_sni', _('TLS SNI'), + _('Hostname that the client attempts to connect to at the start of the TLS handshake process.')); + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.DynamicList, 'hysteria2_realm_alpn', _('TLS ALPN'), + _('List of supported application level protocols, in order of preference.')); + o.default = ['h2', 'http/1.1']; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_fingerprint', _('Cert fingerprint'), + _('Certificate fingerprint. Used to implement SSL Pinning and prevent MitM.')); + o.validate = validateSha256Key || hm.validateSha256Key; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_name_cert_verify', _('Override cert DNSName'), + _('Used to verify the hostname on the returned certificates.')); + o.datatype = 'hostname'; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Flag, 'hysteria2_realm_skip_cert_verify', _('Skip cert verify'), + _('Donot verifying server certificate.') + + '
' + + _('This is DANGEROUS, your traffic is almost like PLAIN TEXT! Use at your own risk!')); + o.default = o.disabled; + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_cert_path', _('Certificate path') + _(' (mTLS)'), + _('The %s public key, in PEM format.').format(_('Client'))); + o.value('/etc/fchomo/certs/client_publickey.pem'); + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + + o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_key_path', _('Key path') + _(' (mTLS)'), + _('The %s private key, in PEM format.').format(_('Client'))); + o.value('/etc/fchomo/certs/client_privatekey.pem'); + o.depends({hysteria2_realm: '1', hysteria2_realm_cert_path: /.+/}); + o.modalonly = true; +} + function renderResDownload(section_id) { const section_type = this.section.sectiontype; const type = uci.get(this.config, section_id, 'type'); @@ -1738,6 +1816,14 @@ function validateBase64Key(length, section_id, value) { return true; } +function validateSha256Key(section_id, value) { + if (!value) + return true; + if (!((value.length === 64) && (value.match(/^[0-9a-fA-F]+$/)))) + return _('Expecting: %s').format(_('valid SHA256 string with %d characters').format(64)); + return true; +} + function validateMTLSClientAuth(type_option, section_id, value) { // If `client-auth-type` is set to "verify-if-given" or "require-and-verify", `client-auth-cert` must not be empty. const auth_type = this.section.getOption(type_option).formvalue(section_id); @@ -2021,6 +2107,7 @@ return baseclass.extend({ renderStatus, updateStatus, getDashURL, + renderHy2Realm, renderResDownload, renderResLink, handleGenKey, @@ -2037,9 +2124,9 @@ return baseclass.extend({ validateJson, validateUUID, validateUrl, - // validate with bind this validateHexstr, validateBase64Key, + validateSha256Key, validateMTLSClientAuth, validatePresetIDs, validateShadowsocksPassword, diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js index 81612da43..ffad73724 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js @@ -204,7 +204,7 @@ function renderListeners(s, uciconfig, isClient) { o.modalonly = true; o = s.taboption('field_general', form.Value, 'mieru_tcp_idle_timeout', _('TCP idle timeout'), - _('In seconds.'), _('Minimum value is $s.').format('60')); + _('In seconds.') + ' ' + _('Minimum value is $s.').format('60')); o.placeholder = '1800'; o.validate = hm.validateTimeDuration; o.depends('type', 'mieru'); @@ -1003,36 +1003,24 @@ function renderListeners(s, uciconfig, isClient) { // @xhttp-config其他的配置 /* Hysteria2 Realm fields */ - o = s.taboption('field_general', form.Flag, 'hysteria2_realm', _('Realm')); - o.default = o.disabled; - o.depends('type', 'hysteria2'); - o.modalonly = true; + hm.renderHy2Realm(s, uciconfig); - o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_server_url', _('Rendezvous server')); - o.placeholder = 'https://realm.hy2.io'; - o.rmempty = false; - o.depends('hysteria2_realm', '1'); - o.modalonly = true; - - o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_token', _('Pre-shared key of rendezvous server')); - o.placeholder = 'public'; - o.depends('hysteria2_realm', '1'); - o.modalonly = true; - - o = s.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_id', _('Realm ID')); - o.placeholder = 'my-cabin-1f3a8c2e9b'; - o.rmempty = false; - o.depends('hysteria2_realm', '1'); - o.modalonly = true; - - o = s.taboption('field_hysteria2_realm', form.DynamicList, 'hysteria2_realm_stun_servers', _('STUN servers')); - o.datatype = 'hostport'; - o.default = ['stun.nextcloud.com:3478','stun.sip.us:3478','global.stun.twilio.com:3478']; - o.rmempty = false; - o.depends('hysteria2_realm', '1'); - o.modalonly = true; - - // @ 下面支持填写针对server-url的TLS配置(sni, skip-cert-verify, name-cert-verify, fingerprint, certificate, private-key, alpn) + if (isClient) { + o = s.taboption('field_hysteria2_realm', form.ListValue, 'hysteria2_realm_proxy', _('Proxy group'), + _('The proxy used to connect to the rendezvous server.')); + o.default = hm.preset_outbound.direct[0][0]; + hm.preset_outbound.direct.forEach((res) => { + o.value.apply(o, res); + }) + o.load = function(section_id) { + return hm.loadLabel.call(this, [ + ...hm.preset_outbound.direct, + ...hm.loadLabelValues(this.config, 'proxy_group') + ], section_id); + } + o.depends('hysteria2_realm', '1'); + o.modalonly = true; + } /* TLS fields */ o = s.taboption('field_general', form.Flag, 'tls', _('TLS')); 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 13ec8e395..8f3833ee0 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 @@ -1423,36 +1423,7 @@ return view.extend({ // @ 下面支持填写针对download-settings的上下行分离配置 /* Hysteria2 Realm fields */ - so = ss.taboption('field_general', form.Flag, 'hysteria2_realm', _('Realm')); - so.default = so.disabled; - so.depends('type', 'hysteria2'); - so.modalonly = true; - - so = ss.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_server_url', _('Rendezvous server')); - so.placeholder = 'https://realm.hy2.io'; - so.rmempty = false; - so.depends('hysteria2_realm', '1'); - so.modalonly = true; - - so = ss.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_token', _('Pre-shared key of rendezvous server')); - so.placeholder = 'public'; - so.depends('hysteria2_realm', '1'); - so.modalonly = true; - - so = ss.taboption('field_hysteria2_realm', form.Value, 'hysteria2_realm_id', _('Realm ID')); - so.placeholder = 'my-cabin-1f3a8c2e9b'; - so.rmempty = false; - so.depends('hysteria2_realm', '1'); - so.modalonly = true; - - so = ss.taboption('field_hysteria2_realm', form.DynamicList, 'hysteria2_realm_stun_servers', _('STUN servers')); - so.datatype = 'hostport'; - so.default = ['stun.nextcloud.com:3478','stun.sip.us:3478','global.stun.twilio.com:3478']; - so.rmempty = false; - so.depends('hysteria2_realm', '1'); - so.modalonly = true; - - // @ 下面支持填写针对server-url的TLS配置(sni, skip-cert-verify, name-cert-verify, fingerprint, certificate, private-key, alpn) + hm.renderHy2Realm(ss, data[0]); /* TLS fields */ so = ss.taboption('field_general', form.Flag, 'tls', _('TLS')); @@ -1491,7 +1462,7 @@ return view.extend({ so.validate = function(section_id, value) { const type = this.section.getOption('type').formvalue(section_id); //const plugin_type = this.section.getOption('plugin_type').formvalue(section_id); - let tls_alpn = this.section.getUIElement(section_id, 'tls_alpn'); + let tls_alpn = this.getUIElement(section_id); // Default alpn if (!`${tls_alpn.getValue()}`) { @@ -1535,14 +1506,7 @@ return view.extend({ so = ss.taboption('field_tls', form.Value, 'tls_fingerprint', _('Cert fingerprint'), _('Certificate fingerprint. Used to implement SSL Pinning and prevent MitM.')); - so.validate = function(section_id, value) { - if (!value) - return true; - if (!((value.length === 64) && (value.match(/^[0-9a-fA-F]+$/)))) - return _('Expecting: %s').format(_('valid SHA256 string with %d characters').format(64)); - - return true; - } + so.validate = hm.validateSha256Key; so.depends({tls: '1', type: /^(http|socks5|vmess|vless|trojan|hysteria|hysteria2)$/}); so.modalonly = true; diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot index fca3c0fb9..a1ded7eaa 100644 --- a/luci-app-fchomo/po/templates/fchomo.pot +++ b/luci-app-fchomo/po/templates/fchomo.pot @@ -5,8 +5,8 @@ msgstr "Content-Type: text/plain; charset=UTF-8" msgid "%s Hostname" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "%s UDP port. 0 selects an available port." msgstr "" @@ -33,15 +33,17 @@ msgstr "" msgid "(Imported)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 #: htdocs/luci-static/resources/view/fchomo/global.js:572 #: htdocs/luci-static/resources/view/fchomo/global.js:578 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "(mTLS)" msgstr "" @@ -63,10 +65,10 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1113 #: htdocs/luci-static/resources/view/fchomo/client.js:1369 #: htdocs/luci-static/resources/view/fchomo/node.js:305 -#: htdocs/luci-static/resources/view/fchomo/node.js:2771 -#: htdocs/luci-static/resources/view/fchomo/node.js:2782 -#: htdocs/luci-static/resources/view/fchomo/node.js:2801 -#: htdocs/luci-static/resources/view/fchomo/node.js:2812 +#: htdocs/luci-static/resources/view/fchomo/node.js:2735 +#: htdocs/luci-static/resources/view/fchomo/node.js:2746 +#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2776 msgid "-- Please choose --" msgstr "" @@ -95,7 +97,7 @@ msgstr "" msgid "2022-blake3-chacha20-poly1305" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1733 +#: htdocs/luci-static/resources/view/fchomo/node.js:1697 msgid "-1 disables it." msgstr "" @@ -103,11 +105,11 @@ msgstr "" msgid "0 or 1 only." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1150 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 -#: htdocs/luci-static/resources/fchomo/listeners.js:1190 -#: htdocs/luci-static/resources/view/fchomo/node.js:1570 -#: htdocs/luci-static/resources/view/fchomo/node.js:1584 +#: htdocs/luci-static/resources/fchomo/listeners.js:1138 +#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/view/fchomo/node.js:1534 +#: htdocs/luci-static/resources/view/fchomo/node.js:1548 msgid "Save your configuration before uploading files!" msgstr "" @@ -209,11 +211,11 @@ msgstr "" msgid "Add a inbound" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 msgid "Add a provider" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Add a proxy chain" msgstr "" @@ -237,11 +239,11 @@ msgstr "" msgid "Add a sub rule" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2529 +#: htdocs/luci-static/resources/view/fchomo/node.js:2493 msgid "Add prefix" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2533 +#: htdocs/luci-static/resources/view/fchomo/node.js:2497 msgid "Add suffix" msgstr "" @@ -296,7 +298,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1073 +#: htdocs/luci-static/resources/fchomo/listeners.js:1061 msgid "Allow insecure connections" msgstr "" @@ -360,22 +362,22 @@ msgid "Authentication key" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:376 -#: htdocs/luci-static/resources/fchomo/listeners.js:1365 +#: htdocs/luci-static/resources/fchomo/listeners.js:1353 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: 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:2038 +#: htdocs/luci-static/resources/view/fchomo/node.js:2002 msgid "Auto" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 msgid "Auto Enable when %s is empty." msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:139 -#: htdocs/luci-static/resources/view/fchomo/node.js:1654 +#: htdocs/luci-static/resources/view/fchomo/node.js:1618 msgid "Auto configure firewall" msgstr "" @@ -430,13 +432,13 @@ msgid "Binary mrs" msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:766 -#: htdocs/luci-static/resources/view/fchomo/node.js:2199 -#: htdocs/luci-static/resources/view/fchomo/node.js:2618 +#: htdocs/luci-static/resources/view/fchomo/node.js:2163 +#: htdocs/luci-static/resources/view/fchomo/node.js:2582 msgid "Bind interface" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2200 -#: htdocs/luci-static/resources/view/fchomo/node.js:2619 +#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "Bind outbound interface.
" msgstr "" @@ -505,17 +507,20 @@ msgstr "" msgid "Cancel" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/fchomo.js:1468 +#: htdocs/luci-static/resources/view/fchomo/node.js:1507 msgid "Cert fingerprint" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1537 +#: htdocs/luci-static/resources/fchomo.js:1469 +#: htdocs/luci-static/resources/view/fchomo/node.js:1508 msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1127 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo/listeners.js:1115 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 msgid "Certificate path" msgstr "" @@ -573,25 +578,27 @@ msgid "" "to download the latest initial package." msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1495 #: htdocs/luci-static/resources/fchomo/listeners.js:869 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 #: htdocs/luci-static/resources/view/fchomo/node.js:1392 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:22 msgid "Client" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 msgid "Client Auth Certificate path" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 msgid "Client Auth type" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1609 +#: htdocs/luci-static/resources/view/fchomo/node.js:1573 msgid "Client fingerprint" msgstr "" @@ -615,8 +622,8 @@ msgstr "" msgid "Client status" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "Cloudflare WARP" msgstr "" @@ -629,7 +636,7 @@ msgstr "" msgid "Common ports (bypass P2P traffic)" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1583 +#: htdocs/luci-static/resources/fchomo.js:1661 msgid "Complete" msgstr "" @@ -666,14 +673,14 @@ msgid "Content copied to clipboard!" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:698 -#: htdocs/luci-static/resources/view/fchomo/node.js:2389 -#: htdocs/luci-static/resources/view/fchomo/node.js:2415 +#: htdocs/luci-static/resources/view/fchomo/node.js:2353 +#: htdocs/luci-static/resources/view/fchomo/node.js:2379 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:359 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:385 msgid "Content will not be verified, Please make sure you enter it correctly." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2352 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:358 msgid "Contents" msgstr "" @@ -706,7 +713,7 @@ msgstr "" msgid "Custom Direct List" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2484 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:431 msgid "Custom HTTP header." msgstr "" @@ -744,7 +751,7 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1524 #: htdocs/luci-static/resources/view/fchomo/client.js:1533 #: htdocs/luci-static/resources/view/fchomo/node.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1869 msgid "DNS server" msgstr "" @@ -791,11 +798,11 @@ msgstr "" msgid "Destination addresses allowed to be forwarded via Wireguard." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2768 +#: htdocs/luci-static/resources/view/fchomo/node.js:2732 msgid "Destination provider" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2779 +#: htdocs/luci-static/resources/view/fchomo/node.js:2743 msgid "Destination proxy node" msgstr "" @@ -803,8 +810,8 @@ msgstr "" msgid "Dial fields" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 msgid "Different chain head/tail" msgstr "" @@ -847,7 +854,7 @@ msgstr "" msgid "Disable P2P" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1477 +#: htdocs/luci-static/resources/view/fchomo/node.js:1448 msgid "Disable SNI" msgstr "" @@ -874,31 +881,32 @@ msgstr "" msgid "Domain" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1478 +#: htdocs/luci-static/resources/view/fchomo/node.js:1449 msgid "Donot send server name in ClientHello." msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1481 #: htdocs/luci-static/resources/view/fchomo/client.js:1676 -#: htdocs/luci-static/resources/view/fchomo/node.js:1556 -#: htdocs/luci-static/resources/view/fchomo/node.js:2602 +#: htdocs/luci-static/resources/view/fchomo/node.js:1520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2566 msgid "Donot verifying server certificate." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1417 -#: htdocs/luci-static/resources/view/fchomo/node.js:2176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 +#: htdocs/luci-static/resources/view/fchomo/node.js:2140 msgid "Download bandwidth" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1418 -#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/fchomo/listeners.js:1406 +#: htdocs/luci-static/resources/view/fchomo/node.js:2141 msgid "Download bandwidth in Mbps." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1440 +#: htdocs/luci-static/resources/fchomo.js:1518 msgid "Download failed: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1436 +#: htdocs/luci-static/resources/fchomo.js:1514 msgid "Download successful." msgstr "" @@ -910,16 +918,16 @@ msgstr "" msgid "Dual stack" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1603 +#: htdocs/luci-static/resources/view/fchomo/node.js:1567 msgid "ECH HTTPS record query servername" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 -#: htdocs/luci-static/resources/view/fchomo/node.js:1597 +#: htdocs/luci-static/resources/fchomo/listeners.js:1226 +#: htdocs/luci-static/resources/view/fchomo/node.js:1561 msgid "ECH config" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1197 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 msgid "ECH key" msgstr "" @@ -935,11 +943,11 @@ msgstr "" msgid "ETag support" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2016 +#: htdocs/luci-static/resources/view/fchomo/node.js:1980 msgid "Early Data first packet length limit." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2022 +#: htdocs/luci-static/resources/view/fchomo/node.js:1986 msgid "Early Data header name" msgstr "" @@ -959,7 +967,7 @@ msgstr "" msgid "Edit ruleset" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2386 +#: htdocs/luci-static/resources/view/fchomo/node.js:2350 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:356 msgid "Editer" msgstr "" @@ -983,9 +991,9 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:422 #: htdocs/luci-static/resources/view/fchomo/global.js:712 #: htdocs/luci-static/resources/view/fchomo/node.js:267 -#: htdocs/luci-static/resources/view/fchomo/node.js:2359 -#: htdocs/luci-static/resources/view/fchomo/node.js:2641 -#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2323 +#: htdocs/luci-static/resources/view/fchomo/node.js:2605 +#: htdocs/luci-static/resources/view/fchomo/node.js:2719 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:283 #: htdocs/luci-static/resources/view/fchomo/server.js:49 msgid "Enable" @@ -1008,7 +1016,7 @@ msgid "" "conversion for outbound connections" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1591 +#: htdocs/luci-static/resources/view/fchomo/node.js:1555 msgid "Enable ECH" msgstr "" @@ -1016,13 +1024,13 @@ msgstr "" msgid "Enable MagicDNS" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1405 -#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 +#: htdocs/luci-static/resources/view/fchomo/node.js:2128 msgid "Enable TCP Brutal" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1406 -#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1394 +#: htdocs/luci-static/resources/view/fchomo/node.js:2129 msgid "Enable TCP Brutal congestion control algorithm" msgstr "" @@ -1034,7 +1042,7 @@ msgstr "" msgid "Enable fast open" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2153 +#: htdocs/luci-static/resources/view/fchomo/node.js:2117 msgid "Enable multiplexing only for TCP." msgstr "" @@ -1043,17 +1051,17 @@ msgstr "" msgid "Enable obfuscate for downlink" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1400 -#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2111 msgid "Enable padding" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2158 +#: htdocs/luci-static/resources/view/fchomo/node.js:2122 msgid "Enable statistic" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:1257 -#: htdocs/luci-static/resources/view/fchomo/node.js:2578 +#: htdocs/luci-static/resources/view/fchomo/node.js:2542 msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "" @@ -1096,7 +1104,7 @@ msgid "" "if empty." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2699 +#: htdocs/luci-static/resources/view/fchomo/node.js:2663 msgid "Exclude matched node types." msgstr "" @@ -1107,7 +1115,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1251 -#: htdocs/luci-static/resources/view/fchomo/node.js:2692 +#: htdocs/luci-static/resources/view/fchomo/node.js:2656 msgid "Exclude nodes that meet keywords or regexps." msgstr "" @@ -1124,40 +1132,41 @@ msgid "Expand/Collapse result" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:2677 +#: htdocs/luci-static/resources/view/fchomo/node.js:2641 msgid "Expected HTTP code. 204 will be used if empty." msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1196 -#: htdocs/luci-static/resources/view/fchomo/node.js:2679 +#: htdocs/luci-static/resources/view/fchomo/node.js:2643 msgid "Expected status" msgstr "" #: htdocs/luci-static/resources/fchomo.js:529 #: htdocs/luci-static/resources/fchomo.js:532 #: htdocs/luci-static/resources/fchomo.js:535 -#: htdocs/luci-static/resources/fchomo.js:1600 -#: htdocs/luci-static/resources/fchomo.js:1608 -#: htdocs/luci-static/resources/fchomo.js:1616 -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1642 -#: htdocs/luci-static/resources/fchomo.js:1649 -#: htdocs/luci-static/resources/fchomo.js:1665 -#: htdocs/luci-static/resources/fchomo.js:1674 +#: htdocs/luci-static/resources/fchomo.js:1678 #: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 -#: htdocs/luci-static/resources/fchomo.js:1699 -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1694 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1720 #: htdocs/luci-static/resources/fchomo.js:1727 -#: htdocs/luci-static/resources/fchomo.js:1736 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1783 -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 -#: htdocs/luci-static/resources/fchomo.js:1809 -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1743 +#: htdocs/luci-static/resources/fchomo.js:1752 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 +#: htdocs/luci-static/resources/fchomo.js:1777 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 +#: htdocs/luci-static/resources/fchomo.js:1805 +#: htdocs/luci-static/resources/fchomo.js:1814 +#: htdocs/luci-static/resources/fchomo.js:1823 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1869 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 +#: htdocs/luci-static/resources/fchomo.js:1895 +#: htdocs/luci-static/resources/fchomo.js:1904 #: htdocs/luci-static/resources/fchomo/listeners.js:291 #: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/fchomo/listeners.js:861 @@ -1173,24 +1182,23 @@ msgstr "" #: 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:1415 -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:311 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:325 msgid "Expecting: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Cannot be empty." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 -#: htdocs/luci-static/resources/view/fchomo/node.js:1625 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 msgid "Expecting: Keep empty when %s is enabled." msgstr "" @@ -1201,13 +1209,13 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:699 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 -#: htdocs/luci-static/resources/view/fchomo/node.js:1931 -#: htdocs/luci-static/resources/view/fchomo/node.js:1938 -#: htdocs/luci-static/resources/view/fchomo/node.js:1946 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "Expecting: Only support %s." msgstr "" @@ -1227,19 +1235,19 @@ msgstr "" msgid "Factor" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1541 +#: htdocs/luci-static/resources/fchomo.js:1619 msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo.js:1572 msgid "Failed to generate %s, error: %s." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1918 +#: htdocs/luci-static/resources/fchomo.js:2004 msgid "Failed to upload %s, error: %s." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1937 +#: htdocs/luci-static/resources/fchomo.js:2023 msgid "Failed to upload, error: %s." msgstr "" @@ -1268,7 +1276,7 @@ msgid "Fallback relay" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1246 -#: htdocs/luci-static/resources/view/fchomo/node.js:2686 +#: htdocs/luci-static/resources/view/fchomo/node.js:2650 msgid "Filter nodes that meet keywords or regexps." msgstr "" @@ -1294,7 +1302,7 @@ msgid "Final DNS server (For poisoned domains)" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:138 -#: htdocs/luci-static/resources/view/fchomo/node.js:1653 +#: htdocs/luci-static/resources/view/fchomo/node.js:1617 msgid "Firewall" msgstr "" @@ -1310,9 +1318,9 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1195 -#: htdocs/luci-static/resources/view/fchomo/node.js:2539 -#: htdocs/luci-static/resources/view/fchomo/node.js:2547 -#: htdocs/luci-static/resources/view/fchomo/node.js:2678 +#: htdocs/luci-static/resources/view/fchomo/node.js:2503 +#: htdocs/luci-static/resources/view/fchomo/node.js:2511 +#: htdocs/luci-static/resources/view/fchomo/node.js:2642 msgid "" "For format see %s." @@ -1322,7 +1330,7 @@ msgstr "" msgid "Force" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1900 +#: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Force DNS remote resolution." msgstr "" @@ -1349,7 +1357,7 @@ msgstr "" msgid "FullCombo Shark!" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1971 +#: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "GET" msgstr "" @@ -1369,7 +1377,7 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:119 #: htdocs/luci-static/resources/view/fchomo/client.js:1050 #: htdocs/luci-static/resources/view/fchomo/node.js:252 -#: htdocs/luci-static/resources/view/fchomo/node.js:2349 +#: htdocs/luci-static/resources/view/fchomo/node.js:2313 msgid "General fields" msgstr "" @@ -1385,9 +1393,9 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:313 #: htdocs/luci-static/resources/fchomo/listeners.js:315 #: htdocs/luci-static/resources/fchomo/listeners.js:965 -#: htdocs/luci-static/resources/fchomo/listeners.js:1230 +#: htdocs/luci-static/resources/fchomo/listeners.js:1218 #: htdocs/luci-static/resources/view/fchomo/global.js:616 -#: htdocs/luci-static/resources/view/fchomo/node.js:2507 +#: htdocs/luci-static/resources/view/fchomo/node.js:2471 msgid "Generate" msgstr "" @@ -1458,15 +1466,15 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:228 #: htdocs/luci-static/resources/fchomo/listeners.js:717 #: htdocs/luci-static/resources/view/fchomo/node.js:1307 -#: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1882 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 msgid "HTTP" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:333 -#: htdocs/luci-static/resources/view/fchomo/node.js:1993 -#: htdocs/luci-static/resources/view/fchomo/node.js:2519 +#: htdocs/luci-static/resources/view/fchomo/node.js:1957 +#: htdocs/luci-static/resources/view/fchomo/node.js:2483 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:430 msgid "HTTP header" msgstr "" @@ -1492,7 +1500,7 @@ msgstr "" msgid "HTTP mask: %s" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1970 +#: htdocs/luci-static/resources/view/fchomo/node.js:1934 msgid "HTTP request method" msgstr "" @@ -1511,9 +1519,9 @@ msgid "" "returned if empty." msgstr "" -#: 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:1883 +#: htdocs/luci-static/resources/view/fchomo/node.js:1896 +#: htdocs/luci-static/resources/view/fchomo/node.js:1903 msgid "HTTPUpgrade" msgstr "" @@ -1551,27 +1559,27 @@ msgid "Health check" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:2646 +#: htdocs/luci-static/resources/view/fchomo/node.js:2610 msgid "Health check URL" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1193 -#: htdocs/luci-static/resources/view/fchomo/node.js:2676 +#: htdocs/luci-static/resources/view/fchomo/node.js:2640 msgid "Health check expected status" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:2656 +#: htdocs/luci-static/resources/view/fchomo/node.js:2620 msgid "Health check interval" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1180 -#: htdocs/luci-static/resources/view/fchomo/node.js:2663 +#: htdocs/luci-static/resources/view/fchomo/node.js:2627 msgid "Health check timeout" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1052 -#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2315 msgid "Health fields" msgstr "" @@ -1605,7 +1613,8 @@ msgstr "" msgid "Hostname" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1484 +#: htdocs/luci-static/resources/fchomo.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1455 msgid "" "Hostname that the client attempts to connect to at the start of the TLS " "handshake process." @@ -1648,15 +1657,15 @@ msgstr "" msgid "IP stack" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2213 -#: htdocs/luci-static/resources/view/fchomo/node.js:2632 +#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/view/fchomo/node.js:2596 msgid "IP version" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 msgid "IPv4" msgstr "" @@ -1664,9 +1673,9 @@ msgstr "" msgid "IPv4 only" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "IPv6" msgstr "" @@ -1695,7 +1704,7 @@ msgstr "" msgid "Idle timeout" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1720 msgid "If All ports is selected, uncheck others" msgstr "" @@ -1729,8 +1738,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1812 #: htdocs/luci-static/resources/view/fchomo/client.js:1847 #: htdocs/luci-static/resources/view/fchomo/client.js:1868 -#: htdocs/luci-static/resources/view/fchomo/node.js:2239 -#: htdocs/luci-static/resources/view/fchomo/node.js:2337 +#: htdocs/luci-static/resources/view/fchomo/node.js:2203 +#: htdocs/luci-static/resources/view/fchomo/node.js:2301 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:164 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:260 msgid "Import mihomo config" @@ -1746,8 +1755,8 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:487 #: 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:2584 -#: htdocs/luci-static/resources/view/fchomo/node.js:2590 +#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2554 msgid "In Mbps." msgstr "" @@ -1755,12 +1764,12 @@ msgstr "" msgid "In bps. 0 means no speed limit." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2427 +#: htdocs/luci-static/resources/view/fchomo/node.js:2391 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:403 msgid "In bytes. %s will be used if empty." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1301 +#: htdocs/luci-static/resources/fchomo/listeners.js:1289 #: 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 @@ -1769,11 +1778,11 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1181 #: htdocs/luci-static/resources/view/fchomo/client.js:1227 -#: htdocs/luci-static/resources/view/fchomo/node.js:2664 +#: htdocs/luci-static/resources/view/fchomo/node.js:2628 msgid "In millisecond. %s will be used if empty." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2062 +#: htdocs/luci-static/resources/view/fchomo/node.js:2026 msgid "In milliseconds." msgstr "" @@ -1783,7 +1792,7 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:663 #: 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:2009 +#: htdocs/luci-static/resources/view/fchomo/node.js:1973 msgid "In seconds." msgstr "" @@ -1792,8 +1801,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:451 #: 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:2433 -#: htdocs/luci-static/resources/view/fchomo/node.js:2657 +#: htdocs/luci-static/resources/view/fchomo/node.js:2397 +#: htdocs/luci-static/resources/view/fchomo/node.js:2621 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:409 msgid "In seconds. %s will be used if empty." msgstr "" @@ -1851,7 +1860,7 @@ msgstr "" msgid "Initial congestion window size" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2366 +#: htdocs/luci-static/resources/view/fchomo/node.js:2330 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:299 msgid "Inline" msgstr "" @@ -1867,12 +1876,12 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/fchomo/listeners.js:702 #: htdocs/luci-static/resources/fchomo/listeners.js:707 -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1254 +#: htdocs/luci-static/resources/fchomo/listeners.js:1126 +#: htdocs/luci-static/resources/fchomo/listeners.js:1242 #: htdocs/luci-static/resources/view/fchomo/node.js:1282 #: htdocs/luci-static/resources/view/fchomo/node.js:1292 #: htdocs/luci-static/resources/view/fchomo/node.js:1297 -#: htdocs/luci-static/resources/view/fchomo/node.js:1627 +#: htdocs/luci-static/resources/view/fchomo/node.js:1591 msgid "JLS" msgstr "" @@ -1887,11 +1896,11 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:454 #: 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:2606 +#: htdocs/luci-static/resources/view/fchomo/node.js:2570 msgid "Keep default" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "Keep-alive period" msgstr "" @@ -1900,8 +1909,9 @@ msgstr "" msgid "Key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1157 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 msgid "Key path" msgstr "" @@ -1928,8 +1938,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1818 #: htdocs/luci-static/resources/view/fchomo/client.js:1874 #: htdocs/luci-static/resources/view/fchomo/node.js:262 -#: htdocs/luci-static/resources/view/fchomo/node.js:2354 -#: htdocs/luci-static/resources/view/fchomo/node.js:2750 +#: htdocs/luci-static/resources/view/fchomo/node.js:2318 +#: htdocs/luci-static/resources/view/fchomo/node.js:2714 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:278 msgid "Label" msgstr "" @@ -1939,7 +1949,7 @@ msgid "Latency first" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1187 -#: htdocs/luci-static/resources/view/fchomo/node.js:2670 +#: htdocs/luci-static/resources/view/fchomo/node.js:2634 msgid "Lazy" msgstr "" @@ -1976,8 +1986,9 @@ msgid "" "network." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1080 -#: htdocs/luci-static/resources/view/fchomo/node.js:1490 +#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo/listeners.js:1068 +#: htdocs/luci-static/resources/view/fchomo/node.js:1461 msgid "List of supported application level protocols, in order of preference." msgstr "" @@ -1995,8 +2006,8 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:154 #: htdocs/luci-static/resources/view/fchomo/client.js:1467 -#: htdocs/luci-static/resources/view/fchomo/node.js:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 msgid "Listen port" msgstr "" @@ -2008,7 +2019,7 @@ msgstr "" msgid "Listen routing mark (Fwmark)" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1769 +#: htdocs/luci-static/resources/view/fchomo/node.js:1733 msgid "Listeners" msgstr "" @@ -2016,7 +2027,7 @@ msgstr "" msgid "Load balance" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2364 +#: htdocs/luci-static/resources/view/fchomo/node.js:2328 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:297 msgid "Local" msgstr "" @@ -2061,7 +2072,7 @@ msgid "Lowercase only" msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:524 -#: htdocs/luci-static/resources/view/fchomo/node.js:1869 +#: htdocs/luci-static/resources/view/fchomo/node.js:1833 msgid "MTU" msgstr "" @@ -2101,7 +2112,7 @@ msgstr "" msgid "Match rule set." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2015 +#: htdocs/luci-static/resources/view/fchomo/node.js:1979 msgid "Max Early Data" msgstr "" @@ -2110,15 +2121,15 @@ msgstr "" msgid "Max UDP relay packet size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1377 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "Max buffered posts" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 msgid "Max concurrency" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 msgid "Max connections" msgstr "" @@ -2136,8 +2147,8 @@ msgstr "" msgid "Max download speed" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1388 -#: htdocs/luci-static/resources/view/fchomo/node.js:2055 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 +#: htdocs/luci-static/resources/view/fchomo/node.js:2019 msgid "Max each POST bytes" msgstr "" @@ -2153,15 +2164,15 @@ msgstr "" msgid "Max realms per client IP" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 msgid "Max request times" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 msgid "Max reusable seconds" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 msgid "Max reuse times" msgstr "" @@ -2170,12 +2181,12 @@ msgstr "" msgid "Max upload speed" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2119 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Maximum connections" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2137 +#: htdocs/luci-static/resources/view/fchomo/node.js:2101 msgid "" "Maximum multiplexed streams in a connection before opening a new connection." "
Conflict with %s and %s." @@ -2193,7 +2204,7 @@ msgid "" "rate." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2136 +#: htdocs/luci-static/resources/view/fchomo/node.js:2100 msgid "Maximum streams" msgstr "" @@ -2218,11 +2229,11 @@ msgstr "" msgid "Min of idle sessions to keep" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2061 +#: htdocs/luci-static/resources/view/fchomo/node.js:2025 msgid "Min posts interval" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2128 +#: htdocs/luci-static/resources/view/fchomo/node.js:2092 msgid "" "Minimum multiplexed streams in a connection before opening a new connection." msgstr "" @@ -2232,8 +2243,8 @@ msgstr "" msgid "Minimum padding rate" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2127 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2091 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Minimum streams" msgstr "" @@ -2254,8 +2265,8 @@ msgstr "" msgid "Mixed port" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 -#: htdocs/luci-static/resources/view/fchomo/node.js:2105 +#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/view/fchomo/node.js:2069 msgid "Multiplex" msgstr "" @@ -2273,7 +2284,7 @@ msgstr "" msgid "NETWORK" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1787 +#: htdocs/luci-static/resources/view/fchomo/node.js:1751 msgid "NO Listener" msgstr "" @@ -2286,7 +2297,7 @@ msgstr "" msgid "Name of the Proxy group as outbound." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2439 +#: htdocs/luci-static/resources/view/fchomo/node.js:2403 msgid "Name of the Proxy group to download provider." msgstr "" @@ -2315,7 +2326,7 @@ msgstr "" msgid "Network type" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2608 +#: htdocs/luci-static/resources/view/fchomo/node.js:2572 msgid "No" msgstr "" @@ -2323,7 +2334,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1372 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 msgid "No SSE header" msgstr "" @@ -2331,12 +2342,12 @@ msgstr "" msgid "No add'l params" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2045 +#: htdocs/luci-static/resources/view/fchomo/node.js:2009 msgid "No gRPC header" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2671 +#: htdocs/luci-static/resources/view/fchomo/node.js:2635 msgid "No testing is performed when this provider node is not in use." msgstr "" @@ -2354,17 +2365,17 @@ msgid "Node" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1250 -#: htdocs/luci-static/resources/view/fchomo/node.js:2691 +#: htdocs/luci-static/resources/view/fchomo/node.js:2655 msgid "Node exclude filter" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1255 -#: htdocs/luci-static/resources/view/fchomo/node.js:2698 +#: htdocs/luci-static/resources/view/fchomo/node.js:2662 msgid "Node exclude type" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:2685 +#: htdocs/luci-static/resources/view/fchomo/node.js:2649 msgid "Node filter" msgstr "" @@ -2388,7 +2399,7 @@ msgstr "" msgid "Not Running" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2716 +#: htdocs/luci-static/resources/view/fchomo/node.js:2680 msgid "Note: The subscription of provider %s is includes %s." msgstr "" @@ -2438,7 +2449,7 @@ msgstr "" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1074 +#: htdocs/luci-static/resources/fchomo/listeners.js:1062 msgid "Only applicable when %s are used as a frontend." msgstr "" @@ -2457,7 +2468,7 @@ msgstr "" msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1734 msgid "Only the address %s is valid." msgstr "" @@ -2477,7 +2488,7 @@ msgstr "" msgid "Other" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2556 +#: htdocs/luci-static/resources/view/fchomo/node.js:2520 msgid "Other configuration items" msgstr "" @@ -2485,8 +2496,9 @@ msgstr "" msgid "Outbound" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1549 -#: htdocs/luci-static/resources/view/fchomo/node.js:2595 +#: htdocs/luci-static/resources/fchomo.js:1474 +#: htdocs/luci-static/resources/view/fchomo/node.js:1513 +#: htdocs/luci-static/resources/view/fchomo/node.js:2559 msgid "Override cert DNSName" msgstr "" @@ -2496,7 +2508,7 @@ msgid "Override destination" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:2350 +#: htdocs/luci-static/resources/view/fchomo/node.js:2314 msgid "Override fields" msgstr "" @@ -2516,7 +2528,7 @@ msgstr "" msgid "Override the existing ECS in original request." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1568 msgid "Overrides the domain name used for HTTPS record queries." msgstr "" @@ -2524,11 +2536,11 @@ msgstr "" msgid "Overview" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1972 +#: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "POST" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1973 +#: htdocs/luci-static/resources/view/fchomo/node.js:1937 msgid "PUT" msgstr "" @@ -2536,7 +2548,7 @@ msgstr "" msgid "Packet encoding" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2050 +#: htdocs/luci-static/resources/view/fchomo/node.js:2014 msgid "Padding bytes" msgstr "" @@ -2572,7 +2584,7 @@ msgid "Path in bundle: %s" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:819 -#: htdocs/luci-static/resources/view/fchomo/node.js:2414 +#: htdocs/luci-static/resources/view/fchomo/node.js:2378 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:384 msgid "Payload" msgstr "" @@ -2620,8 +2632,8 @@ msgid "" "standards." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2387 -#: htdocs/luci-static/resources/view/fchomo/node.js:2413 +#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2377 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:357 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:383 msgid "" @@ -2635,7 +2647,7 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1541 #: htdocs/luci-static/resources/view/fchomo/client.js:1796 #: htdocs/luci-static/resources/view/fchomo/client.js:1848 -#: htdocs/luci-static/resources/view/fchomo/node.js:2240 +#: htdocs/luci-static/resources/view/fchomo/node.js:2204 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:165 msgid "Please type %s fields of mihomo config.
" msgstr "" @@ -2660,7 +2672,7 @@ msgstr "" msgid "Port" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1651 +#: htdocs/luci-static/resources/fchomo.js:1729 msgid "Port %s alrealy exists!" msgstr "" @@ -2688,8 +2700,7 @@ msgstr "" msgid "Pre-shared key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1017 -#: htdocs/luci-static/resources/view/fchomo/node.js:1437 +#: htdocs/luci-static/resources/fchomo.js:1437 msgid "Pre-shared key of rendezvous server" msgstr "" @@ -2706,17 +2717,17 @@ msgid "" "Prevent ICMP loopback issues in some cases. Ping will not show real delay." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 msgid "Primary" msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:768 #: htdocs/luci-static/resources/view/fchomo/global.js:785 -#: htdocs/luci-static/resources/view/fchomo/node.js:2201 -#: htdocs/luci-static/resources/view/fchomo/node.js:2208 -#: htdocs/luci-static/resources/view/fchomo/node.js:2620 -#: htdocs/luci-static/resources/view/fchomo/node.js:2627 +#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/view/fchomo/node.js:2172 +#: htdocs/luci-static/resources/view/fchomo/node.js:2584 +#: htdocs/luci-static/resources/view/fchomo/node.js:2591 msgid "Priority: Proxy Node > Global." msgstr "" @@ -2745,12 +2756,12 @@ msgstr "" msgid "Process matching mode" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2546 +#: htdocs/luci-static/resources/view/fchomo/node.js:2510 msgid "Programmable replacement" msgstr "" #: htdocs/luci-static/resources/view/fchomo/global.js:716 -#: htdocs/luci-static/resources/view/fchomo/node.js:2111 +#: htdocs/luci-static/resources/view/fchomo/node.js:2075 msgid "Protocol" msgstr "" @@ -2765,13 +2776,13 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1108 -#: htdocs/luci-static/resources/view/fchomo/node.js:2223 -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 -#: htdocs/luci-static/resources/view/fchomo/node.js:2761 +#: htdocs/luci-static/resources/view/fchomo/node.js:2187 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 +#: htdocs/luci-static/resources/view/fchomo/node.js:2725 msgid "Provider" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2420 +#: htdocs/luci-static/resources/view/fchomo/node.js:2384 msgid "Provider URL" msgstr "" @@ -2794,19 +2805,20 @@ msgid "Proxy MAC-s" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:225 -#: htdocs/luci-static/resources/view/fchomo/node.js:2760 +#: htdocs/luci-static/resources/view/fchomo/node.js:2724 msgid "Proxy Node" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2736 -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2700 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Proxy chain" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:629 +#: htdocs/luci-static/resources/fchomo/listeners.js:1009 #: htdocs/luci-static/resources/view/fchomo/client.js:809 #: htdocs/luci-static/resources/view/fchomo/client.js:1639 -#: htdocs/luci-static/resources/view/fchomo/node.js:2438 +#: htdocs/luci-static/resources/view/fchomo/node.js:2402 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:414 msgid "Proxy group" msgstr "" @@ -2847,39 +2859,39 @@ msgstr "" msgid "Quick Reload" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1139 -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:1618 +#: htdocs/luci-static/resources/fchomo/listeners.js:1127 +#: htdocs/luci-static/resources/fchomo/listeners.js:1233 +#: htdocs/luci-static/resources/view/fchomo/node.js:1582 msgid "REALITY" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1644 +#: htdocs/luci-static/resources/view/fchomo/node.js:1608 msgid "REALITY X25519MLKEM768 PQC support" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +#: htdocs/luci-static/resources/fchomo/listeners.js:1281 msgid "REALITY certificate issued to" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1261 +#: htdocs/luci-static/resources/fchomo/listeners.js:1249 msgid "REALITY handshake server" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1300 +#: htdocs/luci-static/resources/fchomo/listeners.js:1288 msgid "REALITY max time difference" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1268 +#: htdocs/luci-static/resources/fchomo/listeners.js:1256 msgid "REALITY private key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1283 -#: htdocs/luci-static/resources/view/fchomo/node.js:1634 +#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/view/fchomo/node.js:1598 msgid "REALITY public key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 -#: htdocs/luci-static/resources/view/fchomo/node.js:1639 +#: htdocs/luci-static/resources/fchomo/listeners.js:1275 +#: htdocs/luci-static/resources/view/fchomo/node.js:1603 msgid "REALITY short ID" msgstr "" @@ -2915,13 +2927,11 @@ msgstr "" msgid "Randomized traffic characteristics" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 -#: htdocs/luci-static/resources/view/fchomo/node.js:1426 +#: htdocs/luci-static/resources/fchomo.js:1426 msgid "Realm" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 -#: htdocs/luci-static/resources/view/fchomo/node.js:1442 +#: htdocs/luci-static/resources/fchomo.js:1442 msgid "Realm ID" msgstr "" @@ -2929,7 +2939,7 @@ msgstr "" msgid "Realm name pattern" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2717 +#: htdocs/luci-static/resources/view/fchomo/node.js:2681 msgid "" "Recommended to adjust Client DNS configuration based on actual conditions." msgstr "" @@ -2977,12 +2987,12 @@ msgstr "" msgid "Rematching routing rules" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2365 +#: htdocs/luci-static/resources/view/fchomo/node.js:2329 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:298 msgid "Remote" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1899 +#: htdocs/luci-static/resources/view/fchomo/node.js:1863 msgid "Remote DNS resolve" msgstr "" @@ -2994,30 +3004,29 @@ msgstr "" msgid "Remote trace target" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1572 +#: htdocs/luci-static/resources/fchomo.js:1650 msgid "Remove" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1655 #: 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:2341 -#: htdocs/luci-static/resources/view/fchomo/node.js:2343 +#: htdocs/luci-static/resources/view/fchomo/node.js:2305 +#: htdocs/luci-static/resources/view/fchomo/node.js:2307 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:270 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:272 msgid "Remove idles" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1011 -#: htdocs/luci-static/resources/view/fchomo/node.js:1431 +#: htdocs/luci-static/resources/fchomo.js:1431 msgid "Rendezvous server" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2537 +#: htdocs/luci-static/resources/view/fchomo/node.js:2501 msgid "Replace name" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2538 +#: htdocs/luci-static/resources/view/fchomo/node.js:2502 msgid "Replace node name." msgstr "" @@ -3025,9 +3034,9 @@ msgstr "" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1351 -#: htdocs/luci-static/resources/view/fchomo/node.js:1979 -#: htdocs/luci-static/resources/view/fchomo/node.js:1986 +#: htdocs/luci-static/resources/fchomo/listeners.js:1339 +#: htdocs/luci-static/resources/view/fchomo/node.js:1943 +#: htdocs/luci-static/resources/view/fchomo/node.js:1950 msgid "Request path" msgstr "" @@ -3044,7 +3053,7 @@ msgid "Require any" msgstr "" #: htdocs/luci-static/resources/fchomo.js:481 -#: htdocs/luci-static/resources/view/fchomo/node.js:1645 +#: htdocs/luci-static/resources/view/fchomo/node.js:1609 msgid "Requires server support." msgstr "" @@ -3059,12 +3068,12 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:691 #: htdocs/luci-static/resources/fchomo/listeners.js:701 #: htdocs/luci-static/resources/fchomo/listeners.js:706 -#: htdocs/luci-static/resources/fchomo/listeners.js:1137 -#: htdocs/luci-static/resources/fchomo/listeners.js:1253 +#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1241 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1590 msgid "Restls" msgstr "" @@ -3117,8 +3126,8 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:612 #: htdocs/luci-static/resources/view/fchomo/global.js:784 -#: htdocs/luci-static/resources/view/fchomo/node.js:2207 -#: htdocs/luci-static/resources/view/fchomo/node.js:2626 +#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/view/fchomo/node.js:2590 msgid "Routing mark (Fwmark)" msgstr "" @@ -3202,8 +3211,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1028 -#: htdocs/luci-static/resources/view/fchomo/node.js:1448 +#: htdocs/luci-static/resources/fchomo.js:1448 msgid "STUN servers" msgstr "" @@ -3233,8 +3241,8 @@ msgstr "" msgid "Save" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "Secondary" msgstr "" @@ -3268,8 +3276,8 @@ msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:850 -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3279,9 +3287,9 @@ msgstr "" msgid "Server address" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 -#: htdocs/luci-static/resources/view/fchomo/node.js:1958 -#: htdocs/luci-static/resources/view/fchomo/node.js:1964 +#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/view/fchomo/node.js:1922 +#: htdocs/luci-static/resources/view/fchomo/node.js:1928 msgid "Server hostname" msgstr "" @@ -3305,12 +3313,12 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:690 #: htdocs/luci-static/resources/fchomo/listeners.js:700 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "ShadowTLS" msgstr "" @@ -3334,7 +3342,7 @@ msgstr "" msgid "Shadowsocks password" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2159 +#: htdocs/luci-static/resources/view/fchomo/node.js:2123 msgid "Show connections in the dashboard for breaking connections easier." msgstr "" @@ -3346,14 +3354,15 @@ msgstr "" msgid "Simple round-robin all nodes" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2426 +#: htdocs/luci-static/resources/view/fchomo/node.js:2390 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:402 msgid "Size limit" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1480 #: htdocs/luci-static/resources/view/fchomo/client.js:1675 -#: htdocs/luci-static/resources/view/fchomo/node.js:1555 -#: htdocs/luci-static/resources/view/fchomo/node.js:2601 +#: htdocs/luci-static/resources/view/fchomo/node.js:1519 +#: htdocs/luci-static/resources/view/fchomo/node.js:2565 msgid "Skip cert verify" msgstr "" @@ -3450,7 +3459,7 @@ msgstr "" msgid "Successfully updated." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1934 +#: htdocs/luci-static/resources/fchomo.js:2020 msgid "Successfully uploaded." msgstr "" @@ -3506,7 +3515,7 @@ msgstr "" msgid "TCP idle timeout" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2116 msgid "TCP only" msgstr "" @@ -3534,8 +3543,8 @@ msgstr "" msgid "TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2183 -#: htdocs/luci-static/resources/view/fchomo/node.js:2562 +#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/view/fchomo/node.js:2526 msgid "TFO" msgstr "" @@ -3548,20 +3557,22 @@ msgid "TLD DNS zone used by MagicDNS, default is %s." msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:718 -#: htdocs/luci-static/resources/fchomo/listeners.js:1038 +#: htdocs/luci-static/resources/fchomo/listeners.js:1026 #: htdocs/luci-static/resources/view/fchomo/global.js:558 #: htdocs/luci-static/resources/view/fchomo/node.js:472 #: htdocs/luci-static/resources/view/fchomo/node.js:1308 -#: htdocs/luci-static/resources/view/fchomo/node.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1429 msgid "TLS" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1079 -#: htdocs/luci-static/resources/view/fchomo/node.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1462 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 +#: htdocs/luci-static/resources/view/fchomo/node.js:1460 msgid "TLS ALPN" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1483 +#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/view/fchomo/node.js:1454 msgid "TLS SNI" msgstr "" @@ -3593,29 +3604,31 @@ msgid "" "Tell the client to use the BBR flow control algorithm instead of Hysteria CC." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1766 +#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1798 #: 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:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1834 -#: htdocs/luci-static/resources/view/fchomo/node.js:1838 msgid "The %s address used by local machine in the %s network." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/fchomo.js:1495 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "The %s private key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 msgid "The %s public key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1598 +#: htdocs/luci-static/resources/view/fchomo/node.js:1562 msgid "" "The ECH parameter of the HTTPS record for the domain. Leave empty to resolve " "via DNS." @@ -3663,19 +3676,24 @@ msgstr "" msgid "The proxy used to connect to the handshake target." msgstr "" +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 +msgid "The proxy used to connect to the rendezvous server." +msgstr "" + #: htdocs/luci-static/resources/fchomo/listeners.js:880 #: htdocs/luci-static/resources/view/fchomo/node.js:1403 msgid "The server and client can set different padding parameters." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1239 +#: htdocs/luci-static/resources/fchomo/listeners.js:1227 #: htdocs/luci-static/resources/view/fchomo/global.js:623 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1483 #: htdocs/luci-static/resources/view/fchomo/client.js:1678 -#: htdocs/luci-static/resources/view/fchomo/node.js:1558 -#: htdocs/luci-static/resources/view/fchomo/node.js:2604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1522 +#: htdocs/luci-static/resources/view/fchomo/node.js:2568 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -3715,18 +3733,18 @@ msgstr "" msgid "Traffic pattern" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2798 +#: htdocs/luci-static/resources/view/fchomo/node.js:2762 msgid "Transit proxy group" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2809 +#: htdocs/luci-static/resources/view/fchomo/node.js:2773 msgid "Transit proxy node" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1297 #: htdocs/luci-static/resources/view/fchomo/node.js:363 -#: htdocs/luci-static/resources/view/fchomo/node.js:1911 +#: htdocs/luci-static/resources/view/fchomo/node.js:1875 msgid "Transport" msgstr "" @@ -3735,8 +3753,8 @@ msgstr "" msgid "Transport fields" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1314 -#: htdocs/luci-static/resources/view/fchomo/node.js:1916 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 +#: htdocs/luci-static/resources/view/fchomo/node.js:1880 msgid "Transport type" msgstr "" @@ -3789,8 +3807,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:871 #: htdocs/luci-static/resources/view/fchomo/client.js:1069 #: htdocs/luci-static/resources/view/fchomo/node.js:271 -#: htdocs/luci-static/resources/view/fchomo/node.js:2363 -#: htdocs/luci-static/resources/view/fchomo/node.js:2759 +#: htdocs/luci-static/resources/view/fchomo/node.js:2327 +#: htdocs/luci-static/resources/view/fchomo/node.js:2723 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:296 msgid "Type" msgstr "" @@ -3809,7 +3827,7 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:676 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:706 -#: htdocs/luci-static/resources/view/fchomo/node.js:2572 +#: htdocs/luci-static/resources/view/fchomo/node.js:2536 msgid "UDP" msgstr "" @@ -3853,7 +3871,7 @@ msgstr "" msgid "UUID" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1443 +#: htdocs/luci-static/resources/fchomo.js:1521 msgid "Unable to download unsupported type: %s" msgstr "" @@ -3879,7 +3897,7 @@ msgid "Unknown error: %s" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:1256 -#: htdocs/luci-static/resources/view/fchomo/node.js:2577 +#: htdocs/luci-static/resources/view/fchomo/node.js:2541 msgid "UoT" msgstr "" @@ -3887,24 +3905,24 @@ msgstr "" msgid "Update failed." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2432 +#: htdocs/luci-static/resources/view/fchomo/node.js:2396 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:408 msgid "Update interval" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1411 -#: htdocs/luci-static/resources/view/fchomo/node.js:2170 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 +#: htdocs/luci-static/resources/view/fchomo/node.js:2134 msgid "Upload bandwidth" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1412 -#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/fchomo/listeners.js:1400 +#: htdocs/luci-static/resources/view/fchomo/node.js:2135 msgid "Upload bandwidth in Mbps." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 +#: htdocs/luci-static/resources/fchomo/listeners.js:1137 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 msgid "Upload certificate" msgstr "" @@ -3912,25 +3930,25 @@ msgstr "" msgid "Upload initial package" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/fchomo/listeners.js:1152 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "Upload key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1152 -#: htdocs/luci-static/resources/fchomo/listeners.js:1167 -#: htdocs/luci-static/resources/fchomo/listeners.js:1192 +#: htdocs/luci-static/resources/fchomo/listeners.js:1140 +#: htdocs/luci-static/resources/fchomo/listeners.js:1155 +#: htdocs/luci-static/resources/fchomo/listeners.js:1180 #: htdocs/luci-static/resources/view/fchomo/global.js:306 -#: htdocs/luci-static/resources/view/fchomo/node.js:1572 -#: htdocs/luci-static/resources/view/fchomo/node.js:1586 +#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/view/fchomo/node.js:1550 msgid "Upload..." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1849 +#: htdocs/luci-static/resources/view/fchomo/node.js:1813 msgid "Use DHCP" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1850 +#: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Use DHCP to obtain IP address." msgstr "" @@ -3976,8 +3994,9 @@ msgstr "" msgid "Used to resolve the domain of the Proxy node." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1550 -#: htdocs/luci-static/resources/view/fchomo/node.js:2596 +#: htdocs/luci-static/resources/fchomo.js:1475 +#: htdocs/luci-static/resources/view/fchomo/node.js:1514 +#: htdocs/luci-static/resources/view/fchomo/node.js:2560 msgid "Used to verify the hostname on the returned certificates." msgstr "" @@ -4012,11 +4031,11 @@ msgstr "" msgid "Using this in conjunction with %s is recommended." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2027 +#: htdocs/luci-static/resources/view/fchomo/node.js:1991 msgid "V2ray HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2032 +#: htdocs/luci-static/resources/view/fchomo/node.js:1996 msgid "V2ray HTTPUpgrade fast open" msgstr "" @@ -4030,9 +4049,9 @@ msgstr "" msgid "VMess" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 msgid "VPN" msgstr "" @@ -4044,8 +4063,8 @@ msgstr "" 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:2369 -#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2333 +#: htdocs/luci-static/resources/view/fchomo/node.js:2729 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:339 msgid "Value" msgstr "" @@ -4070,16 +4089,16 @@ msgid "Version hint" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:1116 -#: htdocs/luci-static/resources/view/fchomo/node.js:1818 -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1782 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 msgid "Virtual IPv4 address" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1825 +#: htdocs/luci-static/resources/view/fchomo/node.js:1789 msgid "Virtual IPv6 address" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1792 +#: htdocs/luci-static/resources/view/fchomo/node.js:1756 msgid "Virtual address" msgstr "" @@ -4097,15 +4116,15 @@ msgid "Warning" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:1316 -#: htdocs/luci-static/resources/fchomo/listeners.js:1327 -#: htdocs/luci-static/resources/fchomo/listeners.js:1334 +#: htdocs/luci-static/resources/fchomo/listeners.js:1304 +#: htdocs/luci-static/resources/fchomo/listeners.js:1315 +#: htdocs/luci-static/resources/fchomo/listeners.js:1322 #: 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:1921 -#: htdocs/luci-static/resources/view/fchomo/node.js:1934 -#: htdocs/luci-static/resources/view/fchomo/node.js:1941 -#: htdocs/luci-static/resources/view/fchomo/node.js:1947 +#: htdocs/luci-static/resources/view/fchomo/node.js:1885 +#: htdocs/luci-static/resources/view/fchomo/node.js:1898 +#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1911 msgid "WebSocket" msgstr "" @@ -4141,33 +4160,33 @@ msgstr "" msgid "WireGuard requires base64-encoded private keys." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1317 -#: htdocs/luci-static/resources/fchomo/listeners.js:1328 -#: htdocs/luci-static/resources/view/fchomo/node.js:1922 -#: htdocs/luci-static/resources/view/fchomo/node.js:1942 +#: htdocs/luci-static/resources/fchomo/listeners.js:1305 +#: htdocs/luci-static/resources/fchomo/listeners.js:1316 +#: htdocs/luci-static/resources/view/fchomo/node.js:1886 +#: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1364 -#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/fchomo/listeners.js:1352 +#: htdocs/luci-static/resources/view/fchomo/node.js:2001 msgid "XHTTP mode" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2068 +#: htdocs/luci-static/resources/view/fchomo/node.js:2032 msgid "XMUX" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "XMUX:" msgstr "" @@ -4183,7 +4202,7 @@ msgstr "" msgid "Yaml text" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2607 +#: htdocs/luci-static/resources/view/fchomo/node.js:2571 msgid "Yes" msgstr "" @@ -4196,7 +4215,7 @@ msgstr "" msgid "YouTube" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1916 +#: htdocs/luci-static/resources/fchomo.js:2002 msgid "Your %s was successfully uploaded. Size: %sB." msgstr "" @@ -4232,11 +4251,11 @@ msgstr "" msgid "aes-gcm-256" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2454 +#: htdocs/luci-static/resources/view/fchomo/node.js:2418 msgid "age private key" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2515 +#: htdocs/luci-static/resources/view/fchomo/node.js:2479 msgid "age public key" msgstr "" @@ -4261,9 +4280,9 @@ msgstr "" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1154 -#: htdocs/luci-static/resources/fchomo/listeners.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:1574 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 +#: htdocs/luci-static/resources/view/fchomo/node.js:1538 msgid "certificate" msgstr "" @@ -4295,7 +4314,7 @@ msgstr "" msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2589 +#: htdocs/luci-static/resources/view/fchomo/node.js:2553 msgid "down" msgstr "" @@ -4310,26 +4329,26 @@ msgstr "" msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1315 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 -#: 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 +#: htdocs/luci-static/resources/fchomo/listeners.js:1303 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 +#: htdocs/luci-static/resources/view/fchomo/node.js:1884 +#: htdocs/luci-static/resources/view/fchomo/node.js:1897 +#: htdocs/luci-static/resources/view/fchomo/node.js:1904 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "gRPC" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2003 +#: htdocs/luci-static/resources/view/fchomo/node.js:1967 msgid "gRPC User-Agent" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2008 +#: htdocs/luci-static/resources/view/fchomo/node.js:1972 msgid "gRPC ping interval" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1358 -#: htdocs/luci-static/resources/view/fchomo/node.js:1999 +#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/view/fchomo/node.js:1963 msgid "gRPC service name" msgstr "" @@ -4342,7 +4361,7 @@ msgstr "" msgid "h2" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2115 +#: htdocs/luci-static/resources/view/fchomo/node.js:2079 msgid "h2mux" msgstr "" @@ -4358,7 +4377,7 @@ msgstr "" msgid "least one keypair required" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2730 +#: htdocs/luci-static/resources/view/fchomo/node.js:2694 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:444 msgid "luci-app-tinyfilemanager is not installed, please install it first." msgstr "" @@ -4378,7 +4397,7 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1576 #: htdocs/luci-static/resources/view/fchomo/client.js:1810 #: htdocs/luci-static/resources/view/fchomo/client.js:1866 -#: htdocs/luci-static/resources/view/fchomo/node.js:2335 +#: htdocs/luci-static/resources/view/fchomo/node.js:2299 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:258 msgid "mihomo config" msgstr "" @@ -4387,8 +4406,8 @@ msgstr "" msgid "mlkem768x25519plus" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2567 +#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2531 msgid "mpTCP" msgstr "" @@ -4400,10 +4419,10 @@ msgstr "" msgid "no-resolve" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1809 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1895 msgid "non-empty value" msgstr "" @@ -4457,11 +4476,11 @@ msgstr "" msgid "openssl-chacha20" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2512 msgid "override.override-expr" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2540 +#: htdocs/luci-static/resources/view/fchomo/node.js:2504 msgid "override.proxy-name" msgstr "" @@ -4469,8 +4488,8 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1368 -#: htdocs/luci-static/resources/view/fchomo/node.js:2041 +#: htdocs/luci-static/resources/fchomo/listeners.js:1356 +#: htdocs/luci-static/resources/view/fchomo/node.js:2005 msgid "packet-up" msgstr "" @@ -4479,8 +4498,8 @@ msgstr "" msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1169 -#: htdocs/luci-static/resources/view/fchomo/node.js:1588 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 +#: htdocs/luci-static/resources/view/fchomo/node.js:1552 msgid "private key" msgstr "" @@ -4501,7 +4520,7 @@ msgstr "" msgid "rule-set" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2113 +#: htdocs/luci-static/resources/view/fchomo/node.js:2077 msgid "smux" msgstr "" @@ -4514,17 +4533,17 @@ msgstr "" msgid "src" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 -#: htdocs/luci-static/resources/view/fchomo/node.js:2039 +#: htdocs/luci-static/resources/fchomo/listeners.js:1354 +#: htdocs/luci-static/resources/view/fchomo/node.js:2003 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1367 -#: htdocs/luci-static/resources/view/fchomo/node.js:2040 +#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/view/fchomo/node.js:2004 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1371 msgid "stream-up server seconds" msgstr "" @@ -4556,11 +4575,11 @@ msgstr "" msgid "unique identifier" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1904 msgid "unique value" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2583 +#: htdocs/luci-static/resources/view/fchomo/node.js:2547 msgid "up" msgstr "" @@ -4598,42 +4617,42 @@ msgstr "" msgid "v5" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 msgid "valid JSON format" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 +#: htdocs/luci-static/resources/fchomo.js:1823 msgid "valid SHA256 string with %d characters" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 msgid "valid URL" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1736 +#: htdocs/luci-static/resources/fchomo.js:1814 msgid "valid base64 key with %d characters" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 msgid "valid format: 2x, 2p, 4v" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1727 +#: htdocs/luci-static/resources/fchomo.js:1805 msgid "valid hex string with %d characters" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1783 +#: htdocs/luci-static/resources/fchomo.js:1869 msgid "valid key length with %d characters" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1649 +#: htdocs/luci-static/resources/fchomo.js:1727 msgid "valid port value" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1699 +#: htdocs/luci-static/resources/fchomo.js:1777 msgid "valid uuid" msgstr "" @@ -4657,7 +4676,7 @@ msgstr "" msgid "yacd-meta" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2114 +#: htdocs/luci-static/resources/view/fchomo/node.js:2078 msgid "yamux" msgstr "" @@ -4669,10 +4688,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1466 +#: htdocs/luci-static/resources/fchomo.js:1544 msgid "🔗" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1445 +#: htdocs/luci-static/resources/fchomo.js:1523 msgid "🡇" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po index 709732bf7..737be9553 100644 --- a/luci-app-fchomo/po/zh_Hans/fchomo.po +++ b/luci-app-fchomo/po/zh_Hans/fchomo.po @@ -12,8 +12,8 @@ msgstr "" msgid "%s Hostname" msgstr "%s 主机名称" -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "%s UDP port. 0 selects an available port." msgstr "%s UDP 端口。0 自动选择一个可用端口。" @@ -40,15 +40,17 @@ msgstr "%s 端口" msgid "(Imported)" msgstr "(已导入)" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 #: htdocs/luci-static/resources/view/fchomo/global.js:572 #: htdocs/luci-static/resources/view/fchomo/global.js:578 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "(mTLS)" msgstr "" @@ -70,10 +72,10 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1113 #: htdocs/luci-static/resources/view/fchomo/client.js:1369 #: htdocs/luci-static/resources/view/fchomo/node.js:305 -#: htdocs/luci-static/resources/view/fchomo/node.js:2771 -#: htdocs/luci-static/resources/view/fchomo/node.js:2782 -#: htdocs/luci-static/resources/view/fchomo/node.js:2801 -#: htdocs/luci-static/resources/view/fchomo/node.js:2812 +#: htdocs/luci-static/resources/view/fchomo/node.js:2735 +#: htdocs/luci-static/resources/view/fchomo/node.js:2746 +#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2776 msgid "-- Please choose --" msgstr "-- 请选择 --" @@ -102,7 +104,7 @@ msgstr "" msgid "2022-blake3-chacha20-poly1305" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1733 +#: htdocs/luci-static/resources/view/fchomo/node.js:1697 msgid "-1 disables it." msgstr "-1 表示禁用它。" @@ -110,11 +112,11 @@ msgstr "-1 表示禁用它。" msgid "0 or 1 only." msgstr "仅限 0 或 1。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1150 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 -#: htdocs/luci-static/resources/fchomo/listeners.js:1190 -#: htdocs/luci-static/resources/view/fchomo/node.js:1570 -#: htdocs/luci-static/resources/view/fchomo/node.js:1584 +#: htdocs/luci-static/resources/fchomo/listeners.js:1138 +#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/view/fchomo/node.js:1534 +#: htdocs/luci-static/resources/view/fchomo/node.js:1548 msgid "Save your configuration before uploading files!" msgstr "上传文件前请先保存配置!" @@ -218,11 +220,11 @@ msgstr "新增 节点" msgid "Add a inbound" msgstr "新增 入站" -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 msgid "Add a provider" msgstr "新增 供应商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Add a proxy chain" msgstr "新增 代理链" @@ -246,11 +248,11 @@ msgstr "新增 服务器" msgid "Add a sub rule" msgstr "新增 子规则" -#: htdocs/luci-static/resources/view/fchomo/node.js:2529 +#: htdocs/luci-static/resources/view/fchomo/node.js:2493 msgid "Add prefix" msgstr "添加前缀" -#: htdocs/luci-static/resources/view/fchomo/node.js:2533 +#: htdocs/luci-static/resources/view/fchomo/node.js:2497 msgid "Add suffix" msgstr "添加后缀" @@ -307,7 +309,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "允许通过出口节点访问本地局域网。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1073 +#: htdocs/luci-static/resources/fchomo/listeners.js:1061 msgid "Allow insecure connections" msgstr "允许不安全的连接" @@ -371,22 +373,22 @@ msgid "Authentication key" msgstr "验证密钥" #: htdocs/luci-static/resources/fchomo/listeners.js:376 -#: htdocs/luci-static/resources/fchomo/listeners.js:1365 +#: htdocs/luci-static/resources/fchomo/listeners.js:1353 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: 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:2038 +#: htdocs/luci-static/resources/view/fchomo/node.js:2002 msgid "Auto" msgstr "自动" -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 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:1654 +#: htdocs/luci-static/resources/view/fchomo/node.js:1618 msgid "Auto configure firewall" msgstr "自动配置防火墙" @@ -441,13 +443,13 @@ msgid "Binary mrs" msgstr "二进制 mrs" #: htdocs/luci-static/resources/view/fchomo/global.js:766 -#: htdocs/luci-static/resources/view/fchomo/node.js:2199 -#: htdocs/luci-static/resources/view/fchomo/node.js:2618 +#: htdocs/luci-static/resources/view/fchomo/node.js:2163 +#: htdocs/luci-static/resources/view/fchomo/node.js:2582 msgid "Bind interface" msgstr "绑定接口" -#: htdocs/luci-static/resources/view/fchomo/node.js:2200 -#: htdocs/luci-static/resources/view/fchomo/node.js:2619 +#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "Bind outbound interface.
" msgstr "绑定出站接口。
" @@ -516,17 +518,20 @@ msgstr "CORS 允许的来源,留空则使用 *。" msgid "Cancel" msgstr "取消" -#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/fchomo.js:1468 +#: htdocs/luci-static/resources/view/fchomo/node.js:1507 msgid "Cert fingerprint" msgstr "证书指纹" -#: htdocs/luci-static/resources/view/fchomo/node.js:1537 +#: htdocs/luci-static/resources/fchomo.js:1469 +#: htdocs/luci-static/resources/view/fchomo/node.js:1508 msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "证书指纹。用于实现 SSL证书固定 并防止 MitM。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1127 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo/listeners.js:1115 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 msgid "Certificate path" msgstr "证书路径" @@ -587,25 +592,27 @@ msgstr "" "点击此处下载" "最新的初始包。" +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1495 #: htdocs/luci-static/resources/fchomo/listeners.js:869 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 #: htdocs/luci-static/resources/view/fchomo/node.js:1392 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:22 msgid "Client" msgstr "客户端" -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 msgid "Client Auth Certificate path" msgstr "客户端认证证书路径" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 msgid "Client Auth type" msgstr "客户端认证类型" -#: htdocs/luci-static/resources/view/fchomo/node.js:1609 +#: htdocs/luci-static/resources/view/fchomo/node.js:1573 msgid "Client fingerprint" msgstr "客户端指纹" @@ -629,8 +636,8 @@ msgstr "客户端公钥" msgid "Client status" msgstr "客户端状态" -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "Cloudflare WARP" msgstr "" @@ -643,7 +650,7 @@ msgstr "收集数据中..." msgid "Common ports (bypass P2P traffic)" msgstr "常用端口(绕过 P2P 流量)" -#: htdocs/luci-static/resources/fchomo.js:1583 +#: htdocs/luci-static/resources/fchomo.js:1661 msgid "Complete" msgstr "完成" @@ -680,14 +687,14 @@ msgid "Content copied to clipboard!" msgstr "内容已复制到剪贴板!" #: htdocs/luci-static/resources/view/fchomo/client.js:698 -#: htdocs/luci-static/resources/view/fchomo/node.js:2389 -#: htdocs/luci-static/resources/view/fchomo/node.js:2415 +#: htdocs/luci-static/resources/view/fchomo/node.js:2353 +#: htdocs/luci-static/resources/view/fchomo/node.js:2379 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:359 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:385 msgid "Content will not be verified, Please make sure you enter it correctly." msgstr "内容将不会被验证,请确保输入正确。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2352 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:358 msgid "Contents" msgstr "内容" @@ -720,7 +727,7 @@ msgstr "自定义 %s 控制服务器。" msgid "Custom Direct List" msgstr "自定义直连列表" -#: htdocs/luci-static/resources/view/fchomo/node.js:2520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2484 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:431 msgid "Custom HTTP header." msgstr "自定义 HTTP header。" @@ -758,7 +765,7 @@ msgstr " DNS 端口" #: htdocs/luci-static/resources/view/fchomo/client.js:1524 #: htdocs/luci-static/resources/view/fchomo/client.js:1533 #: htdocs/luci-static/resources/view/fchomo/node.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1869 msgid "DNS server" msgstr "DNS 服务器" @@ -805,11 +812,11 @@ msgstr "从私钥派生" msgid "Destination addresses allowed to be forwarded via Wireguard." msgstr "允许通过 WireGuard 转发的目的地址" -#: htdocs/luci-static/resources/view/fchomo/node.js:2768 +#: htdocs/luci-static/resources/view/fchomo/node.js:2732 msgid "Destination provider" msgstr "落地供应商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2779 +#: htdocs/luci-static/resources/view/fchomo/node.js:2743 msgid "Destination proxy node" msgstr "落地代理节点" @@ -817,8 +824,8 @@ msgstr "落地代理节点" msgid "Dial fields" msgstr "拨号字段" -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 msgid "Different chain head/tail" msgstr "不同的链头/链尾" @@ -861,7 +868,7 @@ msgstr "禁用 ICMP 转发" msgid "Disable P2P" msgstr "禁用 P2P" -#: htdocs/luci-static/resources/view/fchomo/node.js:1477 +#: htdocs/luci-static/resources/view/fchomo/node.js:1448 msgid "Disable SNI" msgstr "禁用 SNI" @@ -890,31 +897,32 @@ msgstr "" msgid "Domain" msgstr "域名" -#: htdocs/luci-static/resources/view/fchomo/node.js:1478 +#: htdocs/luci-static/resources/view/fchomo/node.js:1449 msgid "Donot send server name in ClientHello." msgstr "不要在 ClientHello 中发送服务器名称。" +#: htdocs/luci-static/resources/fchomo.js:1481 #: htdocs/luci-static/resources/view/fchomo/client.js:1676 -#: htdocs/luci-static/resources/view/fchomo/node.js:1556 -#: htdocs/luci-static/resources/view/fchomo/node.js:2602 +#: htdocs/luci-static/resources/view/fchomo/node.js:1520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2566 msgid "Donot verifying server certificate." msgstr "不验证服务器证书。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1417 -#: htdocs/luci-static/resources/view/fchomo/node.js:2176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 +#: htdocs/luci-static/resources/view/fchomo/node.js:2140 msgid "Download bandwidth" msgstr "下载带宽" -#: htdocs/luci-static/resources/fchomo/listeners.js:1418 -#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/fchomo/listeners.js:1406 +#: htdocs/luci-static/resources/view/fchomo/node.js:2141 msgid "Download bandwidth in Mbps." msgstr "下载带宽(单位:Mbps)。" -#: htdocs/luci-static/resources/fchomo.js:1440 +#: htdocs/luci-static/resources/fchomo.js:1518 msgid "Download failed: %s" msgstr "下载失败: %s" -#: htdocs/luci-static/resources/fchomo.js:1436 +#: htdocs/luci-static/resources/fchomo.js:1514 msgid "Download successful." msgstr "下载成功。" @@ -926,16 +934,16 @@ msgstr "目的地 IP" msgid "Dual stack" msgstr "双栈" -#: htdocs/luci-static/resources/view/fchomo/node.js:1603 +#: htdocs/luci-static/resources/view/fchomo/node.js:1567 msgid "ECH HTTPS record query servername" msgstr "ECH HTTPS 记录查询域名" -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 -#: htdocs/luci-static/resources/view/fchomo/node.js:1597 +#: htdocs/luci-static/resources/fchomo/listeners.js:1226 +#: htdocs/luci-static/resources/view/fchomo/node.js:1561 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1197 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 msgid "ECH key" msgstr "ECH 密钥" @@ -951,11 +959,11 @@ msgstr "EDNS 客户端子网" msgid "ETag support" msgstr "ETag 支持" -#: htdocs/luci-static/resources/view/fchomo/node.js:2016 +#: htdocs/luci-static/resources/view/fchomo/node.js:1980 msgid "Early Data first packet length limit." msgstr "前置数据长度阈值" -#: htdocs/luci-static/resources/view/fchomo/node.js:2022 +#: htdocs/luci-static/resources/view/fchomo/node.js:1986 msgid "Early Data header name" msgstr "前置数据标头" @@ -975,7 +983,7 @@ msgstr "编辑出站" msgid "Edit ruleset" msgstr "编辑规则集" -#: htdocs/luci-static/resources/view/fchomo/node.js:2386 +#: htdocs/luci-static/resources/view/fchomo/node.js:2350 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:356 msgid "Editer" msgstr "编辑器" @@ -999,9 +1007,9 @@ msgstr "为空时回退" #: htdocs/luci-static/resources/view/fchomo/global.js:422 #: htdocs/luci-static/resources/view/fchomo/global.js:712 #: htdocs/luci-static/resources/view/fchomo/node.js:267 -#: htdocs/luci-static/resources/view/fchomo/node.js:2359 -#: htdocs/luci-static/resources/view/fchomo/node.js:2641 -#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2323 +#: htdocs/luci-static/resources/view/fchomo/node.js:2605 +#: htdocs/luci-static/resources/view/fchomo/node.js:2719 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:283 #: htdocs/luci-static/resources/view/fchomo/server.js:49 msgid "Enable" @@ -1028,7 +1036,7 @@ msgstr "" "为出站连接启用 IP4P 转换" -#: htdocs/luci-static/resources/view/fchomo/node.js:1591 +#: htdocs/luci-static/resources/view/fchomo/node.js:1555 msgid "Enable ECH" msgstr "启用 ECH" @@ -1036,13 +1044,13 @@ msgstr "启用 ECH" msgid "Enable MagicDNS" msgstr "启用 MagicDNS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1405 -#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 +#: htdocs/luci-static/resources/view/fchomo/node.js:2128 msgid "Enable TCP Brutal" msgstr "启用 TCP Brutal" -#: htdocs/luci-static/resources/fchomo/listeners.js:1406 -#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1394 +#: htdocs/luci-static/resources/view/fchomo/node.js:2129 msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" @@ -1054,7 +1062,7 @@ msgstr "启用加密" msgid "Enable fast open" msgstr "启用 Fast open" -#: htdocs/luci-static/resources/view/fchomo/node.js:2153 +#: htdocs/luci-static/resources/view/fchomo/node.js:2117 msgid "Enable multiplexing only for TCP." msgstr "仅为 TCP 启用多路复用。" @@ -1063,17 +1071,17 @@ msgstr "仅为 TCP 启用多路复用。" msgid "Enable obfuscate for downlink" msgstr "启用下行链路混淆" -#: htdocs/luci-static/resources/fchomo/listeners.js:1400 -#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2111 msgid "Enable padding" msgstr "启用填充" -#: htdocs/luci-static/resources/view/fchomo/node.js:2158 +#: htdocs/luci-static/resources/view/fchomo/node.js:2122 msgid "Enable statistic" msgstr "启用统计" #: htdocs/luci-static/resources/view/fchomo/node.js:1257 -#: htdocs/luci-static/resources/view/fchomo/node.js:2578 +#: htdocs/luci-static/resources/view/fchomo/node.js:2542 msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" @@ -1116,7 +1124,7 @@ msgid "" "if empty." msgstr "超过此限制将会触发强制健康检查。留空则使用 5。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2699 +#: htdocs/luci-static/resources/view/fchomo/node.js:2663 msgid "Exclude matched node types." msgstr "排除匹配的节点类型。" @@ -1129,7 +1137,7 @@ msgstr "" "rel=\"noreferrer noopener\">此处。" #: htdocs/luci-static/resources/view/fchomo/client.js:1251 -#: htdocs/luci-static/resources/view/fchomo/node.js:2692 +#: htdocs/luci-static/resources/view/fchomo/node.js:2656 msgid "Exclude nodes that meet keywords or regexps." msgstr "排除匹配关键词或表达式的节点。" @@ -1146,40 +1154,41 @@ msgid "Expand/Collapse result" msgstr "展开/收起 结果" #: htdocs/luci-static/resources/view/fchomo/client.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:2677 +#: htdocs/luci-static/resources/view/fchomo/node.js:2641 msgid "Expected HTTP code. 204 will be used if empty." msgstr "预期的 HTTP code。留空则使用 204。" #: htdocs/luci-static/resources/view/fchomo/client.js:1196 -#: htdocs/luci-static/resources/view/fchomo/node.js:2679 +#: htdocs/luci-static/resources/view/fchomo/node.js:2643 msgid "Expected status" msgstr "预期状态" #: htdocs/luci-static/resources/fchomo.js:529 #: htdocs/luci-static/resources/fchomo.js:532 #: htdocs/luci-static/resources/fchomo.js:535 -#: htdocs/luci-static/resources/fchomo.js:1600 -#: htdocs/luci-static/resources/fchomo.js:1608 -#: htdocs/luci-static/resources/fchomo.js:1616 -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1642 -#: htdocs/luci-static/resources/fchomo.js:1649 -#: htdocs/luci-static/resources/fchomo.js:1665 -#: htdocs/luci-static/resources/fchomo.js:1674 +#: htdocs/luci-static/resources/fchomo.js:1678 #: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 -#: htdocs/luci-static/resources/fchomo.js:1699 -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1694 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1720 #: htdocs/luci-static/resources/fchomo.js:1727 -#: htdocs/luci-static/resources/fchomo.js:1736 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1783 -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 -#: htdocs/luci-static/resources/fchomo.js:1809 -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1743 +#: htdocs/luci-static/resources/fchomo.js:1752 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 +#: htdocs/luci-static/resources/fchomo.js:1777 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 +#: htdocs/luci-static/resources/fchomo.js:1805 +#: htdocs/luci-static/resources/fchomo.js:1814 +#: htdocs/luci-static/resources/fchomo.js:1823 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1869 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 +#: htdocs/luci-static/resources/fchomo.js:1895 +#: htdocs/luci-static/resources/fchomo.js:1904 #: htdocs/luci-static/resources/fchomo/listeners.js:291 #: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/fchomo/listeners.js:861 @@ -1195,24 +1204,23 @@ msgstr "预期状态" #: 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:1415 -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:311 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:325 msgid "Expecting: %s" msgstr "请输入:%s" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Cannot be empty." msgstr "请输入:不能为空。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 -#: htdocs/luci-static/resources/view/fchomo/node.js:1625 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "请输入:当 %s 启用时,无法启用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 msgid "Expecting: Keep empty when %s is enabled." msgstr "请输入:启用 %s 时保持为空。" @@ -1223,13 +1231,13 @@ msgstr "请输入:至少包含 %s 或 %s 中的一个。" #: htdocs/luci-static/resources/fchomo/listeners.js:699 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 -#: htdocs/luci-static/resources/view/fchomo/node.js:1931 -#: htdocs/luci-static/resources/view/fchomo/node.js:1938 -#: htdocs/luci-static/resources/view/fchomo/node.js:1946 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "Expecting: Only support %s." msgstr "请输入:仅支援 %s。" @@ -1249,19 +1257,19 @@ msgstr "实验性" msgid "Factor" msgstr "条件" -#: htdocs/luci-static/resources/fchomo.js:1541 +#: htdocs/luci-static/resources/fchomo.js:1619 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:1494 +#: htdocs/luci-static/resources/fchomo.js:1572 msgid "Failed to generate %s, error: %s." msgstr "生成 %s 失败,错误:%s。" -#: htdocs/luci-static/resources/fchomo.js:1918 +#: htdocs/luci-static/resources/fchomo.js:2004 msgid "Failed to upload %s, error: %s." msgstr "上传 %s 失败,错误:%s。" -#: htdocs/luci-static/resources/fchomo.js:1937 +#: htdocs/luci-static/resources/fchomo.js:2023 msgid "Failed to upload, error: %s." msgstr "上传失败,错误:%s。" @@ -1290,7 +1298,7 @@ msgid "Fallback relay" msgstr "自动回退中继" #: htdocs/luci-static/resources/view/fchomo/client.js:1246 -#: htdocs/luci-static/resources/view/fchomo/node.js:2686 +#: htdocs/luci-static/resources/view/fchomo/node.js:2650 msgid "Filter nodes that meet keywords or regexps." msgstr "过滤匹配关键字或表达式的节点。" @@ -1316,7 +1324,7 @@ 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:1653 +#: htdocs/luci-static/resources/view/fchomo/node.js:1617 msgid "Firewall" msgstr "防火墙" @@ -1334,9 +1342,9 @@ msgstr "" "noopener\">%s." #: htdocs/luci-static/resources/view/fchomo/client.js:1195 -#: htdocs/luci-static/resources/view/fchomo/node.js:2539 -#: htdocs/luci-static/resources/view/fchomo/node.js:2547 -#: htdocs/luci-static/resources/view/fchomo/node.js:2678 +#: htdocs/luci-static/resources/view/fchomo/node.js:2503 +#: htdocs/luci-static/resources/view/fchomo/node.js:2511 +#: htdocs/luci-static/resources/view/fchomo/node.js:2642 msgid "" "For format see %s." @@ -1348,7 +1356,7 @@ msgstr "" msgid "Force" msgstr "强制" -#: htdocs/luci-static/resources/view/fchomo/node.js:1900 +#: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Force DNS remote resolution." msgstr "强制 DNS 远程解析。" @@ -1375,7 +1383,7 @@ msgstr "转发速率限制" msgid "FullCombo Shark!" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1971 +#: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "GET" msgstr "" @@ -1395,7 +1403,7 @@ msgstr "常规" #: htdocs/luci-static/resources/fchomo/listeners.js:119 #: htdocs/luci-static/resources/view/fchomo/client.js:1050 #: htdocs/luci-static/resources/view/fchomo/node.js:252 -#: htdocs/luci-static/resources/view/fchomo/node.js:2349 +#: htdocs/luci-static/resources/view/fchomo/node.js:2313 msgid "General fields" msgstr "常规字段" @@ -1411,9 +1419,9 @@ msgstr "常规设置" #: htdocs/luci-static/resources/fchomo/listeners.js:313 #: htdocs/luci-static/resources/fchomo/listeners.js:315 #: htdocs/luci-static/resources/fchomo/listeners.js:965 -#: htdocs/luci-static/resources/fchomo/listeners.js:1230 +#: htdocs/luci-static/resources/fchomo/listeners.js:1218 #: htdocs/luci-static/resources/view/fchomo/global.js:616 -#: htdocs/luci-static/resources/view/fchomo/node.js:2507 +#: htdocs/luci-static/resources/view/fchomo/node.js:2471 msgid "Generate" msgstr "生成" @@ -1484,15 +1492,15 @@ msgstr "组" #: htdocs/luci-static/resources/fchomo.js:228 #: htdocs/luci-static/resources/fchomo/listeners.js:717 #: htdocs/luci-static/resources/view/fchomo/node.js:1307 -#: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1882 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 msgid "HTTP" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:333 -#: htdocs/luci-static/resources/view/fchomo/node.js:1993 -#: htdocs/luci-static/resources/view/fchomo/node.js:2519 +#: htdocs/luci-static/resources/view/fchomo/node.js:1957 +#: htdocs/luci-static/resources/view/fchomo/node.js:2483 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:430 msgid "HTTP header" msgstr "HTTP header" @@ -1518,7 +1526,7 @@ msgstr "HTTP 伪装多路复用" msgid "HTTP mask: %s" msgstr "HTTP 伪装: %s" -#: htdocs/luci-static/resources/view/fchomo/node.js:1970 +#: htdocs/luci-static/resources/view/fchomo/node.js:1934 msgid "HTTP request method" msgstr "HTTP 请求方法" @@ -1537,9 +1545,9 @@ msgid "" "returned if empty." msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面。" -#: 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:1883 +#: htdocs/luci-static/resources/view/fchomo/node.js:1896 +#: htdocs/luci-static/resources/view/fchomo/node.js:1903 msgid "HTTPUpgrade" msgstr "" @@ -1577,27 +1585,27 @@ msgid "Health check" msgstr "健康检查" #: htdocs/luci-static/resources/view/fchomo/client.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:2646 +#: htdocs/luci-static/resources/view/fchomo/node.js:2610 msgid "Health check URL" msgstr "健康检查 URL" #: htdocs/luci-static/resources/view/fchomo/client.js:1193 -#: htdocs/luci-static/resources/view/fchomo/node.js:2676 +#: htdocs/luci-static/resources/view/fchomo/node.js:2640 msgid "Health check expected status" msgstr "健康检查预期状态" #: htdocs/luci-static/resources/view/fchomo/client.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:2656 +#: htdocs/luci-static/resources/view/fchomo/node.js:2620 msgid "Health check interval" msgstr "健康检查间隔" #: htdocs/luci-static/resources/view/fchomo/client.js:1180 -#: htdocs/luci-static/resources/view/fchomo/node.js:2663 +#: htdocs/luci-static/resources/view/fchomo/node.js:2627 msgid "Health check timeout" msgstr "健康检查超时" #: htdocs/luci-static/resources/view/fchomo/client.js:1052 -#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2315 msgid "Health fields" msgstr "健康字段" @@ -1631,7 +1639,8 @@ msgstr "主机/SNI 覆盖" msgid "Hostname" msgstr "主机名" -#: htdocs/luci-static/resources/view/fchomo/node.js:1484 +#: htdocs/luci-static/resources/fchomo.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1455 msgid "" "Hostname that the client attempts to connect to at the start of the TLS " "handshake process." @@ -1674,15 +1683,15 @@ msgstr "IP 覆写" msgid "IP stack" msgstr "IP 协议栈" -#: htdocs/luci-static/resources/view/fchomo/node.js:2213 -#: htdocs/luci-static/resources/view/fchomo/node.js:2632 +#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/view/fchomo/node.js:2596 msgid "IP version" msgstr "IP 版本" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 msgid "IPv4" msgstr "IPv4" @@ -1690,9 +1699,9 @@ msgstr "IPv4" msgid "IPv4 only" msgstr "仅 IPv4" -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "IPv6" msgstr "IPv6" @@ -1721,7 +1730,7 @@ msgstr "闲置会话超时" msgid "Idle timeout" msgstr "闲置超时" -#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1720 msgid "If All ports is selected, uncheck others" msgstr "如果选择了“所有端口”,则取消选中“其他”" @@ -1755,8 +1764,8 @@ msgstr "导入" #: htdocs/luci-static/resources/view/fchomo/client.js:1812 #: htdocs/luci-static/resources/view/fchomo/client.js:1847 #: htdocs/luci-static/resources/view/fchomo/client.js:1868 -#: htdocs/luci-static/resources/view/fchomo/node.js:2239 -#: htdocs/luci-static/resources/view/fchomo/node.js:2337 +#: htdocs/luci-static/resources/view/fchomo/node.js:2203 +#: htdocs/luci-static/resources/view/fchomo/node.js:2301 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:164 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:260 msgid "Import mihomo config" @@ -1772,8 +1781,8 @@ msgstr "导入规则集链接" #: htdocs/luci-static/resources/fchomo/listeners.js:487 #: 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:2584 -#: htdocs/luci-static/resources/view/fchomo/node.js:2590 +#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2554 msgid "In Mbps." msgstr "单位为 Mbps。" @@ -1781,12 +1790,12 @@ msgstr "单位为 Mbps。" msgid "In bps. 0 means no speed limit." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2427 +#: htdocs/luci-static/resources/view/fchomo/node.js:2391 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:403 msgid "In bytes. %s will be used if empty." msgstr "单位为字节。留空则使用 %s。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1301 +#: htdocs/luci-static/resources/fchomo/listeners.js:1289 #: 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 @@ -1795,11 +1804,11 @@ msgstr "单位为毫秒。" #: htdocs/luci-static/resources/view/fchomo/client.js:1181 #: htdocs/luci-static/resources/view/fchomo/client.js:1227 -#: htdocs/luci-static/resources/view/fchomo/node.js:2664 +#: htdocs/luci-static/resources/view/fchomo/node.js:2628 msgid "In millisecond. %s will be used if empty." msgstr "单位为毫秒。留空则使用 %s。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2062 +#: htdocs/luci-static/resources/view/fchomo/node.js:2026 msgid "In milliseconds." msgstr "单位为毫秒。" @@ -1809,7 +1818,7 @@ msgstr "单位为毫秒。" #: htdocs/luci-static/resources/fchomo/listeners.js:663 #: 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:2009 +#: htdocs/luci-static/resources/view/fchomo/node.js:1973 msgid "In seconds." msgstr "单位为秒。" @@ -1818,8 +1827,8 @@ msgstr "单位为秒。" #: htdocs/luci-static/resources/view/fchomo/global.js:451 #: 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:2433 -#: htdocs/luci-static/resources/view/fchomo/node.js:2657 +#: htdocs/luci-static/resources/view/fchomo/node.js:2397 +#: htdocs/luci-static/resources/view/fchomo/node.js:2621 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:409 msgid "In seconds. %s will be used if empty." msgstr "单位为秒。留空则使用 %s。" @@ -1879,7 +1888,7 @@ msgstr "信息" msgid "Initial congestion window size" msgstr "初始拥塞窗口大小" -#: htdocs/luci-static/resources/view/fchomo/node.js:2366 +#: htdocs/luci-static/resources/view/fchomo/node.js:2330 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:299 msgid "Inline" msgstr "内嵌" @@ -1895,12 +1904,12 @@ msgstr "接口控制" #: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/fchomo/listeners.js:702 #: htdocs/luci-static/resources/fchomo/listeners.js:707 -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1254 +#: htdocs/luci-static/resources/fchomo/listeners.js:1126 +#: htdocs/luci-static/resources/fchomo/listeners.js:1242 #: htdocs/luci-static/resources/view/fchomo/node.js:1282 #: htdocs/luci-static/resources/view/fchomo/node.js:1292 #: htdocs/luci-static/resources/view/fchomo/node.js:1297 -#: htdocs/luci-static/resources/view/fchomo/node.js:1627 +#: htdocs/luci-static/resources/view/fchomo/node.js:1591 msgid "JLS" msgstr "JLS" @@ -1915,11 +1924,11 @@ msgstr "加入 %s。格式:%s" #: htdocs/luci-static/resources/fchomo.js:454 #: 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:2606 +#: htdocs/luci-static/resources/view/fchomo/node.js:2570 msgid "Keep default" msgstr "保持缺省" -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "Keep-alive period" msgstr "Keep-alive 周期" @@ -1928,8 +1937,9 @@ msgstr "Keep-alive 周期" msgid "Key" msgstr "密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1157 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 msgid "Key path" msgstr "证书路径" @@ -1956,8 +1966,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1818 #: htdocs/luci-static/resources/view/fchomo/client.js:1874 #: htdocs/luci-static/resources/view/fchomo/node.js:262 -#: htdocs/luci-static/resources/view/fchomo/node.js:2354 -#: htdocs/luci-static/resources/view/fchomo/node.js:2750 +#: htdocs/luci-static/resources/view/fchomo/node.js:2318 +#: htdocs/luci-static/resources/view/fchomo/node.js:2714 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:278 msgid "Label" msgstr "标签" @@ -1967,7 +1977,7 @@ msgid "Latency first" msgstr "延迟优先" #: htdocs/luci-static/resources/view/fchomo/client.js:1187 -#: htdocs/luci-static/resources/view/fchomo/node.js:2670 +#: htdocs/luci-static/resources/view/fchomo/node.js:2634 msgid "Lazy" msgstr "怠惰状态" @@ -2006,8 +2016,9 @@ msgid "" "network." msgstr "要向 EasyTier 网络中的其他对端开放的本地子网的列表(CIDR)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1080 -#: htdocs/luci-static/resources/view/fchomo/node.js:1490 +#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo/listeners.js:1068 +#: htdocs/luci-static/resources/view/fchomo/node.js:1461 msgid "List of supported application level protocols, in order of preference." msgstr "支持的应用层协议协商列表,按顺序排列。" @@ -2025,8 +2036,8 @@ msgstr "监听接口" #: htdocs/luci-static/resources/fchomo/listeners.js:154 #: htdocs/luci-static/resources/view/fchomo/client.js:1467 -#: htdocs/luci-static/resources/view/fchomo/node.js:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 msgid "Listen port" msgstr "监听端口" @@ -2038,7 +2049,7 @@ msgstr "监听端口" msgid "Listen routing mark (Fwmark)" msgstr "监听路由标记 (Fwmark)" -#: htdocs/luci-static/resources/view/fchomo/node.js:1769 +#: htdocs/luci-static/resources/view/fchomo/node.js:1733 msgid "Listeners" msgstr "监听" @@ -2046,7 +2057,7 @@ msgstr "监听" msgid "Load balance" msgstr "负载均衡" -#: htdocs/luci-static/resources/view/fchomo/node.js:2364 +#: htdocs/luci-static/resources/view/fchomo/node.js:2328 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:297 msgid "Local" msgstr "本地" @@ -2091,7 +2102,7 @@ msgid "Lowercase only" msgstr "仅限小写" #: htdocs/luci-static/resources/view/fchomo/global.js:524 -#: htdocs/luci-static/resources/view/fchomo/node.js:1869 +#: htdocs/luci-static/resources/view/fchomo/node.js:1833 msgid "MTU" msgstr "MTU" @@ -2131,7 +2142,7 @@ msgstr "匹配响应通过 ipcidr
" msgid "Match rule set." msgstr "匹配规则集。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2015 +#: htdocs/luci-static/resources/view/fchomo/node.js:1979 msgid "Max Early Data" msgstr "前置数据最大值" @@ -2140,15 +2151,15 @@ msgstr "前置数据最大值" msgid "Max UDP relay packet size" msgstr "UDP 中继数据包最大尺寸" -#: htdocs/luci-static/resources/fchomo/listeners.js:1377 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "Max buffered posts" msgstr "POST 最大缓冲" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 msgid "Max concurrency" msgstr "最大并发" -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 msgid "Max connections" msgstr "最大连接数" @@ -2166,8 +2177,8 @@ msgstr "最大数据报帧大小" msgid "Max download speed" msgstr "最大下载速度" -#: htdocs/luci-static/resources/fchomo/listeners.js:1388 -#: htdocs/luci-static/resources/view/fchomo/node.js:2055 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 +#: htdocs/luci-static/resources/view/fchomo/node.js:2019 msgid "Max each POST bytes" msgstr "POST 最大字节数" @@ -2183,15 +2194,15 @@ msgstr "最大 Realms 总数" msgid "Max realms per client IP" msgstr "每客户端 IP 最大 Realms 总数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 msgid "Max request times" msgstr "最大请求次数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 msgid "Max reusable seconds" msgstr "最大可复用秒数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 msgid "Max reuse times" msgstr "最大复用次数" @@ -2200,12 +2211,12 @@ msgstr "最大复用次数" msgid "Max upload speed" msgstr "最大上传速度" -#: htdocs/luci-static/resources/view/fchomo/node.js:2119 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Maximum connections" msgstr "最大连接数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2137 +#: htdocs/luci-static/resources/view/fchomo/node.js:2101 msgid "" "Maximum multiplexed streams in a connection before opening a new connection." "
Conflict with %s and %s." @@ -2225,7 +2236,7 @@ msgid "" "rate." msgstr "最大填充率必须大于等于最小填充率。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2136 +#: htdocs/luci-static/resources/view/fchomo/node.js:2100 msgid "Maximum streams" msgstr "最大流数量" @@ -2250,11 +2261,11 @@ msgstr "Mihomo 服务端" msgid "Min of idle sessions to keep" msgstr "要保留的最少闲置会话数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2061 +#: htdocs/luci-static/resources/view/fchomo/node.js:2025 msgid "Min posts interval" msgstr "POST 请求最小间隔时间" -#: htdocs/luci-static/resources/view/fchomo/node.js:2128 +#: htdocs/luci-static/resources/view/fchomo/node.js:2092 msgid "" "Minimum multiplexed streams in a connection before opening a new connection." msgstr "在打开新连接之前,连接中的最小多路复用流数量。" @@ -2264,8 +2275,8 @@ msgstr "在打开新连接之前,连接中的最小多路复用流数量。" msgid "Minimum padding rate" msgstr "最小填充率" -#: htdocs/luci-static/resources/view/fchomo/node.js:2127 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2091 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Minimum streams" msgstr "最小流数量" @@ -2286,8 +2297,8 @@ msgstr "混合 系统 TCP 栈和 gVisor UDP 栈。" msgid "Mixed port" msgstr "混合端口" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 -#: htdocs/luci-static/resources/view/fchomo/node.js:2105 +#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/view/fchomo/node.js:2069 msgid "Multiplex" msgstr "多路复用" @@ -2305,7 +2316,7 @@ msgstr "多路复用" msgid "NETWORK" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1787 +#: htdocs/luci-static/resources/view/fchomo/node.js:1751 msgid "NO Listener" msgstr "无监听" @@ -2318,7 +2329,7 @@ msgstr "NOT" msgid "Name of the Proxy group as outbound." msgstr "出站代理组的名称。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2439 +#: htdocs/luci-static/resources/view/fchomo/node.js:2403 msgid "Name of the Proxy group to download provider." msgstr "用于下载供应商订阅的代理组名称。" @@ -2347,7 +2358,7 @@ msgstr "" msgid "Network type" msgstr "网络类型" -#: htdocs/luci-static/resources/view/fchomo/node.js:2608 +#: htdocs/luci-static/resources/view/fchomo/node.js:2572 msgid "No" msgstr "" @@ -2355,7 +2366,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "无需认证的 IP 范围" -#: htdocs/luci-static/resources/fchomo/listeners.js:1372 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 msgid "No SSE header" msgstr "无 SSE header" @@ -2363,12 +2374,12 @@ msgstr "无 SSE header" msgid "No add'l params" msgstr "无附加参数" -#: htdocs/luci-static/resources/view/fchomo/node.js:2045 +#: htdocs/luci-static/resources/view/fchomo/node.js:2009 msgid "No gRPC header" msgstr "无 gRPC header" #: htdocs/luci-static/resources/view/fchomo/client.js:1188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2671 +#: htdocs/luci-static/resources/view/fchomo/node.js:2635 msgid "No testing is performed when this provider node is not in use." msgstr "当此供应商的节点未使用时,不执行任何测试。" @@ -2386,17 +2397,17 @@ msgid "Node" msgstr "节点" #: htdocs/luci-static/resources/view/fchomo/client.js:1250 -#: htdocs/luci-static/resources/view/fchomo/node.js:2691 +#: htdocs/luci-static/resources/view/fchomo/node.js:2655 msgid "Node exclude filter" msgstr "排除节点" #: htdocs/luci-static/resources/view/fchomo/client.js:1255 -#: htdocs/luci-static/resources/view/fchomo/node.js:2698 +#: htdocs/luci-static/resources/view/fchomo/node.js:2662 msgid "Node exclude type" msgstr "排除节点类型" #: htdocs/luci-static/resources/view/fchomo/client.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:2685 +#: htdocs/luci-static/resources/view/fchomo/node.js:2649 msgid "Node filter" msgstr "过滤节点" @@ -2420,7 +2431,7 @@ msgstr "未安装" msgid "Not Running" msgstr "未在运行" -#: htdocs/luci-static/resources/view/fchomo/node.js:2716 +#: htdocs/luci-static/resources/view/fchomo/node.js:2680 msgid "Note: The subscription of provider %s is includes %s." msgstr "注意:供应商 %s 的订阅包含 %s。" @@ -2470,7 +2481,7 @@ msgstr "混淆为%s" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "0-63 范围内的一个或多个数字,以逗号分隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1074 +#: htdocs/luci-static/resources/fchomo/listeners.js:1062 msgid "Only applicable when %s are used as a frontend." msgstr "仅当 %s 用作前端时适用。" @@ -2489,7 +2500,7 @@ msgstr "仅允许使用与本网络相同的 %s 和 %s 的节点通过此节点 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "只处理来自指定接口的流量。留空表示全部。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1734 msgid "Only the address %s is valid." msgstr "只有地址 %s 是有效的。" @@ -2509,7 +2520,7 @@ msgstr "该选项已弃用,请使用%s作为代替。" msgid "Other" msgstr "其他" -#: htdocs/luci-static/resources/view/fchomo/node.js:2556 +#: htdocs/luci-static/resources/view/fchomo/node.js:2520 msgid "Other configuration items" msgstr "其他配置项" @@ -2517,8 +2528,9 @@ msgstr "其他配置项" msgid "Outbound" msgstr "出站" -#: htdocs/luci-static/resources/view/fchomo/node.js:1549 -#: htdocs/luci-static/resources/view/fchomo/node.js:2595 +#: htdocs/luci-static/resources/fchomo.js:1474 +#: htdocs/luci-static/resources/view/fchomo/node.js:1513 +#: htdocs/luci-static/resources/view/fchomo/node.js:2559 msgid "Override cert DNSName" msgstr "覆盖证书 DNSName" @@ -2528,7 +2540,7 @@ msgid "Override destination" msgstr "覆盖目标地址" #: htdocs/luci-static/resources/view/fchomo/client.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:2350 +#: htdocs/luci-static/resources/view/fchomo/node.js:2314 msgid "Override fields" msgstr "覆盖字段" @@ -2548,7 +2560,7 @@ msgstr "使用嗅探到的域名覆盖连接目标。" msgid "Override the existing ECS in original request." msgstr "覆盖原始请求中已有的 ECS。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1568 msgid "Overrides the domain name used for HTTPS record queries." msgstr "覆盖用于 HTTPS 记录查询的域名。" @@ -2556,11 +2568,11 @@ msgstr "覆盖用于 HTTPS 记录查询的域名。" msgid "Overview" msgstr "概览" -#: htdocs/luci-static/resources/view/fchomo/node.js:1972 +#: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "POST" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1973 +#: htdocs/luci-static/resources/view/fchomo/node.js:1937 msgid "PUT" msgstr "" @@ -2568,7 +2580,7 @@ msgstr "" msgid "Packet encoding" msgstr "数据包编码" -#: htdocs/luci-static/resources/view/fchomo/node.js:2050 +#: htdocs/luci-static/resources/view/fchomo/node.js:2014 msgid "Padding bytes" msgstr "填充字节" @@ -2604,7 +2616,7 @@ msgid "Path in bundle: %s" msgstr "在捆绑包%s中的路径" #: htdocs/luci-static/resources/fchomo/listeners.js:819 -#: htdocs/luci-static/resources/view/fchomo/node.js:2414 +#: htdocs/luci-static/resources/view/fchomo/node.js:2378 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:384 msgid "Payload" msgstr "Payload" @@ -2654,8 +2666,8 @@ msgid "" "standards." msgstr "链接格式标准请参考 %s。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2387 -#: htdocs/luci-static/resources/view/fchomo/node.js:2413 +#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2377 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:357 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:383 msgid "" @@ -2670,7 +2682,7 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1541 #: htdocs/luci-static/resources/view/fchomo/client.js:1796 #: htdocs/luci-static/resources/view/fchomo/client.js:1848 -#: htdocs/luci-static/resources/view/fchomo/node.js:2240 +#: htdocs/luci-static/resources/view/fchomo/node.js:2204 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:165 msgid "Please type %s fields of mihomo config.
" msgstr "请输入 mihomo 配置的 %s 字段。
" @@ -2695,7 +2707,7 @@ msgstr "插件类型" msgid "Port" msgstr "端口" -#: htdocs/luci-static/resources/fchomo.js:1651 +#: htdocs/luci-static/resources/fchomo.js:1729 msgid "Port %s alrealy exists!" msgstr "端口 %s 已存在!" @@ -2723,8 +2735,7 @@ msgstr "端口池" msgid "Pre-shared key" msgstr "预共享密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1017 -#: htdocs/luci-static/resources/view/fchomo/node.js:1437 +#: htdocs/luci-static/resources/fchomo.js:1437 msgid "Pre-shared key of rendezvous server" msgstr "牵线服务器的预共享密钥" @@ -2741,17 +2752,17 @@ 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:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 msgid "Primary" msgstr "主要" #: htdocs/luci-static/resources/view/fchomo/global.js:768 #: htdocs/luci-static/resources/view/fchomo/global.js:785 -#: htdocs/luci-static/resources/view/fchomo/node.js:2201 -#: htdocs/luci-static/resources/view/fchomo/node.js:2208 -#: htdocs/luci-static/resources/view/fchomo/node.js:2620 -#: htdocs/luci-static/resources/view/fchomo/node.js:2627 +#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/view/fchomo/node.js:2172 +#: htdocs/luci-static/resources/view/fchomo/node.js:2584 +#: htdocs/luci-static/resources/view/fchomo/node.js:2591 msgid "Priority: Proxy Node > Global." msgstr "优先级: 代理节点 > 全局。" @@ -2780,12 +2791,12 @@ msgstr "进程" msgid "Process matching mode" msgstr "进程匹配模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2546 +#: htdocs/luci-static/resources/view/fchomo/node.js:2510 msgid "Programmable replacement" msgstr "可编程替换" #: htdocs/luci-static/resources/view/fchomo/global.js:716 -#: htdocs/luci-static/resources/view/fchomo/node.js:2111 +#: htdocs/luci-static/resources/view/fchomo/node.js:2075 msgid "Protocol" msgstr "协议" @@ -2800,13 +2811,13 @@ msgid "" msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。" #: htdocs/luci-static/resources/view/fchomo/client.js:1108 -#: htdocs/luci-static/resources/view/fchomo/node.js:2223 -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 -#: htdocs/luci-static/resources/view/fchomo/node.js:2761 +#: htdocs/luci-static/resources/view/fchomo/node.js:2187 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 +#: htdocs/luci-static/resources/view/fchomo/node.js:2725 msgid "Provider" msgstr "供应商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2420 +#: htdocs/luci-static/resources/view/fchomo/node.js:2384 msgid "Provider URL" msgstr "供应商订阅 URL" @@ -2829,19 +2840,20 @@ msgid "Proxy MAC-s" msgstr "代理 MAC 地址" #: htdocs/luci-static/resources/view/fchomo/node.js:225 -#: htdocs/luci-static/resources/view/fchomo/node.js:2760 +#: htdocs/luci-static/resources/view/fchomo/node.js:2724 msgid "Proxy Node" msgstr "代理节点" -#: htdocs/luci-static/resources/view/fchomo/node.js:2736 -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2700 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Proxy chain" msgstr "代理链" #: htdocs/luci-static/resources/fchomo/listeners.js:629 +#: htdocs/luci-static/resources/fchomo/listeners.js:1009 #: htdocs/luci-static/resources/view/fchomo/client.js:809 #: htdocs/luci-static/resources/view/fchomo/client.js:1639 -#: htdocs/luci-static/resources/view/fchomo/node.js:2438 +#: htdocs/luci-static/resources/view/fchomo/node.js:2402 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:414 msgid "Proxy group" msgstr "代理组" @@ -2882,39 +2894,39 @@ msgstr "QUIC 版本" msgid "Quick Reload" msgstr "快速重载" -#: htdocs/luci-static/resources/fchomo/listeners.js:1139 -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:1618 +#: htdocs/luci-static/resources/fchomo/listeners.js:1127 +#: htdocs/luci-static/resources/fchomo/listeners.js:1233 +#: htdocs/luci-static/resources/view/fchomo/node.js:1582 msgid "REALITY" msgstr "REALITY" -#: htdocs/luci-static/resources/view/fchomo/node.js:1644 +#: htdocs/luci-static/resources/view/fchomo/node.js:1608 msgid "REALITY X25519MLKEM768 PQC support" msgstr "REALITY X25519MLKEM768 后量子加密支持" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +#: htdocs/luci-static/resources/fchomo/listeners.js:1281 msgid "REALITY certificate issued to" msgstr "REALITY 证书颁发给" -#: htdocs/luci-static/resources/fchomo/listeners.js:1261 +#: htdocs/luci-static/resources/fchomo/listeners.js:1249 msgid "REALITY handshake server" msgstr "REALITY 握手服务器" -#: htdocs/luci-static/resources/fchomo/listeners.js:1300 +#: htdocs/luci-static/resources/fchomo/listeners.js:1288 msgid "REALITY max time difference" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1268 +#: htdocs/luci-static/resources/fchomo/listeners.js:1256 msgid "REALITY private key" msgstr "REALITY 私钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1283 -#: htdocs/luci-static/resources/view/fchomo/node.js:1634 +#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/view/fchomo/node.js:1598 msgid "REALITY public key" msgstr "REALITY 公钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 -#: htdocs/luci-static/resources/view/fchomo/node.js:1639 +#: htdocs/luci-static/resources/fchomo/listeners.js:1275 +#: htdocs/luci-static/resources/view/fchomo/node.js:1603 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -2950,13 +2962,11 @@ msgstr "留空将使用随机令牌。" msgid "Randomized traffic characteristics" msgstr "随机化流量特征" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 -#: htdocs/luci-static/resources/view/fchomo/node.js:1426 +#: htdocs/luci-static/resources/fchomo.js:1426 msgid "Realm" msgstr "Realm" -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 -#: htdocs/luci-static/resources/view/fchomo/node.js:1442 +#: htdocs/luci-static/resources/fchomo.js:1442 msgid "Realm ID" msgstr "Realm ID" @@ -2964,7 +2974,7 @@ msgstr "Realm ID" msgid "Realm name pattern" msgstr "Realm 名称模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2717 +#: htdocs/luci-static/resources/view/fchomo/node.js:2681 msgid "" "Recommended to adjust Client DNS configuration based on actual conditions." msgstr "建议根据实际情况调整客户端 DNS 配置。" @@ -3012,12 +3022,12 @@ msgstr "再路由" msgid "Rematching routing rules" msgstr "重新匹配路由规则" -#: htdocs/luci-static/resources/view/fchomo/node.js:2365 +#: htdocs/luci-static/resources/view/fchomo/node.js:2329 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:298 msgid "Remote" msgstr "远程" -#: htdocs/luci-static/resources/view/fchomo/node.js:1899 +#: htdocs/luci-static/resources/view/fchomo/node.js:1863 msgid "Remote DNS resolve" msgstr "远程 DNS 解析" @@ -3029,30 +3039,29 @@ msgstr "远程跟踪级别" msgid "Remote trace target" msgstr "远程跟踪目标" -#: htdocs/luci-static/resources/fchomo.js:1572 +#: htdocs/luci-static/resources/fchomo.js:1650 msgid "Remove" msgstr "移除" -#: htdocs/luci-static/resources/fchomo.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1655 #: 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:2341 -#: htdocs/luci-static/resources/view/fchomo/node.js:2343 +#: htdocs/luci-static/resources/view/fchomo/node.js:2305 +#: htdocs/luci-static/resources/view/fchomo/node.js:2307 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:270 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:272 msgid "Remove idles" msgstr "移除闲置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1011 -#: htdocs/luci-static/resources/view/fchomo/node.js:1431 +#: htdocs/luci-static/resources/fchomo.js:1431 msgid "Rendezvous server" msgstr "牵线服务器" -#: htdocs/luci-static/resources/view/fchomo/node.js:2537 +#: htdocs/luci-static/resources/view/fchomo/node.js:2501 msgid "Replace name" msgstr "名称替换" -#: htdocs/luci-static/resources/view/fchomo/node.js:2538 +#: htdocs/luci-static/resources/view/fchomo/node.js:2502 msgid "Replace node name." msgstr "替换节点名称" @@ -3060,9 +3069,9 @@ msgstr "替换节点名称" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1351 -#: htdocs/luci-static/resources/view/fchomo/node.js:1979 -#: htdocs/luci-static/resources/view/fchomo/node.js:1986 +#: htdocs/luci-static/resources/fchomo/listeners.js:1339 +#: htdocs/luci-static/resources/view/fchomo/node.js:1943 +#: htdocs/luci-static/resources/view/fchomo/node.js:1950 msgid "Request path" msgstr "请求路径" @@ -3079,7 +3088,7 @@ msgid "Require any" msgstr "" #: htdocs/luci-static/resources/fchomo.js:481 -#: htdocs/luci-static/resources/view/fchomo/node.js:1645 +#: htdocs/luci-static/resources/view/fchomo/node.js:1609 msgid "Requires server support." msgstr "需要服务器支持。" @@ -3094,12 +3103,12 @@ msgstr "资源管理" #: htdocs/luci-static/resources/fchomo/listeners.js:691 #: htdocs/luci-static/resources/fchomo/listeners.js:701 #: htdocs/luci-static/resources/fchomo/listeners.js:706 -#: htdocs/luci-static/resources/fchomo/listeners.js:1137 -#: htdocs/luci-static/resources/fchomo/listeners.js:1253 +#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1241 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1590 msgid "Restls" msgstr "" @@ -3152,8 +3161,8 @@ msgstr "路由 GFW 流量" #: htdocs/luci-static/resources/fchomo/listeners.js:612 #: htdocs/luci-static/resources/view/fchomo/global.js:784 -#: htdocs/luci-static/resources/view/fchomo/node.js:2207 -#: htdocs/luci-static/resources/view/fchomo/node.js:2626 +#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/view/fchomo/node.js:2590 msgid "Routing mark (Fwmark)" msgstr "路由标记 (Fwmark)" @@ -3237,8 +3246,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1028 -#: htdocs/luci-static/resources/view/fchomo/node.js:1448 +#: htdocs/luci-static/resources/fchomo.js:1448 msgid "STUN servers" msgstr "STUN 服务器" @@ -3268,8 +3276,8 @@ msgstr "相同 来源地址 和 目标地址 请求。相同节点" msgid "Save" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "Secondary" msgstr "次要" @@ -3303,8 +3311,8 @@ msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "发送 300-600 秒的随机票证,以供客户端 0-RTT 重用。" #: htdocs/luci-static/resources/fchomo/listeners.js:850 -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3314,9 +3322,9 @@ msgstr "服务端" msgid "Server address" msgstr "服务器地址" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 -#: htdocs/luci-static/resources/view/fchomo/node.js:1958 -#: htdocs/luci-static/resources/view/fchomo/node.js:1964 +#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/view/fchomo/node.js:1922 +#: htdocs/luci-static/resources/view/fchomo/node.js:1928 msgid "Server hostname" msgstr "服务器主机名称" @@ -3340,12 +3348,12 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:690 #: htdocs/luci-static/resources/fchomo/listeners.js:700 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "ShadowTLS" msgstr "" @@ -3369,7 +3377,7 @@ msgstr "Shadowsocks 加密" msgid "Shadowsocks password" msgstr "Shadowsocks 密码" -#: htdocs/luci-static/resources/view/fchomo/node.js:2159 +#: htdocs/luci-static/resources/view/fchomo/node.js:2123 msgid "Show connections in the dashboard for breaking connections easier." msgstr "在面板中显示连接以便于打断连接。" @@ -3381,14 +3389,15 @@ msgstr "静音" msgid "Simple round-robin all nodes" msgstr "简单轮替所有节点" -#: htdocs/luci-static/resources/view/fchomo/node.js:2426 +#: htdocs/luci-static/resources/view/fchomo/node.js:2390 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:402 msgid "Size limit" msgstr "大小限制" +#: htdocs/luci-static/resources/fchomo.js:1480 #: htdocs/luci-static/resources/view/fchomo/client.js:1675 -#: htdocs/luci-static/resources/view/fchomo/node.js:1555 -#: htdocs/luci-static/resources/view/fchomo/node.js:2601 +#: htdocs/luci-static/resources/view/fchomo/node.js:1519 +#: htdocs/luci-static/resources/view/fchomo/node.js:2565 msgid "Skip cert verify" msgstr "跳过证书验证" @@ -3485,7 +3494,7 @@ msgstr "已成功导入 %s 个%s (共 %s 个)。" msgid "Successfully updated." msgstr "更新成功。" -#: htdocs/luci-static/resources/fchomo.js:1934 +#: htdocs/luci-static/resources/fchomo.js:2020 msgid "Successfully uploaded." msgstr "已成功上传。" @@ -3543,7 +3552,7 @@ msgstr "TCP 并发" msgid "TCP idle timeout" msgstr "TCP 闲置超时" -#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2116 msgid "TCP only" msgstr "仅 TCP" @@ -3571,8 +3580,8 @@ msgstr "TCP-Keep-Alive 间隔" msgid "TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2183 -#: htdocs/luci-static/resources/view/fchomo/node.js:2562 +#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/view/fchomo/node.js:2526 msgid "TFO" msgstr "TCP 快速打开 (TFO)" @@ -3585,20 +3594,22 @@ msgid "TLD DNS zone used by MagicDNS, default is %s." msgstr "MagicDNS 使用的 TLD DNS 区域,默认为 %s。" #: htdocs/luci-static/resources/fchomo/listeners.js:718 -#: htdocs/luci-static/resources/fchomo/listeners.js:1038 +#: htdocs/luci-static/resources/fchomo/listeners.js:1026 #: htdocs/luci-static/resources/view/fchomo/global.js:558 #: htdocs/luci-static/resources/view/fchomo/node.js:472 #: htdocs/luci-static/resources/view/fchomo/node.js:1308 -#: htdocs/luci-static/resources/view/fchomo/node.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1429 msgid "TLS" msgstr "TLS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1079 -#: htdocs/luci-static/resources/view/fchomo/node.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1462 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 +#: htdocs/luci-static/resources/view/fchomo/node.js:1460 msgid "TLS ALPN" msgstr "TLS ALPN" -#: htdocs/luci-static/resources/view/fchomo/node.js:1483 +#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/view/fchomo/node.js:1454 msgid "TLS SNI" msgstr "" @@ -3630,29 +3641,31 @@ 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:1793 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1766 +#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1798 #: 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:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1834 -#: htdocs/luci-static/resources/view/fchomo/node.js:1838 msgid "The %s address used by local machine in the %s network." msgstr "本机 %s 地址,用于在 %s 网络中使用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/fchomo.js:1495 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "The %s private key, in PEM format." msgstr "%s私钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 msgid "The %s public key, in PEM format." msgstr "%s公钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1598 +#: htdocs/luci-static/resources/view/fchomo/node.js:1562 msgid "" "The ECH parameter of the HTTPS record for the domain. Leave empty to resolve " "via DNS." @@ -3700,19 +3713,24 @@ msgstr "匹配 %s 的将被视为已被投毒污染。" msgid "The proxy used to connect to the handshake target." msgstr "用于连接握手目标的代理。" +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 +msgid "The proxy used to connect to the rendezvous server." +msgstr "用于连接牵线服务器的代理。" + #: htdocs/luci-static/resources/fchomo/listeners.js:880 #: htdocs/luci-static/resources/view/fchomo/node.js:1403 msgid "The server and client can set different padding parameters." msgstr "服务器和客户端可以设置不同的填充参数。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1239 +#: htdocs/luci-static/resources/fchomo/listeners.js:1227 #: htdocs/luci-static/resources/view/fchomo/global.js:623 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "此 ECH 参数需要添加到域名的 HTTPS 记录中。" +#: htdocs/luci-static/resources/fchomo.js:1483 #: htdocs/luci-static/resources/view/fchomo/client.js:1678 -#: htdocs/luci-static/resources/view/fchomo/node.js:1558 -#: htdocs/luci-static/resources/view/fchomo/node.js:2604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1522 +#: htdocs/luci-static/resources/view/fchomo/node.js:2568 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -3756,18 +3774,18 @@ msgstr "Tproxy 端口" msgid "Traffic pattern" msgstr "流量模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2798 +#: htdocs/luci-static/resources/view/fchomo/node.js:2762 msgid "Transit proxy group" msgstr "中转代理组" -#: htdocs/luci-static/resources/view/fchomo/node.js:2809 +#: htdocs/luci-static/resources/view/fchomo/node.js:2773 msgid "Transit proxy node" msgstr "中转代理节点" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1297 #: htdocs/luci-static/resources/view/fchomo/node.js:363 -#: htdocs/luci-static/resources/view/fchomo/node.js:1911 +#: htdocs/luci-static/resources/view/fchomo/node.js:1875 msgid "Transport" msgstr "传输层" @@ -3776,8 +3794,8 @@ msgstr "传输层" msgid "Transport fields" msgstr "传输层字段" -#: htdocs/luci-static/resources/fchomo/listeners.js:1314 -#: htdocs/luci-static/resources/view/fchomo/node.js:1916 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 +#: htdocs/luci-static/resources/view/fchomo/node.js:1880 msgid "Transport type" msgstr "传输层类型" @@ -3830,8 +3848,8 @@ msgstr "关闭 TCP 中继。" #: htdocs/luci-static/resources/view/fchomo/client.js:871 #: htdocs/luci-static/resources/view/fchomo/client.js:1069 #: htdocs/luci-static/resources/view/fchomo/node.js:271 -#: htdocs/luci-static/resources/view/fchomo/node.js:2363 -#: htdocs/luci-static/resources/view/fchomo/node.js:2759 +#: htdocs/luci-static/resources/view/fchomo/node.js:2327 +#: htdocs/luci-static/resources/view/fchomo/node.js:2723 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:296 msgid "Type" msgstr "类型" @@ -3850,7 +3868,7 @@ msgstr "类型" #: htdocs/luci-static/resources/fchomo/listeners.js:676 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:706 -#: htdocs/luci-static/resources/view/fchomo/node.js:2572 +#: htdocs/luci-static/resources/view/fchomo/node.js:2536 msgid "UDP" msgstr "UDP" @@ -3894,7 +3912,7 @@ msgstr "自动选择" msgid "UUID" msgstr "UUID" -#: htdocs/luci-static/resources/fchomo.js:1443 +#: htdocs/luci-static/resources/fchomo.js:1521 msgid "Unable to download unsupported type: %s" msgstr "无法下载不支持的类型: %s" @@ -3920,7 +3938,7 @@ msgid "Unknown error: %s" msgstr "未知错误:%s" #: htdocs/luci-static/resources/view/fchomo/node.js:1256 -#: htdocs/luci-static/resources/view/fchomo/node.js:2577 +#: htdocs/luci-static/resources/view/fchomo/node.js:2541 msgid "UoT" msgstr "UDP over TCP (UoT)" @@ -3928,24 +3946,24 @@ msgstr "UDP over TCP (UoT)" msgid "Update failed." msgstr "更新失败。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2432 +#: htdocs/luci-static/resources/view/fchomo/node.js:2396 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:408 msgid "Update interval" msgstr "更新间隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1411 -#: htdocs/luci-static/resources/view/fchomo/node.js:2170 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 +#: htdocs/luci-static/resources/view/fchomo/node.js:2134 msgid "Upload bandwidth" msgstr "上传带宽" -#: htdocs/luci-static/resources/fchomo/listeners.js:1412 -#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/fchomo/listeners.js:1400 +#: htdocs/luci-static/resources/view/fchomo/node.js:2135 msgid "Upload bandwidth in Mbps." msgstr "上传带宽(单位:Mbps)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 +#: htdocs/luci-static/resources/fchomo/listeners.js:1137 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 msgid "Upload certificate" msgstr "上传证书" @@ -3953,25 +3971,25 @@ msgstr "上传证书" msgid "Upload initial package" msgstr "上传初始资源包" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/fchomo/listeners.js:1152 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "Upload key" msgstr "上传密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1152 -#: htdocs/luci-static/resources/fchomo/listeners.js:1167 -#: htdocs/luci-static/resources/fchomo/listeners.js:1192 +#: htdocs/luci-static/resources/fchomo/listeners.js:1140 +#: htdocs/luci-static/resources/fchomo/listeners.js:1155 +#: htdocs/luci-static/resources/fchomo/listeners.js:1180 #: htdocs/luci-static/resources/view/fchomo/global.js:306 -#: htdocs/luci-static/resources/view/fchomo/node.js:1572 -#: htdocs/luci-static/resources/view/fchomo/node.js:1586 +#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/view/fchomo/node.js:1550 msgid "Upload..." msgstr "上传..." -#: htdocs/luci-static/resources/view/fchomo/node.js:1849 +#: htdocs/luci-static/resources/view/fchomo/node.js:1813 msgid "Use DHCP" msgstr "使用 DHCP" -#: htdocs/luci-static/resources/view/fchomo/node.js:1850 +#: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Use DHCP to obtain IP address." msgstr "使用 DHCP 获取 IP 地址。" @@ -4017,8 +4035,9 @@ msgstr "用于解析 DNS 服务器的域名。必须是 IP。" msgid "Used to resolve the domain of the Proxy node." msgstr "用于解析代理节点的域名。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1550 -#: htdocs/luci-static/resources/view/fchomo/node.js:2596 +#: htdocs/luci-static/resources/fchomo.js:1475 +#: htdocs/luci-static/resources/view/fchomo/node.js:1514 +#: htdocs/luci-static/resources/view/fchomo/node.js:2560 msgid "Used to verify the hostname on the returned certificates." msgstr "用于验证返回的证书上的主机名。" @@ -4053,11 +4072,11 @@ msgstr "UDP 直连失败后使用中继。" msgid "Using this in conjunction with %s is recommended." msgstr "建议与 %s 结合使用。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2027 +#: htdocs/luci-static/resources/view/fchomo/node.js:1991 msgid "V2ray HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2032 +#: htdocs/luci-static/resources/view/fchomo/node.js:1996 msgid "V2ray HTTPUpgrade fast open" msgstr "" @@ -4071,9 +4090,9 @@ msgstr "" msgid "VMess" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 msgid "VPN" msgstr "" @@ -4085,8 +4104,8 @@ msgstr "VPN 字段" 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:2369 -#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2333 +#: htdocs/luci-static/resources/view/fchomo/node.js:2729 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:339 msgid "Value" msgstr "可视化值" @@ -4111,16 +4130,16 @@ msgid "Version hint" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:1116 -#: htdocs/luci-static/resources/view/fchomo/node.js:1818 -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1782 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 msgid "Virtual IPv4 address" msgstr "虚拟 IPv4 地址" -#: htdocs/luci-static/resources/view/fchomo/node.js:1825 +#: htdocs/luci-static/resources/view/fchomo/node.js:1789 msgid "Virtual IPv6 address" msgstr "虚拟 IPv6 地址" -#: htdocs/luci-static/resources/view/fchomo/node.js:1792 +#: htdocs/luci-static/resources/view/fchomo/node.js:1756 msgid "Virtual address" msgstr "虚拟地址" @@ -4138,15 +4157,15 @@ msgid "Warning" msgstr "警告" #: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:1316 -#: htdocs/luci-static/resources/fchomo/listeners.js:1327 -#: htdocs/luci-static/resources/fchomo/listeners.js:1334 +#: htdocs/luci-static/resources/fchomo/listeners.js:1304 +#: htdocs/luci-static/resources/fchomo/listeners.js:1315 +#: htdocs/luci-static/resources/fchomo/listeners.js:1322 #: 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:1921 -#: htdocs/luci-static/resources/view/fchomo/node.js:1934 -#: htdocs/luci-static/resources/view/fchomo/node.js:1941 -#: htdocs/luci-static/resources/view/fchomo/node.js:1947 +#: htdocs/luci-static/resources/view/fchomo/node.js:1885 +#: htdocs/luci-static/resources/view/fchomo/node.js:1898 +#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1911 msgid "WebSocket" msgstr "" @@ -4182,33 +4201,33 @@ msgstr "WireGuard 预共享密钥。" msgid "WireGuard requires base64-encoded private keys." msgstr "WireGuard 要求 base64 编码的私钥。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1317 -#: htdocs/luci-static/resources/fchomo/listeners.js:1328 -#: htdocs/luci-static/resources/view/fchomo/node.js:1922 -#: htdocs/luci-static/resources/view/fchomo/node.js:1942 +#: htdocs/luci-static/resources/fchomo/listeners.js:1305 +#: htdocs/luci-static/resources/fchomo/listeners.js:1316 +#: htdocs/luci-static/resources/view/fchomo/node.js:1886 +#: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1364 -#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/fchomo/listeners.js:1352 +#: htdocs/luci-static/resources/view/fchomo/node.js:2001 msgid "XHTTP mode" msgstr "XHTTP 模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2068 +#: htdocs/luci-static/resources/view/fchomo/node.js:2032 msgid "XMUX" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "XMUX:" msgstr "" @@ -4224,7 +4243,7 @@ msgstr "" msgid "Yaml text" msgstr "Yaml 格式文本" -#: htdocs/luci-static/resources/view/fchomo/node.js:2607 +#: htdocs/luci-static/resources/view/fchomo/node.js:2571 msgid "Yes" msgstr "" @@ -4237,7 +4256,7 @@ msgstr "您可以将 %s 添加到 %s 中,以解析虚拟网络内的 A/PTR 记 msgid "YouTube" msgstr "油管" -#: htdocs/luci-static/resources/fchomo.js:1916 +#: htdocs/luci-static/resources/fchomo.js:2002 msgid "Your %s was successfully uploaded. Size: %sB." msgstr "您的 %s 已成功上传。大小:%sB。" @@ -4273,11 +4292,11 @@ msgstr "" msgid "aes-gcm-256" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2454 +#: htdocs/luci-static/resources/view/fchomo/node.js:2418 msgid "age private key" msgstr "age 私钥" -#: htdocs/luci-static/resources/view/fchomo/node.js:2515 +#: htdocs/luci-static/resources/view/fchomo/node.js:2479 msgid "age public key" msgstr "age 公钥" @@ -4302,9 +4321,9 @@ msgstr "bbr" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1154 -#: htdocs/luci-static/resources/fchomo/listeners.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:1574 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 +#: htdocs/luci-static/resources/view/fchomo/node.js:1538 msgid "certificate" msgstr "证书" @@ -4336,7 +4355,7 @@ msgstr "decryption" msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)" msgstr "dnsmasq 自行选择上游服务器。 (可能影响 CDN 准确性)" -#: htdocs/luci-static/resources/view/fchomo/node.js:2589 +#: htdocs/luci-static/resources/view/fchomo/node.js:2553 msgid "down" msgstr "Hysteria 下载速率" @@ -4351,26 +4370,26 @@ msgstr "encryption" msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "false = 带宽优化下行 true = 纯 Sudoku 下行。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1315 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 -#: 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 +#: htdocs/luci-static/resources/fchomo/listeners.js:1303 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 +#: htdocs/luci-static/resources/view/fchomo/node.js:1884 +#: htdocs/luci-static/resources/view/fchomo/node.js:1897 +#: htdocs/luci-static/resources/view/fchomo/node.js:1904 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "gRPC" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2003 +#: htdocs/luci-static/resources/view/fchomo/node.js:1967 msgid "gRPC User-Agent" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2008 +#: htdocs/luci-static/resources/view/fchomo/node.js:1972 msgid "gRPC ping interval" msgstr "gRPC ping 间隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1358 -#: htdocs/luci-static/resources/view/fchomo/node.js:1999 +#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/view/fchomo/node.js:1963 msgid "gRPC service name" msgstr "gRPC 服务名称" @@ -4383,7 +4402,7 @@ msgstr "gVisor" msgid "h2" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2115 +#: htdocs/luci-static/resources/view/fchomo/node.js:2079 msgid "h2mux" msgstr "" @@ -4399,7 +4418,7 @@ msgstr "" msgid "least one keypair required" msgstr "至少需要一对密钥" -#: htdocs/luci-static/resources/view/fchomo/node.js:2730 +#: htdocs/luci-static/resources/view/fchomo/node.js:2694 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:444 msgid "luci-app-tinyfilemanager is not installed, please install it first." msgstr "luci-app-tinyfilemanager 未安装,请先安装它。" @@ -4419,7 +4438,7 @@ msgstr "mihomo IP 协议栈(MIPS)" #: htdocs/luci-static/resources/view/fchomo/client.js:1576 #: htdocs/luci-static/resources/view/fchomo/client.js:1810 #: htdocs/luci-static/resources/view/fchomo/client.js:1866 -#: htdocs/luci-static/resources/view/fchomo/node.js:2335 +#: htdocs/luci-static/resources/view/fchomo/node.js:2299 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:258 msgid "mihomo config" msgstr "mihomo 配置" @@ -4428,8 +4447,8 @@ msgstr "mihomo 配置" msgid "mlkem768x25519plus" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2567 +#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2531 msgid "mpTCP" msgstr "多路径 TCP (mpTCP)" @@ -4441,10 +4460,10 @@ msgstr "new_reno" msgid "no-resolve" msgstr "no-resolve" -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1809 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1895 msgid "non-empty value" msgstr "非空值" @@ -4498,11 +4517,11 @@ msgstr "" msgid "openssl-chacha20" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2512 msgid "override.override-expr" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2540 +#: htdocs/luci-static/resources/view/fchomo/node.js:2504 msgid "override.proxy-name" msgstr "" @@ -4510,8 +4529,8 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1368 -#: htdocs/luci-static/resources/view/fchomo/node.js:2041 +#: htdocs/luci-static/resources/fchomo/listeners.js:1356 +#: htdocs/luci-static/resources/view/fchomo/node.js:2005 msgid "packet-up" msgstr "" @@ -4520,8 +4539,8 @@ msgstr "" msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1169 -#: htdocs/luci-static/resources/view/fchomo/node.js:1588 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 +#: htdocs/luci-static/resources/view/fchomo/node.js:1552 msgid "private key" msgstr "私钥" @@ -4542,7 +4561,7 @@ msgstr "需要使用 API 的前端适配。" msgid "rule-set" msgstr "规则集" -#: htdocs/luci-static/resources/view/fchomo/node.js:2113 +#: htdocs/luci-static/resources/view/fchomo/node.js:2077 msgid "smux" msgstr "" @@ -4555,17 +4574,17 @@ msgstr "" msgid "src" msgstr "src" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 -#: htdocs/luci-static/resources/view/fchomo/node.js:2039 +#: htdocs/luci-static/resources/fchomo/listeners.js:1354 +#: htdocs/luci-static/resources/view/fchomo/node.js:2003 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1367 -#: htdocs/luci-static/resources/view/fchomo/node.js:2040 +#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/view/fchomo/node.js:2004 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1371 msgid "stream-up server seconds" msgstr "" @@ -4597,11 +4616,11 @@ msgstr "独立 UCI 标识" msgid "unique identifier" msgstr "独立标识" -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1904 msgid "unique value" msgstr "独立值" -#: htdocs/luci-static/resources/view/fchomo/node.js:2583 +#: htdocs/luci-static/resources/view/fchomo/node.js:2547 msgid "up" msgstr "Hysteria 上传速率" @@ -4639,42 +4658,42 @@ msgstr "" msgid "v5" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 msgid "valid JSON format" msgstr "有效的 JSON 格式" -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 +#: htdocs/luci-static/resources/fchomo.js:1823 msgid "valid SHA256 string with %d characters" msgstr "包含 %d 个字符的有效 SHA256 字符串" -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 msgid "valid URL" msgstr "有效网址" -#: htdocs/luci-static/resources/fchomo.js:1736 +#: htdocs/luci-static/resources/fchomo.js:1814 msgid "valid base64 key with %d characters" msgstr "包含 %d 个字符的有效 base64 密钥" -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 msgid "valid format: 2x, 2p, 4v" msgstr "有效格式: 2x, 2p, 4v" -#: htdocs/luci-static/resources/fchomo.js:1727 +#: htdocs/luci-static/resources/fchomo.js:1805 msgid "valid hex string with %d characters" msgstr "包含 %d 个字符的有效 Hex 字符串" -#: htdocs/luci-static/resources/fchomo.js:1783 +#: htdocs/luci-static/resources/fchomo.js:1869 msgid "valid key length with %d characters" msgstr "包含 %d 个字符的有效密钥" -#: htdocs/luci-static/resources/fchomo.js:1649 +#: htdocs/luci-static/resources/fchomo.js:1727 msgid "valid port value" msgstr "有效端口值" -#: htdocs/luci-static/resources/fchomo.js:1699 +#: htdocs/luci-static/resources/fchomo.js:1777 msgid "valid uuid" msgstr "有效 uuid" @@ -4698,7 +4717,7 @@ msgstr "" msgid "yacd-meta" msgstr "yacd-meta" -#: htdocs/luci-static/resources/view/fchomo/node.js:2114 +#: htdocs/luci-static/resources/view/fchomo/node.js:2078 msgid "yamux" msgstr "" @@ -4710,10 +4729,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1466 +#: htdocs/luci-static/resources/fchomo.js:1544 msgid "🔗" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1445 +#: htdocs/luci-static/resources/fchomo.js:1523 msgid "🡇" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po index f0fc10c56..5b17f10f8 100644 --- a/luci-app-fchomo/po/zh_Hant/fchomo.po +++ b/luci-app-fchomo/po/zh_Hant/fchomo.po @@ -12,8 +12,8 @@ msgstr "" msgid "%s Hostname" msgstr "%s 主機名稱" -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "%s UDP port. 0 selects an available port." msgstr "%s UDP 連接埠。 0 自動選擇一個可用連接埠。" @@ -40,15 +40,17 @@ msgstr "%s 連接埠" msgid "(Imported)" msgstr "(已導入)" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 #: htdocs/luci-static/resources/view/fchomo/global.js:572 #: htdocs/luci-static/resources/view/fchomo/global.js:578 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "(mTLS)" msgstr "" @@ -70,10 +72,10 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1113 #: htdocs/luci-static/resources/view/fchomo/client.js:1369 #: htdocs/luci-static/resources/view/fchomo/node.js:305 -#: htdocs/luci-static/resources/view/fchomo/node.js:2771 -#: htdocs/luci-static/resources/view/fchomo/node.js:2782 -#: htdocs/luci-static/resources/view/fchomo/node.js:2801 -#: htdocs/luci-static/resources/view/fchomo/node.js:2812 +#: htdocs/luci-static/resources/view/fchomo/node.js:2735 +#: htdocs/luci-static/resources/view/fchomo/node.js:2746 +#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2776 msgid "-- Please choose --" msgstr "-- 請選擇 --" @@ -102,7 +104,7 @@ msgstr "" msgid "2022-blake3-chacha20-poly1305" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1733 +#: htdocs/luci-static/resources/view/fchomo/node.js:1697 msgid "-1 disables it." msgstr "-1 表示停用它。" @@ -110,11 +112,11 @@ msgstr "-1 表示停用它。" msgid "0 or 1 only." msgstr "僅限 0 或 1。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1150 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 -#: htdocs/luci-static/resources/fchomo/listeners.js:1190 -#: htdocs/luci-static/resources/view/fchomo/node.js:1570 -#: htdocs/luci-static/resources/view/fchomo/node.js:1584 +#: htdocs/luci-static/resources/fchomo/listeners.js:1138 +#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/view/fchomo/node.js:1534 +#: htdocs/luci-static/resources/view/fchomo/node.js:1548 msgid "Save your configuration before uploading files!" msgstr "上傳文件前請先保存配置!" @@ -218,11 +220,11 @@ msgstr "新增 節點" msgid "Add a inbound" msgstr "新增 入站" -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 msgid "Add a provider" msgstr "新增 供應商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Add a proxy chain" msgstr "新增 代理鏈" @@ -246,11 +248,11 @@ msgstr "新增 伺服器" msgid "Add a sub rule" msgstr "新增 子規則" -#: htdocs/luci-static/resources/view/fchomo/node.js:2529 +#: htdocs/luci-static/resources/view/fchomo/node.js:2493 msgid "Add prefix" msgstr "添加前綴" -#: htdocs/luci-static/resources/view/fchomo/node.js:2533 +#: htdocs/luci-static/resources/view/fchomo/node.js:2497 msgid "Add suffix" msgstr "添加後綴" @@ -307,7 +309,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "允許透過出口節點存取本地區域網路。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1073 +#: htdocs/luci-static/resources/fchomo/listeners.js:1061 msgid "Allow insecure connections" msgstr "允許不安全的連線" @@ -371,22 +373,22 @@ msgid "Authentication key" msgstr "認證金鑰" #: htdocs/luci-static/resources/fchomo/listeners.js:376 -#: htdocs/luci-static/resources/fchomo/listeners.js:1365 +#: htdocs/luci-static/resources/fchomo/listeners.js:1353 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: 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:2038 +#: htdocs/luci-static/resources/view/fchomo/node.js:2002 msgid "Auto" msgstr "自動" -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 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:1654 +#: htdocs/luci-static/resources/view/fchomo/node.js:1618 msgid "Auto configure firewall" msgstr "自動配置防火牆" @@ -441,13 +443,13 @@ msgid "Binary mrs" msgstr "二進位 mrs" #: htdocs/luci-static/resources/view/fchomo/global.js:766 -#: htdocs/luci-static/resources/view/fchomo/node.js:2199 -#: htdocs/luci-static/resources/view/fchomo/node.js:2618 +#: htdocs/luci-static/resources/view/fchomo/node.js:2163 +#: htdocs/luci-static/resources/view/fchomo/node.js:2582 msgid "Bind interface" msgstr "綁定介面" -#: htdocs/luci-static/resources/view/fchomo/node.js:2200 -#: htdocs/luci-static/resources/view/fchomo/node.js:2619 +#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "Bind outbound interface.
" msgstr "綁定出站介面。
" @@ -516,17 +518,20 @@ msgstr "CORS 允許的來源,留空則使用 *。" msgid "Cancel" msgstr "取消" -#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/fchomo.js:1468 +#: htdocs/luci-static/resources/view/fchomo/node.js:1507 msgid "Cert fingerprint" msgstr "憑證指紋" -#: htdocs/luci-static/resources/view/fchomo/node.js:1537 +#: htdocs/luci-static/resources/fchomo.js:1469 +#: htdocs/luci-static/resources/view/fchomo/node.js:1508 msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "憑證指紋。用於實現 SSL憑證固定 並防止 MitM。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1127 -#: htdocs/luci-static/resources/view/fchomo/node.js:1563 +#: htdocs/luci-static/resources/fchomo.js:1488 +#: htdocs/luci-static/resources/fchomo/listeners.js:1115 +#: htdocs/luci-static/resources/view/fchomo/node.js:1527 msgid "Certificate path" msgstr "憑證路徑" @@ -587,25 +592,27 @@ msgstr "" "點擊此處下載" "最新的初始包。" +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1495 #: htdocs/luci-static/resources/fchomo/listeners.js:869 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 #: htdocs/luci-static/resources/view/fchomo/node.js:1392 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:22 msgid "Client" msgstr "客戶端" -#: htdocs/luci-static/resources/fchomo/listeners.js:1180 +#: htdocs/luci-static/resources/fchomo/listeners.js:1168 msgid "Client Auth Certificate path" msgstr "客戶端認證憑證路徑" -#: htdocs/luci-static/resources/fchomo/listeners.js:1172 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 msgid "Client Auth type" msgstr "客戶端認證類型" -#: htdocs/luci-static/resources/view/fchomo/node.js:1609 +#: htdocs/luci-static/resources/view/fchomo/node.js:1573 msgid "Client fingerprint" msgstr "客戶端指紋" @@ -629,8 +636,8 @@ msgstr "客戶端公鑰" msgid "Client status" msgstr "客戶端狀態" -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "Cloudflare WARP" msgstr "" @@ -643,7 +650,7 @@ msgstr "收集資料中..." msgid "Common ports (bypass P2P traffic)" msgstr "常用連接埠(繞過 P2P 流量)" -#: htdocs/luci-static/resources/fchomo.js:1583 +#: htdocs/luci-static/resources/fchomo.js:1661 msgid "Complete" msgstr "完成" @@ -680,14 +687,14 @@ msgid "Content copied to clipboard!" msgstr "內容已複製到剪貼簿!" #: htdocs/luci-static/resources/view/fchomo/client.js:698 -#: htdocs/luci-static/resources/view/fchomo/node.js:2389 -#: htdocs/luci-static/resources/view/fchomo/node.js:2415 +#: htdocs/luci-static/resources/view/fchomo/node.js:2353 +#: htdocs/luci-static/resources/view/fchomo/node.js:2379 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:359 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:385 msgid "Content will not be verified, Please make sure you enter it correctly." msgstr "內容將不會被驗證,請確保輸入正確。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2352 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:358 msgid "Contents" msgstr "內容" @@ -720,7 +727,7 @@ msgstr "自訂 %s 控制伺服器。" msgid "Custom Direct List" msgstr "自訂直連清單" -#: htdocs/luci-static/resources/view/fchomo/node.js:2520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2484 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:431 msgid "Custom HTTP header." msgstr "自訂 HTTP header。" @@ -758,7 +765,7 @@ msgstr " DNS 連接埠" #: htdocs/luci-static/resources/view/fchomo/client.js:1524 #: htdocs/luci-static/resources/view/fchomo/client.js:1533 #: htdocs/luci-static/resources/view/fchomo/node.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1869 msgid "DNS server" msgstr "DNS 伺服器" @@ -805,11 +812,11 @@ msgstr "從私鑰派生" msgid "Destination addresses allowed to be forwarded via Wireguard." msgstr "允許通過 WireGuard 轉發的目的位址" -#: htdocs/luci-static/resources/view/fchomo/node.js:2768 +#: htdocs/luci-static/resources/view/fchomo/node.js:2732 msgid "Destination provider" msgstr "落地供應商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2779 +#: htdocs/luci-static/resources/view/fchomo/node.js:2743 msgid "Destination proxy node" msgstr "落地代理節點" @@ -817,8 +824,8 @@ msgstr "落地代理節點" msgid "Dial fields" msgstr "撥號欄位" -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 msgid "Different chain head/tail" msgstr "不同的鏈頭/鏈尾" @@ -861,7 +868,7 @@ msgstr "禁用 ICMP 轉發" msgid "Disable P2P" msgstr "停用 P2P" -#: htdocs/luci-static/resources/view/fchomo/node.js:1477 +#: htdocs/luci-static/resources/view/fchomo/node.js:1448 msgid "Disable SNI" msgstr "停用 SNI" @@ -890,31 +897,32 @@ msgstr "" msgid "Domain" msgstr "網域" -#: htdocs/luci-static/resources/view/fchomo/node.js:1478 +#: htdocs/luci-static/resources/view/fchomo/node.js:1449 msgid "Donot send server name in ClientHello." msgstr "不要在 ClientHello 中傳送伺服器名稱。" +#: htdocs/luci-static/resources/fchomo.js:1481 #: htdocs/luci-static/resources/view/fchomo/client.js:1676 -#: htdocs/luci-static/resources/view/fchomo/node.js:1556 -#: htdocs/luci-static/resources/view/fchomo/node.js:2602 +#: htdocs/luci-static/resources/view/fchomo/node.js:1520 +#: htdocs/luci-static/resources/view/fchomo/node.js:2566 msgid "Donot verifying server certificate." msgstr "不驗證伺服器憑證。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1417 -#: htdocs/luci-static/resources/view/fchomo/node.js:2176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 +#: htdocs/luci-static/resources/view/fchomo/node.js:2140 msgid "Download bandwidth" msgstr "下載頻寬" -#: htdocs/luci-static/resources/fchomo/listeners.js:1418 -#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/fchomo/listeners.js:1406 +#: htdocs/luci-static/resources/view/fchomo/node.js:2141 msgid "Download bandwidth in Mbps." msgstr "下載頻寬(單位:Mbps)。" -#: htdocs/luci-static/resources/fchomo.js:1440 +#: htdocs/luci-static/resources/fchomo.js:1518 msgid "Download failed: %s" msgstr "下載失敗: %s" -#: htdocs/luci-static/resources/fchomo.js:1436 +#: htdocs/luci-static/resources/fchomo.js:1514 msgid "Download successful." msgstr "下載成功。" @@ -926,16 +934,16 @@ msgstr "目的地 IP" msgid "Dual stack" msgstr "雙棧" -#: htdocs/luci-static/resources/view/fchomo/node.js:1603 +#: htdocs/luci-static/resources/view/fchomo/node.js:1567 msgid "ECH HTTPS record query servername" msgstr "ECH HTTPS 記錄查詢網域" -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 -#: htdocs/luci-static/resources/view/fchomo/node.js:1597 +#: htdocs/luci-static/resources/fchomo/listeners.js:1226 +#: htdocs/luci-static/resources/view/fchomo/node.js:1561 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1197 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 msgid "ECH key" msgstr "ECH 密鑰" @@ -951,11 +959,11 @@ msgstr "EDNS 客戶端子網" msgid "ETag support" msgstr "ETag 支援" -#: htdocs/luci-static/resources/view/fchomo/node.js:2016 +#: htdocs/luci-static/resources/view/fchomo/node.js:1980 msgid "Early Data first packet length limit." msgstr "前置數據長度閾值" -#: htdocs/luci-static/resources/view/fchomo/node.js:2022 +#: htdocs/luci-static/resources/view/fchomo/node.js:1986 msgid "Early Data header name" msgstr "前置數據標頭" @@ -975,7 +983,7 @@ msgstr "編輯出站" msgid "Edit ruleset" msgstr "編輯規則集" -#: htdocs/luci-static/resources/view/fchomo/node.js:2386 +#: htdocs/luci-static/resources/view/fchomo/node.js:2350 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:356 msgid "Editer" msgstr "編輯器" @@ -999,9 +1007,9 @@ msgstr "為空時回退" #: htdocs/luci-static/resources/view/fchomo/global.js:422 #: htdocs/luci-static/resources/view/fchomo/global.js:712 #: htdocs/luci-static/resources/view/fchomo/node.js:267 -#: htdocs/luci-static/resources/view/fchomo/node.js:2359 -#: htdocs/luci-static/resources/view/fchomo/node.js:2641 -#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2323 +#: htdocs/luci-static/resources/view/fchomo/node.js:2605 +#: htdocs/luci-static/resources/view/fchomo/node.js:2719 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:283 #: htdocs/luci-static/resources/view/fchomo/server.js:49 msgid "Enable" @@ -1028,7 +1036,7 @@ msgstr "" "為出站連線啟用 IP4P 轉換" -#: htdocs/luci-static/resources/view/fchomo/node.js:1591 +#: htdocs/luci-static/resources/view/fchomo/node.js:1555 msgid "Enable ECH" msgstr "啟用 ECH" @@ -1036,13 +1044,13 @@ msgstr "啟用 ECH" msgid "Enable MagicDNS" msgstr "啟用 MagicDNS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1405 -#: htdocs/luci-static/resources/view/fchomo/node.js:2164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 +#: htdocs/luci-static/resources/view/fchomo/node.js:2128 msgid "Enable TCP Brutal" msgstr "啟用 TCP Brutal" -#: htdocs/luci-static/resources/fchomo/listeners.js:1406 -#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1394 +#: htdocs/luci-static/resources/view/fchomo/node.js:2129 msgid "Enable TCP Brutal congestion control algorithm" msgstr "啟用 TCP Brutal 擁塞控制演算法。" @@ -1054,7 +1062,7 @@ msgstr "啟用加密" msgid "Enable fast open" msgstr "啟用 Fast open" -#: htdocs/luci-static/resources/view/fchomo/node.js:2153 +#: htdocs/luci-static/resources/view/fchomo/node.js:2117 msgid "Enable multiplexing only for TCP." msgstr "僅為 TCP 啟用多路復用。" @@ -1063,17 +1071,17 @@ msgstr "僅為 TCP 啟用多路復用。" msgid "Enable obfuscate for downlink" msgstr "啟用下行鏈路混淆" -#: htdocs/luci-static/resources/fchomo/listeners.js:1400 -#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 +#: htdocs/luci-static/resources/view/fchomo/node.js:2111 msgid "Enable padding" msgstr "啟用填充" -#: htdocs/luci-static/resources/view/fchomo/node.js:2158 +#: htdocs/luci-static/resources/view/fchomo/node.js:2122 msgid "Enable statistic" msgstr "啟用統計" #: htdocs/luci-static/resources/view/fchomo/node.js:1257 -#: htdocs/luci-static/resources/view/fchomo/node.js:2578 +#: htdocs/luci-static/resources/view/fchomo/node.js:2542 msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "啟用 SUoT 協議,需要服務端支援。與多路復用衝突。" @@ -1116,7 +1124,7 @@ msgid "" "if empty." msgstr "超過此限制將會觸發強制健康檢查。留空則使用 5。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2699 +#: htdocs/luci-static/resources/view/fchomo/node.js:2663 msgid "Exclude matched node types." msgstr "排除匹配的節點類型。" @@ -1129,7 +1137,7 @@ msgstr "" "rel=\"noreferrer noopener\">此處。" #: htdocs/luci-static/resources/view/fchomo/client.js:1251 -#: htdocs/luci-static/resources/view/fchomo/node.js:2692 +#: htdocs/luci-static/resources/view/fchomo/node.js:2656 msgid "Exclude nodes that meet keywords or regexps." msgstr "排除匹配關鍵字或表達式的節點。" @@ -1146,40 +1154,41 @@ msgid "Expand/Collapse result" msgstr "展開/收起 結果" #: htdocs/luci-static/resources/view/fchomo/client.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:2677 +#: htdocs/luci-static/resources/view/fchomo/node.js:2641 msgid "Expected HTTP code. 204 will be used if empty." msgstr "預期的 HTTP code。留空則使用 204。" #: htdocs/luci-static/resources/view/fchomo/client.js:1196 -#: htdocs/luci-static/resources/view/fchomo/node.js:2679 +#: htdocs/luci-static/resources/view/fchomo/node.js:2643 msgid "Expected status" msgstr "預期狀態" #: htdocs/luci-static/resources/fchomo.js:529 #: htdocs/luci-static/resources/fchomo.js:532 #: htdocs/luci-static/resources/fchomo.js:535 -#: htdocs/luci-static/resources/fchomo.js:1600 -#: htdocs/luci-static/resources/fchomo.js:1608 -#: htdocs/luci-static/resources/fchomo.js:1616 -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1642 -#: htdocs/luci-static/resources/fchomo.js:1649 -#: htdocs/luci-static/resources/fchomo.js:1665 -#: htdocs/luci-static/resources/fchomo.js:1674 +#: htdocs/luci-static/resources/fchomo.js:1678 #: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 -#: htdocs/luci-static/resources/fchomo.js:1699 -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1694 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1720 #: htdocs/luci-static/resources/fchomo.js:1727 -#: htdocs/luci-static/resources/fchomo.js:1736 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1783 -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 -#: htdocs/luci-static/resources/fchomo.js:1809 -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1743 +#: htdocs/luci-static/resources/fchomo.js:1752 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 +#: htdocs/luci-static/resources/fchomo.js:1777 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 +#: htdocs/luci-static/resources/fchomo.js:1805 +#: htdocs/luci-static/resources/fchomo.js:1814 +#: htdocs/luci-static/resources/fchomo.js:1823 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1869 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 +#: htdocs/luci-static/resources/fchomo.js:1895 +#: htdocs/luci-static/resources/fchomo.js:1904 #: htdocs/luci-static/resources/fchomo/listeners.js:291 #: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/fchomo/listeners.js:861 @@ -1195,24 +1204,23 @@ msgstr "預期狀態" #: 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:1415 -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 -#: htdocs/luci-static/resources/view/fchomo/node.js:2791 -#: htdocs/luci-static/resources/view/fchomo/node.js:2821 +#: htdocs/luci-static/resources/view/fchomo/node.js:2755 +#: htdocs/luci-static/resources/view/fchomo/node.js:2785 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:311 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:325 msgid "Expecting: %s" msgstr "請輸入:%s" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Cannot be empty." msgstr "請輸入:不能為空。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 -#: htdocs/luci-static/resources/view/fchomo/node.js:1625 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "請輸入:當 %s 啟用時,無法啟用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 msgid "Expecting: Keep empty when %s is enabled." msgstr "請輸入:啟用 %s 時保持為空。" @@ -1223,13 +1231,13 @@ msgstr "請輸入:至少包含 %s 或 %s 中的一個。" #: htdocs/luci-static/resources/fchomo/listeners.js:699 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 -#: htdocs/luci-static/resources/view/fchomo/node.js:1931 -#: htdocs/luci-static/resources/view/fchomo/node.js:1938 -#: htdocs/luci-static/resources/view/fchomo/node.js:1946 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "Expecting: Only support %s." msgstr "請輸入:僅支援 %s。" @@ -1249,19 +1257,19 @@ msgstr "實驗性" msgid "Factor" msgstr "條件" -#: htdocs/luci-static/resources/fchomo.js:1541 +#: htdocs/luci-static/resources/fchomo.js:1619 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:1494 +#: htdocs/luci-static/resources/fchomo.js:1572 msgid "Failed to generate %s, error: %s." msgstr "生成 %s 失敗,錯誤:%s。" -#: htdocs/luci-static/resources/fchomo.js:1918 +#: htdocs/luci-static/resources/fchomo.js:2004 msgid "Failed to upload %s, error: %s." msgstr "上傳 %s 失敗,錯誤:%s。" -#: htdocs/luci-static/resources/fchomo.js:1937 +#: htdocs/luci-static/resources/fchomo.js:2023 msgid "Failed to upload, error: %s." msgstr "上傳失敗,錯誤:%s。" @@ -1290,7 +1298,7 @@ msgid "Fallback relay" msgstr "自動回退中繼" #: htdocs/luci-static/resources/view/fchomo/client.js:1246 -#: htdocs/luci-static/resources/view/fchomo/node.js:2686 +#: htdocs/luci-static/resources/view/fchomo/node.js:2650 msgid "Filter nodes that meet keywords or regexps." msgstr "過濾匹配關鍵字或表達式的節點。" @@ -1316,7 +1324,7 @@ 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:1653 +#: htdocs/luci-static/resources/view/fchomo/node.js:1617 msgid "Firewall" msgstr "防火牆" @@ -1334,9 +1342,9 @@ msgstr "" "noopener\">%s." #: htdocs/luci-static/resources/view/fchomo/client.js:1195 -#: htdocs/luci-static/resources/view/fchomo/node.js:2539 -#: htdocs/luci-static/resources/view/fchomo/node.js:2547 -#: htdocs/luci-static/resources/view/fchomo/node.js:2678 +#: htdocs/luci-static/resources/view/fchomo/node.js:2503 +#: htdocs/luci-static/resources/view/fchomo/node.js:2511 +#: htdocs/luci-static/resources/view/fchomo/node.js:2642 msgid "" "For format see %s." @@ -1348,7 +1356,7 @@ msgstr "" msgid "Force" msgstr "強制" -#: htdocs/luci-static/resources/view/fchomo/node.js:1900 +#: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Force DNS remote resolution." msgstr "強制 DNS 遠端解析。" @@ -1375,7 +1383,7 @@ msgstr "轉發速率限制" msgid "FullCombo Shark!" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1971 +#: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "GET" msgstr "" @@ -1395,7 +1403,7 @@ msgstr "常規" #: htdocs/luci-static/resources/fchomo/listeners.js:119 #: htdocs/luci-static/resources/view/fchomo/client.js:1050 #: htdocs/luci-static/resources/view/fchomo/node.js:252 -#: htdocs/luci-static/resources/view/fchomo/node.js:2349 +#: htdocs/luci-static/resources/view/fchomo/node.js:2313 msgid "General fields" msgstr "常規欄位" @@ -1411,9 +1419,9 @@ msgstr "常規設定" #: htdocs/luci-static/resources/fchomo/listeners.js:313 #: htdocs/luci-static/resources/fchomo/listeners.js:315 #: htdocs/luci-static/resources/fchomo/listeners.js:965 -#: htdocs/luci-static/resources/fchomo/listeners.js:1230 +#: htdocs/luci-static/resources/fchomo/listeners.js:1218 #: htdocs/luci-static/resources/view/fchomo/global.js:616 -#: htdocs/luci-static/resources/view/fchomo/node.js:2507 +#: htdocs/luci-static/resources/view/fchomo/node.js:2471 msgid "Generate" msgstr "生成" @@ -1484,15 +1492,15 @@ msgstr "組" #: htdocs/luci-static/resources/fchomo.js:228 #: htdocs/luci-static/resources/fchomo/listeners.js:717 #: htdocs/luci-static/resources/view/fchomo/node.js:1307 -#: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1882 +#: htdocs/luci-static/resources/view/fchomo/node.js:1895 +#: htdocs/luci-static/resources/view/fchomo/node.js:1902 msgid "HTTP" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:333 -#: htdocs/luci-static/resources/view/fchomo/node.js:1993 -#: htdocs/luci-static/resources/view/fchomo/node.js:2519 +#: htdocs/luci-static/resources/view/fchomo/node.js:1957 +#: htdocs/luci-static/resources/view/fchomo/node.js:2483 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:430 msgid "HTTP header" msgstr "HTTP header" @@ -1518,7 +1526,7 @@ msgstr "HTTP 偽裝多路復用" msgid "HTTP mask: %s" msgstr "HTTP 偽裝: %s" -#: htdocs/luci-static/resources/view/fchomo/node.js:1970 +#: htdocs/luci-static/resources/view/fchomo/node.js:1934 msgid "HTTP request method" msgstr "HTTP 請求方法" @@ -1537,9 +1545,9 @@ msgid "" "returned if empty." msgstr "身份驗證失敗時的 HTTP3 伺服器回應。預設回傳 404 頁面。" -#: 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:1883 +#: htdocs/luci-static/resources/view/fchomo/node.js:1896 +#: htdocs/luci-static/resources/view/fchomo/node.js:1903 msgid "HTTPUpgrade" msgstr "" @@ -1577,27 +1585,27 @@ msgid "Health check" msgstr "健康檢查" #: htdocs/luci-static/resources/view/fchomo/client.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:2646 +#: htdocs/luci-static/resources/view/fchomo/node.js:2610 msgid "Health check URL" msgstr "健康檢查 URL" #: htdocs/luci-static/resources/view/fchomo/client.js:1193 -#: htdocs/luci-static/resources/view/fchomo/node.js:2676 +#: htdocs/luci-static/resources/view/fchomo/node.js:2640 msgid "Health check expected status" msgstr "健康檢查预期状态" #: htdocs/luci-static/resources/view/fchomo/client.js:1173 -#: htdocs/luci-static/resources/view/fchomo/node.js:2656 +#: htdocs/luci-static/resources/view/fchomo/node.js:2620 msgid "Health check interval" msgstr "健康檢查間隔" #: htdocs/luci-static/resources/view/fchomo/client.js:1180 -#: htdocs/luci-static/resources/view/fchomo/node.js:2663 +#: htdocs/luci-static/resources/view/fchomo/node.js:2627 msgid "Health check timeout" msgstr "健康檢查逾時" #: htdocs/luci-static/resources/view/fchomo/client.js:1052 -#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2315 msgid "Health fields" msgstr "健康欄位" @@ -1631,7 +1639,8 @@ msgstr "主機/SNI 覆蓋" msgid "Hostname" msgstr "主機名稱" -#: htdocs/luci-static/resources/view/fchomo/node.js:1484 +#: htdocs/luci-static/resources/fchomo.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1455 msgid "" "Hostname that the client attempts to connect to at the start of the TLS " "handshake process." @@ -1674,15 +1683,15 @@ msgstr "IP 覆寫" msgid "IP stack" msgstr "IP 協定棧" -#: htdocs/luci-static/resources/view/fchomo/node.js:2213 -#: htdocs/luci-static/resources/view/fchomo/node.js:2632 +#: htdocs/luci-static/resources/view/fchomo/node.js:2177 +#: htdocs/luci-static/resources/view/fchomo/node.js:2596 msgid "IP version" msgstr "IP 版本" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1807 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1771 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 msgid "IPv4" msgstr "IPv4" @@ -1690,9 +1699,9 @@ msgstr "IPv4" msgid "IPv4 only" msgstr "僅 IPv4" -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 -#: htdocs/luci-static/resources/view/fchomo/node.js:1839 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 +#: htdocs/luci-static/resources/view/fchomo/node.js:1803 msgid "IPv6" msgstr "IPv6" @@ -1721,7 +1730,7 @@ msgstr "閒置會話逾時" msgid "Idle timeout" msgstr "閒置逾時" -#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1720 msgid "If All ports is selected, uncheck others" msgstr "如果選擇了“所有連接埠”,則取消選取“其他”" @@ -1755,8 +1764,8 @@ msgstr "導入" #: htdocs/luci-static/resources/view/fchomo/client.js:1812 #: htdocs/luci-static/resources/view/fchomo/client.js:1847 #: htdocs/luci-static/resources/view/fchomo/client.js:1868 -#: htdocs/luci-static/resources/view/fchomo/node.js:2239 -#: htdocs/luci-static/resources/view/fchomo/node.js:2337 +#: htdocs/luci-static/resources/view/fchomo/node.js:2203 +#: htdocs/luci-static/resources/view/fchomo/node.js:2301 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:164 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:260 msgid "Import mihomo config" @@ -1772,8 +1781,8 @@ msgstr "導入規則集連結" #: htdocs/luci-static/resources/fchomo/listeners.js:487 #: 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:2584 -#: htdocs/luci-static/resources/view/fchomo/node.js:2590 +#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2554 msgid "In Mbps." msgstr "單位為 Mbps。" @@ -1781,12 +1790,12 @@ msgstr "單位為 Mbps。" msgid "In bps. 0 means no speed limit." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2427 +#: htdocs/luci-static/resources/view/fchomo/node.js:2391 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:403 msgid "In bytes. %s will be used if empty." msgstr "單位為位元組。留空則使用 %s。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1301 +#: htdocs/luci-static/resources/fchomo/listeners.js:1289 #: 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 @@ -1795,11 +1804,11 @@ msgstr "單位為毫秒。" #: htdocs/luci-static/resources/view/fchomo/client.js:1181 #: htdocs/luci-static/resources/view/fchomo/client.js:1227 -#: htdocs/luci-static/resources/view/fchomo/node.js:2664 +#: htdocs/luci-static/resources/view/fchomo/node.js:2628 msgid "In millisecond. %s will be used if empty." msgstr "單位為毫秒。留空則使用 %s。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2062 +#: htdocs/luci-static/resources/view/fchomo/node.js:2026 msgid "In milliseconds." msgstr "單位為毫秒。" @@ -1809,7 +1818,7 @@ msgstr "單位為毫秒。" #: htdocs/luci-static/resources/fchomo/listeners.js:663 #: 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:2009 +#: htdocs/luci-static/resources/view/fchomo/node.js:1973 msgid "In seconds." msgstr "單位為秒。" @@ -1818,8 +1827,8 @@ msgstr "單位為秒。" #: htdocs/luci-static/resources/view/fchomo/global.js:451 #: 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:2433 -#: htdocs/luci-static/resources/view/fchomo/node.js:2657 +#: htdocs/luci-static/resources/view/fchomo/node.js:2397 +#: htdocs/luci-static/resources/view/fchomo/node.js:2621 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:409 msgid "In seconds. %s will be used if empty." msgstr "單位為秒。留空則使用 %s。" @@ -1879,7 +1888,7 @@ msgstr "訊息" msgid "Initial congestion window size" msgstr "初始擁塞視窗大小" -#: htdocs/luci-static/resources/view/fchomo/node.js:2366 +#: htdocs/luci-static/resources/view/fchomo/node.js:2330 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:299 msgid "Inline" msgstr "內嵌" @@ -1895,12 +1904,12 @@ msgstr "介面控制" #: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/fchomo/listeners.js:702 #: htdocs/luci-static/resources/fchomo/listeners.js:707 -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1254 +#: htdocs/luci-static/resources/fchomo/listeners.js:1126 +#: htdocs/luci-static/resources/fchomo/listeners.js:1242 #: htdocs/luci-static/resources/view/fchomo/node.js:1282 #: htdocs/luci-static/resources/view/fchomo/node.js:1292 #: htdocs/luci-static/resources/view/fchomo/node.js:1297 -#: htdocs/luci-static/resources/view/fchomo/node.js:1627 +#: htdocs/luci-static/resources/view/fchomo/node.js:1591 msgid "JLS" msgstr "JLS" @@ -1915,11 +1924,11 @@ msgstr "加入 %s。格式:%s" #: htdocs/luci-static/resources/fchomo.js:454 #: 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:2606 +#: htdocs/luci-static/resources/view/fchomo/node.js:2570 msgid "Keep default" msgstr "保持預設" -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "Keep-alive period" msgstr "Keep-alive 週期" @@ -1928,8 +1937,9 @@ msgstr "Keep-alive 週期" msgid "Key" msgstr "密鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1157 -#: htdocs/luci-static/resources/view/fchomo/node.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1494 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/view/fchomo/node.js:1541 msgid "Key path" msgstr "憑證路徑" @@ -1956,8 +1966,8 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1818 #: htdocs/luci-static/resources/view/fchomo/client.js:1874 #: htdocs/luci-static/resources/view/fchomo/node.js:262 -#: htdocs/luci-static/resources/view/fchomo/node.js:2354 -#: htdocs/luci-static/resources/view/fchomo/node.js:2750 +#: htdocs/luci-static/resources/view/fchomo/node.js:2318 +#: htdocs/luci-static/resources/view/fchomo/node.js:2714 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:278 msgid "Label" msgstr "標籤" @@ -1967,7 +1977,7 @@ msgid "Latency first" msgstr "延遲優先" #: htdocs/luci-static/resources/view/fchomo/client.js:1187 -#: htdocs/luci-static/resources/view/fchomo/node.js:2670 +#: htdocs/luci-static/resources/view/fchomo/node.js:2634 msgid "Lazy" msgstr "怠惰狀態" @@ -2006,8 +2016,9 @@ msgid "" "network." msgstr "要向 EasyTier 網路中的其他對端開放的本機子網的清單(CIDR)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1080 -#: htdocs/luci-static/resources/view/fchomo/node.js:1490 +#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo/listeners.js:1068 +#: htdocs/luci-static/resources/view/fchomo/node.js:1461 msgid "List of supported application level protocols, in order of preference." msgstr "支援的應用層協議協商清單,依序排列。" @@ -2025,8 +2036,8 @@ msgstr "監聽介面" #: htdocs/luci-static/resources/fchomo/listeners.js:154 #: htdocs/luci-static/resources/view/fchomo/client.js:1467 -#: htdocs/luci-static/resources/view/fchomo/node.js:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 msgid "Listen port" msgstr "監聽埠" @@ -2038,7 +2049,7 @@ msgstr "監聽埠" msgid "Listen routing mark (Fwmark)" msgstr "監聽路由標記 (Fwmark)" -#: htdocs/luci-static/resources/view/fchomo/node.js:1769 +#: htdocs/luci-static/resources/view/fchomo/node.js:1733 msgid "Listeners" msgstr "監聽" @@ -2046,7 +2057,7 @@ msgstr "監聽" msgid "Load balance" msgstr "負載均衡" -#: htdocs/luci-static/resources/view/fchomo/node.js:2364 +#: htdocs/luci-static/resources/view/fchomo/node.js:2328 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:297 msgid "Local" msgstr "本地" @@ -2091,7 +2102,7 @@ msgid "Lowercase only" msgstr "僅限小寫" #: htdocs/luci-static/resources/view/fchomo/global.js:524 -#: htdocs/luci-static/resources/view/fchomo/node.js:1869 +#: htdocs/luci-static/resources/view/fchomo/node.js:1833 msgid "MTU" msgstr "MTU" @@ -2131,7 +2142,7 @@ msgstr "匹配回應通過 ipcidr
" msgid "Match rule set." msgstr "匹配規則集。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2015 +#: htdocs/luci-static/resources/view/fchomo/node.js:1979 msgid "Max Early Data" msgstr "前置數據最大值" @@ -2140,15 +2151,15 @@ msgstr "前置數據最大值" msgid "Max UDP relay packet size" msgstr "UDP 中繼數據包最大尺寸" -#: htdocs/luci-static/resources/fchomo/listeners.js:1377 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "Max buffered posts" msgstr "POST 最大緩衝" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 msgid "Max concurrency" msgstr "最大並發" -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 msgid "Max connections" msgstr "最大連線數" @@ -2166,8 +2177,8 @@ msgstr "最大資料封包大小" msgid "Max download speed" msgstr "最大下載速度" -#: htdocs/luci-static/resources/fchomo/listeners.js:1388 -#: htdocs/luci-static/resources/view/fchomo/node.js:2055 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 +#: htdocs/luci-static/resources/view/fchomo/node.js:2019 msgid "Max each POST bytes" msgstr "POST 最大位元組數" @@ -2183,15 +2194,15 @@ msgstr "最大 Realms 數量" msgid "Max realms per client IP" msgstr "每客戶端 IP 最大 Realms 數量" -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 msgid "Max request times" msgstr "最大請求次數" -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 msgid "Max reusable seconds" msgstr "最大可重用秒數" -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 msgid "Max reuse times" msgstr "最大重用次數" @@ -2200,12 +2211,12 @@ msgstr "最大重用次數" msgid "Max upload speed" msgstr "最大上傳速度" -#: htdocs/luci-static/resources/view/fchomo/node.js:2119 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2083 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Maximum connections" msgstr "最大連線數" -#: htdocs/luci-static/resources/view/fchomo/node.js:2137 +#: htdocs/luci-static/resources/view/fchomo/node.js:2101 msgid "" "Maximum multiplexed streams in a connection before opening a new connection." "
Conflict with %s and %s." @@ -2225,7 +2236,7 @@ msgid "" "rate." msgstr "最大填充率必須大於等于最小填充率。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2136 +#: htdocs/luci-static/resources/view/fchomo/node.js:2100 msgid "Maximum streams" msgstr "最大流數量" @@ -2250,11 +2261,11 @@ msgstr "Mihomo 服務端" msgid "Min of idle sessions to keep" msgstr "要保留的最少閒置會話數" -#: htdocs/luci-static/resources/view/fchomo/node.js:2061 +#: htdocs/luci-static/resources/view/fchomo/node.js:2025 msgid "Min posts interval" msgstr "POST 請求最小間隔時間" -#: htdocs/luci-static/resources/view/fchomo/node.js:2128 +#: htdocs/luci-static/resources/view/fchomo/node.js:2092 msgid "" "Minimum multiplexed streams in a connection before opening a new connection." msgstr "在開啟新連線之前,連線中的最小多路復用流數量。" @@ -2264,8 +2275,8 @@ msgstr "在開啟新連線之前,連線中的最小多路復用流數量。" msgid "Minimum padding rate" msgstr "最小填充率" -#: htdocs/luci-static/resources/view/fchomo/node.js:2127 -#: htdocs/luci-static/resources/view/fchomo/node.js:2139 +#: htdocs/luci-static/resources/view/fchomo/node.js:2091 +#: htdocs/luci-static/resources/view/fchomo/node.js:2103 msgid "Minimum streams" msgstr "最小流數量" @@ -2286,8 +2297,8 @@ msgstr "混合 系統 TCP 堆栈和 gVisor UDP 堆栈 msgid "Mixed port" msgstr "混合連接埠" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 -#: htdocs/luci-static/resources/view/fchomo/node.js:2105 +#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/view/fchomo/node.js:2069 msgid "Multiplex" msgstr "多路復用" @@ -2305,7 +2316,7 @@ msgstr "多路復用" msgid "NETWORK" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1787 +#: htdocs/luci-static/resources/view/fchomo/node.js:1751 msgid "NO Listener" msgstr "無監聽" @@ -2318,7 +2329,7 @@ msgstr "NOT" msgid "Name of the Proxy group as outbound." msgstr "出站代理組的名稱。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2439 +#: htdocs/luci-static/resources/view/fchomo/node.js:2403 msgid "Name of the Proxy group to download provider." msgstr "用於下載供應商訂閱的代理組名稱。" @@ -2347,7 +2358,7 @@ msgstr "" msgid "Network type" msgstr "網路類型" -#: htdocs/luci-static/resources/view/fchomo/node.js:2608 +#: htdocs/luci-static/resources/view/fchomo/node.js:2572 msgid "No" msgstr "" @@ -2355,7 +2366,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "無需認證的 IP 範圍" -#: htdocs/luci-static/resources/fchomo/listeners.js:1372 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 msgid "No SSE header" msgstr "無 SSE header" @@ -2363,12 +2374,12 @@ msgstr "無 SSE header" msgid "No add'l params" msgstr "無附加參數" -#: htdocs/luci-static/resources/view/fchomo/node.js:2045 +#: htdocs/luci-static/resources/view/fchomo/node.js:2009 msgid "No gRPC header" msgstr "無 gRPC header" #: htdocs/luci-static/resources/view/fchomo/client.js:1188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2671 +#: htdocs/luci-static/resources/view/fchomo/node.js:2635 msgid "No testing is performed when this provider node is not in use." msgstr "當此供應商的節點未使用時,不執行任何測試。" @@ -2386,17 +2397,17 @@ msgid "Node" msgstr "節點" #: htdocs/luci-static/resources/view/fchomo/client.js:1250 -#: htdocs/luci-static/resources/view/fchomo/node.js:2691 +#: htdocs/luci-static/resources/view/fchomo/node.js:2655 msgid "Node exclude filter" msgstr "排除節點" #: htdocs/luci-static/resources/view/fchomo/client.js:1255 -#: htdocs/luci-static/resources/view/fchomo/node.js:2698 +#: htdocs/luci-static/resources/view/fchomo/node.js:2662 msgid "Node exclude type" msgstr "排除節點類型" #: htdocs/luci-static/resources/view/fchomo/client.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:2685 +#: htdocs/luci-static/resources/view/fchomo/node.js:2649 msgid "Node filter" msgstr "過濾節點" @@ -2420,7 +2431,7 @@ msgstr "未安裝" msgid "Not Running" msgstr "未在運作" -#: htdocs/luci-static/resources/view/fchomo/node.js:2716 +#: htdocs/luci-static/resources/view/fchomo/node.js:2680 msgid "Note: The subscription of provider %s is includes %s." msgstr "注意:供應商 %s 的訂閱包含 %s。" @@ -2470,7 +2481,7 @@ msgstr "混淆為%s" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "0-63 範圍內的一個或多個數字,以逗號分隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1074 +#: htdocs/luci-static/resources/fchomo/listeners.js:1062 msgid "Only applicable when %s are used as a frontend." msgstr "僅當 %s 用作前端時適用。" @@ -2489,7 +2500,7 @@ msgstr "僅允許使用與本網路相同的 %s 和 %s 的節點透過此節點 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "只處理來自指定介面的流量。留空表示全部。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1734 msgid "Only the address %s is valid." msgstr "只有位址 %s 是有效的。" @@ -2509,7 +2520,7 @@ msgstr "該選項已棄用,請使用%s作為代替。" msgid "Other" msgstr "其他" -#: htdocs/luci-static/resources/view/fchomo/node.js:2556 +#: htdocs/luci-static/resources/view/fchomo/node.js:2520 msgid "Other configuration items" msgstr "其他配置項" @@ -2517,8 +2528,9 @@ msgstr "其他配置項" msgid "Outbound" msgstr "出站" -#: htdocs/luci-static/resources/view/fchomo/node.js:1549 -#: htdocs/luci-static/resources/view/fchomo/node.js:2595 +#: htdocs/luci-static/resources/fchomo.js:1474 +#: htdocs/luci-static/resources/view/fchomo/node.js:1513 +#: htdocs/luci-static/resources/view/fchomo/node.js:2559 msgid "Override cert DNSName" msgstr "覆蓋憑證 DNSName" @@ -2528,7 +2540,7 @@ msgid "Override destination" msgstr "覆蓋目標位址" #: htdocs/luci-static/resources/view/fchomo/client.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:2350 +#: htdocs/luci-static/resources/view/fchomo/node.js:2314 msgid "Override fields" msgstr "覆蓋欄位" @@ -2548,7 +2560,7 @@ msgstr "使用嗅探到的網域覆寫連線目標。" msgid "Override the existing ECS in original request." msgstr "覆蓋原始請求中已有的 ECS。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1568 msgid "Overrides the domain name used for HTTPS record queries." msgstr "覆蓋用於 HTTPS 記錄查詢的網域。" @@ -2556,11 +2568,11 @@ msgstr "覆蓋用於 HTTPS 記錄查詢的網域。" msgid "Overview" msgstr "概覽" -#: htdocs/luci-static/resources/view/fchomo/node.js:1972 +#: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "POST" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1973 +#: htdocs/luci-static/resources/view/fchomo/node.js:1937 msgid "PUT" msgstr "" @@ -2568,7 +2580,7 @@ msgstr "" msgid "Packet encoding" msgstr "數據包編碼" -#: htdocs/luci-static/resources/view/fchomo/node.js:2050 +#: htdocs/luci-static/resources/view/fchomo/node.js:2014 msgid "Padding bytes" msgstr "填充位元組" @@ -2604,7 +2616,7 @@ msgid "Path in bundle: %s" msgstr "在捆綁包%s中的路徑" #: htdocs/luci-static/resources/fchomo/listeners.js:819 -#: htdocs/luci-static/resources/view/fchomo/node.js:2414 +#: htdocs/luci-static/resources/view/fchomo/node.js:2378 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:384 msgid "Payload" msgstr "Payload" @@ -2654,8 +2666,8 @@ msgid "" "standards." msgstr "連結格式標準請參考 %s。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2387 -#: htdocs/luci-static/resources/view/fchomo/node.js:2413 +#: htdocs/luci-static/resources/view/fchomo/node.js:2351 +#: htdocs/luci-static/resources/view/fchomo/node.js:2377 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:357 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:383 msgid "" @@ -2670,7 +2682,7 @@ msgstr "" #: htdocs/luci-static/resources/view/fchomo/client.js:1541 #: htdocs/luci-static/resources/view/fchomo/client.js:1796 #: htdocs/luci-static/resources/view/fchomo/client.js:1848 -#: htdocs/luci-static/resources/view/fchomo/node.js:2240 +#: htdocs/luci-static/resources/view/fchomo/node.js:2204 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:165 msgid "Please type %s fields of mihomo config.
" msgstr "請輸入 mihomo 配置的 %s 欄位。
" @@ -2695,7 +2707,7 @@ msgstr "外掛類型" msgid "Port" msgstr "連接埠" -#: htdocs/luci-static/resources/fchomo.js:1651 +#: htdocs/luci-static/resources/fchomo.js:1729 msgid "Port %s alrealy exists!" msgstr "連接埠 %s 已存在!" @@ -2723,8 +2735,7 @@ msgstr "連接埠池" msgid "Pre-shared key" msgstr "預先共用金鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1017 -#: htdocs/luci-static/resources/view/fchomo/node.js:1437 +#: htdocs/luci-static/resources/fchomo.js:1437 msgid "Pre-shared key of rendezvous server" msgstr "牽線伺服器的預先共用金鑰" @@ -2741,17 +2752,17 @@ 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:1721 -#: htdocs/luci-static/resources/view/fchomo/node.js:1722 +#: htdocs/luci-static/resources/view/fchomo/node.js:1685 +#: htdocs/luci-static/resources/view/fchomo/node.js:1686 msgid "Primary" msgstr "主要" #: htdocs/luci-static/resources/view/fchomo/global.js:768 #: htdocs/luci-static/resources/view/fchomo/global.js:785 -#: htdocs/luci-static/resources/view/fchomo/node.js:2201 -#: htdocs/luci-static/resources/view/fchomo/node.js:2208 -#: htdocs/luci-static/resources/view/fchomo/node.js:2620 -#: htdocs/luci-static/resources/view/fchomo/node.js:2627 +#: htdocs/luci-static/resources/view/fchomo/node.js:2165 +#: htdocs/luci-static/resources/view/fchomo/node.js:2172 +#: htdocs/luci-static/resources/view/fchomo/node.js:2584 +#: htdocs/luci-static/resources/view/fchomo/node.js:2591 msgid "Priority: Proxy Node > Global." msgstr "優先權: 代理節點 > 全域。" @@ -2780,12 +2791,12 @@ msgstr "進程" msgid "Process matching mode" msgstr "進程匹配模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2546 +#: htdocs/luci-static/resources/view/fchomo/node.js:2510 msgid "Programmable replacement" msgstr "可編程替換" #: htdocs/luci-static/resources/view/fchomo/global.js:716 -#: htdocs/luci-static/resources/view/fchomo/node.js:2111 +#: htdocs/luci-static/resources/view/fchomo/node.js:2075 msgid "Protocol" msgstr "協議" @@ -2800,13 +2811,13 @@ msgid "" msgstr "協議參數。 如啟用會隨機浪費流量(在 v2ray 中預設為啟用且無法停用)。" #: htdocs/luci-static/resources/view/fchomo/client.js:1108 -#: htdocs/luci-static/resources/view/fchomo/node.js:2223 -#: htdocs/luci-static/resources/view/fchomo/node.js:2232 -#: htdocs/luci-static/resources/view/fchomo/node.js:2761 +#: htdocs/luci-static/resources/view/fchomo/node.js:2187 +#: htdocs/luci-static/resources/view/fchomo/node.js:2196 +#: htdocs/luci-static/resources/view/fchomo/node.js:2725 msgid "Provider" msgstr "供應商" -#: htdocs/luci-static/resources/view/fchomo/node.js:2420 +#: htdocs/luci-static/resources/view/fchomo/node.js:2384 msgid "Provider URL" msgstr "供應商訂閱 URL" @@ -2829,19 +2840,20 @@ msgid "Proxy MAC-s" msgstr "代理 MAC 位址" #: htdocs/luci-static/resources/view/fchomo/node.js:225 -#: htdocs/luci-static/resources/view/fchomo/node.js:2760 +#: htdocs/luci-static/resources/view/fchomo/node.js:2724 msgid "Proxy Node" msgstr "代理節點" -#: htdocs/luci-static/resources/view/fchomo/node.js:2736 -#: htdocs/luci-static/resources/view/fchomo/node.js:2745 +#: htdocs/luci-static/resources/view/fchomo/node.js:2700 +#: htdocs/luci-static/resources/view/fchomo/node.js:2709 msgid "Proxy chain" msgstr "代理鏈" #: htdocs/luci-static/resources/fchomo/listeners.js:629 +#: htdocs/luci-static/resources/fchomo/listeners.js:1009 #: htdocs/luci-static/resources/view/fchomo/client.js:809 #: htdocs/luci-static/resources/view/fchomo/client.js:1639 -#: htdocs/luci-static/resources/view/fchomo/node.js:2438 +#: htdocs/luci-static/resources/view/fchomo/node.js:2402 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:414 msgid "Proxy group" msgstr "代理組" @@ -2882,39 +2894,39 @@ msgstr "QUIC 版本" msgid "Quick Reload" msgstr "快速重載" -#: htdocs/luci-static/resources/fchomo/listeners.js:1139 -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 -#: htdocs/luci-static/resources/view/fchomo/node.js:1618 +#: htdocs/luci-static/resources/fchomo/listeners.js:1127 +#: htdocs/luci-static/resources/fchomo/listeners.js:1233 +#: htdocs/luci-static/resources/view/fchomo/node.js:1582 msgid "REALITY" msgstr "REALITY" -#: htdocs/luci-static/resources/view/fchomo/node.js:1644 +#: htdocs/luci-static/resources/view/fchomo/node.js:1608 msgid "REALITY X25519MLKEM768 PQC support" msgstr "REALITY X25519MLKEM768 後量子加密支援" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +#: htdocs/luci-static/resources/fchomo/listeners.js:1281 msgid "REALITY certificate issued to" msgstr "REALITY 憑證頒發給" -#: htdocs/luci-static/resources/fchomo/listeners.js:1261 +#: htdocs/luci-static/resources/fchomo/listeners.js:1249 msgid "REALITY handshake server" msgstr "REALITY 握手伺服器" -#: htdocs/luci-static/resources/fchomo/listeners.js:1300 +#: htdocs/luci-static/resources/fchomo/listeners.js:1288 msgid "REALITY max time difference" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1268 +#: htdocs/luci-static/resources/fchomo/listeners.js:1256 msgid "REALITY private key" msgstr "REALITY 私鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1283 -#: htdocs/luci-static/resources/view/fchomo/node.js:1634 +#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/view/fchomo/node.js:1598 msgid "REALITY public key" msgstr "REALITY 公鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 -#: htdocs/luci-static/resources/view/fchomo/node.js:1639 +#: htdocs/luci-static/resources/fchomo/listeners.js:1275 +#: htdocs/luci-static/resources/view/fchomo/node.js:1603 msgid "REALITY short ID" msgstr "REALITY 標識符" @@ -2950,13 +2962,11 @@ msgstr "留空將使用隨機令牌。" msgid "Randomized traffic characteristics" msgstr "隨機化流量特徵" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 -#: htdocs/luci-static/resources/view/fchomo/node.js:1426 +#: htdocs/luci-static/resources/fchomo.js:1426 msgid "Realm" msgstr "Realm" -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 -#: htdocs/luci-static/resources/view/fchomo/node.js:1442 +#: htdocs/luci-static/resources/fchomo.js:1442 msgid "Realm ID" msgstr "Realm ID" @@ -2964,7 +2974,7 @@ msgstr "Realm ID" msgid "Realm name pattern" msgstr "Realm 名稱模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2717 +#: htdocs/luci-static/resources/view/fchomo/node.js:2681 msgid "" "Recommended to adjust Client DNS configuration based on actual conditions." msgstr "建議根據實際情況調整客戶端 DNS 配置。" @@ -3012,12 +3022,12 @@ msgstr "再路由" msgid "Rematching routing rules" msgstr "重新匹配路由規則" -#: htdocs/luci-static/resources/view/fchomo/node.js:2365 +#: htdocs/luci-static/resources/view/fchomo/node.js:2329 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:298 msgid "Remote" msgstr "遠端" -#: htdocs/luci-static/resources/view/fchomo/node.js:1899 +#: htdocs/luci-static/resources/view/fchomo/node.js:1863 msgid "Remote DNS resolve" msgstr "遠端 DNS 解析" @@ -3029,30 +3039,29 @@ msgstr "遠端追蹤等級" msgid "Remote trace target" msgstr "遠端追蹤目標" -#: htdocs/luci-static/resources/fchomo.js:1572 +#: htdocs/luci-static/resources/fchomo.js:1650 msgid "Remove" msgstr "移除" -#: htdocs/luci-static/resources/fchomo.js:1577 +#: htdocs/luci-static/resources/fchomo.js:1655 #: 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:2341 -#: htdocs/luci-static/resources/view/fchomo/node.js:2343 +#: htdocs/luci-static/resources/view/fchomo/node.js:2305 +#: htdocs/luci-static/resources/view/fchomo/node.js:2307 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:270 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:272 msgid "Remove idles" msgstr "移除閒置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1011 -#: htdocs/luci-static/resources/view/fchomo/node.js:1431 +#: htdocs/luci-static/resources/fchomo.js:1431 msgid "Rendezvous server" msgstr "牽線伺服器" -#: htdocs/luci-static/resources/view/fchomo/node.js:2537 +#: htdocs/luci-static/resources/view/fchomo/node.js:2501 msgid "Replace name" msgstr "名稱替換" -#: htdocs/luci-static/resources/view/fchomo/node.js:2538 +#: htdocs/luci-static/resources/view/fchomo/node.js:2502 msgid "Replace node name." msgstr "替換節點名稱" @@ -3060,9 +3069,9 @@ msgstr "替換節點名稱" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1351 -#: htdocs/luci-static/resources/view/fchomo/node.js:1979 -#: htdocs/luci-static/resources/view/fchomo/node.js:1986 +#: htdocs/luci-static/resources/fchomo/listeners.js:1339 +#: htdocs/luci-static/resources/view/fchomo/node.js:1943 +#: htdocs/luci-static/resources/view/fchomo/node.js:1950 msgid "Request path" msgstr "請求路徑" @@ -3079,7 +3088,7 @@ msgid "Require any" msgstr "" #: htdocs/luci-static/resources/fchomo.js:481 -#: htdocs/luci-static/resources/view/fchomo/node.js:1645 +#: htdocs/luci-static/resources/view/fchomo/node.js:1609 msgid "Requires server support." msgstr "需要伺服器支援。" @@ -3094,12 +3103,12 @@ msgstr "資源管理" #: htdocs/luci-static/resources/fchomo/listeners.js:691 #: htdocs/luci-static/resources/fchomo/listeners.js:701 #: htdocs/luci-static/resources/fchomo/listeners.js:706 -#: htdocs/luci-static/resources/fchomo/listeners.js:1137 -#: htdocs/luci-static/resources/fchomo/listeners.js:1253 +#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1241 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1590 msgid "Restls" msgstr "" @@ -3152,8 +3161,8 @@ msgstr "路由 GFW 流量" #: htdocs/luci-static/resources/fchomo/listeners.js:612 #: htdocs/luci-static/resources/view/fchomo/global.js:784 -#: htdocs/luci-static/resources/view/fchomo/node.js:2207 -#: htdocs/luci-static/resources/view/fchomo/node.js:2626 +#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/view/fchomo/node.js:2590 msgid "Routing mark (Fwmark)" msgstr "路由標記 (Fwmark)" @@ -3237,8 +3246,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1028 -#: htdocs/luci-static/resources/view/fchomo/node.js:1448 +#: htdocs/luci-static/resources/fchomo.js:1448 msgid "STUN servers" msgstr "STUN 伺服器" @@ -3268,8 +3276,8 @@ msgstr "相同 來源位址 和 目標位址 請求。相同節點" msgid "Save" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1731 -#: htdocs/luci-static/resources/view/fchomo/node.js:1732 +#: htdocs/luci-static/resources/view/fchomo/node.js:1695 +#: htdocs/luci-static/resources/view/fchomo/node.js:1696 msgid "Secondary" msgstr "次要" @@ -3303,8 +3311,8 @@ msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "發送 300-600 秒的隨機票證,以供客戶端 0-RTT 重用。" #: htdocs/luci-static/resources/fchomo/listeners.js:850 -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3314,9 +3322,9 @@ msgstr "服務端" msgid "Server address" msgstr "伺服器位址" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 -#: htdocs/luci-static/resources/view/fchomo/node.js:1958 -#: htdocs/luci-static/resources/view/fchomo/node.js:1964 +#: htdocs/luci-static/resources/fchomo/listeners.js:1333 +#: htdocs/luci-static/resources/view/fchomo/node.js:1922 +#: htdocs/luci-static/resources/view/fchomo/node.js:1928 msgid "Server hostname" msgstr "伺服器主機名稱" @@ -3340,12 +3348,12 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:690 #: htdocs/luci-static/resources/fchomo/listeners.js:700 #: htdocs/luci-static/resources/fchomo/listeners.js:705 -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1124 +#: htdocs/luci-static/resources/fchomo/listeners.js:1240 #: 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 +#: htdocs/luci-static/resources/view/fchomo/node.js:1589 msgid "ShadowTLS" msgstr "" @@ -3369,7 +3377,7 @@ msgstr "Shadowsocks 加密" msgid "Shadowsocks password" msgstr "Shadowsocks 密碼" -#: htdocs/luci-static/resources/view/fchomo/node.js:2159 +#: htdocs/luci-static/resources/view/fchomo/node.js:2123 msgid "Show connections in the dashboard for breaking connections easier." msgstr "在面板中顯示連線以便於打斷連線。" @@ -3381,14 +3389,15 @@ msgstr "靜音" msgid "Simple round-robin all nodes" msgstr "簡單輪替所有節點" -#: htdocs/luci-static/resources/view/fchomo/node.js:2426 +#: htdocs/luci-static/resources/view/fchomo/node.js:2390 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:402 msgid "Size limit" msgstr "大小限制" +#: htdocs/luci-static/resources/fchomo.js:1480 #: htdocs/luci-static/resources/view/fchomo/client.js:1675 -#: htdocs/luci-static/resources/view/fchomo/node.js:1555 -#: htdocs/luci-static/resources/view/fchomo/node.js:2601 +#: htdocs/luci-static/resources/view/fchomo/node.js:1519 +#: htdocs/luci-static/resources/view/fchomo/node.js:2565 msgid "Skip cert verify" msgstr "跳過憑證驗證" @@ -3485,7 +3494,7 @@ msgstr "已成功匯入 %s 個%s (共 %s 個)。" msgid "Successfully updated." msgstr "更新成功。" -#: htdocs/luci-static/resources/fchomo.js:1934 +#: htdocs/luci-static/resources/fchomo.js:2020 msgid "Successfully uploaded." msgstr "已成功上傳。" @@ -3543,7 +3552,7 @@ msgstr "TCP 併發" msgid "TCP idle timeout" msgstr "TCP 閒置逾時" -#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2116 msgid "TCP only" msgstr "僅 TCP" @@ -3571,8 +3580,8 @@ msgstr "TCP-Keep-Alive 間隔" msgid "TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2183 -#: htdocs/luci-static/resources/view/fchomo/node.js:2562 +#: htdocs/luci-static/resources/view/fchomo/node.js:2147 +#: htdocs/luci-static/resources/view/fchomo/node.js:2526 msgid "TFO" msgstr "TCP 快速開啟 (TFO)" @@ -3585,20 +3594,22 @@ msgid "TLD DNS zone used by MagicDNS, default is %s." msgstr "MagicDNS 使用的 TLD DNS 區域,預設為 %s。" #: htdocs/luci-static/resources/fchomo/listeners.js:718 -#: htdocs/luci-static/resources/fchomo/listeners.js:1038 +#: htdocs/luci-static/resources/fchomo/listeners.js:1026 #: htdocs/luci-static/resources/view/fchomo/global.js:558 #: htdocs/luci-static/resources/view/fchomo/node.js:472 #: htdocs/luci-static/resources/view/fchomo/node.js:1308 -#: htdocs/luci-static/resources/view/fchomo/node.js:1458 +#: htdocs/luci-static/resources/view/fchomo/node.js:1429 msgid "TLS" msgstr "TLS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1079 -#: htdocs/luci-static/resources/view/fchomo/node.js:1489 +#: htdocs/luci-static/resources/fchomo.js:1462 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 +#: htdocs/luci-static/resources/view/fchomo/node.js:1460 msgid "TLS ALPN" msgstr "TLS ALPN" -#: htdocs/luci-static/resources/view/fchomo/node.js:1483 +#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/view/fchomo/node.js:1454 msgid "TLS SNI" msgstr "" @@ -3630,29 +3641,31 @@ 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:1793 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1766 +#: htdocs/luci-static/resources/view/fchomo/node.js:1770 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 +#: htdocs/luci-static/resources/view/fchomo/node.js:1798 #: 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:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 -#: htdocs/luci-static/resources/view/fchomo/node.js:1834 -#: htdocs/luci-static/resources/view/fchomo/node.js:1838 msgid "The %s address used by local machine in the %s network." msgstr "本機 %s 位址,用於在 %s 網路中使用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1158 -#: htdocs/luci-static/resources/view/fchomo/node.js:1578 +#: htdocs/luci-static/resources/fchomo.js:1495 +#: htdocs/luci-static/resources/fchomo/listeners.js:1146 +#: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "The %s private key, in PEM format." msgstr "%s私鑰,需要 PEM 格式。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1128 -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo.js:1489 +#: htdocs/luci-static/resources/fchomo/listeners.js:1116 +#: htdocs/luci-static/resources/fchomo/listeners.js:1169 #: htdocs/luci-static/resources/view/fchomo/global.js:579 -#: htdocs/luci-static/resources/view/fchomo/node.js:1564 +#: htdocs/luci-static/resources/view/fchomo/node.js:1528 msgid "The %s public key, in PEM format." msgstr "%s公鑰,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1598 +#: htdocs/luci-static/resources/view/fchomo/node.js:1562 msgid "" "The ECH parameter of the HTTPS record for the domain. Leave empty to resolve " "via DNS." @@ -3700,19 +3713,24 @@ msgstr "匹配 %s 的將被視為已被投毒汙染。" msgid "The proxy used to connect to the handshake target." msgstr "用於連接握手目標的代理。" +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 +msgid "The proxy used to connect to the rendezvous server." +msgstr "用於連接牽線伺服器的代理。" + #: htdocs/luci-static/resources/fchomo/listeners.js:880 #: htdocs/luci-static/resources/view/fchomo/node.js:1403 msgid "The server and client can set different padding parameters." msgstr "伺服器和客戶端可以設定不同的填充參數。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1239 +#: htdocs/luci-static/resources/fchomo/listeners.js:1227 #: htdocs/luci-static/resources/view/fchomo/global.js:623 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "此 ECH 參數需要加入到網域的 HTTPS 記錄中。" +#: htdocs/luci-static/resources/fchomo.js:1483 #: htdocs/luci-static/resources/view/fchomo/client.js:1678 -#: htdocs/luci-static/resources/view/fchomo/node.js:1558 -#: htdocs/luci-static/resources/view/fchomo/node.js:2604 +#: htdocs/luci-static/resources/view/fchomo/node.js:1522 +#: htdocs/luci-static/resources/view/fchomo/node.js:2568 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -3756,18 +3774,18 @@ msgstr "Tproxy 連接埠" msgid "Traffic pattern" msgstr "流量模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2798 +#: htdocs/luci-static/resources/view/fchomo/node.js:2762 msgid "Transit proxy group" msgstr "中轉代理組" -#: htdocs/luci-static/resources/view/fchomo/node.js:2809 +#: htdocs/luci-static/resources/view/fchomo/node.js:2773 msgid "Transit proxy node" msgstr "中轉代理節點" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1297 #: htdocs/luci-static/resources/view/fchomo/node.js:363 -#: htdocs/luci-static/resources/view/fchomo/node.js:1911 +#: htdocs/luci-static/resources/view/fchomo/node.js:1875 msgid "Transport" msgstr "傳輸層" @@ -3776,8 +3794,8 @@ msgstr "傳輸層" msgid "Transport fields" msgstr "傳輸層欄位" -#: htdocs/luci-static/resources/fchomo/listeners.js:1314 -#: htdocs/luci-static/resources/view/fchomo/node.js:1916 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 +#: htdocs/luci-static/resources/view/fchomo/node.js:1880 msgid "Transport type" msgstr "傳輸層類型" @@ -3830,8 +3848,8 @@ msgstr "關閉 TCP 中繼。" #: htdocs/luci-static/resources/view/fchomo/client.js:871 #: htdocs/luci-static/resources/view/fchomo/client.js:1069 #: htdocs/luci-static/resources/view/fchomo/node.js:271 -#: htdocs/luci-static/resources/view/fchomo/node.js:2363 -#: htdocs/luci-static/resources/view/fchomo/node.js:2759 +#: htdocs/luci-static/resources/view/fchomo/node.js:2327 +#: htdocs/luci-static/resources/view/fchomo/node.js:2723 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:296 msgid "Type" msgstr "類型" @@ -3850,7 +3868,7 @@ msgstr "類型" #: htdocs/luci-static/resources/fchomo/listeners.js:676 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:706 -#: htdocs/luci-static/resources/view/fchomo/node.js:2572 +#: htdocs/luci-static/resources/view/fchomo/node.js:2536 msgid "UDP" msgstr "UDP" @@ -3894,7 +3912,7 @@ msgstr "自動選擇" msgid "UUID" msgstr "UUID" -#: htdocs/luci-static/resources/fchomo.js:1443 +#: htdocs/luci-static/resources/fchomo.js:1521 msgid "Unable to download unsupported type: %s" msgstr "無法下載不支援的類型: %s" @@ -3920,7 +3938,7 @@ msgid "Unknown error: %s" msgstr "未知錯誤:%s" #: htdocs/luci-static/resources/view/fchomo/node.js:1256 -#: htdocs/luci-static/resources/view/fchomo/node.js:2577 +#: htdocs/luci-static/resources/view/fchomo/node.js:2541 msgid "UoT" msgstr "UDP over TCP (UoT)" @@ -3928,24 +3946,24 @@ msgstr "UDP over TCP (UoT)" msgid "Update failed." msgstr "更新失敗。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2432 +#: htdocs/luci-static/resources/view/fchomo/node.js:2396 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:408 msgid "Update interval" msgstr "更新間隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1411 -#: htdocs/luci-static/resources/view/fchomo/node.js:2170 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 +#: htdocs/luci-static/resources/view/fchomo/node.js:2134 msgid "Upload bandwidth" msgstr "上傳頻寬" -#: htdocs/luci-static/resources/fchomo/listeners.js:1412 -#: htdocs/luci-static/resources/view/fchomo/node.js:2171 +#: htdocs/luci-static/resources/fchomo/listeners.js:1400 +#: htdocs/luci-static/resources/view/fchomo/node.js:2135 msgid "Upload bandwidth in Mbps." msgstr "上傳頻寬(單位:Mbps)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1189 -#: htdocs/luci-static/resources/view/fchomo/node.js:1569 +#: htdocs/luci-static/resources/fchomo/listeners.js:1137 +#: htdocs/luci-static/resources/fchomo/listeners.js:1177 +#: htdocs/luci-static/resources/view/fchomo/node.js:1533 msgid "Upload certificate" msgstr "上傳憑證" @@ -3953,25 +3971,25 @@ msgstr "上傳憑證" msgid "Upload initial package" msgstr "上傳初始資源包" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 -#: htdocs/luci-static/resources/view/fchomo/node.js:1583 +#: htdocs/luci-static/resources/fchomo/listeners.js:1152 +#: htdocs/luci-static/resources/view/fchomo/node.js:1547 msgid "Upload key" msgstr "上傳金鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1152 -#: htdocs/luci-static/resources/fchomo/listeners.js:1167 -#: htdocs/luci-static/resources/fchomo/listeners.js:1192 +#: htdocs/luci-static/resources/fchomo/listeners.js:1140 +#: htdocs/luci-static/resources/fchomo/listeners.js:1155 +#: htdocs/luci-static/resources/fchomo/listeners.js:1180 #: htdocs/luci-static/resources/view/fchomo/global.js:306 -#: htdocs/luci-static/resources/view/fchomo/node.js:1572 -#: htdocs/luci-static/resources/view/fchomo/node.js:1586 +#: htdocs/luci-static/resources/view/fchomo/node.js:1536 +#: htdocs/luci-static/resources/view/fchomo/node.js:1550 msgid "Upload..." msgstr "上傳..." -#: htdocs/luci-static/resources/view/fchomo/node.js:1849 +#: htdocs/luci-static/resources/view/fchomo/node.js:1813 msgid "Use DHCP" msgstr "使用 DHCP" -#: htdocs/luci-static/resources/view/fchomo/node.js:1850 +#: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Use DHCP to obtain IP address." msgstr "使用 DHCP 取得 IP 位址。" @@ -4017,8 +4035,9 @@ msgstr "用於解析 DNS 伺服器的網域。必須是 IP。" msgid "Used to resolve the domain of the Proxy node." msgstr "用於解析代理節點的網域。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1550 -#: htdocs/luci-static/resources/view/fchomo/node.js:2596 +#: htdocs/luci-static/resources/fchomo.js:1475 +#: htdocs/luci-static/resources/view/fchomo/node.js:1514 +#: htdocs/luci-static/resources/view/fchomo/node.js:2560 msgid "Used to verify the hostname on the returned certificates." msgstr "用於驗證傳回的憑證上的主機名稱。" @@ -4053,11 +4072,11 @@ msgstr "UDP 直連失敗後使用中繼。" msgid "Using this in conjunction with %s is recommended." msgstr "建議與 %s 結合使用。" -#: htdocs/luci-static/resources/view/fchomo/node.js:2027 +#: htdocs/luci-static/resources/view/fchomo/node.js:1991 msgid "V2ray HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2032 +#: htdocs/luci-static/resources/view/fchomo/node.js:1996 msgid "V2ray HTTPUpgrade fast open" msgstr "" @@ -4071,9 +4090,9 @@ msgstr "" msgid "VMess" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1793 -#: htdocs/luci-static/resources/view/fchomo/node.js:1819 -#: htdocs/luci-static/resources/view/fchomo/node.js:1826 +#: htdocs/luci-static/resources/view/fchomo/node.js:1757 +#: htdocs/luci-static/resources/view/fchomo/node.js:1783 +#: htdocs/luci-static/resources/view/fchomo/node.js:1790 msgid "VPN" msgstr "" @@ -4085,8 +4104,8 @@ msgstr "VPN 欄位" 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:2369 -#: htdocs/luci-static/resources/view/fchomo/node.js:2765 +#: htdocs/luci-static/resources/view/fchomo/node.js:2333 +#: htdocs/luci-static/resources/view/fchomo/node.js:2729 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:339 msgid "Value" msgstr "可視化值" @@ -4111,16 +4130,16 @@ msgid "Version hint" msgstr "" #: htdocs/luci-static/resources/view/fchomo/node.js:1116 -#: htdocs/luci-static/resources/view/fchomo/node.js:1818 -#: htdocs/luci-static/resources/view/fchomo/node.js:1851 +#: htdocs/luci-static/resources/view/fchomo/node.js:1782 +#: htdocs/luci-static/resources/view/fchomo/node.js:1815 msgid "Virtual IPv4 address" msgstr "虛擬 IPv4 位址" -#: htdocs/luci-static/resources/view/fchomo/node.js:1825 +#: htdocs/luci-static/resources/view/fchomo/node.js:1789 msgid "Virtual IPv6 address" msgstr "虛擬 IPv6 位址" -#: htdocs/luci-static/resources/view/fchomo/node.js:1792 +#: htdocs/luci-static/resources/view/fchomo/node.js:1756 msgid "Virtual address" msgstr "虛擬位址" @@ -4138,15 +4157,15 @@ msgid "Warning" msgstr "警告" #: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:1316 -#: htdocs/luci-static/resources/fchomo/listeners.js:1327 -#: htdocs/luci-static/resources/fchomo/listeners.js:1334 +#: htdocs/luci-static/resources/fchomo/listeners.js:1304 +#: htdocs/luci-static/resources/fchomo/listeners.js:1315 +#: htdocs/luci-static/resources/fchomo/listeners.js:1322 #: 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:1921 -#: htdocs/luci-static/resources/view/fchomo/node.js:1934 -#: htdocs/luci-static/resources/view/fchomo/node.js:1941 -#: htdocs/luci-static/resources/view/fchomo/node.js:1947 +#: htdocs/luci-static/resources/view/fchomo/node.js:1885 +#: htdocs/luci-static/resources/view/fchomo/node.js:1898 +#: htdocs/luci-static/resources/view/fchomo/node.js:1905 +#: htdocs/luci-static/resources/view/fchomo/node.js:1911 msgid "WebSocket" msgstr "" @@ -4182,33 +4201,33 @@ msgstr "WireGuard 預先共用金鑰。" msgid "WireGuard requires base64-encoded private keys." msgstr "WireGuard 要求 base64 編碼的私鑰。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1803 -#: htdocs/luci-static/resources/view/fchomo/node.js:1835 +#: htdocs/luci-static/resources/view/fchomo/node.js:1767 +#: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1317 -#: htdocs/luci-static/resources/fchomo/listeners.js:1328 -#: htdocs/luci-static/resources/view/fchomo/node.js:1922 -#: htdocs/luci-static/resources/view/fchomo/node.js:1942 +#: htdocs/luci-static/resources/fchomo/listeners.js:1305 +#: htdocs/luci-static/resources/fchomo/listeners.js:1316 +#: htdocs/luci-static/resources/view/fchomo/node.js:1886 +#: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1364 -#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/fchomo/listeners.js:1352 +#: htdocs/luci-static/resources/view/fchomo/node.js:2001 msgid "XHTTP mode" msgstr "XHTTP 模式" -#: htdocs/luci-static/resources/view/fchomo/node.js:2068 +#: htdocs/luci-static/resources/view/fchomo/node.js:2032 msgid "XMUX" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2073 -#: htdocs/luci-static/resources/view/fchomo/node.js:2078 -#: htdocs/luci-static/resources/view/fchomo/node.js:2083 -#: htdocs/luci-static/resources/view/fchomo/node.js:2088 -#: htdocs/luci-static/resources/view/fchomo/node.js:2093 -#: htdocs/luci-static/resources/view/fchomo/node.js:2098 +#: htdocs/luci-static/resources/view/fchomo/node.js:2037 +#: htdocs/luci-static/resources/view/fchomo/node.js:2042 +#: htdocs/luci-static/resources/view/fchomo/node.js:2047 +#: htdocs/luci-static/resources/view/fchomo/node.js:2052 +#: htdocs/luci-static/resources/view/fchomo/node.js:2057 +#: htdocs/luci-static/resources/view/fchomo/node.js:2062 msgid "XMUX:" msgstr "" @@ -4224,7 +4243,7 @@ msgstr "" msgid "Yaml text" msgstr "Yaml 格式文本" -#: htdocs/luci-static/resources/view/fchomo/node.js:2607 +#: htdocs/luci-static/resources/view/fchomo/node.js:2571 msgid "Yes" msgstr "" @@ -4237,7 +4256,7 @@ msgstr "您可以將 %s 新增到 %s 中,以解析虛擬網路內的 A/PTR 記 msgid "YouTube" msgstr "YouTube" -#: htdocs/luci-static/resources/fchomo.js:1916 +#: htdocs/luci-static/resources/fchomo.js:2002 msgid "Your %s was successfully uploaded. Size: %sB." msgstr "您的 %s 已成功上傳。大小:%sB。" @@ -4273,11 +4292,11 @@ msgstr "" msgid "aes-gcm-256" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2454 +#: htdocs/luci-static/resources/view/fchomo/node.js:2418 msgid "age private key" msgstr "age 私鑰" -#: htdocs/luci-static/resources/view/fchomo/node.js:2515 +#: htdocs/luci-static/resources/view/fchomo/node.js:2479 msgid "age public key" msgstr "age 公鑰" @@ -4302,9 +4321,9 @@ msgstr "bbr" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1154 -#: htdocs/luci-static/resources/fchomo/listeners.js:1194 -#: htdocs/luci-static/resources/view/fchomo/node.js:1574 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 +#: htdocs/luci-static/resources/view/fchomo/node.js:1538 msgid "certificate" msgstr "憑證" @@ -4336,7 +4355,7 @@ msgstr "decryption" msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)" msgstr "dnsmasq 自行選擇上游服務器。 (可能影響 CDN 準確性)" -#: htdocs/luci-static/resources/view/fchomo/node.js:2589 +#: htdocs/luci-static/resources/view/fchomo/node.js:2553 msgid "down" msgstr "Hysteria 下載速率" @@ -4351,26 +4370,26 @@ msgstr "encryption" msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "false = 頻寬最佳化下行 true = 純 Sudoku 下行。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1315 -#: htdocs/luci-static/resources/fchomo/listeners.js:1326 -#: htdocs/luci-static/resources/fchomo/listeners.js:1333 -#: 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 +#: htdocs/luci-static/resources/fchomo/listeners.js:1303 +#: htdocs/luci-static/resources/fchomo/listeners.js:1314 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 +#: htdocs/luci-static/resources/view/fchomo/node.js:1884 +#: htdocs/luci-static/resources/view/fchomo/node.js:1897 +#: htdocs/luci-static/resources/view/fchomo/node.js:1904 +#: htdocs/luci-static/resources/view/fchomo/node.js:1910 msgid "gRPC" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2003 +#: htdocs/luci-static/resources/view/fchomo/node.js:1967 msgid "gRPC User-Agent" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2008 +#: htdocs/luci-static/resources/view/fchomo/node.js:1972 msgid "gRPC ping interval" msgstr "gRPC ping 間隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1358 -#: htdocs/luci-static/resources/view/fchomo/node.js:1999 +#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/view/fchomo/node.js:1963 msgid "gRPC service name" msgstr "gRPC 服務名稱" @@ -4383,7 +4402,7 @@ msgstr "gVisor" msgid "h2" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2115 +#: htdocs/luci-static/resources/view/fchomo/node.js:2079 msgid "h2mux" msgstr "" @@ -4399,7 +4418,7 @@ msgstr "" msgid "least one keypair required" msgstr "至少需要一對密鑰" -#: htdocs/luci-static/resources/view/fchomo/node.js:2730 +#: htdocs/luci-static/resources/view/fchomo/node.js:2694 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:444 msgid "luci-app-tinyfilemanager is not installed, please install it first." msgstr "luci-app-tinyfilemanager 未安裝,請先安裝它。" @@ -4419,7 +4438,7 @@ msgstr "mihomo IP 協定棧(MIPS)" #: htdocs/luci-static/resources/view/fchomo/client.js:1576 #: htdocs/luci-static/resources/view/fchomo/client.js:1810 #: htdocs/luci-static/resources/view/fchomo/client.js:1866 -#: htdocs/luci-static/resources/view/fchomo/node.js:2335 +#: htdocs/luci-static/resources/view/fchomo/node.js:2299 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:258 msgid "mihomo config" msgstr "mihomo 配置" @@ -4428,8 +4447,8 @@ msgstr "mihomo 配置" msgid "mlkem768x25519plus" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2188 -#: htdocs/luci-static/resources/view/fchomo/node.js:2567 +#: htdocs/luci-static/resources/view/fchomo/node.js:2152 +#: htdocs/luci-static/resources/view/fchomo/node.js:2531 msgid "mpTCP" msgstr "多路徑 TCP (mpTCP)" @@ -4441,10 +4460,10 @@ msgstr "new_reno" msgid "no-resolve" msgstr "no-resolve" -#: htdocs/luci-static/resources/fchomo.js:1639 -#: htdocs/luci-static/resources/fchomo.js:1746 -#: htdocs/luci-static/resources/fchomo.js:1781 -#: htdocs/luci-static/resources/fchomo.js:1809 +#: htdocs/luci-static/resources/fchomo.js:1717 +#: htdocs/luci-static/resources/fchomo.js:1832 +#: htdocs/luci-static/resources/fchomo.js:1867 +#: htdocs/luci-static/resources/fchomo.js:1895 msgid "non-empty value" msgstr "非空值" @@ -4498,11 +4517,11 @@ msgstr "" msgid "openssl-chacha20" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2548 +#: htdocs/luci-static/resources/view/fchomo/node.js:2512 msgid "override.override-expr" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:2540 +#: htdocs/luci-static/resources/view/fchomo/node.js:2504 msgid "override.proxy-name" msgstr "" @@ -4510,8 +4529,8 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1368 -#: htdocs/luci-static/resources/view/fchomo/node.js:2041 +#: htdocs/luci-static/resources/fchomo/listeners.js:1356 +#: htdocs/luci-static/resources/view/fchomo/node.js:2005 msgid "packet-up" msgstr "" @@ -4520,8 +4539,8 @@ msgstr "" msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1169 -#: htdocs/luci-static/resources/view/fchomo/node.js:1588 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 +#: htdocs/luci-static/resources/view/fchomo/node.js:1552 msgid "private key" msgstr "私鑰" @@ -4542,7 +4561,7 @@ msgstr "需要使用 API 的前端適配。" msgid "rule-set" msgstr "規則集" -#: htdocs/luci-static/resources/view/fchomo/node.js:2113 +#: htdocs/luci-static/resources/view/fchomo/node.js:2077 msgid "smux" msgstr "" @@ -4555,17 +4574,17 @@ msgstr "" msgid "src" msgstr "src" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 -#: htdocs/luci-static/resources/view/fchomo/node.js:2039 +#: htdocs/luci-static/resources/fchomo/listeners.js:1354 +#: htdocs/luci-static/resources/view/fchomo/node.js:2003 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1367 -#: htdocs/luci-static/resources/view/fchomo/node.js:2040 +#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/view/fchomo/node.js:2004 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1371 msgid "stream-up server seconds" msgstr "" @@ -4597,11 +4616,11 @@ msgstr "獨立 UCI 識別" msgid "unique identifier" msgstr "獨立標識" -#: htdocs/luci-static/resources/fchomo.js:1818 +#: htdocs/luci-static/resources/fchomo.js:1904 msgid "unique value" msgstr "獨立值" -#: htdocs/luci-static/resources/view/fchomo/node.js:2583 +#: htdocs/luci-static/resources/view/fchomo/node.js:2547 msgid "up" msgstr "Hysteria 上傳速率" @@ -4639,42 +4658,42 @@ msgstr "" msgid "v5" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1686 -#: htdocs/luci-static/resources/fchomo.js:1689 +#: htdocs/luci-static/resources/fchomo.js:1764 +#: htdocs/luci-static/resources/fchomo.js:1767 msgid "valid JSON format" msgstr "有效的 JSON 格式" -#: htdocs/luci-static/resources/view/fchomo/node.js:1542 +#: htdocs/luci-static/resources/fchomo.js:1823 msgid "valid SHA256 string with %d characters" msgstr "包含 %d 個字元的有效 SHA256 字串" -#: htdocs/luci-static/resources/fchomo.js:1711 -#: htdocs/luci-static/resources/fchomo.js:1714 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1792 msgid "valid URL" msgstr "有效網址" -#: htdocs/luci-static/resources/fchomo.js:1736 +#: htdocs/luci-static/resources/fchomo.js:1814 msgid "valid base64 key with %d characters" msgstr "包含 %d 個字元的有效 base64 金鑰" -#: htdocs/luci-static/resources/fchomo.js:1796 -#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1882 +#: htdocs/luci-static/resources/fchomo.js:1888 msgid "valid format: 2x, 2p, 4v" msgstr "有效格式: 2x, 2p, 4v" -#: htdocs/luci-static/resources/fchomo.js:1727 +#: htdocs/luci-static/resources/fchomo.js:1805 msgid "valid hex string with %d characters" msgstr "包含 %d 个字符的有效 Hex 字串" -#: htdocs/luci-static/resources/fchomo.js:1783 +#: htdocs/luci-static/resources/fchomo.js:1869 msgid "valid key length with %d characters" msgstr "包含 %d 個字元的有效金鑰" -#: htdocs/luci-static/resources/fchomo.js:1649 +#: htdocs/luci-static/resources/fchomo.js:1727 msgid "valid port value" msgstr "有效連接埠值" -#: htdocs/luci-static/resources/fchomo.js:1699 +#: htdocs/luci-static/resources/fchomo.js:1777 msgid "valid uuid" msgstr "有效 uuid" @@ -4698,7 +4717,7 @@ msgstr "" msgid "yacd-meta" msgstr "yacd-meta" -#: htdocs/luci-static/resources/view/fchomo/node.js:2114 +#: htdocs/luci-static/resources/view/fchomo/node.js:2078 msgid "yamux" msgstr "" @@ -4710,10 +4729,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1466 +#: htdocs/luci-static/resources/fchomo.js:1544 msgid "🔗" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1445 +#: htdocs/luci-static/resources/fchomo.js:1523 msgid "🡇" msgstr "" diff --git a/luci-app-fchomo/root/etc/init.d/fchomo b/luci-app-fchomo/root/etc/init.d/fchomo index de1617624..1a9c2bf16 100755 --- a/luci-app-fchomo/root/etc/init.d/fchomo +++ b/luci-app-fchomo/root/etc/init.d/fchomo @@ -169,7 +169,7 @@ start_service() { # Set ENV variables for Client export SAFE_PATHS="$RUN_DIR$( yq 'with(.external-ui; select(. != null) | . = sub("(/?$)", "/placeholder")) - | [.external-ui, .tls.certificate, .tls.private-key, .tls.client-auth-cert] | unique | map(select(. != null)) + | [.external-ui, .tls.certificate, .tls.private-key, .tls.client-auth-cert, .realm-opts.certificate, .realm-opts.private-key] | unique | map(select(. != null)) | .[] |= sub("(/[^/]+$)", "") | unique | .[] | sub("(^)", ":")' \ "$RUN_DIR/mihomo-c.yaml" | tr -d '\n' @@ -391,7 +391,7 @@ start_service() { else # Set ENV variables for Server export SAFE_PATHS="$RUN_DIR$( - yq '.listeners | map([.certificate, .private-key, .client-auth-cert][]) | unique | map(select(. != null)) + yq '.listeners | map([.certificate, .private-key, .client-auth-cert, .realm-opts.certificate, .realm-opts.private-key][]) | unique | map(select(. != null)) | .[] |= sub("(/[^/]+$)", "") | unique | .[] | sub("(^)", ":")' \ "$RUN_DIR/mihomo-s.yaml" | tr -d '\n' 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 107e9c181..aa1a0b943 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc +++ b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc @@ -364,6 +364,8 @@ uci.foreach(uciconf, uciinbd, (cfg) => { listener["jls-config"].proxy = get_proxy(listener["jls-config"].proxy); if (listener["jls-upstream"]) listener["jls-upstream"].proxy = get_proxy(listener["jls-upstream"].proxy); + if (listener["realm-opts"]) + listener["realm-opts"].proxy = get_proxy(listener["realm-opts"].proxy); push(config.listeners, listener); }); @@ -607,13 +609,14 @@ uci.foreach(uciconf, ucinode, (cfg) => { token: cfg.hysteria2_realm_token, "realm-id": cfg.hysteria2_realm_id, "stun-servers": cfg.hysteria2_realm_stun_servers, - // @TLS of server-url - //sni, - //alpn, - //"skip-cert-verify", - //fingerprint, - //certificate, - //"private-key" + // TLS of server-url + sni: cfg.hysteria2_realm_sni, + alpn: cfg.hysteria2_realm_alpn, + fingerprint: cfg.hysteria2_realm_fingerprint, + "name-cert-verify": cfg.hysteria2_realm_name_cert_verify, + "skip-cert-verify": strToBool(cfg.hysteria2_realm_skip_cert_verify), + certificate: cfg.hysteria2_realm_cert_path, // mTLS + "private-key": cfg.hysteria2_realm_key_path // mTLS } : null, /* ShadowQUIC */ diff --git a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc index 2af466ae2..c2bc27d8c 100644 --- a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc +++ b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc @@ -323,13 +323,15 @@ export function parseListener(cfg) { token: cfg.hysteria2_realm_token, "realm-id": cfg.hysteria2_realm_id, "stun-servers": cfg.hysteria2_realm_stun_servers, - // @TLS of server-url - //sni, - //alpn, - //"skip-cert-verify", - //fingerprint, - //certificate, - //"private-key" + // TLS of server-url + sni: cfg.hysteria2_realm_sni, + alpn: cfg.hysteria2_realm_alpn, + fingerprint: cfg.hysteria2_realm_fingerprint, + "name-cert-verify": cfg.hysteria2_realm_name_cert_verify, + "skip-cert-verify": strToBool(cfg.hysteria2_realm_skip_cert_verify), + certificate: cfg.hysteria2_realm_cert_path, // mTLS + "private-key": cfg.hysteria2_realm_key_path, // mTLS + proxy: cfg.hysteria2_realm_proxy // raw data need post-processing } : null, /* Hysteria2 Realmserver */ diff --git a/luci-app-open-box/Makefile b/luci-app-open-box/Makefile index 3d1fe22eb..e997fee4d 100644 --- a/luci-app-open-box/Makefile +++ b/luci-app-open-box/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-open-box -PKG_VERSION:=0.1.374 -PKG_RELEASE:=52 +PKG_VERSION:=0.1.376 +PKG_RELEASE:=53 PKG_MAINTAINER:=liandu2024 PKG_LICENSE:=GPL-3.0-or-later diff --git a/luci-app-openvpn-plus/Makefile b/luci-app-openvpn-plus/Makefile index 925b7a04d..8094f0fd1 100755 --- a/luci-app-openvpn-plus/Makefile +++ b/luci-app-openvpn-plus/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openvpn-plus PKG_VERSION:=1.0.0 -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_LICENSE:=Apache-2.0 PKG_MAINTAINER:=Manfred Jaider diff --git a/luci-app-openvpn-plus/root/usr/libexec/luci-app-openvpn-plus b/luci-app-openvpn-plus/root/usr/libexec/luci-app-openvpn-plus index 0792b6bb0..7dbc4eafc 100755 --- a/luci-app-openvpn-plus/root/usr/libexec/luci-app-openvpn-plus +++ b/luci-app-openvpn-plus/root/usr/libexec/luci-app-openvpn-plus @@ -836,11 +836,11 @@ symlink() { # Remove RAM base directory if it has become completely empty rmdir "${ram_link_dir}" 2>/dev/null - + # Smart Web-Folder Cleanup: Check if files other than index.html exist if [ -d "${www_link_dir}" ]; then local has_profiles="0" - local check_link + local check_link # If a real symlink or folder matching the pattern exists, has_profiles becomes 1 for check_link in "${www_link_dir}"/ovpn-tmp-*-*; do if [ -e "${check_link}" ] || [ -L "${check_link}" ]; then @@ -852,7 +852,7 @@ symlink() { if [ "${has_profiles}" = "0" ]; then rm -rf "${www_link_dir}" fi - fi + fi printf "%s\n" "SUCCESS: Link directory and static profile deleted from RAM." else @@ -1955,6 +1955,7 @@ cleanup() { # no argument (no shift) local conf_file local instname + local raw_list="" local active_list="" local conf_dir="/etc/openvpn/luci" local key_dir="/etc/openvpn/keys" @@ -1962,24 +1963,19 @@ cleanup() { local ram_link_dir="/tmp/luci-ovpn-plus" local www_link_dir="/www/ovpn-downloads" - # Step 1: Build the list of ACTIVE instances from the instance*.conf files - for conf_file in "${conf_dir}"/instance*.conf; do - if [ -f "${conf_file}" ]; then - instname="${conf_file##*/}" - instname="${instname%.conf}" + # Step 1: Get all active OpenVPN instances directly from UCI config + raw_list=$(uci -q show openvpn | grep "=openvpn" | awk -F'[.=]' '{print $2}' 2>/dev/null) - if internal_checkname "${instname}"; then - # Enforce space separation to prevent partial substring matches later - active_list="${active_list} ${instname}" - fi + # Validate every instance name from UCI before adding it to the official list + for instname in ${raw_list}; do + if internal_checkname "${instname}"; then + active_list="${active_list} ${instname}" fi done # Step 2: Remove orphan instance files internal_cleaninst "${active_list}" "${conf_dir}/instance*.conf" internal_cleaninst "${active_list}" "${conf_dir}/instance*.nft" - internal_cleaninst "${active_list}" "${conf_dir}/instance*.jmp.nft" - internal_cleaninst "${active_list}" "${conf_dir}/instance*.s2s.nft" internal_cleaninst "${active_list}" "${conf_dir}/instance*.ovpn" internal_cleaninst "${active_list}" "${key_dir}/ca_instance*.crt" internal_cleaninst "${active_list}" "${key_dir}/dh_instance*.pem" @@ -1987,8 +1983,6 @@ cleanup() { internal_cleaninst "${active_list}" "${key_dir}/client_instance*.crt" internal_cleaninst "${active_list}" "${key_dir}/server_instance*.key" internal_cleaninst "${active_list}" "${key_dir}/client_instance*.key" - internal_cleaninst "${active_list}" "${key_dir}/server_instance*.tls2.key" - internal_cleaninst "${active_list}" "${key_dir}/client_instance*.tls2.key" internal_cleaninst "${active_list}" "${run_dir}/openvpn-ddns-instance*.status" # Step 3: Remove orphan symlink files @@ -1997,22 +1991,17 @@ cleanup() { # Remove the temporary RAM directory ONLY if it is completely empty [ -d "${ram_link_dir}" ] && rmdir "${ram_link_dir}" 2>/dev/null + # Smart Web-Folder Cleanup: Check if files other than index.html exist if [ -d "${www_link_dir}" ]; then - local has_profiles="0" - local check_link - # If a real symlink or folder matching the pattern exists, has_profiles becomes 1 - for check_link in "${www_link_dir}"/ovpn-tmp-*-*; do - if [ -e "${check_link}" ] || [ -L "${check_link}" ]; then - has_profiles="1" - break - fi - done - # Remove the web folder if no active profile links are left - if [ "${has_profiles}" = "0" ]; then + local found_profiles + found_profiles="${www_link_dir}/ovpn-tmp-"*-* + + # If the text still has a '*', no active profiles were found + if [ "${found_profiles}" = "${www_link_dir}/ovpn-tmp-*-*" ]; then rm -rf "${www_link_dir}" fi - fi + fi return 0 } diff --git a/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js b/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js index 1dc0a5942..5d65725d2 100644 --- a/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js +++ b/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js @@ -18,6 +18,29 @@ const callGetFirewallStatus = rpc.declare({ object: 'tailscale', method: 'get_fi let map; let lastDevicesStatus; +// ui.addTimeLimitedNotification only exists since OpenWrt 24.10. Older +// releases, 23.05 included, only have addNotification and would throw on every +// call, so fade the notice out ourselves there. +function notifyTimed(title, children, timeout, ...classes) { + if (typeof ui.addTimeLimitedNotification == 'function') + return ui.addTimeLimitedNotification(title, children, timeout, ...classes); + + const msg = ui.addNotification(title, children, ...classes); + + if (typeof timeout == 'number' && timeout > 0 && msg) { + window.setTimeout(function() { + msg.classList.add('fade-out'); + msg.classList.remove('fade-in'); + window.setTimeout(function() { + if (msg.parentNode) + msg.parentNode.removeChild(msg); + }, 250); + }, timeout); + } + + return msg; +} + // uci.changes() returns an object keyed by config name; count the entries so // the firewall button can warn about unsaved work. function countPending(changes) { @@ -111,6 +134,43 @@ function getRunningStatus() { }); } +// Map.save() re-renders the form after every save, so registering the status +// poller from s.render would add another 10 second get_status loop per save and +// never remove the previous ones. The poller is therefore module level and +// guarded by a flag; the flag is the only dedup mechanism on purpose, the +// poller function reference is never compared. +let statusPollerRegistered = false; + +function pollRunningStatus() { + return getRunningStatus().then(function (res) { + const view = document.getElementById("service_status_display"); + if (view) { + const content = renderStatus(res); + view.replaceChildren(content); + } + + lastDevicesStatus = res; + const devicesTbody = document.getElementById("tailscale_devices_tbody"); + if (devicesTbody) { + const filterInput = document.getElementById("tailscale_devices_filter"); + const currentQuery = filterInput ? filterInput.value : ''; + devicesTbody.replaceChildren(...renderPeerRows(res, currentQuery)); + } + + // login button only available when logged out + const login_btn=document.getElementsByClassName('cbi-button cbi-button-apply')[0]; + if(login_btn) { login_btn.disabled=(res.status != 'logout'); } + }); +} + +function ensureStatusPoller() { + if (statusPollerRegistered) + return; + + statusPollerRegistered = true; + L.Poll.add(function () { return pollRunningStatus(); }, 10); +} + // Poll the background firewall job until it finishes. A poll that fails // (network reloading, the connection dropped for a moment) is expected and is // simply retried on the next tick instead of being reported as an error. @@ -156,7 +216,7 @@ function pollFirewallJob(runId, timeoutSec) { if (state === 'done') { if (stop()) - ui.addTimeLimitedNotification(null, [ E('p', _('Firewall configuration applied.')) ], 5000, 'info'); + notifyTimed(null, [ E('p', _('Firewall configuration applied.')) ], 5000, 'info'); resolve(res); return; } @@ -174,7 +234,7 @@ function pollFirewallJob(runId, timeoutSec) { if (state !== lastState) { lastState = state; if (state === 'running' && res?.step === 'firewall') - ui.addTimeLimitedNotification(null, [ E('p', _('Reloading firewall...')) ], 3000, 'info'); + notifyTimed(null, [ E('p', _('Reloading firewall...')) ], 3000, 'info'); } }); } @@ -242,7 +302,7 @@ async function initializeRegionMap() { } } } catch (e) { - ui.addTimeLimitedNotification(null, [ E('p', _('Error reading cached DERP region map: %s').format(e.message || _('Unknown error'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Error reading cached DERP region map: %s').format(e.message || _('Unknown error'))) ], 7000, 'error'); } // If no valid cache, fetch from the network @@ -269,10 +329,10 @@ async function initializeRegionMap() { }; localStorage.setItem(cacheKey, JSON.stringify(itemToCache)); } catch (e) { - ui.addTimeLimitedNotification(null, [ E('p', _('Error caching DERP region map: %s').format(e.message || _('Unknown error'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Error caching DERP region map: %s').format(e.message || _('Unknown error'))) ], 7000, 'error'); } } catch (error) { - ui.addTimeLimitedNotification(null, [ E('p', _('Error fetching DERP region map: %s').format(error.message || _('Unknown error'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Error fetching DERP region map: %s').format(error.message || _('Unknown error'))) ], 7000, 'error'); } } @@ -564,28 +624,8 @@ return view.extend({ s = map.section(form.NamedSection, '_status'); s.anonymous = true; s.render = function (section_id) { - L.Poll.add( - function () { - return getRunningStatus().then(function (res) { - const view = document.getElementById("service_status_display"); - if (view) { - const content = renderStatus(res); - view.replaceChildren(content); - } - - lastDevicesStatus = res; - const devicesTbody = document.getElementById("tailscale_devices_tbody"); - if (devicesTbody) { - const filterInput = document.getElementById("tailscale_devices_filter"); - const currentQuery = filterInput ? filterInput.value : ''; - devicesTbody.replaceChildren(...renderPeerRows(res, currentQuery)); - } - - // login button only available when logged out - const login_btn=document.getElementsByClassName('cbi-button cbi-button-apply')[0]; - if(login_btn) { login_btn.disabled=(res.status != 'logout'); } - }); - }, 10); + // Registering is idempotent and must not affect what is rendered. + ensureStatusPoller(); return E('div', { 'id': 'service_status_display', 'class': 'cbi-value' }, _('Collecting data ...') @@ -677,7 +717,7 @@ return view.extend({ return null; } - ui.addTimeLimitedNotification(null, [ E('p', _('Configuration committed, reloading network and firewall. This can take a moment.')) ], 5000, 'info'); + notifyTimed(null, [ E('p', _('Configuration committed, reloading network and firewall. This can take a moment.')) ], 5000, 'info'); return pollFirewallJob(res.run_id); }).catch(function(err) { ui.addNotification(null, E('p', {}, _('Failed to configure firewall: %s').format(err?.message || err?.error || err || _('Unknown error'))), 'error'); @@ -759,7 +799,7 @@ return view.extend({ const customServerAuth = customserverAuthInput ? customserverAuthInput.value : ''; const loginWindow = window.open('', '_blank'); if (!loginWindow) { - ui.addTimeLimitedNotification(null, [ E('p', _('Could not open a new tab. Please check if your browser or an extension blocked the pop-up.')) ], 10000, 'error'); + notifyTimed(null, [ E('p', _('Could not open a new tab. Please check if your browser or an extension blocked the pop-up.')) ], 10000, 'error'); return; } // Display a prompt message in the new window @@ -786,11 +826,11 @@ return view.extend({ doc.body.innerHTML = '

' + _('Error') + '

' + '

' + _('Failed to get login URL. You may close this tab.') + '

'; - ui.addTimeLimitedNotification(null, [ E('p', _('Failed to get login URL: %s').format(res?.error || _('Invalid response from server.'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Failed to get login URL: %s').format(res?.error || _('Invalid response from server.'))) ], 7000, 'error'); } }).catch(function(err) { ui.hideModal(); - ui.addTimeLimitedNotification(null, [ E('p', _('Failed to get login URL: %s').format(err.message || _('Unknown error'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Failed to get login URL: %s').format(err.message || _('Unknown error'))) ], 7000, 'error'); }); }; @@ -814,10 +854,10 @@ return view.extend({ return callDoLogout().then(function(res) { unwrapRpc(res, _('Logout')); ui.hideModal(); - ui.addTimeLimitedNotification(null, [ E('p', _('Successfully logged out.')) ], 5000, 'info'); + notifyTimed(null, [ E('p', _('Successfully logged out.')) ], 5000, 'info'); }).catch(function(err) { ui.hideModal(); - ui.addTimeLimitedNotification(null, [ E('p', _('Logout failed: %s').format(err.message || _('Unknown error'))) ], 7000, 'error'); + notifyTimed(null, [ E('p', _('Logout failed: %s').format(err.message || _('Unknown error'))) ], 7000, 'error'); }); } }, _('Logout')) @@ -872,13 +912,16 @@ return view.extend({ // standard OpenWrt apply mechanism, which triggers /etc/init.d/tailscale-settings // and provides automatic rollback protection if the device becomes unreachable. handleSaveApply(ev, mode) { - // Read the submitted value before map.save() consumes the staged delta. - // uci.get() prefers the staged change over the saved value, and the - // staged delta is only populated once the form has been parsed, which - // map.save() guarantees here. - const wantEnabled = uci.get('tailscale', 'settings', 'service_enabled'); + // The submitted value only reaches the uci model while map.save() parses + // the form, so reading it before map.save() returns the previously saved + // value: switching the service off then passed '1' and never armed the + // stop request. Read it in the save callback, which runs right after the + // form was parsed and before the staged changes are sent to the device. + let wantEnabled; - return map.save().then(function () { + return map.save(function () { + wantEnabled = uci.get('tailscale', 'settings', 'service_enabled'); + }).then(function () { // Only records the disable request; the reload handler performs // the stop after the commit, so a LuCI rollback still finds a // running daemon. One concurrency slot on purpose: an overlapping @@ -886,7 +929,10 @@ return view.extend({ // Fail-open on purpose: an install whose rpcd ACL cache predates // this method would otherwise be unable to apply anything. The // worst case is that the stop is skipped for this apply. - return callSetServiceEnabled({ enabled: wantEnabled === '0' ? '0' : '1' }) + // The declaration maps positional arguments to its params, so pass + // the value itself: { enabled: ... } reached ubus as the value of + // enabled and was rejected as an invalid argument. + return callSetServiceEnabled(wantEnabled === '0' ? '0' : '1') .catch(function(err) { console.warn('set_service_enabled failed: %s', err); return null; diff --git a/luci-app-tailscale-community/po/es/community.po b/luci-app-tailscale-community/po/es/community.po index 2f6d509eb..2ce87e6dc 100644 --- a/luci-app-tailscale-community/po/es/community.po +++ b/luci-app-tailscale-community/po/es/community.po @@ -1,23 +1,23 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:47 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 msgid "%s failed" msgstr "Error de %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "(Experimental) Reduce Memory Usage" msgstr "(Experimental) Reducir el uso de memoria" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:711 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 msgid "1. Enable \"Advertise Exit Node\"." msgstr "1. Active \"Anunciar como nodo de salida\"." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:693 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:733 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "1. Marque \"Aceptar rutas\" (para acceder a dispositivos remotos)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:712 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:752 msgid "" "2. Click \"Auto Configure Firewall\" (it forwards Tailscale traffic " "to WAN)." @@ -25,7 +25,7 @@ msgstr "" "2. Haga clic en \"Configurar el cortafuegos automáticamente\" " "(reenvía el tráfico de Tailscale hacia la WAN)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:694 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." @@ -33,13 +33,13 @@ msgstr "" "2. En \"Anunciar rutas\", seleccione su subred local (para que los " "dispositivos remotos puedan acceder a esta LAN)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:695 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "" "3. Haga clic en \"Configurar el cortafuegos automáticamente\" (para " "permitir el reenvío de tráfico)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:753 msgid "" "3. In the Tailscale admin console, edit this device under the route " "settings and approve it as an Exit Node." @@ -47,27 +47,27 @@ msgstr "" "3. En la consola de administración de Tailscale, edite este " "dispositivo en los ajustes de rutas y apruébelo como nodo de salida." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:718 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:758 msgid "4. On the client, set this device as its exit node." msgstr "4. En el cliente, configure este dispositivo como su nodo de salida." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Accept Routes" msgstr "Aceptar rutas" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:725 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:765 msgid "Account Settings" msgstr "Ajustes de la cuenta" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Advertise Exit Node" msgstr "Anunciar como nodo de salida" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "Advertise Routes" msgstr "Anunciar rutas" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "" "Advertise subnet routes behind this device. Select from the detected " "subnets below or enter custom routes (comma-separated)." @@ -76,15 +76,15 @@ msgstr "" "Seleccione una de las subredes detectadas a continuación o introduzca " "rutas personalizadas separadas por comas." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "Allow LAN Access" msgstr "Permitir acceso a la LAN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Allow accepting routes announced by other nodes." msgstr "Permitir aceptar las rutas anunciadas por otros nodos." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "" "Permitir conectarse a este dispositivo mediante la función SSH de " @@ -94,40 +94,40 @@ msgstr "" msgid "Allow user access to tailscale" msgstr "Permitir el acceso de usuarios a Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:170 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Another firewall reload is already running" msgstr "Ya se está recargando el cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:799 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:839 msgid "Are you sure you want to log out?" msgstr "¿Seguro que desea cerrar la sesión?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:684 msgid "Auto Configure Firewall" msgstr "Configurar el cortafuegos automáticamente" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:806 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:846 msgid "Cancel" msgstr "Cancelar" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:750 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:790 msgid "Click to Log out account on this device." msgstr "Haga clic para cerrar la sesión de la cuenta en este dispositivo." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:729 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 msgid "Click to get a login URL for this device." msgstr "" "Haga clic para obtener una URL de inicio de sesión para este " "dispositivo." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:291 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:383 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:591 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:850 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:631 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:890 msgid "Collecting data ..." msgstr "Recopilando datos..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:680 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:720 msgid "" "Configuration committed, reloading network and firewall. This can " "take a moment." @@ -135,23 +135,23 @@ msgstr "" "Configuración guardada, recargando la red y el cortafuegos. Esto " "puede tardar un momento." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:673 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 msgid "Configuring firewall" msgstr "Configurando el cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:826 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:866 msgid "Confirm Logout" msgstr "Confirmar cierre de sesión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:452 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:512 msgid "Connection Info" msgstr "Información de conexión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Controls how Tailscale DNS is handled." msgstr "Controla cómo se gestiona el DNS de Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:762 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:802 msgid "" "Could not open a new tab. Please check if your browser or an " "extension blocked the pop-up." @@ -159,43 +159,43 @@ msgstr "" "No se pudo abrir una pestaña nueva. Compruebe si su navegador o " "alguna extensión bloqueó la ventana emergente." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:774 msgid "Custom Login Server" msgstr "Servidor de inicio de sesión personalizado" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:742 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:782 msgid "Custom Login Server Auth Key" msgstr "Clave de autenticación del servidor de inicio de sesión personalizado" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "DNS Mode" msgstr "Modo DNS" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "Daemon MTU" msgstr "MTU del demonio" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:865 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:905 msgid "Daemon Settings" msgstr "Ajustes del demonio" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Declare this device as an Exit Node." msgstr "Declarar este dispositivo como nodo de salida." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:869 msgid "Devices List" msgstr "Lista de dispositivos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Firewall Configuration" msgstr "Desactivar la configuración del cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "Disable SNAT" msgstr "Desactivar SNAT" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most " "users should leave this unchecked." @@ -204,46 +204,46 @@ msgstr "" "tráfico hacia las rutas anunciadas. La mayoría de los usuarios deben " "dejar esta opción desmarcada." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Tailscale netfilter auto-configuration (--netfilter-mode=off)." msgstr "" "Desactivar la autoconfiguración de netfilter de Tailscale " "(--netfilter-mode=off)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Disabled" msgstr "Desactivado" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Disabled: system DNS only." msgstr "Desactivado: solo el DNS del sistema." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:791 msgid "Disconnect from Tailscale and expire current node key." msgstr "Desconectar de Tailscale e invalidar la clave actual del nodo." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:41 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 msgid "Empty reply from server" msgstr "Respuesta vacía del servidor" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "Enable Peer Relay" msgstr "Activar Peer Relay" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Enable Tailscale SSH" msgstr "Activar Tailscale SSH" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "Enable Tailscale Service" msgstr "Activar el servicio Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "Enable Web Interface" msgstr "Activar la interfaz web" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "" "Enable or disable the Tailscale service. When disabled, the service " "will be stopped and the process will be killed." @@ -251,7 +251,7 @@ msgstr "" "Activa o desactiva el servicio Tailscale. Al desactivarlo, el " "servicio se detendrá y el proceso se finalizará." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and " "an UDP port open on the router." @@ -259,11 +259,11 @@ msgstr "" "Activa este dispositivo como servidor Peer Relay. Requiere una IP " "pública y un puerto UDP abierto en el router." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Enabled" msgstr "Activado" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice " "some performance (set GOGC=10)." @@ -271,23 +271,23 @@ msgstr "" "Activar esta opción puede reducir el uso de memoria, pero puede " "mermar algo el rendimiento (establece GOGC=10)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:787 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:827 msgid "Error" msgstr "Error" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 msgid "Error caching DERP region map: %s" msgstr "Error al guardar en caché el mapa de regiones DERP: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 msgid "Error fetching DERP region map: %s" msgstr "Error al obtener el mapa de regiones DERP: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 msgid "Error reading cached DERP region map: %s" msgstr "Error al leer el mapa de regiones DERP en caché: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:685 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit " "Node features." @@ -295,12 +295,12 @@ msgstr "" "Configuración esencial para las funciones de enrutamiento de subredes " "(sitio a sitio) y de nodo de salida." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "Exit Node" msgstr "Nodo de salida" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "" "Expose a web interface on port 5252 for managing this node over " "Tailscale." @@ -308,66 +308,66 @@ msgstr "" "Expone una interfaz web en el puerto 5252 para administrar este nodo " "a través de Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 msgid "Failed to configure firewall: %s" msgstr "No se pudo configurar el cortafuegos: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:788 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:828 msgid "Failed to get login URL. You may close this tab." msgstr "" "No se pudo obtener la URL de inicio de sesión. Puede cerrar esta " "pestaña." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 msgid "Failed to get login URL: %s" msgstr "No se pudo obtener la URL de inicio de sesión: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Failed to load logs: %s" msgstr "No se pudieron cargar los registros: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:487 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Filter peers by name, IP, or OS..." msgstr "Filtrar pares por nombre, IP o sistema operativo..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:564 msgid "Filter:" msgstr "Filtro:" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "Firewall Mode" msgstr "Modo del cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:716 msgid "Firewall configuration already applied." msgstr "La configuración del cortafuegos ya está aplicada." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:159 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:219 msgid "Firewall configuration applied." msgstr "Configuración del cortafuegos aplicada." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:165 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Firewall reload failed" msgstr "Error al recargar el cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:600 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:640 msgid "General Settings" msgstr "Ajustes generales" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:509 msgid "Hostname" msgstr "Nombre de host" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:706 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:746 msgid "How to enable Exit Node?" msgstr "¿Cómo activar el nodo de salida?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 msgid "How to enable Site-to-Site?" msgstr "¿Cómo activar la conexión sitio a sitio?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:730 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 msgid "" "If the timeout is displayed, you can refresh the page and click Login " "again." @@ -375,7 +375,7 @@ msgstr "" "Si aparece un tiempo de espera agotado, puede actualizar la página y " "volver a hacer clic en Iniciar sesión." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:744 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:784 msgid "" "If you are using custom login server but not providing an Auth Key, " "will redirect to the login page without pre-filling the key." @@ -384,15 +384,15 @@ msgstr "" "proporciona una clave de autenticación, se redirigirá a la página de " "inicio de sesión sin rellenar la clave previamente." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 msgid "Invalid Date" msgstr "Fecha no válida" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 msgid "Invalid response from server." msgstr "Respuesta no válida del servidor." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:646 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:686 msgid "" "It creates the tailscale interface, adds it to a firewall zone, and " "sets up forwarding between LAN and Tailscale, plus Tailscale to WAN." @@ -401,55 +401,55 @@ msgstr "" "configura el reenvío entre la LAN y Tailscale, además de Tailscale " "hacia la WAN." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:218 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:278 msgid "Just now" msgstr "Ahora mismo" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:330 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:390 msgid "LOGGED OUT" msgstr "SESIÓN CERRADA" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Last Seen" msgstr "Última conexión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:776 msgid "Leave blank for default Tailscale control plane." msgstr "" "Déjelo en blanco para usar el plano de control predeterminado de " "Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:853 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:893 msgid "Loading logs" msgstr "Cargando registros" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Logging out..." msgstr "Cerrando sesión..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 msgid "Login" msgstr "Iniciar sesión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:749 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:815 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:823 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:855 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:863 msgid "Logout" msgstr "Cerrar sesión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 msgid "Logout failed: %s" msgstr "Error al cerrar sesión: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:836 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:876 msgid "Logs" msgstr "Registros" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "MagicDNS: Tailscale overrides resolv.conf." msgstr "MagicDNS: Tailscale sobrescribe resolv.conf." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:648 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 msgid "" "Masquerading and MSS Clamping (MTU fix) are enabled to keep " "connections stable." @@ -457,62 +457,62 @@ msgstr "" "Se activan el enmascaramiento y el MSS Clamping (corrección de MTU) " "para mantener estables las conexiones." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:212 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 msgid "N/A" msgstr "N/D" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:401 msgid "NOT RUNNING" msgstr "NO EN EJECUCIÓN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:499 msgid "No matching peer devices found." msgstr "No se encontraron dispositivos pares que coincidan." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 msgid "No peer devices found." msgstr "No se encontraron dispositivos pares." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:368 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:428 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:880 msgid "No tailscale-related logs found." msgstr "No se encontraron registros relacionados con Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:613 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:653 msgid "None" msgstr "Ninguno" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:213 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:273 msgid "Now" msgstr "Ahora" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:511 msgid "OS" msgstr "SO" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Offline" msgstr "Sin conexión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Online" msgstr "En línea" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward" msgstr "Reenvío OpenWrt" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward: MagicDNS via dnsmasq forwarding.(Only support ts.net)" msgstr "" "Reenvío de OpenWrt: MagicDNS mediante el reenvío de dnsmasq. (Solo " "admite ts.net)" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:39 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 msgid "Operation" msgstr "Operación" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:775 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale " "instance, %s)." @@ -520,7 +520,7 @@ msgstr "" "Opcional: especifique la URL de un servidor de control personalizado " "(por ejemplo, una instancia de Headscale, %s)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:743 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:783 msgid "" "Optional: Specify an authentication key for the custom control " "server. Leave blank if not required." @@ -528,50 +528,50 @@ msgstr "" "Opcional: especifique una clave de autenticación para el servidor de " "control personalizado. Déjelo en blanco si no es necesaria." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:604 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 msgid "Peer Relay Port" msgstr "Puerto de Peer Relay" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:392 msgid "Please use the login button in the settings below to authenticate." msgstr "" "Utilice el botón de inicio de sesión de los ajustes que aparecen a " "continuación para autenticarse." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 #: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Please wait." msgstr "Espere, por favor." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "RUNNING" msgstr "EN EJECUCIÓN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 msgid "RX" msgstr "RX" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:845 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:885 msgid "Refresh" msgstr "Actualizar" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:177 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:237 msgid "Reloading firewall..." msgstr "Recargando el cortafuegos..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 msgid "Requesting Login URL..." msgstr "Solicitando la URL de inicio de sesión..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:809 msgid "Requesting Tailscale login URL... Please wait." msgstr "" "Solicitando la URL de inicio de sesión de Tailscale... Espere, por " "favor." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is " "enabled implicitly." @@ -579,7 +579,7 @@ msgstr "" "Seleccione un nodo de salida de la lista. Si se activa, Permitir " "acceso a la LAN se activa de forma implícita." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "" "Select the firewall backend for Tailscale to use. Requires service " "restart to take effect." @@ -587,14 +587,14 @@ msgstr "" "Seleccione el backend de cortafuegos que usará Tailscale. Requiere " "reiniciar el servicio para aplicarse." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:320 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:328 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:340 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "Service Status" msgstr "Estado del servicio" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "" "Set a custom MTU for the Tailscale daemon. Leave blank to use the " "default value." @@ -602,60 +602,60 @@ msgstr "" "Establezca un MTU personalizado para el demonio de Tailscale. Déjelo " "en blanco para usar el valor predeterminado." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "Shields Up" msgstr "Bloquear conexiones entrantes" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:448 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:508 msgid "Status" msgstr "Estado" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:817 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:857 msgid "Successfully logged out." msgstr "Sesión cerrada correctamente." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:321 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "TAILSCALE NOT FOUND" msgstr "TAILSCALE NO ENCONTRADO" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "TUN Mode" msgstr "Modo TUN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 msgid "TX" msgstr "TX" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:354 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:414 msgid "Tailnet Name" msgstr "Nombre de la tailnet" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 #: luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:1 msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:297 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:357 msgid "Tailscale Health Check: %s" msgstr "Comprobación de estado de Tailscale: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:450 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:510 msgid "Tailscale IP" msgstr "IP de Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:352 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Tailscale IPv4" msgstr "IPv4 de Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:353 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:413 msgid "Tailscale IPv6" msgstr "IPv6 de Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:808 msgid "Tailscale Login" msgstr "Inicio de sesión en Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your " "devices securely. This configuration page allows you to manage " @@ -665,11 +665,11 @@ msgstr "" "segura de sus dispositivos. Esta página de configuración le permite " "gestionar los ajustes de Tailscale en su dispositivo OpenWrt." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 msgid "Tailscale status error" msgstr "Error de estado de Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:647 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:687 msgid "" "The Tailscale to WAN forwarding is what lets clients send their " "internet traffic through this device as an Exit Node." @@ -678,11 +678,11 @@ msgstr "" "clientes envíen su tráfico de Internet a través de este dispositivo " "como nodo de salida." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:810 msgid "This can take up to 30 seconds." msgstr "Esto puede tardar hasta 30 segundos." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:800 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 msgid "" "This will disconnect this device from your Tailnet and require you to " "re-authenticate." @@ -690,12 +690,12 @@ msgstr "" "Esto desconectará este dispositivo de su tailnet y requerirá que " "vuelva a autenticarse." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:143 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:194 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:254 msgid "Timed out waiting for the firewall reload" msgstr "Se agotó el tiempo de espera para la recarga del cortafuegos" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:605 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 msgid "" "UDP port for the Peer Relay service. Open this port on your router " "firewall/NAT." @@ -703,21 +703,21 @@ msgstr "" "Puerto UDP para el servicio Peer Relay. Abra este puerto en el " "cortafuegos/NAT del router." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Unknown error" msgstr "Error desconocido" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:350 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 msgid "Version" msgstr "Versión" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "" "When enabled, blocks all inbound connections from the Tailscale " "network." @@ -725,11 +725,11 @@ msgstr "" "Cuando está activado, bloquea todas las conexiones entrantes de la " "red Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "When using the exit node, access to the local LAN is allowed." msgstr "Al usar el nodo de salida, se permite el acceso a la LAN local." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:660 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:700 msgid "" "You have unapplied changes. Save & Apply them first so the firewall " "matches the form." @@ -737,7 +737,7 @@ msgstr "" "Tiene cambios sin aplicar. Guárdelos y aplíquelos primero para que el " "cortafuegos coincida con el formulario." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:696 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." @@ -746,7 +746,7 @@ msgstr "" "Tailscale y habilite manualmente \"Subnet Routes\" para este " "dispositivo." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:719 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:759 msgid "" "[Important] Step 3 cannot be done here: it needs your Tailscale " "account." @@ -754,7 +754,7 @@ msgstr "" "[Importante] El paso 3 no se puede realizar aquí: requiere su cuenta " "de Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:221 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:281 msgid "ago" msgstr "atrás" diff --git a/luci-app-tailscale-community/po/pl/community.po b/luci-app-tailscale-community/po/pl/community.po index e1da08c6f..2daff8e57 100644 --- a/luci-app-tailscale-community/po/pl/community.po +++ b/luci-app-tailscale-community/po/pl/community.po @@ -1,25 +1,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:47 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 msgid "%s failed" msgstr "Niepowodzenie operacji: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "(Experimental) Reduce Memory Usage" msgstr "(Eksperymentalne) Zmniejsz użycie pamięci" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:711 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 msgid "1. Enable \"Advertise Exit Node\"." msgstr "1. Włącz \"Ogłaszaj węzeł wyjścia\"." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:693 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:733 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "" "1. Wybierz \"Akceptuj trasy\" (aby uzyskać dostęp do zdalnych " "urządzeń)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:712 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:752 msgid "" "2. Click \"Auto Configure Firewall\" (it forwards Tailscale traffic " "to WAN)." @@ -27,7 +27,7 @@ msgstr "" "2. Kliknij \"Automatycznie konfiguruj zaporę\" (przekazuje ruch " "Tailscale do sieci WAN)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:694 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." @@ -35,13 +35,13 @@ msgstr "" "2. W \"Ogłaszaj trasy\" wybierz swoją lokalną podsieć (aby umożliwić " "zdalnym urządzaniom dostęp do tej sieci LAN)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:695 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "" "3. Kliknij \"Automatycznie konfiguruj zaporę\" (aby zezwolić na " "przekazywanie ruchu)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:753 msgid "" "3. In the Tailscale admin console, edit this device under the route " "settings and approve it as an Exit Node." @@ -49,27 +49,27 @@ msgstr "" "3. W panelu administracyjnym Tailscale edytuj to urządzenie w " "ustawieniach tras i zatwierdź je jako węzeł wyjścia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:718 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:758 msgid "4. On the client, set this device as its exit node." msgstr "4. W kliencie ustaw to urządzenie jako węzeł wyjścia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Accept Routes" msgstr "Akceptuj trasy" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:725 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:765 msgid "Account Settings" msgstr "Ustawienia konta" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Advertise Exit Node" msgstr "Ogłaszaj węzeł wyjścia" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "Advertise Routes" msgstr "Ogłaszaj trasy" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "" "Advertise subnet routes behind this device. Select from the detected " "subnets below or enter custom routes (comma-separated)." @@ -78,15 +78,15 @@ msgstr "" "podsieci poniżej lub wprowadź niestandardowe trasy (oddzielone " "przecinkami)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "Allow LAN Access" msgstr "Zezwól na dostęp do LAN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Allow accepting routes announced by other nodes." msgstr "Zezwól na akceptowanie tras ogłaszanych przez inne węzły." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "Zezwól na łączenie się z tym urządzeniem przez funkcję SSH Tailscale." @@ -94,38 +94,38 @@ msgstr "Zezwól na łączenie się z tym urządzeniem przez funkcję SSH Tailsca msgid "Allow user access to tailscale" msgstr "Zezwól użytkownikowi na dostęp do Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:170 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Another firewall reload is already running" msgstr "Trwa już ponowne ładowanie zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:799 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:839 msgid "Are you sure you want to log out?" msgstr "Czy na pewno chcesz się wylogować?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:684 msgid "Auto Configure Firewall" msgstr "Automatycznie konfiguruj zaporę" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:806 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:846 msgid "Cancel" msgstr "Anuluj" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:750 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:790 msgid "Click to Log out account on this device." msgstr "Kliknij, aby wylogować konto z tego urządzenia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:729 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 msgid "Click to get a login URL for this device." msgstr "Kliknij, aby uzyskać URL logowania dla tego urządzenia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:291 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:383 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:591 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:850 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:631 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:890 msgid "Collecting data ..." msgstr "Zbieranie danych ..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:680 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:720 msgid "" "Configuration committed, reloading network and firewall. This can " "take a moment." @@ -133,23 +133,23 @@ msgstr "" "Konfiguracja została zatwierdzona, ponowne ładowanie sieci i zapory. " "Może to chwilę potrwać." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:673 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 msgid "Configuring firewall" msgstr "Konfigurowanie zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:826 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:866 msgid "Confirm Logout" msgstr "Potwierdź wylogowanie" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:452 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:512 msgid "Connection Info" msgstr "Informacje o połączeniu" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Controls how Tailscale DNS is handled." msgstr "Kontroluje sposób obsługi DNS Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:762 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:802 msgid "" "Could not open a new tab. Please check if your browser or an " "extension blocked the pop-up." @@ -157,43 +157,43 @@ msgstr "" "Nie można otworzyć nowej karty. Sprawdź, czy przeglądarka lub " "rozszerzenie zablokowało wyskakujące okno." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:774 msgid "Custom Login Server" msgstr "Niestandardowy serwer logowania" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:742 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:782 msgid "Custom Login Server Auth Key" msgstr "Klucz autoryzacji niestandardowego serwera logowania" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "DNS Mode" msgstr "Tryb DNS" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "Daemon MTU" msgstr "MTU demona" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:865 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:905 msgid "Daemon Settings" msgstr "Ustawienia demona" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Declare this device as an Exit Node." msgstr "Deklaruje to urządzenie jako węzeł wyjścia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:869 msgid "Devices List" msgstr "Lista urządzeń" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Firewall Configuration" msgstr "Wyłącz konfigurację zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "Disable SNAT" msgstr "Wyłącz SNAT" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most " "users should leave this unchecked." @@ -201,46 +201,46 @@ msgstr "" "Wyłącz NAT źródłowy (SNAT) dla ruchu do ogłaszanych tras. Większość " "użytkowników powinna zostawić to pole niezaznaczone." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Tailscale netfilter auto-configuration (--netfilter-mode=off)." msgstr "" "Wyłącz automatyczną konfigurację netfilter Tailscale " "(--netfilter-mode=off)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Disabled" msgstr "Wyłączone" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Disabled: system DNS only." msgstr "Wyłączone: tylko DNS systemowy." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:791 msgid "Disconnect from Tailscale and expire current node key." msgstr "Rozłącz z Tailscale i wygaś bieżący klucz węzła." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:41 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 msgid "Empty reply from server" msgstr "Pusta odpowiedź z serwera" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "Enable Peer Relay" msgstr "Włącz przekazywanie między węzłami" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Enable Tailscale SSH" msgstr "Włącz SSH Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "Enable Tailscale Service" msgstr "Włącz usługę Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "Enable Web Interface" msgstr "Włącz interfejs webowy" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "" "Enable or disable the Tailscale service. When disabled, the service " "will be stopped and the process will be killed." @@ -248,7 +248,7 @@ msgstr "" "Włącz lub wyłącz usługę Tailscale. Po wyłączeniu usługa zostanie " "zatrzymana, a proces zostanie zakończony." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and " "an UDP port open on the router." @@ -256,11 +256,11 @@ msgstr "" "Włącz to urządzenie jako serwer przekazywania między węzłami. Wymaga " "publicznego IP i otwartego portu UDP na routerze." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Enabled" msgstr "Włączone" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice " "some performance (set GOGC=10)." @@ -268,23 +268,23 @@ msgstr "" "Włączenie tej opcji może zmniejszyć użycie pamięci, ale może to " "wpłynąć na wydajność (ustawia GOGC=10)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:787 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:827 msgid "Error" msgstr "Błąd" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 msgid "Error caching DERP region map: %s" msgstr "Błąd buforowania mapy regionu DERP: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 msgid "Error fetching DERP region map: %s" msgstr "Błąd pobierania mapy regionu DERP: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 msgid "Error reading cached DERP region map: %s" msgstr "Błąd odczytywania buforowanej mapy regionu DERP: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:685 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit " "Node features." @@ -292,12 +292,12 @@ msgstr "" "Podstawowa konfiguracja dla funkcji routingu podsieci (Site-to-Site) " "i węzła wyjścia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "Exit Node" msgstr "Węzeł wyjścia" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "" "Expose a web interface on port 5252 for managing this node over " "Tailscale." @@ -305,64 +305,64 @@ msgstr "" "Udostępnij interfejs webowy na porcie 5252 do zarządzania tym węzłem " "przez Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 msgid "Failed to configure firewall: %s" msgstr "Nie udało się skonfigurować zapory: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:788 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:828 msgid "Failed to get login URL. You may close this tab." msgstr "Nie udało się uzyskać URL logowania. Możesz zamknąć tę kartę." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 msgid "Failed to get login URL: %s" msgstr "Nie udało się uzyskać URL logowania: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Failed to load logs: %s" msgstr "Nie udało się załadować logów: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:487 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Filter peers by name, IP, or OS..." msgstr "Filtruj węzły po nazwie, IP lub systemie operacyjnym..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:564 msgid "Filter:" msgstr "Filtruj:" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "Firewall Mode" msgstr "Tryb zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:716 msgid "Firewall configuration already applied." msgstr "Konfiguracja zapory jest już zastosowana." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:159 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:219 msgid "Firewall configuration applied." msgstr "Zastosowano konfigurację zapory." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:165 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Firewall reload failed" msgstr "Nie udało się ponownie załadować zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:600 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:640 msgid "General Settings" msgstr "Ustawienia ogólne" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:509 msgid "Hostname" msgstr "Nazwa hosta" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:706 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:746 msgid "How to enable Exit Node?" msgstr "Jak włączyć węzeł wyjścia?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 msgid "How to enable Site-to-Site?" msgstr "Jak włączyć Site-to-Site?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:730 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 msgid "" "If the timeout is displayed, you can refresh the page and click Login " "again." @@ -370,7 +370,7 @@ msgstr "" "Jeśli wyświetlany jest komunikat o przekroczeniu limitu czasu, możesz " "odświeżyć stronę i kliknąć Zaloguj ponownie." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:744 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:784 msgid "" "If you are using custom login server but not providing an Auth Key, " "will redirect to the login page without pre-filling the key." @@ -379,15 +379,15 @@ msgstr "" "podajesz klucza autoryzacji, nastąpi przekierowanie do strony " "logowania bez wypełniania klucza." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 msgid "Invalid Date" msgstr "Nieprawidłowa data" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 msgid "Invalid response from server." msgstr "Nieprawidłowa odpowiedź z serwera." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:646 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:686 msgid "" "It creates the tailscale interface, adds it to a firewall zone, and " "sets up forwarding between LAN and Tailscale, plus Tailscale to WAN." @@ -396,53 +396,53 @@ msgstr "" "przekazywanie między sieciami LAN i Tailscale oraz z Tailscale do " "sieci WAN." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:218 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:278 msgid "Just now" msgstr "Przed chwilą" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:330 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:390 msgid "LOGGED OUT" msgstr "WYLOGOWANO" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Last Seen" msgstr "Ostatnia aktywność" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:776 msgid "Leave blank for default Tailscale control plane." msgstr "Pozostaw puste dla domyślnego panelu kontrolnego Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:853 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:893 msgid "Loading logs" msgstr "Ładowanie logów" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Logging out..." msgstr "Wylogowywanie..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 msgid "Login" msgstr "Zaloguj" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:749 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:815 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:823 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:855 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:863 msgid "Logout" msgstr "Wyloguj" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 msgid "Logout failed: %s" msgstr "Wylogowanie nie powiodło się: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:836 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:876 msgid "Logs" msgstr "Logi" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "MagicDNS: Tailscale overrides resolv.conf." msgstr "MagicDNS: Tailscale nadpisuje resolv.conf." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:648 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 msgid "" "Masquerading and MSS Clamping (MTU fix) are enabled to keep " "connections stable." @@ -450,62 +450,62 @@ msgstr "" "Maskowanie i MSS Clamping (korekta MTU) są włączone, aby połączenia " "pozostały stabilne." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:212 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 msgid "N/A" msgstr "Niedostępne" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:401 msgid "NOT RUNNING" msgstr "NIE DZIAŁA" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:499 msgid "No matching peer devices found." msgstr "Nie znaleziono pasujących urządzeń partnerskich." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 msgid "No peer devices found." msgstr "Nie znaleziono urządzeń partnerskich." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:368 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:428 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:880 msgid "No tailscale-related logs found." msgstr "Nie znaleziono logów związanych z Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:613 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:653 msgid "None" msgstr "Brak" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:213 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:273 msgid "Now" msgstr "Teraz" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:511 msgid "OS" msgstr "System operacyjny" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Offline" msgstr "Offline" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Online" msgstr "Online" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward" msgstr "Przekazywanie OpenWrt" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward: MagicDNS via dnsmasq forwarding.(Only support ts.net)" msgstr "" "Przekazywanie OpenWrt: MagicDNS przez przekazywanie dnsmasq. " "(Obsługuje tylko ts.net)" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:39 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 msgid "Operation" msgstr "Operacja" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:775 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale " "instance, %s)." @@ -513,7 +513,7 @@ msgstr "" "Opcjonalne: Podaj niestandardowy URL serwera kontrolnego (np. " "instancja Headscale, %s)." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:743 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:783 msgid "" "Optional: Specify an authentication key for the custom control " "server. Leave blank if not required." @@ -521,48 +521,48 @@ msgstr "" "Opcjonalne: Podaj klucz autoryzacji dla niestandardowego serwera " "kontrolnego. Pozostaw puste, jeśli nie jest wymagany." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:604 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 msgid "Peer Relay Port" msgstr "Port przekazywania między węzłami" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:392 msgid "Please use the login button in the settings below to authenticate." msgstr "" "Użyj przycisku logowania w ustawieniach poniżej, aby się " "uwierzytelnić." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 #: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Please wait." msgstr "Proszę czekać." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "RUNNING" msgstr "DZIAŁA" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 msgid "RX" msgstr "Odbieranie" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:845 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:885 msgid "Refresh" msgstr "Odśwież" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:177 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:237 msgid "Reloading firewall..." msgstr "Ponowne ładowanie zapory..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 msgid "Requesting Login URL..." msgstr "Pobieranie URL logowania..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:809 msgid "Requesting Tailscale login URL... Please wait." msgstr "Pobieranie URL logowania Tailscale... Proszę czekać." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is " "enabled implicitly." @@ -570,7 +570,7 @@ msgstr "" "Wybierz węzeł wyjścia z listy. Jeśli włączony, dostęp do LAN jest " "automatycznie włączony." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "" "Select the firewall backend for Tailscale to use. Requires service " "restart to take effect." @@ -578,14 +578,14 @@ msgstr "" "Wybierz mechanizm zapory dla Tailscale. Wymaga restartu usługi, aby " "zmiany zaczęły obowiązywać." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:320 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:328 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:340 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "Service Status" msgstr "Status usługi" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "" "Set a custom MTU for the Tailscale daemon. Leave blank to use the " "default value." @@ -593,60 +593,60 @@ msgstr "" "Ustaw niestandardowe MTU dla demona Tailscale. Pozostaw puste, aby " "użyć wartości domyślnej." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "Shields Up" msgstr "Blokuj połączenia przychodzące" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:448 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:508 msgid "Status" msgstr "Status" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:817 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:857 msgid "Successfully logged out." msgstr "Pomyślnie wylogowano." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:321 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "TAILSCALE NOT FOUND" msgstr "NIE ZNALEZIONO TAILSCALE" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "TUN Mode" msgstr "Tryb TUN" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 msgid "TX" msgstr "Wysyłanie" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:354 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:414 msgid "Tailnet Name" msgstr "Nazwa Tailnet" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 #: luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:1 msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:297 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:357 msgid "Tailscale Health Check: %s" msgstr "Kontrola stanu Tailscale: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:450 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:510 msgid "Tailscale IP" msgstr "IP Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:352 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Tailscale IPv4" msgstr "IPv4 Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:353 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:413 msgid "Tailscale IPv6" msgstr "IPv6 Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:808 msgid "Tailscale Login" msgstr "Logowanie Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your " "devices securely. This configuration page allows you to manage " @@ -656,11 +656,11 @@ msgstr "" "urządzeń. Ta strona konfiguracyjna pozwala zarządzać ustawieniami " "Tailscale na urządzeniu OpenWrt." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 msgid "Tailscale status error" msgstr "Błąd statusu Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:647 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:687 msgid "" "The Tailscale to WAN forwarding is what lets clients send their " "internet traffic through this device as an Exit Node." @@ -668,11 +668,11 @@ msgstr "" "Przekazywanie z Tailscale do sieci WAN pozwala klientom wysyłać ruch " "internetowy przez to urządzenie jako węzeł wyjścia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:810 msgid "This can take up to 30 seconds." msgstr "Może to potrwać do 30 sekund." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:800 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 msgid "" "This will disconnect this device from your Tailnet and require you to " "re-authenticate." @@ -680,12 +680,12 @@ msgstr "" "Spowoduje to rozłączenie tego urządzenia z Twojego Tailnet i wymaga " "ponownego uwierzytelnienia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:143 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:194 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:254 msgid "Timed out waiting for the firewall reload" msgstr "Upłynął limit czasu oczekiwania na ponowne załadowanie zapory" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:605 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 msgid "" "UDP port for the Peer Relay service. Open this port on your router " "firewall/NAT." @@ -693,21 +693,21 @@ msgstr "" "Port UDP dla usługi przekazywania między węzłami. Otwórz ten port w " "zaporze/NAT na routerze." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Unknown error" msgstr "Nieznany błąd" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:350 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 msgid "Version" msgstr "Wersja" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "" "When enabled, blocks all inbound connections from the Tailscale " "network." @@ -715,13 +715,13 @@ msgstr "" "Po włączeniu blokuje wszystkie połączenia przychodzące z sieci " "Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "When using the exit node, access to the local LAN is allowed." msgstr "" "Podczas korzystania z węzła wyjścia dozwolony jest dostęp do " "lokalnego LAN." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:660 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:700 msgid "" "You have unapplied changes. Save & Apply them first so the firewall " "matches the form." @@ -729,7 +729,7 @@ msgstr "" "Masz niezastosowane zmiany. Najpierw je zapisz i zastosuj, aby zapora " "była zgodna z formularzem." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:696 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." @@ -737,7 +737,7 @@ msgstr "" "[Ważne] Zaloguj się do panelu administracyjnego Tailscale i ręcznie " "włącz \"Trasy podsieci\" dla tego urządzenia." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:719 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:759 msgid "" "[Important] Step 3 cannot be done here: it needs your Tailscale " "account." @@ -745,7 +745,7 @@ msgstr "" "[Ważne] Kroku 3 nie można wykonać tutaj: wymaga Twojego konta " "Tailscale." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:221 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:281 msgid "ago" msgstr "temu" diff --git a/luci-app-tailscale-community/po/templates/community.pot b/luci-app-tailscale-community/po/templates/community.pot index 1b0e1c61f..7419ec33b 100644 --- a/luci-app-tailscale-community/po/templates/community.pot +++ b/luci-app-tailscale-community/po/templates/community.pot @@ -1,79 +1,79 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:47 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 msgid "%s failed" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "(Experimental) Reduce Memory Usage" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:711 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 msgid "1. Enable \"Advertise Exit Node\"." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:693 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:733 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:712 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:752 msgid "" "2. Click \"Auto Configure Firewall\" (it forwards Tailscale traffic " "to WAN)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:694 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:695 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:753 msgid "" "3. In the Tailscale admin console, edit this device under the route " "settings and approve it as an Exit Node." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:718 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:758 msgid "4. On the client, set this device as its exit node." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Accept Routes" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:725 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:765 msgid "Account Settings" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Advertise Exit Node" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "Advertise Routes" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "" "Advertise subnet routes behind this device. Select from the detected " "subnets below or enter custom routes (comma-separated)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "Allow LAN Access" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Allow accepting routes announced by other nodes." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "" @@ -81,596 +81,596 @@ msgstr "" msgid "Allow user access to tailscale" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:170 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Another firewall reload is already running" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:799 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:839 msgid "Are you sure you want to log out?" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:684 msgid "Auto Configure Firewall" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:806 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:846 msgid "Cancel" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:750 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:790 msgid "Click to Log out account on this device." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:729 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 msgid "Click to get a login URL for this device." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:291 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:383 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:591 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:850 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:631 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:890 msgid "Collecting data ..." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:680 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:720 msgid "" "Configuration committed, reloading network and firewall. This can " "take a moment." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:673 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 msgid "Configuring firewall" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:826 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:866 msgid "Confirm Logout" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:452 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:512 msgid "Connection Info" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Controls how Tailscale DNS is handled." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:762 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:802 msgid "" "Could not open a new tab. Please check if your browser or an " "extension blocked the pop-up." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:774 msgid "Custom Login Server" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:742 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:782 msgid "Custom Login Server Auth Key" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "DNS Mode" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "Daemon MTU" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:865 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:905 msgid "Daemon Settings" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Declare this device as an Exit Node." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:869 msgid "Devices List" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Firewall Configuration" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "Disable SNAT" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most " "users should leave this unchecked." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Tailscale netfilter auto-configuration (--netfilter-mode=off)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Disabled" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Disabled: system DNS only." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:791 msgid "Disconnect from Tailscale and expire current node key." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:41 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 msgid "Empty reply from server" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "Enable Peer Relay" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Enable Tailscale SSH" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "Enable Tailscale Service" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "Enable Web Interface" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "" "Enable or disable the Tailscale service. When disabled, the service " "will be stopped and the process will be killed." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and " "an UDP port open on the router." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Enabled" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice " "some performance (set GOGC=10)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:787 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:827 msgid "Error" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 msgid "Error caching DERP region map: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 msgid "Error fetching DERP region map: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 msgid "Error reading cached DERP region map: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:685 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit " "Node features." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "Exit Node" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "" "Expose a web interface on port 5252 for managing this node over " "Tailscale." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 msgid "Failed to configure firewall: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:788 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:828 msgid "Failed to get login URL. You may close this tab." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 msgid "Failed to get login URL: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Failed to load logs: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:487 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Filter peers by name, IP, or OS..." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:564 msgid "Filter:" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "Firewall Mode" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:716 msgid "Firewall configuration already applied." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:159 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:219 msgid "Firewall configuration applied." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:165 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Firewall reload failed" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:600 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:640 msgid "General Settings" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:509 msgid "Hostname" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:706 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:746 msgid "How to enable Exit Node?" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 msgid "How to enable Site-to-Site?" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:730 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 msgid "" "If the timeout is displayed, you can refresh the page and click Login " "again." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:744 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:784 msgid "" "If you are using custom login server but not providing an Auth Key, " "will redirect to the login page without pre-filling the key." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 msgid "Invalid Date" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 msgid "Invalid response from server." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:646 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:686 msgid "" "It creates the tailscale interface, adds it to a firewall zone, and " "sets up forwarding between LAN and Tailscale, plus Tailscale to WAN." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:218 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:278 msgid "Just now" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:330 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:390 msgid "LOGGED OUT" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Last Seen" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:776 msgid "Leave blank for default Tailscale control plane." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:853 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:893 msgid "Loading logs" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Logging out..." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 msgid "Login" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:749 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:815 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:823 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:855 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:863 msgid "Logout" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 msgid "Logout failed: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:836 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:876 msgid "Logs" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "MagicDNS: Tailscale overrides resolv.conf." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:648 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 msgid "" "Masquerading and MSS Clamping (MTU fix) are enabled to keep " "connections stable." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:212 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 msgid "N/A" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:401 msgid "NOT RUNNING" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:499 msgid "No matching peer devices found." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 msgid "No peer devices found." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:368 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:428 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:880 msgid "No tailscale-related logs found." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:613 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:653 msgid "None" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:213 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:273 msgid "Now" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:511 msgid "OS" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Offline" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Online" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward: MagicDNS via dnsmasq forwarding.(Only support ts.net)" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:39 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 msgid "Operation" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:775 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale " "instance, %s)." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:743 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:783 msgid "" "Optional: Specify an authentication key for the custom control " "server. Leave blank if not required." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:604 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 msgid "Peer Relay Port" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:392 msgid "Please use the login button in the settings below to authenticate." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 #: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Please wait." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "RUNNING" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 msgid "RX" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:845 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:885 msgid "Refresh" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:177 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:237 msgid "Reloading firewall..." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 msgid "Requesting Login URL..." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:809 msgid "Requesting Tailscale login URL... Please wait." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is " "enabled implicitly." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "" "Select the firewall backend for Tailscale to use. Requires service " "restart to take effect." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:320 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:328 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:340 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "Service Status" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "" "Set a custom MTU for the Tailscale daemon. Leave blank to use the " "default value." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "Shields Up" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:448 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:508 msgid "Status" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:817 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:857 msgid "Successfully logged out." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:321 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "TAILSCALE NOT FOUND" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "TUN Mode" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 msgid "TX" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:354 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:414 msgid "Tailnet Name" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 #: luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:1 msgid "Tailscale" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:297 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:357 msgid "Tailscale Health Check: %s" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:450 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:510 msgid "Tailscale IP" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:352 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Tailscale IPv4" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:353 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:413 msgid "Tailscale IPv6" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:808 msgid "Tailscale Login" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your " "devices securely. This configuration page allows you to manage " "Tailscale settings on your OpenWrt device." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 msgid "Tailscale status error" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:647 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:687 msgid "" "The Tailscale to WAN forwarding is what lets clients send their " "internet traffic through this device as an Exit Node." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:810 msgid "This can take up to 30 seconds." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:800 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 msgid "" "This will disconnect this device from your Tailnet and require you to " "re-authenticate." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:143 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:194 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:254 msgid "Timed out waiting for the firewall reload" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:605 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 msgid "" "UDP port for the Peer Relay service. Open this port on your router " "firewall/NAT." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Unknown error" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:350 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 msgid "Version" msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "" "When enabled, blocks all inbound connections from the Tailscale " "network." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "When using the exit node, access to the local LAN is allowed." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:660 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:700 msgid "" "You have unapplied changes. Save & Apply them first so the firewall " "matches the form." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:696 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:719 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:759 msgid "" "[Important] Step 3 cannot be done here: it needs your Tailscale " "account." msgstr "" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:221 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:281 msgid "ago" msgstr "" diff --git a/luci-app-tailscale-community/po/zh_Hans/community.po b/luci-app-tailscale-community/po/zh_Hans/community.po index c898ccfad..5bcd5c283 100644 --- a/luci-app-tailscale-community/po/zh_Hans/community.po +++ b/luci-app-tailscale-community/po/zh_Hans/community.po @@ -1,79 +1,79 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:47 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 msgid "%s failed" msgstr "%s失败" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "(Experimental) Reduce Memory Usage" msgstr "(实验性) 减少内存使用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:711 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 msgid "1. Enable \"Advertise Exit Node\"." msgstr "1. 勾选 \"通告出口节点\"。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:693 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:733 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "1. 勾选 \"接受路由\" (以访问远程设备)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:712 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:752 msgid "" "2. Click \"Auto Configure Firewall\" (it forwards Tailscale traffic " "to WAN)." msgstr "2. 点击 \"自动配置防火墙\" (它会将 Tailscale 流量转发到 WAN)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:694 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "2. 在 \"通告路由\" 中选择本地子网 (让远程设备能访问本局域网)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:695 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "3. 点击 \"自动配置防火墙\" (打通防火墙转发)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:753 msgid "" "3. In the Tailscale admin console, edit this device under the route " "settings and approve it as an Exit Node." msgstr "3. 在 Tailscale 管理控制台的路由设置中编辑此设备,并批准其为出口节点。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:718 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:758 msgid "4. On the client, set this device as its exit node." msgstr "4. 在客户端上,将此设备设为出口节点。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Accept Routes" msgstr "接受路由" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:725 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:765 msgid "Account Settings" msgstr "账户设置" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Advertise Exit Node" msgstr "通告出口节点" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "Advertise Routes" msgstr "通告路由" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "" "Advertise subnet routes behind this device. Select from the detected " "subnets below or enter custom routes (comma-separated)." msgstr "通告此设备后的子网路由。从下面的子网中选择,或输入自定义路由 (逗号分隔)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "Allow LAN Access" msgstr "允许访问局域网" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Allow accepting routes announced by other nodes." msgstr "允许接受由其他节点通告的路由。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "允许通过 Tailscale 的 SSH 功能连接到此设备。" @@ -81,277 +81,277 @@ msgstr "允许通过 Tailscale 的 SSH 功能连接到此设备。" msgid "Allow user access to tailscale" msgstr "允许用户访问 Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:170 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Another firewall reload is already running" msgstr "另一个防火墙重新加载任务正在进行中" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:799 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:839 msgid "Are you sure you want to log out?" msgstr "您确定要登出吗?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:684 msgid "Auto Configure Firewall" msgstr "自动配置防火墙" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:806 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:846 msgid "Cancel" msgstr "取消" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:750 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:790 msgid "Click to Log out account on this device." msgstr "点击以登出此设备上的账户。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:729 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 msgid "Click to get a login URL for this device." msgstr "点击获取此设备的登录 URL。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:291 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:383 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:591 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:850 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:631 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:890 msgid "Collecting data ..." msgstr "正在收集数据..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:680 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:720 msgid "" "Configuration committed, reloading network and firewall. This can " "take a moment." msgstr "配置已提交,正在重新加载网络和防火墙。这可能需要一点时间。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:673 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 msgid "Configuring firewall" msgstr "正在配置防火墙" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:826 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:866 msgid "Confirm Logout" msgstr "确认登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:452 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:512 msgid "Connection Info" msgstr "连接信息" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Controls how Tailscale DNS is handled." msgstr "控制 Tailscale DNS 的处理方式。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:762 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:802 msgid "" "Could not open a new tab. Please check if your browser or an " "extension blocked the pop-up." msgstr "无法打开新标签页。请检查您的浏览器或扩展程序是否阻止了弹出窗口。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:774 msgid "Custom Login Server" msgstr "自定义登录服务器" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:742 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:782 msgid "Custom Login Server Auth Key" msgstr "自定义登录服务器认证密钥" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "DNS Mode" msgstr "DNS 模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "Daemon MTU" msgstr "守护进程 MTU" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:865 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:905 msgid "Daemon Settings" msgstr "守护进程设置" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Declare this device as an Exit Node." msgstr "将此设备声明为出口节点。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:869 msgid "Devices List" msgstr "设备列表" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Firewall Configuration" msgstr "禁用防火墙配置" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "Disable SNAT" msgstr "禁用 SNAT" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most " "users should leave this unchecked." msgstr "为通告路由的流量禁用源地址转换 (SNAT)。大多数用户应保持此项不勾选。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Tailscale netfilter auto-configuration (--netfilter-mode=off)." msgstr "禁用 Tailscale netfilter 自动配置 (--netfilter-mode=off)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Disabled" msgstr "已禁用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Disabled: system DNS only." msgstr "已禁用:仅使用系统 DNS。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:791 msgid "Disconnect from Tailscale and expire current node key." msgstr "从 Tailscale 断开连接并使当前节点密钥过期。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:41 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 msgid "Empty reply from server" msgstr "服务器返回空响应" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "Enable Peer Relay" msgstr "启用节点中继" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Enable Tailscale SSH" msgstr "启用 Tailscale SSH" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "Enable Tailscale Service" msgstr "启用 Tailscale 服务" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "Enable Web Interface" msgstr "启用 Web 界面" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "" "Enable or disable the Tailscale service. When disabled, the service " "will be stopped and the process will be killed." msgstr "启用或禁用Tailscale服务。禁用后,服务将被停止,当前进程将被终止。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and " "an UDP port open on the router." msgstr "将此设备设为节点中继服务器。需要此路由器具备公网 IP,并在路由器上开放一个 UDP 端口。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Enabled" msgstr "已启用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice " "some performance (set GOGC=10)." msgstr "启用此选项可以减少内存使用,但可能会牺牲一些性能 (设置 GOGC=10)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:787 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:827 msgid "Error" msgstr "错误" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 msgid "Error caching DERP region map: %s" msgstr "缓存 DERP 区域地图时出错: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 msgid "Error fetching DERP region map: %s" msgstr "获取 DERP 区域地图时出错: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 msgid "Error reading cached DERP region map: %s" msgstr "读取缓存的 DERP 区域地图时出错: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:685 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit " "Node features." msgstr "子网路由(局域网间互通)和出口节点的基本配置。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "Exit Node" msgstr "出口节点" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "" "Expose a web interface on port 5252 for managing this node over " "Tailscale." msgstr "在端口 5252 上暴露一个 Web 界面,用于通过 Tailscale 管理此节点。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 msgid "Failed to configure firewall: %s" msgstr "配置防火墙失败: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:788 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:828 msgid "Failed to get login URL. You may close this tab." msgstr "获取登录 URL 失败。您可以关闭此标签页。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 msgid "Failed to get login URL: %s" msgstr "获取登录 URL 失败: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Failed to load logs: %s" msgstr "加载日志失败: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:487 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Filter peers by name, IP, or OS..." msgstr "按名称、IP 或操作系统过滤..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:564 msgid "Filter:" msgstr "过滤:" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "Firewall Mode" msgstr "防火墙模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:716 msgid "Firewall configuration already applied." msgstr "防火墙配置已应用。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:159 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:219 msgid "Firewall configuration applied." msgstr "已应用防火墙配置" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:165 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Firewall reload failed" msgstr "重新加载防火墙失败" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:600 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:640 msgid "General Settings" msgstr "常规设置" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:509 msgid "Hostname" msgstr "主机名" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:706 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:746 msgid "How to enable Exit Node?" msgstr "如何启用出口节点?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 msgid "How to enable Site-to-Site?" msgstr "如何实现站点到站点(即多局域网互通)?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:730 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 msgid "" "If the timeout is displayed, you can refresh the page and click Login " "again." msgstr "如果显示超时,您可以刷新页面并再次点击登录。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:744 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:784 msgid "" "If you are using custom login server but not providing an Auth Key, " "will redirect to the login page without pre-filling the key." msgstr "如果您使用自定义登录服务器但未提供认证密钥,将重定向到登录页面而不会预先填充密钥。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 msgid "Invalid Date" msgstr "无效日期" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 msgid "Invalid response from server." msgstr "服务器响应无效。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:646 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:686 msgid "" "It creates the tailscale interface, adds it to a firewall zone, and " "sets up forwarding between LAN and Tailscale, plus Tailscale to WAN." @@ -359,241 +359,241 @@ msgstr "" "它会创建 tailscale 接口,将其加入防火墙区域,并设置 LAN 与 Tailscale 之间的转发,以及 Tailscale 到 " "WAN 的转发。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:218 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:278 msgid "Just now" msgstr "刚才" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:330 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:390 msgid "LOGGED OUT" msgstr "已登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Last Seen" msgstr "上次在线" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:776 msgid "Leave blank for default Tailscale control plane." msgstr "留空以使用默认的 Tailscale 控制平面。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:853 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:893 msgid "Loading logs" msgstr "正在加载日志" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Logging out..." msgstr "正在登出..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 msgid "Login" msgstr "登录" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:749 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:815 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:823 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:855 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:863 msgid "Logout" msgstr "登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 msgid "Logout failed: %s" msgstr "登出失败: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:836 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:876 msgid "Logs" msgstr "日志" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "MagicDNS: Tailscale overrides resolv.conf." msgstr "MagicDNS:Tailscale 会覆写 resolv.conf。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:648 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 msgid "" "Masquerading and MSS Clamping (MTU fix) are enabled to keep " "connections stable." msgstr "会启用伪装和 MSS Clamping (MTU 修复),以保持连接稳定。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:212 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 msgid "N/A" msgstr "不可用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:401 msgid "NOT RUNNING" msgstr "未运行" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:499 msgid "No matching peer devices found." msgstr "未找到匹配的节点设备。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 msgid "No peer devices found." msgstr "未找到节点设备。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:368 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:428 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:880 msgid "No tailscale-related logs found." msgstr "没有找到Tailscale相关日志" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:613 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:653 msgid "None" msgstr "无" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:213 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:273 msgid "Now" msgstr "现在" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:511 msgid "OS" msgstr "操作系统" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Offline" msgstr "离线" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Online" msgstr "在线" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward" msgstr "OpenWrt 转发" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward: MagicDNS via dnsmasq forwarding.(Only support ts.net)" msgstr "OpenWrt 转发:通过dnsmasq转发MagicDNS(仅支持 ts.net域名)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:39 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 msgid "Operation" msgstr "操作" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:775 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale " "instance, %s)." msgstr "可选:指定一个自定义控制服务器 URL (例如,一个 Headscale 实例, %s)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:743 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:783 msgid "" "Optional: Specify an authentication key for the custom control " "server. Leave blank if not required." msgstr "可选:为自定义控制服务器指定一个认证密钥。如果不需要,请留空。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:604 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 msgid "Peer Relay Port" msgstr "节点中继端口" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:392 msgid "Please use the login button in the settings below to authenticate." msgstr "请使用下方设置中的登录按钮进行认证。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 #: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Please wait." msgstr "请稍候。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "RUNNING" msgstr "正在运行" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 msgid "RX" msgstr "接收" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:845 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:885 msgid "Refresh" msgstr "刷新" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:177 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:237 msgid "Reloading firewall..." msgstr "正在重新加载防火墙..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 msgid "Requesting Login URL..." msgstr "正在请求登录 URL..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:809 msgid "Requesting Tailscale login URL... Please wait." msgstr "正在请求 Tailscale 登录 URL... 请稍候。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is " "enabled implicitly." msgstr "从列表中选择出口节点。启用后会同时开启允许局域网访问。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "" "Select the firewall backend for Tailscale to use. Requires service " "restart to take effect." msgstr "选择 Tailscale 使用的防火墙后端。需要重启服务才能生效。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:320 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:328 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:340 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "Service Status" msgstr "服务状态" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "" "Set a custom MTU for the Tailscale daemon. Leave blank to use the " "default value." msgstr "为 Tailscale 守护进程设置自定义 MTU。留空则使用默认值。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "Shields Up" msgstr "屏蔽入站连接" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:448 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:508 msgid "Status" msgstr "状态" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:817 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:857 msgid "Successfully logged out." msgstr "登出成功。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:321 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "TAILSCALE NOT FOUND" msgstr "未找到 TAILSCALE 主程序" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "TUN Mode" msgstr "TUN 模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 msgid "TX" msgstr "发送" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:354 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:414 msgid "Tailnet Name" msgstr "Tailnet 名称" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 #: luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:1 msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:297 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:357 msgid "Tailscale Health Check: %s" msgstr "Tailscale 健康检查: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:450 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:510 msgid "Tailscale IP" msgstr "Tailscale IP" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:352 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Tailscale IPv4" msgstr "Tailscale IPv4" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:353 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:413 msgid "Tailscale IPv6" msgstr "Tailscale IPv6" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:808 msgid "Tailscale Login" msgstr "Tailscale 登录" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your " "devices securely. This configuration page allows you to manage " @@ -602,80 +602,80 @@ msgstr "" "Tailscale 是一个网状 VPN 解决方案,可以轻松地安全连接您的设备。此配置页面允许您在 OpenWrt 设备上管理 " "Tailscale 设置。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 msgid "Tailscale status error" msgstr "Tailscale 状态异常" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:647 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:687 msgid "" "The Tailscale to WAN forwarding is what lets clients send their " "internet traffic through this device as an Exit Node." msgstr "正是 Tailscale 到 WAN 的转发,让客户端可以把上网流量经由此设备作为出口节点发出。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:810 msgid "This can take up to 30 seconds." msgstr "此过程最多可能需要 30 秒。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:800 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 msgid "" "This will disconnect this device from your Tailnet and require you to " "re-authenticate." msgstr "这将使此设备从您的 Tailnet 断开连接,并需要您重新进行身份验证。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:143 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:194 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:254 msgid "Timed out waiting for the firewall reload" msgstr "等待防火墙重新加载超时" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:605 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 msgid "" "UDP port for the Peer Relay service. Open this port on your router " "firewall/NAT." msgstr "节点中继服务的 UDP 端口。需要在路由器的防火墙/NAT 上开放该端口。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Unknown error" msgstr "未知错误" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:350 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 msgid "Version" msgstr "版本" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "" "When enabled, blocks all inbound connections from the Tailscale " "network." msgstr "启用后,将阻止来自 Tailscale 网络的所有入站连接。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "When using the exit node, access to the local LAN is allowed." msgstr "使用出口节点时,允许访问本地局域网。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:660 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:700 msgid "" "You have unapplied changes. Save & Apply them first so the firewall " "matches the form." msgstr "您有未应用的更改。请先保存并应用,让防火墙配置与表单保持一致。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:696 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "【重要】登录 Tailscale 管理控制台,手动为此设备启用“子网路由”。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:719 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:759 msgid "" "[Important] Step 3 cannot be done here: it needs your Tailscale " "account." msgstr "【重要】第 3 步无法在此完成:需要您的 Tailscale 账户。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:221 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:281 msgid "ago" msgstr "前" diff --git a/luci-app-tailscale-community/po/zh_Hant/community.po b/luci-app-tailscale-community/po/zh_Hant/community.po index ea928e440..74d0d001d 100644 --- a/luci-app-tailscale-community/po/zh_Hant/community.po +++ b/luci-app-tailscale-community/po/zh_Hant/community.po @@ -1,79 +1,79 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:47 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 msgid "%s failed" msgstr "%s 失敗" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "(Experimental) Reduce Memory Usage" msgstr "(實驗性) 減少記憶體使用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:711 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 msgid "1. Enable \"Advertise Exit Node\"." msgstr "1. 啟用「宣告出口節點」。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:693 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:733 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "1. 勾選「接受路由」(以存取遠端設備)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:712 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:752 msgid "" "2. Click \"Auto Configure Firewall\" (it forwards Tailscale traffic " "to WAN)." msgstr "2. 點選「自動設定防火牆」(將 Tailscale 流量轉送到 WAN)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:694 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "2. 在「宣告路由」選擇本裝置的區域網段 (讓遠端能存取這個區網)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:695 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "3. 點選「自動設定防火牆」(允許流量轉送)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:753 msgid "" "3. In the Tailscale admin console, edit this device under the route " "settings and approve it as an Exit Node." msgstr "3. 在 Tailscale 管理控制台的路由設定中編輯此裝置,並核准為出口節點。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:718 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:758 msgid "4. On the client, set this device as its exit node." msgstr "4. 在用戶端上,將此裝置設為出口節點。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Accept Routes" msgstr "接受路由" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:725 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:765 msgid "Account Settings" msgstr "帳號設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Advertise Exit Node" msgstr "宣告出口節點" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "Advertise Routes" msgstr "宣告路由" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:636 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 msgid "" "Advertise subnet routes behind this device. Select from the detected " "subnets below or enter custom routes (comma-separated)." msgstr "宣告此裝置後方的子網路路由。從下方偵測到的子網路中選擇,或輸入自訂路由 (以逗號分隔)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "Allow LAN Access" msgstr "允許 LAN 存取" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:55 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:78 msgid "Allow accepting routes announced by other nodes." msgstr "允許接受由其他節點宣告的路由。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "允許透過 Tailscale 的 SSH 功能連線到此裝置。" @@ -81,277 +81,277 @@ msgstr "允許透過 Tailscale 的 SSH 功能連線到此裝置。" msgid "Allow user access to tailscale" msgstr "允許使用者存取 Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:170 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Another firewall reload is already running" msgstr "另一個防火牆重新載入作業正在執行中" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:799 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:839 msgid "Are you sure you want to log out?" msgstr "您確定要登出嗎?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:684 msgid "Auto Configure Firewall" msgstr "自動設定防火牆" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:806 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:846 msgid "Cancel" msgstr "取消" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:750 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:790 msgid "Click to Log out account on this device." msgstr "點選以登出此裝置上的帳號。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:729 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 msgid "Click to get a login URL for this device." msgstr "點選獲取此裝置的登入 URL。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:291 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:383 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:591 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:850 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:631 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:890 msgid "Collecting data ..." msgstr "正在收集資料..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:680 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:720 msgid "" "Configuration committed, reloading network and firewall. This can " "take a moment." msgstr "設定已提交,正在重新載入網路與防火牆。這可能需要一點時間。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:673 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:713 msgid "Configuring firewall" msgstr "正在設定防火牆" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:826 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:866 msgid "Confirm Logout" msgstr "確認登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:452 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:512 msgid "Connection Info" msgstr "連線資訊" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Controls how Tailscale DNS is handled." msgstr "控制 Tailscale DNS 的處理方式。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:762 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:802 msgid "" "Could not open a new tab. Please check if your browser or an " "extension blocked the pop-up." msgstr "無法開啟新分頁。請檢查您的瀏覽器或擴充套件程式是否阻止了彈出式視窗。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:734 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:774 msgid "Custom Login Server" msgstr "自訂登入伺服器" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:742 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:782 msgid "Custom Login Server Auth Key" msgstr "自訂登入伺服器認證金鑰" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "DNS Mode" msgstr "DNS 模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "Daemon MTU" msgstr "常駐程式 MTU" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:865 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:905 msgid "Daemon Settings" msgstr "常駐程式設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:56 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:79 msgid "Declare this device as an Exit Node." msgstr "將此裝置宣告為出口節點。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:869 msgid "Devices List" msgstr "裝置清單" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Firewall Configuration" msgstr "停用防火牆設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "Disable SNAT" msgstr "停用 SNAT" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:59 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:82 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most " "users should leave this unchecked." msgstr "為宣告路由的流量停用來源位址轉換 (SNAT)。大多數使用者不應勾選此項。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:63 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:86 msgid "Disable Tailscale netfilter auto-configuration (--netfilter-mode=off)." msgstr "停用 Tailscale netfilter 自動設定 (--netfilter-mode=off)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Disabled" msgstr "已停用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "Disabled: system DNS only." msgstr "已停用: 僅使用系統 DNS。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:751 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:791 msgid "Disconnect from Tailscale and expire current node key." msgstr "中斷 Tailscale 連線並使目前節點金鑰過期。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:41 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 msgid "Empty reply from server" msgstr "伺服器回應為空" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "Enable Peer Relay" msgstr "啟用對等中繼" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:61 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:84 msgid "Enable Tailscale SSH" msgstr "啟用 Tailscale SSH" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "Enable Tailscale Service" msgstr "啟用 Tailscale 服務" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "Enable Web Interface" msgstr "啟用 Web 介面" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:53 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:76 msgid "" "Enable or disable the Tailscale service. When disabled, the service " "will be stopped and the process will be killed." msgstr "啟用或停用 Tailscale 服務。停用後,該服務將停止,處理程序將被終止。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:64 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and " "an UDP port open on the router." msgstr "將此設備做為對等中繼伺服器。需要公開 IP 位址,且路由器上需要開啟一個 UDP 連接埠。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "Enabled" msgstr "已啟用" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:71 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice " "some performance (set GOGC=10)." msgstr "啟用此選項可以減少記憶體使用,但可能會犧牲一些效能 (設定 GOGC=10)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:787 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:827 msgid "Error" msgstr "錯誤" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 msgid "Error caching DERP region map: %s" msgstr "快取 DERP 區域對照表時出錯: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 msgid "Error fetching DERP region map: %s" msgstr "獲取 DERP 區域對照表時出錯: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 msgid "Error reading cached DERP region map: %s" msgstr "讀取快取的 DERP 區域對照表時出錯: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:685 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit " "Node features." msgstr "子網路由(站對站)和出口節點功能的基本設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "Exit Node" msgstr "出口節點" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:58 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:81 msgid "" "Expose a web interface on port 5252 for managing this node over " "Tailscale." msgstr "在埠 5252 上暴露一個 Web 介面,用於透過 Tailscale 管理此節點。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 msgid "Failed to configure firewall: %s" msgstr "設定防火牆失敗: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:788 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:828 msgid "Failed to get login URL. You may close this tab." msgstr "獲取登入 URL 失敗。您可以關閉此分頁。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 msgid "Failed to get login URL: %s" msgstr "獲取登入 URL 失敗: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Failed to load logs: %s" msgstr "載入日誌失敗: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:487 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Filter peers by name, IP, or OS..." msgstr "依名稱、IP 或作業系統篩選..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:564 msgid "Filter:" msgstr "篩選:" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "Firewall Mode" msgstr "防火牆模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:676 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:716 msgid "Firewall configuration already applied." msgstr "防火牆設定已套用。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:159 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:219 msgid "Firewall configuration applied." msgstr "已套用防火牆設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:165 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Firewall reload failed" msgstr "防火牆重新載入失敗" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:600 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:640 msgid "General Settings" msgstr "一般設定" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:509 msgid "Hostname" msgstr "主機名" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:706 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:746 msgid "How to enable Exit Node?" msgstr "如何啟用出口節點?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 msgid "How to enable Site-to-Site?" msgstr "如何啟用站對站通訊?" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:730 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 msgid "" "If the timeout is displayed, you can refresh the page and click Login " "again." msgstr "如果顯示逾時,您可以重新整理頁面並再次點選登入。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:744 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:784 msgid "" "If you are using custom login server but not providing an Auth Key, " "will redirect to the login page without pre-filling the key." msgstr "如果您使用自訂登入伺服器但未提供認證金鑰,將重新導向至登入頁面,且不會預先填入金鑰。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 msgid "Invalid Date" msgstr "無效日期" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:829 msgid "Invalid response from server." msgstr "伺服器回應無效。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:646 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:686 msgid "" "It creates the tailscale interface, adds it to a firewall zone, and " "sets up forwarding between LAN and Tailscale, plus Tailscale to WAN." @@ -359,241 +359,241 @@ msgstr "" "它會建立 tailscale 介面、加入防火牆區域,並設定 LAN 與 Tailscale 之間的轉送,以及 Tailscale 到 " "WAN 的轉送。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:218 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:278 msgid "Just now" msgstr "剛才" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:330 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:390 msgid "LOGGED OUT" msgstr "已登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Last Seen" msgstr "上次連線" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:776 msgid "Leave blank for default Tailscale control plane." msgstr "留白則使用預設的 Tailscale 控制台。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:853 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:893 msgid "Loading logs" msgstr "正在載入日誌" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Logging out..." msgstr "正在登出..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:728 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 msgid "Login" msgstr "登入" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:749 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:815 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:823 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:789 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:855 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:863 msgid "Logout" msgstr "登出" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 msgid "Logout failed: %s" msgstr "登出失敗: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:836 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:876 msgid "Logs" msgstr "日誌" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "MagicDNS: Tailscale overrides resolv.conf." msgstr "MagicDNS:Tailscale 將接管 resolv.conf。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:648 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:688 msgid "" "Masquerading and MSS Clamping (MTU fix) are enabled to keep " "connections stable." msgstr "同時啟用偽裝與 MSS Clamping (MTU 修復),以維持連線穩定。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:212 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 msgid "N/A" msgstr "N/A" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:401 msgid "NOT RUNNING" msgstr "未執行" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:499 msgid "No matching peer devices found." msgstr "找不到符合的對等裝置。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 msgid "No peer devices found." msgstr "未找到對等裝置。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:368 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:428 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:880 msgid "No tailscale-related logs found." msgstr "未找到與 tailscale 相關的日誌。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:613 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:653 msgid "None" msgstr "無" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:213 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:273 msgid "Now" msgstr "現在" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:511 msgid "OS" msgstr "作業系統" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Offline" msgstr "離線" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:424 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:484 msgid "Online" msgstr "上線" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward" msgstr "OpenWrt 轉送" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:85 msgid "OpenWrt Forward: MagicDNS via dnsmasq forwarding.(Only support ts.net)" msgstr "OpenWrt 轉送:僅經由 dnsmasq 轉送至 MagicDNS。(僅支援tailxxxxxx.ts.net)" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:39 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:62 msgid "Operation" msgstr "操作" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:735 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:775 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale " "instance, %s)." msgstr "可選:指定自訂控制伺服器 URL(例如,Headscale 實例,「%s」)。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:743 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:783 msgid "" "Optional: Specify an authentication key for the custom control " "server. Leave blank if not required." msgstr "可選:為自訂控制伺服器指定一個認證金鑰。如果不需要,請留白。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:604 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:644 msgid "Peer Relay Port" msgstr "對等中繼連接埠" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:392 msgid "Please use the login button in the settings below to authenticate." msgstr "請使用下方設定中的登入按鈕進行認證。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 #: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:852 msgid "Please wait." msgstr "請稍候。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "RUNNING" msgstr "正在執行" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 msgid "RX" msgstr "接收" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:845 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:885 msgid "Refresh" msgstr "重新整理" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:177 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:237 msgid "Reloading firewall..." msgstr "正在重新載入防火牆..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:772 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:778 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:812 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:818 msgid "Requesting Login URL..." msgstr "正在請求登入 URL..." -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:769 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:809 msgid "Requesting Tailscale login URL... Please wait." msgstr "正在請求 Tailscale 登入 URL... 請稍候。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:612 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:652 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is " "enabled implicitly." msgstr "從清單中選擇一個出口節點。啟用後會一併啟用「允許區網存取」。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:54 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:77 msgid "" "Select the firewall backend for Tailscale to use. Requires service " "restart to take effect." msgstr "選擇 Tailscale 使用的防火牆後端。需要重新啟動服務才能生效。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:320 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:328 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:340 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:349 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:400 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:409 msgid "Service Status" msgstr "服務狀態" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:70 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 msgid "" "Set a custom MTU for the Tailscale daemon. Leave blank to use the " "default value." msgstr "為 Tailscale 常駐程式設定自訂 MTU。留白則使用預設值。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "Shields Up" msgstr "封鎖入站連線" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:448 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:508 msgid "Status" msgstr "狀態" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:817 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:857 msgid "Successfully logged out." msgstr "登出成功。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:321 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "TAILSCALE NOT FOUND" msgstr "找不到 TAILSCALE" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:351 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:411 msgid "TUN Mode" msgstr "TUN 模式" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 msgid "TX" msgstr "傳送" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:354 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:414 msgid "Tailnet Name" msgstr "Tailnet 名稱" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 #: luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:1 msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:297 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:357 msgid "Tailscale Health Check: %s" msgstr "Tailscale 健康檢查: %s" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:450 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:510 msgid "Tailscale IP" msgstr "Tailscale IP" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:352 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Tailscale IPv4" msgstr "Tailscale IPv4" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:353 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:413 msgid "Tailscale IPv6" msgstr "Tailscale IPv6" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:768 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:808 msgid "Tailscale Login" msgstr "Tailscale 登入" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:562 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:622 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your " "devices securely. This configuration page allows you to manage " @@ -602,80 +602,80 @@ msgstr "" "Tailscale 是一個網狀 VPN 解決方案,可以輕鬆地安全連線您的裝置。此設定頁面允許您在 OpenWrt 裝置上管理 " "Tailscale 設定。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:449 msgid "Tailscale status error" msgstr "Tailscale 狀態錯誤" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:647 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:687 msgid "" "The Tailscale to WAN forwarding is what lets clients send their " "internet traffic through this device as an Exit Node." msgstr "Tailscale 到 WAN 的轉送,讓用戶端能透過此裝置以出口節點傳送網際網路流量。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:770 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:810 msgid "This can take up to 30 seconds." msgstr "此過程最多可能需要 30 秒。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:800 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:840 msgid "" "This will disconnect this device from your Tailnet and require you to " "re-authenticate." msgstr "這將使此裝置從您的 Tailnet 中斷連線,並需要您重新進行身份驗證。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:143 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:194 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:254 msgid "Timed out waiting for the firewall reload" msgstr "等待防火牆重新載入逾時" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:605 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:645 msgid "" "UDP port for the Peer Relay service. Open this port on your router " "firewall/NAT." msgstr "用於對等中繼服務的 UDP 連接埠。請在路由器的防火牆/NAT 上開放此連接埠。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:245 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:272 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:275 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:683 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:793 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:820 -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:859 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:305 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:332 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:335 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:723 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:833 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:860 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:899 msgid "Unknown error" msgstr "未知錯誤" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:350 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 msgid "Version" msgstr "版本" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:60 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:83 msgid "" "When enabled, blocks all inbound connections from the Tailscale " "network." msgstr "啟用後,將阻止來自 Tailscale 網路的所有入站連線。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:57 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:80 msgid "When using the exit node, access to the local LAN is allowed." msgstr "使用出口節點時,允許存取區域網路。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:660 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:700 msgid "" "You have unapplied changes. Save & Apply them first so the firewall " "matches the form." msgstr "您有尚未套用的變更。請先儲存並套用,防火牆才會與表單內容一致。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:696 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:736 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "【重要】 登入 Tailscale 管理控制台,在裝置設定中手動授權子網路由。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:719 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:759 msgid "" "[Important] Step 3 cannot be done here: it needs your Tailscale " "account." msgstr "[重要] 步驟 3 無法在此完成:需要您的 Tailscale 帳號。" -#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:221 +#: luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:281 msgid "ago" msgstr "前" diff --git a/luci-app-tailscale-community/root/etc/init.d/tailscale-settings b/luci-app-tailscale-community/root/etc/init.d/tailscale-settings index 85a92a136..fac287e7e 100755 --- a/luci-app-tailscale-community/root/etc/init.d/tailscale-settings +++ b/luci-app-tailscale-community/root/etc/init.d/tailscale-settings @@ -254,10 +254,18 @@ apply_settings() { && set -- "$@" --webclient=true \ || set -- "$@" --webclient=false - # --snat-subnet-routes (inverse of nosnat) - [ "$nosnat" = "1" ] \ - && set -- "$@" --snat-subnet-routes=false \ - || set -- "$@" --snat-subnet-routes=true + # Everything below is handed to 'tailscale set' in one call, and 'set' + # aborts on an unknown flag. Gate the newer options on the first release + # that accepts them, so an older CLI still applies the rest. + local ts_ver + ts_ver=$("$ts_bin" version 2>/dev/null | head -n1) + + # --snat-subnet-routes (requires tailscale >= 1.66.1) + if [ -n "$ts_ver" ] && version_gte "$ts_ver" "1.66.1"; then + [ "$nosnat" = "1" ] \ + && set -- "$@" --snat-subnet-routes=false \ + || set -- "$@" --snat-subnet-routes=true + fi # --advertise-routes (comma-separated, empty clears routes) set -- "$@" "--advertise-routes=$routes" @@ -268,13 +276,11 @@ apply_settings() { # when an exit node is configured, always allow LAN access [ -n "$exit_node" ] && set -- "$@" --exit-node-allow-lan-access=true - # --hostname (only set if non-empty) - [ -n "$hostname" ] && set -- "$@" "--hostname=$hostname" + # --hostname (empty resets it to the OS hostname) + set -- "$@" "--hostname=$hostname" - # --relay-server-port (requires tailscale >= 1.90.5) - local ts_ver - ts_ver=$("$ts_bin" version 2>/dev/null | head -n1) - if [ -n "$ts_ver" ] && version_gte "$ts_ver" "1.90.5"; then + # --relay-server-port (requires tailscale >= 1.84.0) + if [ -n "$ts_ver" ] && version_gte "$ts_ver" "1.84.0"; then if [ "$enable_relay" = "1" ]; then set -- "$@" "--relay-server-port=${relay_server_port:-40000}" else @@ -282,9 +288,16 @@ apply_settings() { fi fi - # --netfilter-mode (only when disable_fw_config is enabled and tailscale init doesn't already handle it) - if [ "$disable_fw_config" = "1" ]; then - set -- "$@" --netfilter-mode=off + # --netfilter-mode (off when disable_fw_config is enabled, back to on + # otherwise; requires tailscale >= 1.66.1) + if [ -n "$ts_ver" ] && version_gte "$ts_ver" "1.66.1"; then + if [ "$disable_fw_config" = "1" ]; then + set -- "$@" --netfilter-mode=off + else + set -- "$@" --netfilter-mode=on + fi + elif [ "$disable_fw_config" = "1" ]; then + logger -t "$NAME" "tailscale ${ts_ver:-before 1.66.1} has no --netfilter-mode in 'set', ignoring disable_fw_config" fi logger -t "$NAME" "Applying settings" @@ -319,8 +332,16 @@ sync_service_enabled() { # the baseline instead of treating it as a transition: starting # a daemon here would run start_service, which arms another UCI # rollback window right after the one this apply is inside. - echo "$service_enabled" > "$ENABLED_FILE" - prev="$service_enabled" + # + # An armed disable request is the exception: the user just asked + # for the stop, so the baseline has to be "was running", not "was + # stopped", or the request would be dropped without stopping. + if [ -f "$DISABLE_REQUEST_FILE" ]; then + prev=1 + else + echo "$service_enabled" > "$ENABLED_FILE" + prev="$service_enabled" + fi ;; esac diff --git a/luci-app-tailscale-community/root/usr/libexec/tailscale-setup-firewall b/luci-app-tailscale-community/root/usr/libexec/tailscale-setup-firewall index cebe835e3..841b778f6 100755 --- a/luci-app-tailscale-community/root/usr/libexec/tailscale-setup-firewall +++ b/luci-app-tailscale-community/root/usr/libexec/tailscale-setup-firewall @@ -36,25 +36,60 @@ write_state() { # Only one worker at a time: a second click while a reload is running would # queue another network reload on top of an unfinished one. mkdir is atomic and # is the only portable primitive available here; a test-then-write pair lets -# two workers through at the same moment. Stale locks are recognised by age so -# a recycled pid or a killed worker cannot block forever. +# two workers through at the same moment. Stale locks are recognised by age and +# by a dead pid so a killed worker cannot block forever, but a lock that is +# merely young is never taken over. LOCK_DIR="$LOCK_FILE.d" lock_age() { local ts now ts=$(cat "$LOCK_DIR/ts" 2>/dev/null) - case "$ts" in ''|*[!0-9]*) echo 999999; return ;; esac + # A missing or unreadable timestamp means mkdir just won the race and the + # holder has not written pid/ts yet. Reporting that window as ancient let a + # late worker rip the lock away mid start up, so two reloads ran at once: + # the very thing this lock exists to prevent. It is a fresh lock instead. + # + # The directory mtime covers the other side of the same window: a worker + # killed between mkdir and the ts write would otherwise leave an ageless + # lock that nobody ever takes over. + case "$ts" in + ''|*[!0-9]*) + ts=$(date -r "$LOCK_DIR" +%s 2>/dev/null) + case "$ts" in ''|*[!0-9]*) echo 0; return ;; esac + ;; + esac now=$(date +%s) echo $((now - ts)) } +# kill -0 is the portable liveness probe available in busybox ash. No readable +# pid means the holder never got to write one, which is what a lock left behind +# by a crash looks like, so it counts as gone. +lock_holder_alive() { + local pid + pid=$(cat "$LOCK_DIR/pid" 2>/dev/null) + case "$pid" in ''|*[!0-9]*) return 1 ;; esac + kill -0 "$pid" 2>/dev/null +} + +# Returns 0 when this process owns a freshly created lock directory. Deletes are +# not in place: rm -rf then mkdir leaves a window where two workers both think +# they won. Renaming the old directory is a single step that only one worker can +# win; the loser reports busy. mkdir can still lose to a third worker. +take_over_stale_lock() { + local aside + [ "$(lock_age)" -gt 300 ] || return 1 + lock_holder_alive && return 1 + aside="$LOCK_DIR.stale.$$" + mv "$LOCK_DIR" "$aside" 2>/dev/null || return 1 + rm -rf "$aside" + mkdir "$LOCK_DIR" 2>/dev/null +} + if ! mkdir "$LOCK_DIR" 2>/dev/null; then - if [ "$(lock_age)" -gt 300 ]; then - # the holder is gone; take the lock over - rm -rf "$LOCK_DIR" - mkdir "$LOCK_DIR" 2>/dev/null || exit 0 - else - # someone else is already reloading: say so instead of leaving the - # status file at "queued" and letting the UI time out + if ! take_over_stale_lock; then + # someone else is already reloading, or another worker won the takeover: + # say so instead of leaving the status file at "queued" and letting the + # UI time out write_state busy locked "Another firewall reload is already running" exit 0 fi diff --git a/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc b/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc index 78c63b9c8..b8ef77bf4 100755 --- a/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc +++ b/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc @@ -2,7 +2,7 @@ 'use strict'; -import { access, popen, readfile, writefile, unlink } from 'fs'; +import { access, popen, readfile, writefile, rename, unlink } from 'fs'; import { cursor } from 'uci'; const uci = cursor(); @@ -361,13 +361,22 @@ methods.setup_firewall = { // gets a chance to overwrite it. Without both, a poll arriving // while the worker is still starting would read the previous // run's "done" and report success for work that has not run. - run_id = time(); - let st = writefile('/var/run/tailscale-fwsetup.status.tmp', - 'queued\nstart\n\n' + run_id + '\n'); - if (st == null || rename('/var/run/tailscale-fwsetup.status.tmp', '/var/run/tailscale-fwsetup.status') == null) { + // clock() returns [seconds, nanoseconds], not milliseconds, so + // fold it explicitly. Two clicks within the same second still + // get distinct ids; the temp file name carries the id as well, + // so concurrent writers cannot clobber each other's queued + // state through a shared fixed path. + let now = clock(); + run_id = now[0] * 1000 + int(now[1] / 1000000); + let tmp = '/var/run/tailscale-fwsetup.status.tmp.' + run_id; + let st = writefile(tmp, 'queued\nstart\n\n' + run_id + '\n'); + if (st == null || rename(tmp, '/var/run/tailscale-fwsetup.status') == null) { // Without a writable status file the poll can never see a // result, so say so instead of letting the UI wait it out. - return { error: 'Cannot write the firewall status file in /var/run. Configuration was not changed.' }; + // Drop the temp file we may have created, so a failed run + // leaves no stray state behind for the next poll. + unlink(tmp); + return { error: 'Cannot write the firewall status file in /var/run. The configuration was committed but not applied.' }; } // The background shell exits immediately, so its status only @@ -467,7 +476,12 @@ methods.get_logs = { args: { lines: 200 }, call: function(request) { let lines = int(request?.args?.lines) || 200; - let cmd = 'logread -l ' + lines + ' 2>/dev/null | grep -i -E "tailscale" || true'; + if (lines < 1) lines = 200; + if (lines > 1000) lines = 1000; + // Filter first, then take the tail: logread -l would only hand the last + // N lines of every daemon to grep, so a busy box hides the tailscale + // records entirely and the log page claims there is nothing to show. + let cmd = 'logread 2>/dev/null | grep -i -E "tailscale" | tail -n ' + lines; let result = exec(cmd); if (result.code == 0) { return { success: true, logs: result.stdout }; diff --git a/maxminddb-dump-country/Makefile b/maxminddb-dump-country/Makefile index 42ab2b217..7b33602cf 100644 --- a/maxminddb-dump-country/Makefile +++ b/maxminddb-dump-country/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=maxminddb-dump-country PKG_VERSION:=2 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_MAINTAINER:=Konstantine Shevlakov PKG_LICENSE:=LICENSE diff --git a/maxminddb-dump-country/patches/0001-geoip-add-DB-IP-CSV-input-support.patch b/maxminddb-dump-country/patches/0001-geoip-add-DB-IP-CSV-input-support.patch index f0c6c3263..bcfdac7d0 100644 --- a/maxminddb-dump-country/patches/0001-geoip-add-DB-IP-CSV-input-support.patch +++ b/maxminddb-dump-country/patches/0001-geoip-add-DB-IP-CSV-input-support.patch @@ -1,7 +1,7 @@ -From 8ea81c36bee0d4eefc023561a423cbfaac7acc41 Mon Sep 17 00:00:00 2001 +From 2090af86fc5769d865bacb9446af046500f48914 Mon Sep 17 00:00:00 2001 From: koshev-msk -Date: Thu, 29 Oct 2026 23:04:25 +0000 -Subject: [PATCH] geoip: add DB-IP CSV input support +Date: Fri, 30 Oct 2026 10:55:20 +0000 +Subject: [PATCH 1/2] geoip: add DB-IP CSV input support Add a -d option to read DB-IP Country Lite CSV files and generate the same per-country .iv4/.iv6 binary range files as the existing MMDB @@ -16,11 +16,11 @@ unchanged. Signed-off-by: OpenWrt Developer --- - xt_geoip_build_maxmind.c | 292 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 260 insertions(+), 32 deletions(-) + xt_geoip_build_maxmind.c | 295 ++++++++++++++++++++++++++++++++++----- + 1 file changed, 262 insertions(+), 33 deletions(-) diff --git a/xt_geoip_build_maxmind.c b/xt_geoip_build_maxmind.c -index 55e86d0..95d2c92 100644 +index 55e86d0..eeb6bae 100644 --- a/xt_geoip_build_maxmind.c +++ b/xt_geoip_build_maxmind.c @@ -3,6 +3,7 @@ @@ -245,7 +245,17 @@ index 55e86d0..95d2c92 100644 static int skip_n96 = 0; void tree_walk(int rn,int l, uint8_t *path) { -@@ -372,9 +573,10 @@ int main(int argc, char **argv) +@@ -358,7 +559,8 @@ void tree_walk(int rn,int l, uint8_t *path) { + } + + void usage(void) { +- printf("%s [-4] [-6] [-v] [-c] [-N ASNUM|string ][-A all|asnum[,asnum...]] [-o outputdir] file.mmdb\n",progname); ++ printf("%s [-4] [-6] [-v] [-c] [-d dbip.csv] [-N ASNUM|string ][-A all|asnum[,asnum...]] [-o outputdir] [file.mmdb]\n",progname); ++ printf("\t -d: read DB-IP Country Lite CSV and write binary GeoIP files\n"); + printf("\t asnum: number | number-number\n"); + exit(1); + } +@@ -372,9 +574,10 @@ int main(int argc, char **argv) progname = strdup(argv[0]); @@ -257,7 +267,7 @@ index 55e86d0..95d2c92 100644 case '4': opt_6 = 0; break; case '6': opt_4 = 0; break; case 'v': opt_v++; break; -@@ -394,17 +596,29 @@ int main(int argc, char **argv) +@@ -394,17 +597,29 @@ int main(int argc, char **argv) filename = strdup(argv[optind]); } else { filename = opt_asn ? asn_name:country_name; @@ -289,7 +299,7 @@ index 55e86d0..95d2c92 100644 if(opt_asn && (opt_xtgeo || opt_csv)) { fprintf(stderr,"%s: cant use -A with -o or -c\n",progname); exit(1); -@@ -426,43 +640,55 @@ int main(int argc, char **argv) +@@ -426,43 +641,55 @@ int main(int argc, char **argv) output_dir[l+2] = '\0'; } @@ -374,7 +384,7 @@ index 55e86d0..95d2c92 100644 } c_ipv4 += CCN4[fd]; c_ipv6 += CCN6[fd]; -@@ -482,6 +708,8 @@ int main(int argc, char **argv) +@@ -482,6 +709,8 @@ int main(int argc, char **argv) if(CSV_IPv6_fd) fclose(CSV_IPv6_fd); if(CSV_EN_fd) fclose(CSV_EN_fd); diff --git a/maxminddb-dump-country/patches/0002-add-help-CSV-args.patch b/maxminddb-dump-country/patches/0002-add-help-CSV-args.patch deleted file mode 100644 index 29abcbd68..000000000 --- a/maxminddb-dump-country/patches/0002-add-help-CSV-args.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/xt_geoip_build_maxmind.c -+++ b/xt_geoip_build_maxmind.c -@@ -559,7 +559,7 @@ - } - - void usage(void) { -- printf("%s [-4] [-6] [-v] [-c] [-N ASNUM|string ][-A all|asnum[,asnum...]] [-o outputdir] file.mmdb\n",progname); -+ printf("%s [-4] [-6] [-v] [-c] [-N ASNUM|string ][-A all|asnum[,asnum...]] [-o outputdir] file.mmdb|-d file.dbip.csv\n",progname); - printf("\t asnum: number | number-number\n"); - exit(1); - } diff --git a/maxminddb-dump-country/patches/0002-geoip-accept-ip-prefix-country-lines-in-d-CSV-input.patch b/maxminddb-dump-country/patches/0002-geoip-accept-ip-prefix-country-lines-in-d-CSV-input.patch new file mode 100644 index 000000000..950501b52 --- /dev/null +++ b/maxminddb-dump-country/patches/0002-geoip-accept-ip-prefix-country-lines-in-d-CSV-input.patch @@ -0,0 +1,167 @@ +From d77c01d155793a19d28828bbb1d659ec19089b18 Mon Sep 17 00:00:00 2001 +From: koshev-msk +Date: Fri, 30 Oct 2026 10:55:20 +0000 +Subject: [PATCH 2/2] geoip: accept ip/prefix,country lines in -d CSV input + +Besides the DB-IP start_ip,end_ip,country format, allow two-field +lines in the form ip/prefix,country so that own lists can be written +in CIDR notation. Both IPv4 and IPv6 are supported; the range is +computed by clearing host bits for the start address and setting them +for the end address. Prefix length is validated against the address +family (0..32 / 0..128). + +Signed-off-by: OpenWrt Developer +--- + xt_geoip_build_maxmind.c | 90 ++++++++++++++++++++++++++++++---------- + 1 file changed, 67 insertions(+), 23 deletions(-) + +diff --git a/xt_geoip_build_maxmind.c b/xt_geoip_build_maxmind.c +index eeb6bae..0c81d58 100644 +--- a/xt_geoip_build_maxmind.c ++++ b/xt_geoip_build_maxmind.c +@@ -332,6 +332,8 @@ void p_dump(int l, uint8_t *path, MMDB_entry_s *e) { + /* + * DB-IP Country Lite CSV format: + * start_ip,end_ip,country ++ * or, for own lists: ++ * ip/prefix,country + * + * The fields may optionally be quoted. The CSV has no embedded commas. + */ +@@ -351,6 +353,21 @@ static char *csv_trim(char *field) + return field; + } + ++/* Convert addr/plen to first and last address of the network. */ ++static void cidr_range(uint8_t *start, uint8_t *end, unsigned alen, ++ unsigned plen) ++{ ++ unsigned i, bits; ++ uint8_t mask; ++ ++ for(i = 0; i < alen; i++) { ++ bits = plen > i * 8 ? plen - i * 8 : 0; ++ mask = bits >= 8 ? 0xff : (uint8_t)(0xff00 >> bits); ++ start[i] &= mask; ++ end[i] = start[i] | (uint8_t)~mask; ++ } ++} ++ + static int dbip_write_range(int family, const uint8_t *start, + const uint8_t *end, const char *country, int cind) + { +@@ -411,8 +428,10 @@ static int dbip_csv_dump(const char *path) + } + + while(fgets(line, sizeof(line), input)) { +- char *field[3], *p, *comma; ++ char *field[3], *p, *comma, *slash, *endp; + char *country; ++ unsigned long plen; ++ int nfields; + uint8_t start[16], end[16]; + char start_text[INET6_ADDRSTRLEN]; + char end_text[INET6_ADDRSTRLEN]; +@@ -438,17 +457,22 @@ static int dbip_csv_dump(const char *path) + field[1] = comma + 1; + + comma = strchr(field[1], ','); +- if(!comma) +- goto malformed; +- *comma = '\0'; +- field[2] = comma + 1; +- if(strchr(field[2], ',')) +- goto malformed; ++ if(comma) { ++ *comma = '\0'; ++ field[2] = comma + 1; ++ if(strchr(field[2], ',')) ++ goto malformed; ++ nfields = 3; ++ } else { ++ field[2] = NULL; ++ nfields = 2; ++ } + + field[0] = csv_trim(field[0]); + field[1] = csv_trim(field[1]); +- field[2] = csv_trim(field[2]); +- country = field[2]; ++ if(field[2]) ++ field[2] = csv_trim(field[2]); ++ country = field[nfields - 1]; + + if(first_line) { + first_line = 0; +@@ -474,6 +498,14 @@ static int dbip_csv_dump(const char *path) + if(cind < 0) + continue; + ++ slash = NULL; ++ if(nfields == 2) { ++ slash = strchr(field[0], '/'); ++ if(!slash) ++ goto malformed; ++ *slash++ = '\0'; ++ } ++ + if(inet_pton(AF_INET, field[0], start) == 1) + family = AF_INET; + else if(inet_pton(AF_INET6, field[0], start) == 1) +@@ -485,19 +517,31 @@ static int dbip_csv_dump(const char *path) + break; + } + +- if(inet_pton(family, field[1], end) != 1) { +- fprintf(stderr, "Invalid or mismatched end IP on DB-IP CSV line %lu\n", +- lineno); +- result = -1; +- break; +- } +- end_family = family; +- if(end_family != family || +- memcmp(start, end, family == AF_INET ? 4 : 16) > 0) { +- fprintf(stderr, "Invalid IP range on DB-IP CSV line %lu\n", +- lineno); +- result = -1; +- break; ++ if(slash) { ++ plen = strtoul(slash, &endp, 10); ++ if(!isdigit((unsigned char)*slash) || *endp || ++ plen > (family == AF_INET ? 32 : 128)) { ++ fprintf(stderr, "Invalid prefix length on DB-IP CSV line %lu\n", ++ lineno); ++ result = -1; ++ break; ++ } ++ cidr_range(start, end, family == AF_INET ? 4 : 16, plen); ++ } else { ++ if(inet_pton(family, field[1], end) != 1) { ++ fprintf(stderr, "Invalid or mismatched end IP on DB-IP CSV line %lu\n", ++ lineno); ++ result = -1; ++ break; ++ } ++ end_family = family; ++ if(end_family != family || ++ memcmp(start, end, family == AF_INET ? 4 : 16) > 0) { ++ fprintf(stderr, "Invalid IP range on DB-IP CSV line %lu\n", ++ lineno); ++ result = -1; ++ break; ++ } + } + + if(dbip_write_range(family, start, end, country, cind)) { +@@ -560,7 +604,7 @@ void tree_walk(int rn,int l, uint8_t *path) { + + void usage(void) { + printf("%s [-4] [-6] [-v] [-c] [-d dbip.csv] [-N ASNUM|string ][-A all|asnum[,asnum...]] [-o outputdir] [file.mmdb]\n",progname); +- printf("\t -d: read DB-IP Country Lite CSV and write binary GeoIP files\n"); ++ printf("\t -d: read CSV (start_ip,end_ip,CC or ip/prefix,CC) and write binary GeoIP files\n"); + printf("\t asnum: number | number-number\n"); + exit(1); + } +-- +2.43.0 + diff --git a/meow/Makefile b/meow/Makefile index 0d8e760fa..f81db7779 100644 --- a/meow/Makefile +++ b/meow/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=meow -PKG_VERSION:=0.27.0 -PKG_RELEASE:=17 +PKG_VERSION:=0.28.0 +PKG_RELEASE:=18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/meow-rs/meow-rs/tar.gz/v$(PKG_VERSION)? diff --git a/microsocks/Makefile b/microsocks/Makefile index cd72d133c..07172a7c1 100644 --- a/microsocks/Makefile +++ b/microsocks/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=microsocks PKG_VERSION:=1.0.5 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)? diff --git a/microsocks/patches/100-Add-SOCKS5-forwarding-rules-support.patch b/microsocks/patches/100-Add-SOCKS5-forwarding-rules-support.patch deleted file mode 100644 index 12b70103a..000000000 --- a/microsocks/patches/100-Add-SOCKS5-forwarding-rules-support.patch +++ /dev/null @@ -1,428 +0,0 @@ ---- a/sockssrv.c -+++ b/sockssrv.c -@@ -33,8 +33,10 @@ - #include - #include - #include -+#include - #include "server.h" - #include "sblist.h" -+#define MICROSOCKS_VERSION "1.0.5-forward" - - /* timeout in microseconds on resource exhaustion to prevent excessive - cpu usage. */ -@@ -71,6 +73,7 @@ - static pthread_rwlock_t auth_ips_lock = PTHREAD_RWLOCK_INITIALIZER; - static const struct server* server; - static union sockaddr_union bind_addr = {.v4.sin_family = AF_UNSPEC}; -+static sblist *fwd_rules; - - enum socksstate { - SS_1_CONNECTED, -@@ -97,6 +100,17 @@ - EC_ADDRESSTYPE_NOT_SUPPORTED = 8, - }; - -+struct fwd_rule { -+ char *match_name; -+ short match_port; -+ char *auth_buf; /* Username/Password request buffer (RFC-1929) */ -+ size_t auth_len; -+ char *upstream_name; -+ short upstream_port; -+ char *req_buf; /* Client Connection Request buffer to send to upstream */ -+ size_t req_len; -+}; -+ - struct thread { - pthread_t pt; - struct client client; -@@ -116,6 +130,109 @@ - static void dolog(const char* fmt, ...) { } - #endif - -+static int upstream_handshake(const struct fwd_rule* rule, unsigned char *client_buf, size_t client_buf_len, -+ int client_fd, int upstream_fd, unsigned short client_port) { -+ unsigned char sbuf[512]; -+ ssize_t r; -+ -+ if(rule->auth_buf) { -+ unsigned char handshake[4] = {5, 2, 0, 2}; -+ if (write(upstream_fd, handshake, 4) != 4) { -+ close(upstream_fd); -+ return -1; -+ } -+ } else { -+ unsigned char handshake[3] = {5, 1, 0}; -+ if (write(upstream_fd, handshake, 3) != 3) { -+ close(upstream_fd); -+ return -1; -+ } -+ } -+ -+ if (read(upstream_fd, sbuf, 2) != 2 || sbuf[0] != 5) { -+ close(upstream_fd); -+ return -1; -+ } -+ -+ if (sbuf[1] == 2) { -+ if (!rule->auth_buf) { -+ close(upstream_fd); -+ return -1; -+ } -+ if (write(upstream_fd, rule->auth_buf, rule->auth_len) != (ssize_t)rule->auth_len) { -+ close(upstream_fd); -+ return -1; -+ } -+ if (read(upstream_fd, sbuf, 2) != 2 || sbuf[0] != 1 || sbuf[1] != 0) { -+ close(upstream_fd); -+ return -1; -+ } -+ } else if (sbuf[1] != 0) { -+ close(upstream_fd); -+ return -1; -+ } -+ -+ if (write(upstream_fd, client_buf, client_buf_len) != (ssize_t)client_buf_len) { -+ close(upstream_fd); -+ return -1; -+ } -+ -+ size_t total = 0; -+ size_t need = 4; -+ -+ while (total < need) { -+ r = read(upstream_fd, sbuf + total, need - total); -+ if (r <= 0) { -+ close(upstream_fd); -+ return -1; -+ } -+ total += r; -+ } -+ -+ if (sbuf[1] != 0) { -+ close(upstream_fd); -+ return -sbuf[1]; -+ } -+ -+ size_t need_more = 0; -+ switch (sbuf[3]) { -+ case 1: -+ need_more = 4 + 2; -+ break; -+ case 4: -+ need_more = 16 + 2; -+ break; -+ case 3: -+ r = read(upstream_fd, sbuf + total, 1); -+ if (r != 1) { -+ close(upstream_fd); -+ return -1; -+ } -+ total += r; -+ need_more = sbuf[4] + 2; -+ break; -+ default: -+ close(upstream_fd); -+ return -EC_ADDRESSTYPE_NOT_SUPPORTED; -+ } -+ -+ while (total < need + need_more) { -+ r = read(upstream_fd, sbuf + total, (need + need_more) - total); -+ if (r <= 0) { -+ close(upstream_fd); -+ return -1; -+ } -+ total += r; -+ } -+ -+ if (write(client_fd, sbuf, total) != (ssize_t)total) { -+ close(upstream_fd); -+ return -1; -+ } -+ -+ return upstream_fd; -+} -+ - static struct addrinfo* addr_choose(struct addrinfo* list, union sockaddr_union* bindaddr) { - int af = SOCKADDR_UNION_AF(bindaddr); - if(af == AF_UNSPEC) return list; -@@ -125,7 +242,9 @@ - return list; - } - --static int connect_socks_target(unsigned char *buf, size_t n, struct client *client) { -+static int connect_socks_target(unsigned char *buf, size_t n, struct client *client, int *used_rule) { -+ *used_rule = 0; -+ - if(n < 5) return -EC_GENERAL_FAILURE; - if(buf[0] != 5) return -EC_GENERAL_FAILURE; - if(buf[1] != 1) return -EC_COMMAND_NOT_SUPPORTED; /* we support only CONNECT method */ -@@ -158,6 +277,29 @@ - } - unsigned short port; - port = (buf[minlen-2] << 8) | buf[minlen-1]; -+ -+ size_t i; -+ struct fwd_rule *rule = NULL; -+ char original_name[256]; -+ unsigned short original_port = port; -+ strncpy(original_name, namebuf, sizeof(original_name) - 1); -+ original_name[sizeof(original_name) - 1] = '\0'; -+ if(fwd_rules) { -+ for(i=0;imatch_name[0]=='\0' || strcmp(r->match_name, namebuf) == 0); -+ int port_match = (r->match_port == 0 || r->match_port == port); -+ if(name_match && port_match) { -+ rule = r; -+ *used_rule = 1; -+ strncpy(namebuf, r->upstream_name, sizeof(namebuf)-1); -+ namebuf[sizeof(namebuf)-1] = '\0'; -+ port = r->upstream_port; -+ break; -+ } -+ } -+ } -+ - /* there's no suitable errorcode in rfc1928 for dns lookup failure */ - if(resolve(namebuf, port, &remote)) return -EC_GENERAL_FAILURE; - struct addrinfo* raddr = addr_choose(remote, &bind_addr); -@@ -186,6 +328,11 @@ - return -EC_GENERAL_FAILURE; - } - } -+ -+ struct timeval tv = {5, 0}; -+ setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv)); -+ setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (const char*)&tv, sizeof(tv)); -+ - if(SOCKADDR_UNION_AF(&bind_addr) == raddr->ai_family && - bindtoip(fd, &bind_addr) == -1) - goto eval_errno; -@@ -198,9 +345,22 @@ - af = SOCKADDR_UNION_AF(&client->addr); - void *ipdata = SOCKADDR_UNION_ADDRESS(&client->addr); - inet_ntop(af, ipdata, clientname, sizeof clientname); -- dolog("client[%d] %s: connected to %s:%d\n", client->fd, clientname, namebuf, port); -+ if (rule) { -+ dolog("client[%d] %s: %s:%d -> via %s:%d\n", client->fd, clientname, original_name, original_port, rule->upstream_name, rule->upstream_port); -+ } else { -+ dolog("client[%d] %s: connected to %s:%d\n", client->fd, clientname, namebuf, port); -+ } - } -- return fd; -+ -+ if (rule) { -+ int result = upstream_handshake(rule, buf, n, client->fd, fd, original_port); -+ if (result < 0) { -+ close(fd); -+ return result; -+ } -+ return result; -+ } -+ return fd; - } - - static int is_authed(union sockaddr_union *client, union sockaddr_union *authedip) { -@@ -322,6 +482,7 @@ - ssize_t n; - int ret; - enum authmethod am; -+ int used_rule = 0; - t->state = SS_1_CONNECTED; - while((n = recv(t->client.fd, buf, sizeof buf, 0)) > 0) { - switch(t->state) { -@@ -345,12 +506,14 @@ - } - break; - case SS_3_AUTHED: -- ret = connect_socks_target(buf, n, &t->client); -+ ret = connect_socks_target(buf, n, &t->client, &used_rule); - if(ret < 0) { - send_error(t->client.fd, ret*-1); - return -1; - } -- send_error(t->client.fd, EC_SUCCESS); -+ if (!used_rule) { -+ send_error(t->client.fd, EC_SUCCESS); -+ } - return ret; - } - } -@@ -382,11 +545,131 @@ - } - } - -+static short host_get_port(char *name) { -+ int p,n; -+ char *c; -+ if((c = strrchr(name, ':')) && sscanf(c+1,"%d%n",&p, &n)==1 && n == (int)(strlen(c + 1)) && p >= 0 && p < USHRT_MAX) -+ return (*c='\0'),(short)p; -+ else -+ return -1; -+} -+ -+static int fwd_rules_add(char *str) { -+ char *match = NULL, *upstream = NULL, *remote = NULL; -+ unsigned short match_port, upstream_port, remote_port; -+ int ncred; -+ -+ if(sscanf(str, "%m[^,],%n%m[^,],%ms\n", &match, &ncred, &upstream, &remote) != 3) -+ return 1; -+ -+ match_port = host_get_port(match); -+ upstream_port = host_get_port(upstream); -+ remote_port = host_get_port(remote); -+ -+ if(match_port < 0 || upstream_port <= 0 || remote_port < 0) { -+ free(match); -+ free(upstream); -+ free(remote); -+ return 1; -+ } -+ -+ char *match_copy = strdup(match); -+ char *upstream_copy = strdup(upstream); -+ char *remote_copy = strdup(remote); -+ -+ struct fwd_rule *rule = (struct fwd_rule*)malloc(sizeof(struct fwd_rule)); -+ if (!rule) { -+ free(match_copy); -+ free(upstream_copy); -+ free(remote_copy); -+ free(match); -+ free(upstream); -+ free(remote); -+ return 1; -+ } -+ -+ if(strcmp(match_copy, "0.0.0.0") == 0 || strcmp(match_copy, "*") == 0) { -+ free(match_copy); -+ rule->match_name = strdup(""); -+ } else { -+ rule->match_name = match_copy; -+ } -+ rule->match_port = match_port; -+ rule->auth_buf = NULL; -+ rule->auth_len = 0; -+ -+ char *at_sign = strchr(upstream_copy, '@'); -+ if (at_sign) { -+ *at_sign = '\0'; -+ char *auth_part = upstream_copy; -+ char *host_part = at_sign + 1; -+ char *colon = strchr(auth_part, ':'); -+ if (!colon) { -+ free(rule); -+ free(upstream_copy); -+ free(remote_copy); -+ free(match); -+ free(upstream); -+ free(remote); -+ return 1; -+ } -+ *colon++ = '\0'; -+ char *username = auth_part; -+ char *password = colon; -+ size_t ulen = strlen(username); -+ size_t plen = strlen(password); -+ if (ulen > 255 || plen > 255) { -+ free(rule); -+ free(upstream_copy); -+ free(remote_copy); -+ free(match); -+ free(upstream); -+ free(remote); -+ return 1; -+ } -+ rule->auth_len = 1 + 1 + ulen + 1 + plen; -+ rule->auth_buf = malloc(rule->auth_len); -+ rule->auth_buf[0] = 1; -+ rule->auth_buf[1] = ulen; -+ memcpy(&rule->auth_buf[2], username, ulen); -+ rule->auth_buf[2 + ulen] = plen; -+ memcpy(&rule->auth_buf[3 + ulen], password, plen); -+ rule->upstream_name = strdup(host_part); -+ rule->upstream_port = upstream_port; -+ /* hide from ps */ -+ memset(str+ncred, '*', ulen+1+plen); -+ } else { -+ rule->upstream_name = strdup(upstream_copy); -+ rule->upstream_port = upstream_port; -+ } -+ -+ free(upstream_copy); -+ short rlen = strlen(remote_copy); -+ rule->req_len = 3 + 1 + 1 + rlen + 2; -+ rule->req_buf = (char*)malloc(rule->req_len); -+ rule->req_buf[0] = 5; -+ rule->req_buf[1] = 1; -+ rule->req_buf[2] = 0; -+ rule->req_buf[3] = 3; -+ rule->req_buf[4] = rlen; -+ memcpy(&rule->req_buf[5], remote_copy, rlen); -+ unsigned short rport = remote_port ? remote_port : 0; -+ rule->req_buf[5 + rlen] = (rport >> 8) & 0xFF; -+ rule->req_buf[5 + rlen + 1] = (rport & 0xFF); -+ free(remote_copy); -+ sblist_add(fwd_rules, rule); -+ free(match); -+ free(upstream); -+ free(remote); -+ -+ return 0; -+} -+ - static int usage(void) { - dprintf(2, - "MicroSocks SOCKS5 Server\n" - "------------------------\n" -- "usage: microsocks -1 -q -i listenip -p port -u user -P pass -b bindaddr -w ips\n" -+ "usage: microsocks -1 -q -i listenip -p port -u user -P pass -b bindaddr -w ips -f fwdrule\n" - "all arguments are optional.\n" - "by default listenip is 0.0.0.0 and port 1080.\n\n" - "option -q disables logging.\n" -@@ -401,6 +684,12 @@ - " this is handy for programs like firefox that don't support\n" - " user/pass auth. for it to work you'd basically make one connection\n" - " with another program that supports it, and then you can use firefox too.\n" -+ "option -f specifies a forwarding rule of the form\n" -+ " match_name:match_port,[user:password@]upstream_name:upstream_port,remote_name:remote_port\n" -+ " this will cause requests that /match/ to be renamed to /remote/\n" -+ " and sent to the /upstream/ SOCKS5 proxy server.\n" -+ " this option may be specified multiple times.\n" -+ "option -V prints version information and exits.\n" - ); - return 1; - } -@@ -416,7 +705,7 @@ - const char *listenip = "0.0.0.0"; - char *p, *q; - unsigned port = 1080; -- while((ch = getopt(argc, argv, ":1qb:i:p:u:P:w:")) != -1) { -+ while((ch = getopt(argc, argv, ":1qb:i:p:u:P:w:f:V")) != -1) { - switch(ch) { - case 'w': /* fall-through */ - case '1': -@@ -456,11 +745,20 @@ - case 'p': - port = atoi(optarg); - break; -+ case 'f': -+ if(!fwd_rules) -+ fwd_rules = sblist_new(sizeof(struct fwd_rule), 16); -+ if(fwd_rules_add(optarg)) -+ return dprintf(2, "error: could not parse forwarding rule %s\n", optarg), 1; -+ break; - case ':': - dprintf(2, "error: option -%c requires an operand\n", optopt); - /* fall through */ - case '?': - return usage(); -+ case 'V': -+ dprintf(1, "MicroSocks %s\n", MICROSOCKS_VERSION); -+ return 0; - } - } - if((auth_user && !auth_pass) || (!auth_user && auth_pass)) { diff --git a/mise/Makefile b/mise/Makefile index b6d86d5ab..9d6694382 100644 --- a/mise/Makefile +++ b/mise/Makefile @@ -14,8 +14,8 @@ MISE_HASH_x86_64:=3832f39c325e343f81fe3d92b2447c5d1a5eea1bc85092bb7b6c2580622264 MISE_HASH_aarch64:=06186cfbfe947049b21d58575fb0ea800cc26ed1375f20f4b678cb3a9d679437 PKG_NAME:=mise -PKG_VERSION:=2026.10.23 -PKG_RELEASE:=46 +PKG_VERSION:=2026.10.24 +PKG_RELEASE:=47 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION)-linux-$(MISE_ARCH)-musl.tar.gz PKG_SOURCE_URL:=https://github.com/jdx/mise/releases/download/v$(PKG_VERSION)/ PKG_HASH:=skip