diff --git a/baidudrive/Makefile b/baidudrive/Makefile
index b2b91ec9..5c45a308 100644
--- a/baidudrive/Makefile
+++ b/baidudrive/Makefile
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_BAIDUDRIVE:=$(ARCH)
PKG_NAME:=baidudrive
-PKG_VERSION:=1.0.1
-PKG_RELEASE:=3
+PKG_VERSION:=1.0.2
+PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
PKG_HASH:=skip
diff --git a/baidudrive/files/baidudrive.config b/baidudrive/files/baidudrive.config
index d6015f58..1ae18b1c 100644
--- a/baidudrive/files/baidudrive.config
+++ b/baidudrive/files/baidudrive.config
@@ -7,7 +7,6 @@ config baidudrive
option 'sdk_host' '127.0.0.1'
option 'sdk_port' '8001'
option 'macid' ''
- option 'device_type' ''
option 'usb_path' ''
option 'download_path' '/'
option 'quota_path' ''
diff --git a/baidudrive/files/baidudrive.init b/baidudrive/files/baidudrive.init
index 3e0475ac..da77e032 100644
--- a/baidudrive/files/baidudrive.init
+++ b/baidudrive/files/baidudrive.init
@@ -2,8 +2,10 @@
START=93
USE_PROCD=1
+DEVICE_TYPE="202604101148240791"
get_config() {
+ config_section="$1"
config_get_bool enabled "$1" enabled 1
config_get data_dir "$1" data_dir ""
config_get host "$1" host "0.0.0.0"
@@ -12,7 +14,6 @@ get_config() {
config_get sdk_host "$1" sdk_host "127.0.0.1"
config_get sdk_port "$1" sdk_port "8001"
config_get macid "$1" macid ""
- config_get device_type "$1" device_type ""
config_get usb_path "$1" usb_path ""
config_get download_path "$1" download_path "/"
config_get quota_path "$1" quota_path ""
@@ -53,6 +54,33 @@ storage_root_from_data_dir() {
df -P "$path" 2>/dev/null | awk 'NR == 2 { print $6 }'
}
+default_macid() {
+ local netdev mac
+ for netdev in br-lan eth0 lan0; do
+ if [ -r "/sys/class/net/$netdev/address" ]; then
+ mac="$(tr -d ':' <"/sys/class/net/$netdev/address")"
+ if [ -n "$mac" ]; then
+ printf '%s\n' "$mac"
+ return 0
+ fi
+ fi
+ done
+ return 1
+}
+
+ensure_macid() {
+ if [ -n "$macid" ]; then
+ return 0
+ fi
+
+ macid="$(default_macid)"
+ if [ -n "$macid" ] && [ -n "$config_section" ]; then
+ uci set "baidudrive.$config_section.macid=$macid"
+ uci commit baidudrive
+ logger -t baidudrive "generated macid from network interface: $macid"
+ fi
+}
+
start_service() {
config_load baidudrive
config_foreach get_config baidudrive
@@ -61,8 +89,8 @@ start_service() {
fi
require_start_value data_dir "$data_dir" || return 1
+ ensure_macid
require_start_value macid "$macid" || return 1
- require_start_value device_type "$device_type" || return 1
require_executable /usr/sbin/baidudrive || return 1
require_executable "$sdk_dir/baiduNas" || return 1
require_executable "$sdk_dir/P2PClient" || return 1
@@ -91,7 +119,7 @@ start_service() {
-ip "$sdk_host" \
-port "$sdk_port" \
-macid "$macid" \
- -type "$device_type" \
+ -type "$DEVICE_TYPE" \
-tmppath "$tmp_path" \
-usbpath "$usb_path" \
-downloadpath "$download_path" \
@@ -122,7 +150,7 @@ start_service() {
procd_open_instance baidudrive
procd_set_param env \
BAIDU_NAS_MACID="$macid" \
- BAIDU_NAS_DEVICE_TYPE="$device_type" \
+ BAIDU_NAS_DEVICE_TYPE="$DEVICE_TYPE" \
BAIDU_NAS_USB_PATH="$usb_path" \
BAIDU_NAS_QUOTA_PATH="$quota_path"
procd_set_param command /usr/sbin/baidudrive --host "$host" --port "$port" --data "$data_dir"
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
index dce26a80..7288d303 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
@@ -1541,25 +1541,13 @@ function loadLabelValues(uciconfig, sectiontype, options = {}) {
case 'rematch-name': {
const names = new Set();
- for (const type of ['rules', 'subrules']) {
- uci.sections(uciconfig, type, (res) => {
- if (res.enabled === '0')
- return;
-
- try {
- const payload =
- JSON.parse(res?.entry?.trim() || '{}').payload || [];
-
- for (const p of payload)
- if (p.type === 'REMATCH-NAME')
- names.add(p.factor);
- } catch {}
- });
- }
+ uci.sections(uciconfig, 'node', (res) => {
+ if (res.enabled !== '0' && res.target_rematch_name)
+ names.add(res.target_rematch_name);
+ });
for (const name of names)
values.push([name, name]);
-
break;
}
default:
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 bfa3e57c..af030552 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js
@@ -461,6 +461,9 @@ function renderListeners(s, uciconfig, isClient) {
o.modalonly = true;
o = s.taboption('field_general', form.ListValue, 'snell_version', _('Version'));
+ o.value('1', _('v1'));
+ o.value('2', _('v2'));
+ o.value('3', _('v3'));
o.value('4', _('v4'));
o.value('5', _('v5'));
o.default = '4';
@@ -558,6 +561,7 @@ function renderListeners(s, uciconfig, isClient) {
o.value('', _('none'));
o.value('obfs', _('obfs-simple'));
o.value('shadow-tls', _('shadow-tls'));
+ o.value('restls', _('restls'));
//o.value('kcp-tun', _('kcp-tun'));
o.validate = function(section_id, value) {
const type = this.section.getOption('type').formvalue(section_id);
@@ -591,13 +595,13 @@ function renderListeners(s, uciconfig, isClient) {
o.datatype = 'hostport';
o.placeholder = 'cloud.tencent.com:443';
o.rmempty = false;
- o.depends({plugin: 'shadow-tls'});
+ o.depends({plugin: /^(shadow-tls|restls)$/});
o.modalonly = true;
o = s.taboption('field_general', hm.GenValue, 'plugin_opts_thetlspassword', _('Plugin: ') + _('Password'));
o.password = true;
o.rmempty = false;
- o.depends({plugin: 'shadow-tls'});
+ o.depends({plugin: /^(shadow-tls|restls)$/});
o.modalonly = true;
o = s.taboption('field_general', form.ListValue, 'plugin_opts_shadowtls_version', _('Plugin: ') + _('Version'));
@@ -608,6 +612,12 @@ function renderListeners(s, uciconfig, isClient) {
o.depends({plugin: 'shadow-tls'});
o.modalonly = true;
+ o = s.taboption('field_general', form.Value, 'plugin_opts_restls_script', _('Plugin: ') + _('Restls script'));
+ o.default = '300?100<1,400~100,350~100,600~100,300~200,300~100';
+ o.rmempty = false;
+ o.depends({plugin: 'restls'});
+ o.modalonly = true;
+
/* Extra fields */
if (isClient) {
o = s.taboption('field_general', form.Value, 'routing_mark', _('Routing mark (Fwmark)'));
@@ -1134,6 +1144,8 @@ function renderListeners(s, uciconfig, isClient) {
o.depends('tls_reality', '1');
o.modalonly = true;
+ // @VMess-TLSmirror fields
+
/* Transport fields */
o = s.taboption('field_general', form.Flag, 'transport_enabled', _('Transport'));
o.default = o.disabled;
@@ -1144,6 +1156,8 @@ function renderListeners(s, uciconfig, isClient) {
o.value('grpc', _('gRPC'));
o.value('ws', _('WebSocket'));
o.value('xhttp', _('XHTTP'));
+ //o.value('mkcp', _('mKCP')); // VMess only
+ //o.value('mekya', _('Mekya')); // VMess only
o.validate = function(section_id, value) {
const type = this.section.getOption('type').formvalue(section_id);
@@ -1217,6 +1231,35 @@ function renderListeners(s, uciconfig, isClient) {
o.placeholder = '1000000';
o.depends({transport_enabled: '1', transport_type: 'xhttp'});
o.modalonly = true;
+
+ /* Multiplex fields */
+ o = s.taboption('field_general', form.Flag, 'smux_enabled', _('Multiplex'));
+ o.default = o.disabled;
+ o.depends({type: /^(shadowsocks|vmess|vless|trojan|tuic|hysteria2|sudoku)$/});
+ o.modalonly = true;
+
+ o = s.taboption('field_multiplex', form.Flag, 'smux_padding', _('Enable padding'));
+ o.default = o.disabled;
+ o.depends('smux_enabled', '1');
+ o.modalonly = true;
+
+ o = s.taboption('field_multiplex', form.Flag, 'smux_brutal', _('Enable TCP Brutal'),
+ _('Enable TCP Brutal congestion control algorithm'));
+ o.default = o.disabled;
+ o.depends('smux_enabled', '1');
+ o.modalonly = true;
+
+ o = s.taboption('field_multiplex', form.Value, 'smux_brutal_up', _('Upload bandwidth'),
+ _('Upload bandwidth in Mbps.'));
+ o.datatype = 'uinteger';
+ o.depends('smux_brutal', '1');
+ o.modalonly = true;
+
+ o = s.taboption('field_multiplex', form.Value, 'smux_brutal_down', _('Download bandwidth'),
+ _('Download bandwidth in Mbps.'));
+ o.datatype = 'uinteger';
+ o.depends('smux_brutal', '1');
+ o.modalonly = true;
}
return baseclass.extend({
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js
index 7d0d8e34..413e68e2 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js
@@ -13,7 +13,7 @@ const parseProxyGroupYaml = hm.parseYaml.extend({
if (!cfg.type)
return null;
- // key mapping // 2026/07/05
+ // key mapping // 2026/07/08
let config = hm.removeBlankAttrs({
id: this.id,
label: this.label,
@@ -259,7 +259,7 @@ const parseDNSYaml = hm.parseYaml.extend({
if (detour)
addr.setParam('detour', hm.preset_outbound.dns.map(([key, label]) => key).includes(detour) ? detour : detour === 'RULES' ? '' : this.calcID(hm.glossary["proxy_group"].field, detour));
- // key mapping // 2026/01/17
+ // key mapping // 2026/07/08
let config = {
id: this.id,
label: this.label,
@@ -291,7 +291,7 @@ const parseDNSPolicyYaml = hm.parseYaml.extend({
break;
}
- // key mapping // 2026/01/17
+ // key mapping // 2026/07/08
let config = {
id: this.id,
label: this.label,
@@ -312,7 +312,7 @@ const parseRulesYaml = hm.parseYaml.extend({
if (!entry)
return null;
- // key mapping // 2026/06/12
+ // key mapping // 2026/07/08
let config = {
id: this.id,
label: '%s %s'.format(this.id.slice(0,7), _('(Imported)')),
@@ -563,13 +563,19 @@ function renderPayload(s, total, uciconfig) {
o.depends(Object.fromEntries([[prefix + 'type', /\bPROCESS\b/]]));
initPayload(o, n, 'factor', uciconfig);
- o = s.option(form.Value, prefix + 'rematchname', _('Factor') + ` ${n+1}`);
- o.value('rematch1');
- o.validate = hm.validateAuthUsername;
+ o = s.option(form.ListValue, prefix + 'rematchname', _('Factor') + ` ${n+1}`);
if (n === 0)
o.depends('type', 'REMATCH-NAME');
o.depends(prefix + 'type', 'REMATCH-NAME');
initPayload(o, n, 'factor', uciconfig);
+ o.load = L.bind(function(n, key, uciconfig, section_id) {
+ hm.loadLabel.call(this, [
+ ['', _('-- Please choose --')],
+ ...hm.loadLabelValues(this.config, 'rematch-name')
+ ], section_id);
+
+ return new RulesEntry(uci.get(uciconfig, section_id, 'entry')).getPayload(n)[key];
+ }, o, n, 'factor', uciconfig)
o = s.option(form.Value, prefix + 'uint', _('Factor') + ` ${n+1}`);
o.datatype = 'uinteger';
@@ -684,15 +690,13 @@ function renderPayload(s, total, uciconfig) {
})
initDynamicPayload(o, n, 'factor', uciconfig);
o.load = L.bind(function(n, key, uciconfig, section_id) {
- let fusedval = [
+ hm.loadLabel.call(this, [
+ ['REMATCHNAME', _('-- REMATCH-NAME --')],
+ ...hm.loadLabelValues(this.config, 'rematch-name'),
['NETWORK', _('-- NETWORK --')],
['udp', _('UDP')],
['tcp', _('TCP')],
- ['RULESET', _('-- RULE-SET --')]
- ];
-
- hm.loadLabel.call(this, [
- ...fusedval,
+ ['RULESET', _('-- RULE-SET --')],
...hm.loadLabelValues(this.config, 'ruleset')
], section_id);
@@ -1899,7 +1903,8 @@ return view.extend({
so = ss.option(form.DynamicList, 'fallback_filter_geosite', _('Geosite'),
_('Match geosite.') +
- _('The matching %s will be deemed as poisoned.').format(_('Domain')));
+ _('The matching %s will be deemed as poisoned.').format(_('Domain')) + `` +
+ _('Option is deprecated. Please use %s instead.').format(_('DNS policy')));
so = ss.option(form.DynamicList, 'fallback_filter_ipcidr', _('IP CIDR'),
_('Match response with ipcidr.') +
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 c4093abb..579485c8 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
@@ -264,14 +264,17 @@ return view.extend({
so.depends({type: /^(rematch|direct|mieru)$/, '!reverse': true});
/* Rematch fields */
- so = ss.taboption('field_general', form.ListValue, 'target_rematch_name', _('REMATCH-NAME marking'));
- so.load = function(section_id) {
- return hm.loadLabel.call(this, [
- ['', _('-- Please choose --')],
- ...hm.loadLabelValues(this.config, 'rematch-name')
- ], section_id);
- }
- so.rmempty = false;
+ // https://github.com/MetaCubeX/mihomo/pull/2862
+ so = ss.taboption('field_general', form.Value, 'target_rematch_name', _('REMATCH-NAME marking'));
+ so.value('rematch1');
+ so.validate = function(section_id, value) {
+ const target_sub_rule = this.section.getOption('target_sub_rule').formvalue(section_id);
+
+ if (!value && !target_sub_rule)
+ return _('Expecting: Least one of %s or %s.').format(_('REMATCH-NAME marking'), _('Use sub rule'));
+
+ return hm.validateAuthUsername.call(this, section_id, value);
+ };
so.depends('type', 'rematch');
so.modalonly = true;
@@ -282,6 +285,14 @@ return view.extend({
...hm.loadLabelValues(this.config, 'subrule-group')
], section_id);
}
+ so.validate = function(section_id, value) {
+ const target_rematch_name = this.section.getOption('target_rematch_name').formvalue(section_id);
+
+ if (!value && !target_rematch_name)
+ return _('Expecting: Least one of %s or %s.').format(_('REMATCH-NAME marking'), _('Use sub rule'));
+
+ return true;
+ };
so.depends('type', 'rematch');
so.modalonly = true;
@@ -1095,7 +1106,7 @@ return view.extend({
let tls = this.section.getUIElement(section_id, 'tls').node.querySelector('input');
// Force enabled
- if (['trojan', 'anytls', 'hysteria', 'hysteria2', 'tuic', 'trusttunnel'].includes(type)) {
+ if (['trojan', 'anytls', 'hysteria', 'hysteria2', 'tuic', 'trusttunnel', 'masque'].includes(type)) {
tls.checked = true;
tls.disabled = true;
} else {
@@ -1104,7 +1115,7 @@ return view.extend({
return true;
}
- so.depends({type: /^(http|socks5|vmess|vless|trojan|anytls|hysteria|hysteria2|tuic|trusttunnel)$/});
+ so.depends({type: /^(http|socks5|vmess|vless|trojan|anytls|hysteria|hysteria2|tuic|trusttunnel|masque)$/});
so.modalonly = true;
so = ss.taboption('field_tls', form.Flag, 'tls_disable_sni', _('Disable SNI'),
@@ -1115,7 +1126,7 @@ return view.extend({
so = ss.taboption('field_tls', form.Value, 'tls_sni', _('TLS SNI'),
_('Used to verify the hostname on the returned certificates.'));
- so.depends({tls: '1', type: /^(http|vmess|vless|trojan|anytls|hysteria|hysteria2|trusttunnel)$/});
+ so.depends({tls: '1', type: /^(http|vmess|vless|trojan|anytls|hysteria|hysteria2|trusttunnel|masque)$/});
so.depends({tls: '1', type: /^(tuic)$/, tls_disable_sni: '0'});
so.modalonly = true;
@@ -1261,6 +1272,8 @@ return view.extend({
so.depends('tls_reality', '1');
so.modalonly = true;
+ // @VMess-TLSmirror fields
+
/* Transport fields */
so = ss.taboption('field_general', form.Flag, 'transport_enabled', _('Transport'));
so.default = so.disabled;
@@ -1274,6 +1287,8 @@ return view.extend({
so.value('grpc', _('gRPC'));
so.value('ws', _('WebSocket'));
so.value('xhttp', _('XHTTP'));
+ //so.value('mkcp', _('mKCP')); // VMess only
+ //so.value('mekya', _('Mekya')); // VMess only
so.validate = function(section_id, value) {
const type = this.section.getOption('type').formvalue(section_id);
diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot
index 95072cf3..3ae40dee 100644
--- a/luci-app-fchomo/po/templates/fchomo.pot
+++ b/luci-app-fchomo/po/templates/fchomo.pot
@@ -20,49 +20,53 @@ msgstr ""
msgid "(Imported)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
#: htdocs/luci-static/resources/view/fchomo/global.js:564
#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "(mTLS)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:688
+#: htdocs/luci-static/resources/view/fchomo/client.js:696
msgid "-- NETWORK --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1204
+#: htdocs/luci-static/resources/view/fchomo/client.js:1208
msgid "-- PROXY-GROUP --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1139
-#: htdocs/luci-static/resources/view/fchomo/client.js:1206
+#: htdocs/luci-static/resources/view/fchomo/client.js:1143
+#: htdocs/luci-static/resources/view/fchomo/client.js:1210
msgid "-- PROXY-NODE --"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:832
-#: htdocs/luci-static/resources/view/fchomo/client.js:877
-#: htdocs/luci-static/resources/view/fchomo/client.js:880
-#: htdocs/luci-static/resources/view/fchomo/client.js:1077
+#: htdocs/luci-static/resources/view/fchomo/client.js:573
+#: htdocs/luci-static/resources/view/fchomo/client.js:881
+#: htdocs/luci-static/resources/view/fchomo/client.js:884
#: htdocs/luci-static/resources/view/fchomo/client.js:1081
-#: htdocs/luci-static/resources/view/fchomo/client.js:1097
+#: htdocs/luci-static/resources/view/fchomo/client.js:1085
#: htdocs/luci-static/resources/view/fchomo/client.js:1101
-#: htdocs/luci-static/resources/view/fchomo/client.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:270
-#: htdocs/luci-static/resources/view/fchomo/node.js:281
-#: htdocs/luci-static/resources/view/fchomo/node.js:2071
+#: htdocs/luci-static/resources/view/fchomo/client.js:1105
+#: htdocs/luci-static/resources/view/fchomo/client.js:1361
+#: htdocs/luci-static/resources/view/fchomo/node.js:284
#: htdocs/luci-static/resources/view/fchomo/node.js:2082
-#: htdocs/luci-static/resources/view/fchomo/node.js:2101
+#: htdocs/luci-static/resources/view/fchomo/node.js:2093
#: htdocs/luci-static/resources/view/fchomo/node.js:2112
+#: htdocs/luci-static/resources/view/fchomo/node.js:2123
msgid "-- Please choose --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:691
+#: htdocs/luci-static/resources/view/fchomo/client.js:694
+msgid "-- REMATCH-NAME --"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/client.js:699
msgid "-- RULE-SET --"
msgstr ""
@@ -95,20 +99,20 @@ msgstr ""
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:703
+#: htdocs/luci-static/resources/view/fchomo/client.js:707
msgid "0 or 1 only."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:998
-#: htdocs/luci-static/resources/fchomo/listeners.js:1013
-#: htdocs/luci-static/resources/fchomo/listeners.js:1038
-#: htdocs/luci-static/resources/view/fchomo/node.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/fchomo/listeners.js:1008
+#: htdocs/luci-static/resources/fchomo/listeners.js:1023
+#: htdocs/luci-static/resources/fchomo/listeners.js:1048
+#: htdocs/luci-static/resources/view/fchomo/node.js:1206
+#: htdocs/luci-static/resources/view/fchomo/node.js:1220
msgid "Save your configuration before uploading files!"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:424
+#: htdocs/luci-static/resources/view/fchomo/node.js:435
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
@@ -166,9 +170,9 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "ASCII data stream"
msgstr ""
@@ -181,15 +185,15 @@ msgstr ""
msgid "Access Control"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Add a Bootstrap DNS policy (Node)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
msgid "Add a DNS policy"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
msgid "Add a DNS server"
msgstr ""
@@ -201,19 +205,19 @@ msgstr ""
msgid "Add a inbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
msgid "Add a provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Add a proxy chain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
msgid "Add a proxy group"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Add a routing rule"
msgstr ""
@@ -225,20 +229,20 @@ msgstr ""
msgid "Add a server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Add a sub rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1867
+#: htdocs/luci-static/resources/view/fchomo/node.js:1878
msgid "Add prefix"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1871
+#: htdocs/luci-static/resources/view/fchomo/node.js:1882
msgid "Add suffix"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1581
-#: htdocs/luci-static/resources/view/fchomo/client.js:1586
+#: htdocs/luci-static/resources/view/fchomo/client.js:1585
+#: htdocs/luci-static/resources/view/fchomo/client.js:1590
msgid "Address"
msgstr ""
@@ -272,11 +276,11 @@ msgid ""
"network from a public website, it must be enabled."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:979
+#: htdocs/luci-static/resources/fchomo/listeners.js:989
msgid "Allow insecure connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:845
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Allowed IPs"
msgstr ""
@@ -288,8 +292,8 @@ msgstr ""
msgid "Already in updating."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:540
-#: htdocs/luci-static/resources/view/fchomo/node.js:695
+#: htdocs/luci-static/resources/fchomo/listeners.js:543
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Alter ID"
msgstr ""
@@ -311,20 +315,20 @@ msgstr ""
msgid "As the TOP upstream of dnsmasq."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:490
+#: htdocs/luci-static/resources/fchomo/listeners.js:493
msgid "Auth timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:728
msgid "Authenticated length"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:440
-#: htdocs/luci-static/resources/fchomo/listeners.js:1192
+#: htdocs/luci-static/resources/fchomo/listeners.js:1202
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
-#: htdocs/luci-static/resources/view/fchomo/node.js:1390
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Auto"
msgstr ""
@@ -340,8 +344,8 @@ msgstr ""
msgid "Auto update resources."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:651
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/fchomo/listeners.js:661
+#: htdocs/luci-static/resources/view/fchomo/node.js:964
msgid "BBR profile"
msgstr ""
@@ -349,11 +353,11 @@ msgstr ""
msgid "Baidu"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:732
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:751
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr ""
@@ -375,13 +379,13 @@ msgid "Binary mrs"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
-#: htdocs/luci-static/resources/view/fchomo/node.js:1943
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1954
msgid "Bind interface"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
-#: htdocs/luci-static/resources/view/fchomo/node.js:1944
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1955
msgid "Bind outbound interface."
msgstr ""
@@ -398,16 +402,16 @@ msgstr ""
msgid "Block DNS queries"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1767
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1771
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Bootstrap DNS policy (Node)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1466
+#: htdocs/luci-static/resources/view/fchomo/client.js:1470
msgid "Bootstrap DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1473
+#: htdocs/luci-static/resources/view/fchomo/client.js:1477
msgid "Bootstrap DNS server (Node)"
msgstr ""
@@ -427,10 +431,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:439
#: htdocs/luci-static/resources/fchomo/listeners.js:440
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
msgid "CDN support"
msgstr ""
@@ -450,17 +454,17 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:1178
msgid "Cert fingerprint"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1168
+#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
+#: htdocs/luci-static/resources/fchomo/listeners.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
msgid "Certificate path"
msgstr ""
@@ -473,7 +477,7 @@ msgstr ""
msgid "Check routerself NAT Behavior"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1921
+#: htdocs/luci-static/resources/view/fchomo/client.js:1926
msgid ""
"Check the response from the %s, only initiate query if the "
"%s is satisfied."
@@ -497,14 +501,14 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:255
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:436
-#: htdocs/luci-static/resources/view/fchomo/node.js:701
+#: htdocs/luci-static/resources/view/fchomo/node.js:388
+#: htdocs/luci-static/resources/view/fchomo/node.js:447
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
msgid "Chipher"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr ""
@@ -518,25 +522,25 @@ msgid ""
"to download the latest initial package."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
msgid "Client Auth Certificate path"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
msgid "Client Auth type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1234
+#: htdocs/luci-static/resources/view/fchomo/node.js:1245
msgid "Client fingerprint"
msgstr ""
@@ -557,16 +561,16 @@ msgstr ""
msgid "Common ports (bypass P2P traffic)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1755
+#: htdocs/luci-static/resources/fchomo.js:1743
msgid "Complete"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Configuration Items"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:643
-#: htdocs/luci-static/resources/view/fchomo/node.js:944
+#: htdocs/luci-static/resources/fchomo/listeners.js:653
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Congestion controller"
msgstr ""
@@ -574,7 +578,7 @@ msgstr ""
msgid "Connection check"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Connection reuse"
msgstr ""
@@ -586,15 +590,15 @@ msgstr ""
msgid "Content copied to clipboard!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1727
-#: htdocs/luci-static/resources/view/fchomo/node.js:1753
+#: htdocs/luci-static/resources/view/fchomo/client.js:687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1738
+#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1726
+#: htdocs/luci-static/resources/view/fchomo/node.js:1737
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Contents"
msgstr ""
@@ -619,7 +623,7 @@ msgstr ""
msgid "Custom Direct List"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1869
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
msgid "Custom HTTP header."
msgstr ""
@@ -629,7 +633,7 @@ msgid "Custom Proxy List"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:378
-#: htdocs/luci-static/resources/view/fchomo/node.js:460
+#: htdocs/luci-static/resources/view/fchomo/node.js:471
msgid "Custom byte layout"
msgstr ""
@@ -642,8 +646,9 @@ msgstr ""
msgid "DIRECT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1819
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1823
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
msgid "DNS policy"
msgstr ""
@@ -651,15 +656,15 @@ msgstr ""
msgid "DNS port"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:895
-#: htdocs/luci-static/resources/view/fchomo/client.js:1512
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:792
-#: htdocs/luci-static/resources/view/fchomo/node.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:899
+#: htdocs/luci-static/resources/view/fchomo/client.js:1516
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
+#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:886
msgid "DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1449
+#: htdocs/luci-static/resources/view/fchomo/client.js:1453
msgid "DNS settings"
msgstr ""
@@ -679,13 +684,13 @@ msgstr ""
msgid "Default DNS (issued by WAN)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1487
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1491
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Default DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1197
+#: htdocs/luci-static/resources/view/fchomo/client.js:1201
msgid "Default selected"
msgstr ""
@@ -693,15 +698,15 @@ msgstr ""
msgid "Derive from priv-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:857
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2068
+#: htdocs/luci-static/resources/view/fchomo/node.js:2079
msgid "Destination provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2079
+#: htdocs/luci-static/resources/view/fchomo/node.js:2090
msgid "Destination proxy node"
msgstr ""
@@ -709,8 +714,8 @@ msgstr ""
msgid "Dial fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
msgid "Different chain head/tail"
msgstr ""
@@ -732,7 +737,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:332
+#: htdocs/luci-static/resources/view/fchomo/node.js:343
msgid "Disable"
msgstr ""
@@ -748,11 +753,11 @@ msgstr ""
msgid "Disable ICMP Forwarding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+#: htdocs/luci-static/resources/view/fchomo/node.js:1121
msgid "Disable SNI"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1146
+#: htdocs/luci-static/resources/view/fchomo/client.js:1150
msgid "Disable UDP"
msgstr ""
@@ -760,43 +765,45 @@ msgstr ""
msgid "Disable safe path check"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:837
+#: htdocs/luci-static/resources/view/fchomo/client.js:841
msgid ""
"Do not resolve the domain connection to IP for this match.Only works "
"for pure domain inbound connections without DNS resolution. e.g., socks5h"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:860
-#: htdocs/luci-static/resources/view/fchomo/client.js:865
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
-#: htdocs/luci-static/resources/view/fchomo/client.js:1909
-#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:864
+#: htdocs/luci-static/resources/view/fchomo/client.js:869
+#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "Domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+#: htdocs/luci-static/resources/view/fchomo/node.js:1122
msgid "Donot send server name in ClientHello."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1664
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1668
+#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "Donot verifying server certificate."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1528
+#: htdocs/luci-static/resources/fchomo/listeners.js:1254
+#: htdocs/luci-static/resources/view/fchomo/node.js:1539
msgid "Download bandwidth"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1529
+#: htdocs/luci-static/resources/fchomo/listeners.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:1540
msgid "Download bandwidth in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1634
+#: htdocs/luci-static/resources/fchomo.js:1622
msgid "Download failed: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1632
+#: htdocs/luci-static/resources/fchomo.js:1620
msgid "Download successful."
msgstr ""
@@ -804,24 +811,24 @@ msgstr ""
msgid "Dual stack"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1228
+#: htdocs/luci-static/resources/view/fchomo/node.js:1239
msgid "ECH HTTPS record query servername"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1086
-#: htdocs/luci-static/resources/view/fchomo/node.js:1222
+#: htdocs/luci-static/resources/fchomo/listeners.js:1096
+#: htdocs/luci-static/resources/view/fchomo/node.js:1233
msgid "ECH config"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1045
+#: htdocs/luci-static/resources/fchomo/listeners.js:1055
msgid "ECH key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1698
+#: htdocs/luci-static/resources/view/fchomo/client.js:1702
msgid "ECS override"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1682
+#: htdocs/luci-static/resources/view/fchomo/client.js:1686
msgid "EDNS Client Subnet"
msgstr ""
@@ -829,11 +836,11 @@ msgstr ""
msgid "ETag support"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1368
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Early Data first packet length limit."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1374
+#: htdocs/luci-static/resources/view/fchomo/node.js:1385
msgid "Early Data header name"
msgstr ""
@@ -849,7 +856,7 @@ msgstr ""
msgid "Edit ruleset"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1724
+#: htdocs/luci-static/resources/view/fchomo/node.js:1735
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
msgid "Editer"
msgstr ""
@@ -858,37 +865,37 @@ msgstr ""
msgid "Eliminate encryption header characteristics"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1131
+#: htdocs/luci-static/resources/view/fchomo/client.js:1135
msgid "Empty fallback"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:133
-#: htdocs/luci-static/resources/view/fchomo/client.js:958
-#: htdocs/luci-static/resources/view/fchomo/client.js:1053
-#: htdocs/luci-static/resources/view/fchomo/client.js:1340
-#: htdocs/luci-static/resources/view/fchomo/client.js:1435
-#: htdocs/luci-static/resources/view/fchomo/client.js:1577
-#: htdocs/luci-static/resources/view/fchomo/client.js:1811
-#: htdocs/luci-static/resources/view/fchomo/client.js:1867
+#: htdocs/luci-static/resources/view/fchomo/client.js:962
+#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:1344
+#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1581
+#: htdocs/luci-static/resources/view/fchomo/client.js:1815
+#: htdocs/luci-static/resources/view/fchomo/client.js:1871
#: htdocs/luci-static/resources/view/fchomo/global.js:422
#: htdocs/luci-static/resources/view/fchomo/global.js:704
#: htdocs/luci-static/resources/view/fchomo/node.js:246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2055
+#: htdocs/luci-static/resources/view/fchomo/node.js:1708
+#: htdocs/luci-static/resources/view/fchomo/node.js:1977
+#: htdocs/luci-static/resources/view/fchomo/node.js:2066
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:621
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
Disabling this is highly recommended, as it is vulnerable to replay attacks."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:620
msgid "Enable 0-RTT handshake"
msgstr ""
@@ -898,57 +905,60 @@ msgid ""
"conversion for outbound connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1216
+#: htdocs/luci-static/resources/view/fchomo/node.js:1227
msgid "Enable ECH"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1516
+#: htdocs/luci-static/resources/fchomo/listeners.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:1527
msgid "Enable TCP Brutal"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1517
+#: htdocs/luci-static/resources/fchomo/listeners.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:1528
msgid "Enable TCP Brutal congestion control algorithm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:604
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Enable fast open"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1505
+#: htdocs/luci-static/resources/view/fchomo/node.js:1516
msgid "Enable multiplexing only for TCP."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "Enable obfuscate for downlink"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1499
+#: htdocs/luci-static/resources/fchomo/listeners.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:1510
msgid "Enable padding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1510
+#: htdocs/luci-static/resources/view/fchomo/node.js:1521
msgid "Enable statistic"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:977
-#: htdocs/luci-static/resources/view/fchomo/node.js:1909
+#: htdocs/luci-static/resources/view/fchomo/node.js:988
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:201
-#: htdocs/luci-static/resources/view/fchomo/node.js:339
+#: htdocs/luci-static/resources/view/fchomo/node.js:350
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:712
+#: htdocs/luci-static/resources/fchomo/listeners.js:722
msgid "Encryption method"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:739
+#: htdocs/luci-static/resources/view/fchomo/node.js:750
msgid "Endpoint pubkic key"
msgstr ""
@@ -956,8 +966,8 @@ msgstr ""
msgid "Endpoint-Independent NAT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:736
-#: htdocs/luci-static/resources/view/fchomo/client.js:887
+#: htdocs/luci-static/resources/view/fchomo/client.js:740
+#: htdocs/luci-static/resources/view/fchomo/client.js:891
msgid "Entry"
msgstr ""
@@ -965,24 +975,24 @@ msgstr ""
msgid "Error"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1190
+#: htdocs/luci-static/resources/view/fchomo/client.js:1194
msgid ""
"Exceeding this triggers a forced health check. 5 will be used "
"if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2024
+#: htdocs/luci-static/resources/view/fchomo/node.js:2035
msgid "Exclude matched node types."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1244
+#: htdocs/luci-static/resources/view/fchomo/client.js:1248
msgid ""
"Exclude matched node types. Available types see here."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:2017
+#: htdocs/luci-static/resources/view/fchomo/client.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:2028
msgid "Exclude nodes that meet keywords or regexps."
msgstr ""
@@ -990,69 +1000,74 @@ msgstr ""
msgid "Expand/Collapse result"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:2002
+#: htdocs/luci-static/resources/view/fchomo/client.js:1186
+#: htdocs/luci-static/resources/view/fchomo/node.js:2013
msgid "Expected HTTP code. 204 will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2004
+#: htdocs/luci-static/resources/view/fchomo/client.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Expected status"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:452
#: htdocs/luci-static/resources/fchomo.js:455
#: htdocs/luci-static/resources/fchomo.js:458
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1788
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1814
-#: htdocs/luci-static/resources/fchomo.js:1821
-#: htdocs/luci-static/resources/fchomo.js:1837
+#: htdocs/luci-static/resources/fchomo.js:1760
+#: htdocs/luci-static/resources/fchomo.js:1768
+#: htdocs/luci-static/resources/fchomo.js:1776
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1802
+#: htdocs/luci-static/resources/fchomo.js:1809
+#: htdocs/luci-static/resources/fchomo.js:1825
+#: htdocs/luci-static/resources/fchomo.js:1834
#: htdocs/luci-static/resources/fchomo.js:1846
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1849
+#: htdocs/luci-static/resources/fchomo.js:1859
#: htdocs/luci-static/resources/fchomo.js:1871
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
-#: htdocs/luci-static/resources/fchomo.js:1896
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1943
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
-#: htdocs/luci-static/resources/fchomo.js:1969
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1874
+#: htdocs/luci-static/resources/fchomo.js:1884
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1931
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
+#: htdocs/luci-static/resources/fchomo.js:1957
+#: htdocs/luci-static/resources/fchomo.js:1966
#: htdocs/luci-static/resources/fchomo/listeners.js:363
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/fchomo/listeners.js:741
-#: htdocs/luci-static/resources/fchomo/listeners.js:772
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:751
+#: htdocs/luci-static/resources/fchomo/listeners.js:782
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
#: htdocs/luci-static/resources/view/fchomo/client.js:71
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:894
-#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
+msgid "Expecting: Least one of %s or %s."
+msgstr ""
+
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "Expecting: only support %s."
msgstr ""
@@ -1062,29 +1077,29 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:553
#: htdocs/luci-static/resources/view/fchomo/client.js:566
-#: htdocs/luci-static/resources/view/fchomo/client.js:574
-#: htdocs/luci-static/resources/view/fchomo/client.js:581
-#: htdocs/luci-static/resources/view/fchomo/client.js:591
-#: htdocs/luci-static/resources/view/fchomo/client.js:598
-#: htdocs/luci-static/resources/view/fchomo/client.js:606
-#: htdocs/luci-static/resources/view/fchomo/client.js:613
-#: htdocs/luci-static/resources/view/fchomo/client.js:680
+#: htdocs/luci-static/resources/view/fchomo/client.js:580
+#: htdocs/luci-static/resources/view/fchomo/client.js:587
+#: htdocs/luci-static/resources/view/fchomo/client.js:597
+#: htdocs/luci-static/resources/view/fchomo/client.js:604
+#: htdocs/luci-static/resources/view/fchomo/client.js:612
+#: htdocs/luci-static/resources/view/fchomo/client.js:619
+#: htdocs/luci-static/resources/view/fchomo/client.js:686
msgid "Factor"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1713
+#: htdocs/luci-static/resources/fchomo.js:1701
msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1666
+#: htdocs/luci-static/resources/fchomo.js:1654
msgid "Failed to generate %s, error: %s."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2078
+#: htdocs/luci-static/resources/fchomo.js:2066
msgid "Failed to upload %s, error: %s."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2097
+#: htdocs/luci-static/resources/fchomo.js:2085
msgid "Failed to upload, error: %s."
msgstr ""
@@ -1093,40 +1108,40 @@ msgstr ""
msgid "Fallback"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1481
-#: htdocs/luci-static/resources/view/fchomo/client.js:1494
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1498
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Fallback DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1881
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
+#: htdocs/luci-static/resources/view/fchomo/client.js:1885
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
msgid "Fallback filter"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1234
-#: htdocs/luci-static/resources/view/fchomo/node.js:2011
+#: htdocs/luci-static/resources/view/fchomo/client.js:1238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2022
msgid "Filter nodes that meet keywords or regexps."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1748
+#: htdocs/luci-static/resources/view/fchomo/client.js:1752
msgid "Filter record type:"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1716
-#: htdocs/luci-static/resources/view/fchomo/client.js:1732
+#: htdocs/luci-static/resources/view/fchomo/client.js:1720
+#: htdocs/luci-static/resources/view/fchomo/client.js:1736
msgid "Filter record: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1480
+#: htdocs/luci-static/resources/view/fchomo/client.js:1484
msgid "Final DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1482
+#: htdocs/luci-static/resources/view/fchomo/client.js:1486
msgid "Final DNS server (For non-poisoned domains)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1484
+#: htdocs/luci-static/resources/view/fchomo/client.js:1488
msgid "Final DNS server (For poisoned domains)"
msgstr ""
@@ -1134,27 +1149,27 @@ msgstr ""
msgid "Firewall"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:532
-#: htdocs/luci-static/resources/view/fchomo/node.js:687
+#: htdocs/luci-static/resources/fchomo/listeners.js:535
+#: htdocs/luci-static/resources/view/fchomo/node.js:698
msgid "Flow"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1223
+#: htdocs/luci-static/resources/view/fchomo/client.js:1227
msgid ""
"For details, see %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1877
-#: htdocs/luci-static/resources/view/fchomo/node.js:2003
+#: htdocs/luci-static/resources/view/fchomo/client.js:1187
+#: htdocs/luci-static/resources/view/fchomo/node.js:1888
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid ""
"For format see %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
-#: htdocs/luci-static/resources/view/fchomo/node.js:870
+#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:881
msgid "Force DNS remote resolution."
msgstr ""
@@ -1173,7 +1188,7 @@ msgstr ""
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1323
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "GET"
msgstr ""
@@ -1182,7 +1197,7 @@ msgid "GFW list version"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:196
-#: htdocs/luci-static/resources/view/fchomo/node.js:334
+#: htdocs/luci-static/resources/view/fchomo/node.js:345
msgid "Gecko"
msgstr ""
@@ -1191,9 +1206,9 @@ msgid "General"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:119
-#: htdocs/luci-static/resources/view/fchomo/client.js:1038
+#: htdocs/luci-static/resources/view/fchomo/client.js:1042
#: htdocs/luci-static/resources/view/fchomo/node.js:233
-#: htdocs/luci-static/resources/view/fchomo/node.js:1687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1698
msgid "General fields"
msgstr ""
@@ -1208,10 +1223,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:341
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:387
-#: htdocs/luci-static/resources/fchomo/listeners.js:845
-#: htdocs/luci-static/resources/fchomo/listeners.js:1078
+#: htdocs/luci-static/resources/fchomo/listeners.js:855
+#: htdocs/luci-static/resources/fchomo/listeners.js:1088
#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1845
+#: htdocs/luci-static/resources/view/fchomo/node.js:1856
msgid "Generate"
msgstr ""
@@ -1227,17 +1242,17 @@ msgstr ""
msgid "GeoSite version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1891
+#: htdocs/luci-static/resources/view/fchomo/client.js:1895
msgid "Geoip code"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1888
+#: htdocs/luci-static/resources/view/fchomo/client.js:1892
msgid "Geoip enable"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:861
-#: htdocs/luci-static/resources/view/fchomo/client.js:870
-#: htdocs/luci-static/resources/view/fchomo/client.js:1900
+#: htdocs/luci-static/resources/view/fchomo/client.js:865
+#: htdocs/luci-static/resources/view/fchomo/client.js:874
+#: htdocs/luci-static/resources/view/fchomo/client.js:1904
msgid "Geosite"
msgstr ""
@@ -1258,7 +1273,7 @@ msgstr ""
msgid "Global Authentication"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:711
+#: htdocs/luci-static/resources/view/fchomo/node.js:722
msgid "Global padding"
msgstr ""
@@ -1274,58 +1289,58 @@ msgstr ""
msgid "Grant access to fchomo configuration"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1063
+#: htdocs/luci-static/resources/view/fchomo/client.js:1067
msgid "Group"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:190
-#: htdocs/luci-static/resources/fchomo/listeners.js:578
-#: htdocs/luci-static/resources/view/fchomo/node.js:905
-#: htdocs/luci-static/resources/view/fchomo/node.js:1272
+#: htdocs/luci-static/resources/fchomo/listeners.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:916
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:301
-#: htdocs/luci-static/resources/view/fchomo/node.js:1345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:312
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
msgid "HTTP header"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:505
msgid "HTTP mask"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:435
-#: htdocs/luci-static/resources/view/fchomo/node.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:510
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "HTTP mask mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:535
msgid "HTTP mask multiplex"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "HTTP mask: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "HTTP request method"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:531
msgid "HTTP root path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1647
+#: htdocs/luci-static/resources/view/fchomo/client.js:1651
msgid "HTTP/3"
msgstr ""
@@ -1335,9 +1350,9 @@ msgid ""
"returned if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
-#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1302
msgid "HTTPUpgrade"
msgstr ""
@@ -1345,16 +1360,16 @@ msgstr ""
msgid "Handle domain"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:427
msgid "Handshake mode"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
msgid "Handshake target that supports TLS 1.3"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:962
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Handshake timeout"
msgstr ""
@@ -1362,57 +1377,57 @@ msgstr ""
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:809
msgid "Health check"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1152
-#: htdocs/luci-static/resources/view/fchomo/node.js:1971
+#: htdocs/luci-static/resources/view/fchomo/client.js:1156
+#: htdocs/luci-static/resources/view/fchomo/node.js:1982
msgid "Health check URL"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:2001
+#: htdocs/luci-static/resources/view/fchomo/client.js:1185
+#: htdocs/luci-static/resources/view/fchomo/node.js:2012
msgid "Health check expected status"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:1981
+#: htdocs/luci-static/resources/view/fchomo/client.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
msgid "Health check interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:1988
+#: htdocs/luci-static/resources/view/fchomo/client.js:1172
+#: htdocs/luci-static/resources/view/fchomo/node.js:1999
msgid "Health check timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1040
-#: htdocs/luci-static/resources/view/fchomo/node.js:1689
+#: htdocs/luci-static/resources/view/fchomo/client.js:1044
+#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:627
msgid "Heartbeat interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1249
+#: htdocs/luci-static/resources/view/fchomo/client.js:1253
msgid "Hidden"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
msgid "Host that supports TLS 1.3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:371
+#: htdocs/luci-static/resources/view/fchomo/node.js:382
msgid "Host-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:366
+#: htdocs/luci-static/resources/view/fchomo/node.js:377
msgid "Host-key algorithms"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "Host/SNI override"
msgstr ""
@@ -1435,21 +1450,21 @@ msgstr ""
msgid "Hysteria2 Realm fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
-#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
+#: htdocs/luci-static/resources/view/fchomo/client.js:1911
msgid "IP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1904
+#: htdocs/luci-static/resources/view/fchomo/client.js:1909
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/node.js:584
msgid "IP override"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1565
-#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1968
msgid "IP version"
msgstr ""
@@ -1461,28 +1476,28 @@ msgstr ""
msgid "IPv6 only"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1463
+#: htdocs/luci-static/resources/view/fchomo/client.js:1467
#: htdocs/luci-static/resources/view/fchomo/global.js:436
msgid "IPv6 support"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1259
msgid "Icon"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:660
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Idle session check interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:667
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
msgid "Idle session timeout"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:483
+#: htdocs/luci-static/resources/fchomo/listeners.js:486
msgid "Idle timeout"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1814
+#: htdocs/luci-static/resources/fchomo.js:1802
msgid "If All ports is selected, uncheck others"
msgstr ""
@@ -1498,20 +1513,20 @@ msgstr ""
msgid "Import"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:975
-#: htdocs/luci-static/resources/view/fchomo/client.js:1032
-#: htdocs/luci-static/resources/view/fchomo/client.js:1278
-#: htdocs/luci-static/resources/view/fchomo/client.js:1329
-#: htdocs/luci-static/resources/view/fchomo/client.js:1400
-#: htdocs/luci-static/resources/view/fchomo/client.js:1424
-#: htdocs/luci-static/resources/view/fchomo/client.js:1528
-#: htdocs/luci-static/resources/view/fchomo/client.js:1566
-#: htdocs/luci-static/resources/view/fchomo/client.js:1783
-#: htdocs/luci-static/resources/view/fchomo/client.js:1800
-#: htdocs/luci-static/resources/view/fchomo/client.js:1835
-#: htdocs/luci-static/resources/view/fchomo/client.js:1856
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/client.js:979
+#: htdocs/luci-static/resources/view/fchomo/client.js:1036
+#: htdocs/luci-static/resources/view/fchomo/client.js:1282
+#: htdocs/luci-static/resources/view/fchomo/client.js:1333
+#: htdocs/luci-static/resources/view/fchomo/client.js:1404
+#: htdocs/luci-static/resources/view/fchomo/client.js:1428
+#: htdocs/luci-static/resources/view/fchomo/client.js:1532
+#: htdocs/luci-static/resources/view/fchomo/client.js:1570
+#: htdocs/luci-static/resources/view/fchomo/client.js:1787
+#: htdocs/luci-static/resources/view/fchomo/client.js:1804
+#: htdocs/luci-static/resources/view/fchomo/client.js:1839
+#: htdocs/luci-static/resources/view/fchomo/client.js:1860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
+#: htdocs/luci-static/resources/view/fchomo/node.js:1686
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "Import mihomo config"
@@ -1525,61 +1540,61 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:182
-#: htdocs/luci-static/resources/view/fchomo/node.js:320
-#: htdocs/luci-static/resources/view/fchomo/node.js:326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1915
-#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:331
+#: htdocs/luci-static/resources/view/fchomo/node.js:337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
msgid "In Mbps."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1765
+#: htdocs/luci-static/resources/view/fchomo/node.js:1776
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
msgid "In bytes. %s will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:617
-#: htdocs/luci-static/resources/view/fchomo/node.js:624
+#: htdocs/luci-static/resources/view/fchomo/node.js:628
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "In millisecond."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1169
-#: htdocs/luci-static/resources/view/fchomo/client.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1989
+#: htdocs/luci-static/resources/view/fchomo/client.js:1173
+#: htdocs/luci-static/resources/view/fchomo/client.js:1219
+#: htdocs/luci-static/resources/view/fchomo/node.js:2000
msgid "In millisecond. %s will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "In milliseconds."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:418
-#: htdocs/luci-static/resources/fchomo/listeners.js:484
-#: htdocs/luci-static/resources/fchomo/listeners.js:491
-#: htdocs/luci-static/resources/view/fchomo/node.js:661
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
-#: htdocs/luci-static/resources/view/fchomo/node.js:1361
+#: htdocs/luci-static/resources/fchomo/listeners.js:487
+#: htdocs/luci-static/resources/fchomo/listeners.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:1372
msgid "In seconds."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1162
+#: htdocs/luci-static/resources/view/fchomo/client.js:1166
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:314
-#: htdocs/luci-static/resources/view/fchomo/node.js:1771
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
+#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1782
+#: htdocs/luci-static/resources/view/fchomo/node.js:1993
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
msgid "In seconds. %s will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:963
+#: htdocs/luci-static/resources/view/fchomo/node.js:974
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:761
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:1048
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1591,27 +1606,27 @@ msgstr ""
msgid "Inbound"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1116
+#: htdocs/luci-static/resources/view/fchomo/client.js:1120
msgid "Include all"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1121
+#: htdocs/luci-static/resources/view/fchomo/client.js:1125
msgid "Include all node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1126
+#: htdocs/luci-static/resources/view/fchomo/client.js:1130
msgid "Include all provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1127
+#: htdocs/luci-static/resources/view/fchomo/client.js:1131
msgid "Includes all Provider."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1117
+#: htdocs/luci-static/resources/view/fchomo/client.js:1121
msgid "Includes all Proxy Node and Provider."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1122
+#: htdocs/luci-static/resources/view/fchomo/client.js:1126
msgid "Includes all Proxy Node."
msgstr ""
@@ -1619,7 +1634,7 @@ msgstr ""
msgid "Info"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1704
+#: htdocs/luci-static/resources/view/fchomo/node.js:1715
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Inline"
msgstr ""
@@ -1632,61 +1647,61 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:173
#: htdocs/luci-static/resources/fchomo.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1942
msgid "Keep default"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "Keep-alive period"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:296
-#: htdocs/luci-static/resources/view/fchomo/node.js:430
+#: htdocs/luci-static/resources/view/fchomo/node.js:441
msgid "Key"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1005
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/fchomo/listeners.js:1015
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "Key path"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:780
+#: htdocs/luci-static/resources/fchomo/listeners.js:790
msgid "Keypairs"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:128
-#: htdocs/luci-static/resources/view/fchomo/client.js:1043
-#: htdocs/luci-static/resources/view/fchomo/client.js:1335
-#: htdocs/luci-static/resources/view/fchomo/client.js:1430
-#: htdocs/luci-static/resources/view/fchomo/client.js:1572
-#: htdocs/luci-static/resources/view/fchomo/client.js:1806
-#: htdocs/luci-static/resources/view/fchomo/client.js:1862
+#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1339
+#: htdocs/luci-static/resources/view/fchomo/client.js:1434
+#: 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:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:2050
+#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
msgid "Label"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1175
-#: htdocs/luci-static/resources/view/fchomo/node.js:1995
+#: htdocs/luci-static/resources/view/fchomo/client.js:1179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2006
msgid "Lazy"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1913
+#: htdocs/luci-static/resources/view/fchomo/client.js:1918
msgid "Lazy query"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1919
msgid "Lazy query."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:437
-#: htdocs/luci-static/resources/view/fchomo/node.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:512
msgid "Legacy"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:541
+#: htdocs/luci-static/resources/fchomo/listeners.js:544
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
"compatibility purposes only, use of alterId > 1 is not recommended."
@@ -1696,8 +1711,8 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:986
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/fchomo/listeners.js:996
+#: htdocs/luci-static/resources/view/fchomo/node.js:1134
msgid "List of supported application level protocols, in order of preference."
msgstr ""
@@ -1714,7 +1729,7 @@ msgid "Listen interfaces"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/client.js:1455
+#: htdocs/luci-static/resources/view/fchomo/client.js:1459
msgid "Listen port"
msgstr ""
@@ -1722,7 +1737,7 @@ msgstr ""
msgid "Listen ports"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1460
+#: htdocs/luci-static/resources/view/fchomo/client.js:1464
msgid "Listen routing mark (Fwmark)"
msgstr ""
@@ -1730,18 +1745,18 @@ msgstr ""
msgid "Load balance"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1702
+#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
msgid "Local"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:754
-#: htdocs/luci-static/resources/view/fchomo/node.js:817
+#: htdocs/luci-static/resources/view/fchomo/node.js:765
+#: htdocs/luci-static/resources/view/fchomo/node.js:828
msgid "Local IPv6 address"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:809
+#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:820
msgid "Local address"
msgstr ""
@@ -1765,10 +1780,10 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Low-entropy data stream"
msgstr ""
@@ -1777,8 +1792,8 @@ msgid "Lowercase only"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:863
+#: htdocs/luci-static/resources/view/fchomo/node.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:874
msgid "MTU"
msgstr ""
@@ -1790,70 +1805,70 @@ msgstr ""
msgid "Masquerade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:870
msgid "Match domain. Support wildcards."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1910
+#: htdocs/luci-static/resources/view/fchomo/client.js:1915
msgid "Match domain. Support wildcards."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:871
+#: htdocs/luci-static/resources/view/fchomo/client.js:875
msgid "Match geosite."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1901
+#: htdocs/luci-static/resources/view/fchomo/client.js:1905
msgid "Match geosite."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1892
+#: htdocs/luci-static/resources/view/fchomo/client.js:1896
msgid "Match response with geoip."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1905
+#: htdocs/luci-static/resources/view/fchomo/client.js:1910
msgid "Match response with ipcidr."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:876
+#: htdocs/luci-static/resources/view/fchomo/client.js:880
msgid "Match rule set."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1367
+#: htdocs/luci-static/resources/view/fchomo/node.js:1378
msgid "Max Early Data"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:477
-#: htdocs/luci-static/resources/view/fchomo/node.js:598
+#: htdocs/luci-static/resources/fchomo/listeners.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
msgid "Max UDP relay packet size"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/fchomo/listeners.js:1214
msgid "Max buffered posts"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Max concurrency"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Max connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1189
+#: htdocs/luci-static/resources/view/fchomo/client.js:1193
msgid "Max count of failures"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:181
-#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:336
msgid "Max download speed"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1407
+#: htdocs/luci-static/resources/fchomo/listeners.js:1225
+#: htdocs/luci-static/resources/view/fchomo/node.js:1418
msgid "Max each POST bytes"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:630
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "Max open streams"
msgstr ""
@@ -1865,47 +1880,47 @@ msgstr ""
msgid "Max realms per client IP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
msgid "Max request times"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
msgid "Max reusable seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
msgid "Max reuse times"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:175
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
+#: htdocs/luci-static/resources/view/fchomo/node.js:330
msgid "Max upload speed"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Maximum connections"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1489
+#: htdocs/luci-static/resources/view/fchomo/node.js:1500
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:402
-#: htdocs/luci-static/resources/view/fchomo/node.js:473
+#: htdocs/luci-static/resources/view/fchomo/node.js:484
msgid "Maximum padding rate"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1488
+#: htdocs/luci-static/resources/view/fchomo/node.js:1499
msgid "Maximum streams"
msgstr ""
@@ -1914,7 +1929,7 @@ msgstr ""
msgid "Mieru"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:930
+#: htdocs/luci-static/resources/view/fchomo/client.js:934
#: htdocs/luci-static/resources/view/fchomo/log.js:149
#: htdocs/luci-static/resources/view/fchomo/log.js:154
msgid "Mihomo client"
@@ -1926,26 +1941,26 @@ msgstr ""
msgid "Mihomo server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:674
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Min of idle sessions to keep"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1413
+#: htdocs/luci-static/resources/view/fchomo/node.js:1424
msgid "Min posts interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1480
+#: htdocs/luci-static/resources/view/fchomo/node.js:1491
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:395
-#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Minimum padding rate"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1479
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1490
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Minimum streams"
msgstr ""
@@ -1962,7 +1977,8 @@ msgstr ""
msgid "Mixed port"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1457
+#: htdocs/luci-static/resources/fchomo/listeners.js:1232
+#: htdocs/luci-static/resources/view/fchomo/node.js:1468
msgid "Multiplex"
msgstr ""
@@ -1971,20 +1987,20 @@ msgstr ""
msgid "Multiplex fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:407
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
msgid "Multiplexing"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:624
-#: htdocs/luci-static/resources/view/fchomo/client.js:702
+#: htdocs/luci-static/resources/view/fchomo/client.js:630
+#: htdocs/luci-static/resources/view/fchomo/client.js:706
msgid "NOT"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:639
msgid "Name of the Proxy group as outbound."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1777
+#: htdocs/luci-static/resources/view/fchomo/node.js:1788
msgid "Name of the Proxy group to download provider."
msgstr ""
@@ -1992,11 +2008,11 @@ msgstr ""
msgid "Name of the Proxy group to download rule set."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:618
+#: htdocs/luci-static/resources/fchomo/listeners.js:628
msgid "Name of the Sub rule used for inbound matching."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Native UDP"
msgstr ""
@@ -2004,15 +2020,15 @@ msgstr ""
msgid "Native appearance"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:766
+#: htdocs/luci-static/resources/view/fchomo/node.js:777
msgid "Network"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:660
+#: htdocs/luci-static/resources/fchomo/listeners.js:670
msgid "Network type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1944
msgid "No"
msgstr ""
@@ -2020,20 +2036,20 @@ msgstr ""
msgid "No Authentication IP ranges"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1209
msgid "No SSE header"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
msgid "No add'l params"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
+#: htdocs/luci-static/resources/view/fchomo/node.js:1408
msgid "No gRPC header"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1176
-#: htdocs/luci-static/resources/view/fchomo/node.js:1996
+#: htdocs/luci-static/resources/view/fchomo/client.js:1180
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "No testing is performed when this provider node is not in use."
msgstr ""
@@ -2045,27 +2061,27 @@ msgstr ""
msgid "No valid rule-set link found."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1076
+#: htdocs/luci-static/resources/view/fchomo/client.js:1080
#: htdocs/luci-static/resources/view/fchomo/node.js:228
msgid "Node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:2016
+#: htdocs/luci-static/resources/view/fchomo/client.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:2027
msgid "Node exclude filter"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2023
+#: htdocs/luci-static/resources/view/fchomo/client.js:1247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2034
msgid "Node exclude type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1233
-#: htdocs/luci-static/resources/view/fchomo/node.js:2010
+#: htdocs/luci-static/resources/view/fchomo/client.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Node filter"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1214
+#: htdocs/luci-static/resources/view/fchomo/client.js:1218
msgid "Node switch tolerance"
msgstr ""
@@ -2077,49 +2093,49 @@ msgstr ""
msgid "Not Installed"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Not Running"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
+#: htdocs/luci-static/resources/view/fchomo/node.js:538
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "ON"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
msgid "Obfs Mode"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:213
-#: htdocs/luci-static/resources/view/fchomo/node.js:351
+#: htdocs/luci-static/resources/view/fchomo/node.js:362
msgid "Obfuscate maximum packet size"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:208
-#: htdocs/luci-static/resources/view/fchomo/node.js:346
+#: htdocs/luci-static/resources/view/fchomo/node.js:357
msgid "Obfuscate minimum packet size"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:200
-#: htdocs/luci-static/resources/view/fchomo/node.js:338
+#: htdocs/luci-static/resources/view/fchomo/node.js:349
msgid "Obfuscate password"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:193
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:331
-#: htdocs/luci-static/resources/view/fchomo/node.js:452
+#: htdocs/luci-static/resources/view/fchomo/node.js:342
+#: htdocs/luci-static/resources/view/fchomo/node.js:463
msgid "Obfuscate type"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:372
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "Obfuscated as %s"
msgstr ""
@@ -2127,12 +2143,12 @@ msgstr ""
msgid "One or more numbers in the range 0-63 separated by commas"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:980
+#: htdocs/luci-static/resources/fchomo/listeners.js:990
msgid "Only applicable when %s are used as a frontend."
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Only applies to the %s."
msgstr ""
@@ -2140,7 +2156,7 @@ msgstr ""
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1586
+#: htdocs/luci-static/resources/fchomo.js:1574
msgid "Open Dashboard"
msgstr ""
@@ -2148,6 +2164,10 @@ msgstr ""
msgid "Operation mode"
msgstr ""
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
+msgid "Option is deprecated. Please use %s instead."
+msgstr ""
+
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:46
msgid "Outbound"
msgstr ""
@@ -2157,16 +2177,16 @@ msgstr ""
msgid "Override destination"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1039
-#: htdocs/luci-static/resources/view/fchomo/node.js:1688
+#: htdocs/luci-static/resources/view/fchomo/client.js:1043
+#: htdocs/luci-static/resources/view/fchomo/node.js:1699
msgid "Override fields"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:574
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Override the IP address of the server that DNS response."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:904
+#: htdocs/luci-static/resources/view/fchomo/client.js:908
msgid "Override the Proxy group of DNS server."
msgstr ""
@@ -2174,11 +2194,11 @@ msgstr ""
msgid "Override the connection destination address with the sniffed domain."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1699
+#: htdocs/luci-static/resources/view/fchomo/client.js:1703
msgid "Override the existing ECS in original request."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1229
+#: htdocs/luci-static/resources/view/fchomo/node.js:1240
msgid "Overrides the domain name used for HTTPS record queries."
msgstr ""
@@ -2186,37 +2206,37 @@ msgstr ""
msgid "Overview"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:723
+#: htdocs/luci-static/resources/view/fchomo/node.js:734
msgid "Packet encoding"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
+#: htdocs/luci-static/resources/view/fchomo/node.js:1413
msgid "Padding bytes"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:521
+#: htdocs/luci-static/resources/fchomo/listeners.js:524
msgid "Padding scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:759
-#: htdocs/luci-static/resources/view/fchomo/node.js:1035
+#: htdocs/luci-static/resources/fchomo/listeners.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
msgid "Paddings"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:166
#: htdocs/luci-static/resources/fchomo/listeners.js:263
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/view/fchomo/node.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:385
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:306
+#: htdocs/luci-static/resources/view/fchomo/node.js:396
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
msgid "Password"
msgstr ""
@@ -2228,13 +2248,13 @@ msgstr ""
msgid "Path in bundle: %s"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
+#: htdocs/luci-static/resources/fchomo/listeners.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
msgid "Payload"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:831
+#: htdocs/luci-static/resources/view/fchomo/node.js:842
msgid "Peer pubkic key"
msgstr ""
@@ -2244,11 +2264,11 @@ msgid ""
"it is not needed."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:858
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Periodically sends data packets to maintain connection persistence."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:857
+#: htdocs/luci-static/resources/view/fchomo/node.js:868
msgid "Persistent keepalive"
msgstr ""
@@ -2269,8 +2289,8 @@ msgid ""
"standards."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1725
-#: htdocs/luci-static/resources/view/fchomo/node.js:1751
+#: htdocs/luci-static/resources/view/fchomo/node.js:1736
+#: htdocs/luci-static/resources/view/fchomo/node.js:1762
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
msgid ""
@@ -2278,33 +2298,34 @@ msgid ""
"a>."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:976
-#: htdocs/luci-static/resources/view/fchomo/client.js:1279
-#: htdocs/luci-static/resources/view/fchomo/client.js:1401
-#: htdocs/luci-static/resources/view/fchomo/client.js:1529
-#: htdocs/luci-static/resources/view/fchomo/client.js:1784
-#: htdocs/luci-static/resources/view/fchomo/client.js:1836
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:980
+#: htdocs/luci-static/resources/view/fchomo/client.js:1283
+#: htdocs/luci-static/resources/view/fchomo/client.js:1405
+#: htdocs/luci-static/resources/view/fchomo/client.js:1533
+#: htdocs/luci-static/resources/view/fchomo/client.js:1788
+#: htdocs/luci-static/resources/view/fchomo/client.js:1840
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
msgid "Please type %s fields of mihomo config."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:557
-#: htdocs/luci-static/resources/view/fchomo/node.js:881
+#: htdocs/luci-static/resources/fchomo/listeners.js:560
+#: htdocs/luci-static/resources/view/fchomo/node.js:892
msgid "Plugin"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Plugin:"
msgstr ""
@@ -2312,15 +2333,15 @@ msgstr ""
msgid "Port"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1823
+#: htdocs/luci-static/resources/fchomo.js:1811
msgid "Port %s alrealy exists!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:313
+#: htdocs/luci-static/resources/view/fchomo/node.js:324
msgid "Port hop interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:395
+#: htdocs/luci-static/resources/view/fchomo/node.js:406
msgid "Port range"
msgstr ""
@@ -2329,19 +2350,19 @@ msgid "Ports"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/node.js:308
+#: htdocs/luci-static/resources/view/fchomo/node.js:319
msgid "Ports pool"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:225
#: htdocs/luci-static/resources/fchomo/listeners.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:544
-#: htdocs/luci-static/resources/view/fchomo/node.js:838
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Pre-shared key"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:897
-#: htdocs/luci-static/resources/view/fchomo/node.js:1070
+#: htdocs/luci-static/resources/fchomo/listeners.js:907
+#: htdocs/luci-static/resources/view/fchomo/node.js:1081
msgid "Pre-shared key of rendezvous server"
msgstr ""
@@ -2360,23 +2381,23 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:760
#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1553
-#: htdocs/luci-static/resources/view/fchomo/node.js:1560
-#: htdocs/luci-static/resources/view/fchomo/node.js:1945
-#: htdocs/luci-static/resources/view/fchomo/node.js:1952
+#: htdocs/luci-static/resources/view/fchomo/node.js:1564
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1956
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Priority: Proxy Node > Global."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:357
+#: htdocs/luci-static/resources/view/fchomo/node.js:368
msgid "Priv-key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:361
+#: htdocs/luci-static/resources/view/fchomo/node.js:372
msgid "Priv-key passphrase"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:742
+#: htdocs/luci-static/resources/view/fchomo/node.js:834
msgid "Private key"
msgstr ""
@@ -2385,34 +2406,34 @@ msgid "Process matching mode"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1463
+#: htdocs/luci-static/resources/view/fchomo/node.js:1474
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:729
msgid "Protocol parameter. Enable length block encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:723
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1096
-#: htdocs/luci-static/resources/view/fchomo/node.js:1575
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
-#: htdocs/luci-static/resources/view/fchomo/node.js:2061
+#: htdocs/luci-static/resources/view/fchomo/client.js:1100
+#: htdocs/luci-static/resources/view/fchomo/node.js:1586
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Provider"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
msgid "Provider URL"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:950
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid "Proxy Group"
msgstr ""
@@ -2429,24 +2450,24 @@ msgid "Proxy MAC-s"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:219
-#: htdocs/luci-static/resources/view/fchomo/node.js:2060
+#: htdocs/luci-static/resources/view/fchomo/node.js:2071
msgid "Proxy Node"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2036
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2047
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Proxy chain"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:628
-#: htdocs/luci-static/resources/view/fchomo/client.js:797
-#: htdocs/luci-static/resources/view/fchomo/client.js:1627
-#: htdocs/luci-static/resources/view/fchomo/node.js:1776
+#: htdocs/luci-static/resources/fchomo/listeners.js:638
+#: htdocs/luci-static/resources/view/fchomo/client.js:801
+#: htdocs/luci-static/resources/view/fchomo/client.js:1631
+#: htdocs/luci-static/resources/view/fchomo/node.js:1787
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
msgid "Proxy group"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:903
+#: htdocs/luci-static/resources/view/fchomo/client.js:907
msgid "Proxy group override"
msgstr ""
@@ -2458,54 +2479,56 @@ msgstr ""
msgid "Proxy routerself"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:594
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "QUIC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:953
+#: htdocs/luci-static/resources/view/fchomo/client.js:957
#: htdocs/luci-static/resources/view/fchomo/server.js:44
msgid "Quick Reload"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1093
-#: htdocs/luci-static/resources/view/fchomo/node.js:1243
+#: htdocs/luci-static/resources/fchomo/listeners.js:1103
+#: htdocs/luci-static/resources/view/fchomo/node.js:1254
msgid "REALITY"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1258
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "REALITY X25519MLKEM768 PQC support"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/fchomo/listeners.js:1140
msgid "REALITY certificate issued to"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1098
+#: htdocs/luci-static/resources/fchomo/listeners.js:1108
msgid "REALITY handshake server"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1105
+#: htdocs/luci-static/resources/fchomo/listeners.js:1115
msgid "REALITY private key"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1248
+#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/view/fchomo/node.js:1259
msgid "REALITY public key"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1253
+#: htdocs/luci-static/resources/fchomo/listeners.js:1134
+#: htdocs/luci-static/resources/view/fchomo/node.js:1264
msgid "REALITY short ID"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:268
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "REMATCH-NAME marking"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
msgid "RTT"
msgstr ""
@@ -2521,13 +2544,13 @@ msgstr ""
msgid "Randomized traffic characteristics"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/fchomo/listeners.js:896
+#: htdocs/luci-static/resources/view/fchomo/node.js:1070
msgid "Realm"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:902
-#: htdocs/luci-static/resources/view/fchomo/node.js:1075
+#: htdocs/luci-static/resources/fchomo/listeners.js:912
+#: htdocs/luci-static/resources/view/fchomo/node.js:1086
msgid "Realm ID"
msgstr ""
@@ -2555,8 +2578,8 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1579
-#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/fchomo.js:1567
+#: htdocs/luci-static/resources/view/fchomo/client.js:958
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
msgid "Reload"
@@ -2574,38 +2597,38 @@ msgstr ""
msgid "Rematching routing rules"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:1714
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Remote"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:786
-#: htdocs/luci-static/resources/view/fchomo/node.js:869
+#: htdocs/luci-static/resources/view/fchomo/node.js:797
+#: htdocs/luci-static/resources/view/fchomo/node.js:880
msgid "Remote DNS resolve"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1744
+#: htdocs/luci-static/resources/fchomo.js:1732
msgid "Remove"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
+#: htdocs/luci-static/resources/fchomo.js:1737
+#: htdocs/luci-static/resources/view/fchomo/node.js:1690
+#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
msgid "Remove idles"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1064
+#: htdocs/luci-static/resources/fchomo/listeners.js:901
+#: htdocs/luci-static/resources/view/fchomo/node.js:1075
msgid "Rendezvous server"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1875
+#: htdocs/luci-static/resources/view/fchomo/node.js:1886
msgid "Replace name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1876
+#: htdocs/luci-static/resources/view/fchomo/node.js:1887
msgid "Replace node name."
msgstr ""
@@ -2613,13 +2636,13 @@ msgstr ""
msgid "Request"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1178
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
-#: htdocs/luci-static/resources/view/fchomo/node.js:1338
+#: htdocs/luci-static/resources/fchomo/listeners.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:1342
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Request path"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:623
+#: htdocs/luci-static/resources/view/fchomo/node.js:634
msgid "Request timeout"
msgstr ""
@@ -2632,11 +2655,11 @@ msgid "Require any"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1259
+#: htdocs/luci-static/resources/view/fchomo/node.js:1270
msgid "Requires server support."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:852
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
msgid "Reserved field bytes"
msgstr ""
@@ -2644,26 +2667,27 @@ msgstr ""
msgid "Resources management"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Restls script"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1250
+#: htdocs/luci-static/resources/view/fchomo/client.js:1254
msgid ""
"Returns hidden status in the API to hide the display of this proxy group."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1256
+#: htdocs/luci-static/resources/view/fchomo/client.js:1260
msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:525
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr ""
@@ -2680,10 +2704,10 @@ msgstr ""
msgid "Routing GFW"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:613
+#: htdocs/luci-static/resources/fchomo/listeners.js:623
#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1559
-#: htdocs/luci-static/resources/view/fchomo/node.js:1951
+#: htdocs/luci-static/resources/view/fchomo/node.js:1570
+#: htdocs/luci-static/resources/view/fchomo/node.js:1962
msgid "Routing mark (Fwmark)"
msgstr ""
@@ -2704,8 +2728,8 @@ msgstr ""
msgid "Routing ports"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1262
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1266
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Routing rule"
msgstr ""
@@ -2721,8 +2745,8 @@ msgstr ""
msgid "Rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:862
-#: htdocs/luci-static/resources/view/fchomo/client.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:879
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
msgid "Rule set"
msgstr ""
@@ -2739,7 +2763,7 @@ msgstr ""
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Running"
msgstr ""
@@ -2763,21 +2787,21 @@ msgstr ""
msgid "STUN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:908
-#: htdocs/luci-static/resources/view/fchomo/node.js:1081
+#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1092
msgid "STUN servers"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1354
+#: htdocs/luci-static/resources/view/fchomo/client.js:1358
msgid "SUB-RULE"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:982
+#: htdocs/luci-static/resources/view/fchomo/node.js:993
msgid "SUoT version"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:195
-#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:344
msgid "Salamander"
msgstr ""
@@ -2810,7 +2834,7 @@ msgstr ""
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1924
+#: htdocs/luci-static/resources/view/fchomo/client.js:1929
msgid "Send queries to both the %s and the %s."
msgstr ""
@@ -2819,9 +2843,9 @@ msgstr ""
msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
#: htdocs/luci-static/resources/view/fchomo/server.js:58
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:62
msgid "Server"
@@ -2831,9 +2855,9 @@ msgstr ""
msgid "Server address"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1172
-#: htdocs/luci-static/resources/view/fchomo/node.js:1310
-#: htdocs/luci-static/resources/view/fchomo/node.js:1316
+#: htdocs/luci-static/resources/fchomo/listeners.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:1321
+#: htdocs/luci-static/resources/view/fchomo/node.js:1327
msgid "Server hostname"
msgstr ""
@@ -2850,22 +2874,22 @@ msgstr ""
msgid "Shadowsocks"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
+#: htdocs/luci-static/resources/fchomo/listeners.js:506
+#: htdocs/luci-static/resources/view/fchomo/node.js:653
msgid "Shadowsocks chipher"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:498
-#: htdocs/luci-static/resources/view/fchomo/node.js:637
+#: htdocs/luci-static/resources/fchomo/listeners.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:648
msgid "Shadowsocks encrypt"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:650
+#: htdocs/luci-static/resources/fchomo/listeners.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:661
msgid "Shadowsocks password"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1511
+#: htdocs/luci-static/resources/view/fchomo/node.js:1522
msgid "Show connections in the dashboard for breaking connections easier."
msgstr ""
@@ -2877,14 +2901,14 @@ msgstr ""
msgid "Simple round-robin all nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1764
+#: htdocs/luci-static/resources/view/fchomo/node.js:1775
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
msgid "Size limit"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1663
-#: htdocs/luci-static/resources/view/fchomo/node.js:1180
-#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/client.js:1667
+#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "Skip cert verify"
msgstr ""
@@ -2944,18 +2968,18 @@ msgstr ""
msgid "Steam P2P"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1222
-#: htdocs/luci-static/resources/view/fchomo/client.js:1224
+#: htdocs/luci-static/resources/view/fchomo/client.js:1226
+#: htdocs/luci-static/resources/view/fchomo/client.js:1228
msgid "Strategy"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:617
-#: htdocs/luci-static/resources/view/fchomo/client.js:1384
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:627
+#: htdocs/luci-static/resources/view/fchomo/client.js:1388
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Sub rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1443
msgid "Sub rule group"
msgstr ""
@@ -2968,7 +2992,7 @@ msgstr ""
msgid "Successfully updated."
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2094
+#: htdocs/luci-static/resources/fchomo.js:2082
msgid "Successfully uploaded."
msgstr ""
@@ -3006,9 +3030,9 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:207
-#: htdocs/luci-static/resources/fchomo/listeners.js:661
-#: htdocs/luci-static/resources/view/fchomo/client.js:600
-#: htdocs/luci-static/resources/view/fchomo/client.js:690
+#: htdocs/luci-static/resources/fchomo/listeners.js:671
+#: htdocs/luci-static/resources/view/fchomo/client.js:606
+#: htdocs/luci-static/resources/view/fchomo/client.js:698
msgid "TCP"
msgstr ""
@@ -3016,7 +3040,7 @@ msgstr ""
msgid "TCP concurrency"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1504
+#: htdocs/luci-static/resources/view/fchomo/node.js:1515
msgid "TCP only"
msgstr ""
@@ -3043,26 +3067,26 @@ msgstr ""
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1535
-#: htdocs/luci-static/resources/view/fchomo/node.js:1893
+#: htdocs/luci-static/resources/view/fchomo/node.js:1546
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "TFO"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:579
-#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/fchomo/listeners.js:583
+#: htdocs/luci-static/resources/fchomo/listeners.js:928
#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:906
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1102
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:985
-#: htdocs/luci-static/resources/view/fchomo/node.js:1122
+#: htdocs/luci-static/resources/fchomo/listeners.js:995
+#: htdocs/luci-static/resources/view/fchomo/node.js:1133
msgid "TLS ALPN"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1127
msgid "TLS SNI"
msgstr ""
@@ -3080,7 +3104,7 @@ msgstr ""
msgid "TURN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:550
+#: htdocs/luci-static/resources/fchomo/listeners.js:553
msgid "Target address"
msgstr ""
@@ -3089,35 +3113,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:755
+#: htdocs/luci-static/resources/view/fchomo/node.js:758
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "The %s address used by local machine in the Cloudflare WARP network."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:810
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:829
msgid "The %s address used by local machine in the Wireguard network."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
msgid "The %s private key, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
msgid "The %s public key, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1223
+#: htdocs/luci-static/resources/view/fchomo/node.js:1234
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:431
+#: htdocs/luci-static/resources/view/fchomo/node.js:442
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr ""
@@ -3129,47 +3153,47 @@ msgstr ""
msgid "The default value is 2:00 every day."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:975
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:762
-#: htdocs/luci-static/resources/view/fchomo/node.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:772
+#: htdocs/luci-static/resources/view/fchomo/node.js:1049
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
msgid "The matching %s will be deemed as not-poisoned."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
#: htdocs/luci-static/resources/view/fchomo/client.js:1906
#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "The matching %s will be deemed as poisoned."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/fchomo/listeners.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1047
msgid "The server and client can set different padding parameters."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1087
+#: htdocs/luci-static/resources/fchomo/listeners.js:1097
#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1666
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/client.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:588
+#: htdocs/luci-static/resources/view/fchomo/node.js:599
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3199,22 +3223,22 @@ msgid "Tproxy port"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:285
-#: htdocs/luci-static/resources/view/fchomo/node.js:423
+#: htdocs/luci-static/resources/view/fchomo/node.js:434
msgid "Traffic pattern"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2098
+#: htdocs/luci-static/resources/view/fchomo/node.js:2109
msgid "Transit proxy group"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2120
msgid "Transit proxy node"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:273
-#: htdocs/luci-static/resources/fchomo/listeners.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:400
-#: htdocs/luci-static/resources/view/fchomo/node.js:1265
+#: htdocs/luci-static/resources/fchomo/listeners.js:1148
+#: htdocs/luci-static/resources/view/fchomo/node.js:411
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
msgid "Transport"
msgstr ""
@@ -3223,12 +3247,12 @@ msgstr ""
msgid "Transport fields"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1270
+#: htdocs/luci-static/resources/fchomo/listeners.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
msgid "Transport type"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:819
+#: htdocs/luci-static/resources/view/fchomo/client.js:823
msgid "Treat the destination IP as the source IP."
msgstr ""
@@ -3268,13 +3292,13 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:142
#: htdocs/luci-static/resources/view/fchomo/client.js:533
-#: htdocs/luci-static/resources/view/fchomo/client.js:654
-#: htdocs/luci-static/resources/view/fchomo/client.js:751
-#: htdocs/luci-static/resources/view/fchomo/client.js:859
-#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:660
+#: htdocs/luci-static/resources/view/fchomo/client.js:755
+#: htdocs/luci-static/resources/view/fchomo/client.js:863
+#: htdocs/luci-static/resources/view/fchomo/client.js:1061
#: htdocs/luci-static/resources/view/fchomo/node.js:250
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
-#: htdocs/luci-static/resources/view/fchomo/node.js:2059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2070
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
msgid "Type"
msgstr ""
@@ -3285,12 +3309,12 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo.js:203
#: htdocs/luci-static/resources/fchomo.js:204
#: htdocs/luci-static/resources/fchomo.js:206
-#: htdocs/luci-static/resources/fchomo/listeners.js:662
-#: htdocs/luci-static/resources/fchomo/listeners.js:667
-#: htdocs/luci-static/resources/view/fchomo/client.js:599
-#: htdocs/luci-static/resources/view/fchomo/client.js:689
-#: htdocs/luci-static/resources/view/fchomo/node.js:970
-#: htdocs/luci-static/resources/view/fchomo/node.js:1903
+#: htdocs/luci-static/resources/fchomo/listeners.js:672
+#: htdocs/luci-static/resources/fchomo/listeners.js:677
+#: htdocs/luci-static/resources/view/fchomo/client.js:605
+#: htdocs/luci-static/resources/view/fchomo/client.js:697
+#: htdocs/luci-static/resources/view/fchomo/node.js:981
+#: htdocs/luci-static/resources/view/fchomo/node.js:1914
msgid "UDP"
msgstr ""
@@ -3298,26 +3322,26 @@ msgstr ""
msgid "UDP NAT expiration time"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:598
msgid "UDP over stream"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:593
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "UDP over stream version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:580
+#: htdocs/luci-static/resources/view/fchomo/node.js:591
msgid "UDP packet relay mode."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:579
+#: htdocs/luci-static/resources/view/fchomo/node.js:590
msgid "UDP relay mode"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "UP: %s; DOWN: %s"
msgstr ""
@@ -3326,14 +3350,14 @@ msgid "URL test"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:294
-#: htdocs/luci-static/resources/fchomo/listeners.js:471
-#: htdocs/luci-static/resources/fchomo/listeners.js:526
-#: htdocs/luci-static/resources/view/fchomo/node.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:681
+#: htdocs/luci-static/resources/fchomo/listeners.js:474
+#: htdocs/luci-static/resources/fchomo/listeners.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:578
+#: htdocs/luci-static/resources/view/fchomo/node.js:692
msgid "UUID"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1637
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Unable to download unsupported type: %s"
msgstr ""
@@ -3358,8 +3382,8 @@ msgstr ""
msgid "Unknown error: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:976
-#: htdocs/luci-static/resources/view/fchomo/node.js:1908
+#: htdocs/luci-static/resources/view/fchomo/node.js:987
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
msgid "UoT"
msgstr ""
@@ -3367,22 +3391,24 @@ msgstr ""
msgid "Update failed."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1781
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
msgid "Update interval"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1522
+#: htdocs/luci-static/resources/fchomo/listeners.js:1248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1533
msgid "Upload bandwidth"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1523
+#: htdocs/luci-static/resources/fchomo/listeners.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1534
msgid "Upload bandwidth in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:997
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/fchomo/listeners.js:1007
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
msgid "Upload certificate"
msgstr ""
@@ -3390,45 +3416,47 @@ msgstr ""
msgid "Upload initial package"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1012
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/fchomo/listeners.js:1022
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "Upload key"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1000
-#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/fchomo/listeners.js:1040
+#: htdocs/luci-static/resources/fchomo/listeners.js:1010
+#: htdocs/luci-static/resources/fchomo/listeners.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:1050
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:1211
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1222
msgid "Upload..."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:278
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:281
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "Use sub rule"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1483
+#: htdocs/luci-static/resources/view/fchomo/client.js:1487
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
"servers or ECS."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid ""
"Used to resolve domains you want to proxy. Recommended to configure %s for "
"DNS servers."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1467
+#: htdocs/luci-static/resources/view/fchomo/client.js:1471
msgid "Used to resolve the domain of the DNS server. Must be IP."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1474
+#: htdocs/luci-static/resources/view/fchomo/client.js:1478
msgid "Used to resolve the domain of the Proxy node."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1128
msgid "Used to verify the hostname on the returned certificates."
msgstr ""
@@ -3441,7 +3469,7 @@ msgid "User-hint is mandatory"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:161
-#: htdocs/luci-static/resources/view/fchomo/node.js:290
+#: htdocs/luci-static/resources/view/fchomo/node.js:301
msgid "Username"
msgstr ""
@@ -3449,11 +3477,11 @@ msgstr ""
msgid "Users filter mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1379
+#: htdocs/luci-static/resources/view/fchomo/node.js:1390
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1395
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3467,8 +3495,8 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1707
-#: htdocs/luci-static/resources/view/fchomo/node.js:2065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1718
+#: htdocs/luci-static/resources/view/fchomo/node.js:2076
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
msgid "Value"
msgstr ""
@@ -3478,13 +3506,13 @@ msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:463
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/view/fchomo/node.js:562
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
msgid "Version"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
msgid "Version hint"
msgstr ""
@@ -3502,15 +3530,15 @@ msgid "Warning"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/fchomo/listeners.js:1145
-#: htdocs/luci-static/resources/fchomo/listeners.js:1154
-#: htdocs/luci-static/resources/fchomo/listeners.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:1275
+#: htdocs/luci-static/resources/fchomo/listeners.js:1155
+#: htdocs/luci-static/resources/fchomo/listeners.js:1164
+#: htdocs/luci-static/resources/fchomo/listeners.js:1171
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
-#: htdocs/luci-static/resources/view/fchomo/node.js:1293
-#: htdocs/luci-static/resources/view/fchomo/node.js:1299
+#: htdocs/luci-static/resources/view/fchomo/node.js:1297
+#: htdocs/luci-static/resources/view/fchomo/node.js:1304
+#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "WebSocket"
msgstr ""
@@ -3526,48 +3554,48 @@ msgstr ""
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:832
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "WireGuard peer public key."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:839
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "WireGuard pre-shared key."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:824
+#: htdocs/luci-static/resources/view/fchomo/node.js:835
msgid "WireGuard requires base64-encoded private keys."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1146
-#: htdocs/luci-static/resources/fchomo/listeners.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/fchomo/listeners.js:1156
+#: htdocs/luci-static/resources/fchomo/listeners.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1287
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "XHTTP"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/fchomo/listeners.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1400
msgid "XHTTP mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1420
+#: htdocs/luci-static/resources/view/fchomo/node.js:1431
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "XMUX:"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:721
+#: htdocs/luci-static/resources/fchomo/listeners.js:731
msgid "XOR mode"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:726
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Xudp (Xray-core)"
msgstr ""
@@ -3575,7 +3603,7 @@ msgstr ""
msgid "Yaml text"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1943
msgid "Yes"
msgstr ""
@@ -3583,14 +3611,14 @@ msgstr ""
msgid "YouTube"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:2076
+#: htdocs/luci-static/resources/fchomo.js:2064
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:345
#: htdocs/luci-static/resources/fchomo.js:358
#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:706
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "aes-128-gcm"
msgstr ""
@@ -3603,11 +3631,11 @@ msgstr ""
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1803
msgid "age private key"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1853
+#: htdocs/luci-static/resources/view/fchomo/node.js:1864
msgid "age public key"
msgstr ""
@@ -3619,7 +3647,7 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:714
msgid "auto"
msgstr ""
@@ -3627,9 +3655,9 @@ msgstr ""
msgid "bbr"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1002
-#: htdocs/luci-static/resources/fchomo/listeners.js:1042
-#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1012
+#: htdocs/luci-static/resources/fchomo/listeners.js:1052
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "certificate"
msgstr ""
@@ -3639,7 +3667,7 @@ msgstr ""
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:707
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
msgid "chacha20-poly1305"
msgstr ""
@@ -3647,8 +3675,8 @@ msgstr ""
msgid "cubic"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:673
-#: htdocs/luci-static/resources/fchomo/listeners.js:704
+#: htdocs/luci-static/resources/fchomo/listeners.js:683
+#: htdocs/luci-static/resources/fchomo/listeners.js:714
msgid "decryption"
msgstr ""
@@ -3656,41 +3684,41 @@ msgstr ""
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
msgid "down"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1013
+#: htdocs/luci-static/resources/fchomo/listeners.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1024
msgid "encryption"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:500
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1144
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:1274
+#: htdocs/luci-static/resources/fchomo/listeners.js:1154
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
#: htdocs/luci-static/resources/view/fchomo/node.js:1285
-#: htdocs/luci-static/resources/view/fchomo/node.js:1292
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1303
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1366
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1371
msgid "gRPC ping interval"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1185
-#: htdocs/luci-static/resources/view/fchomo/node.js:1351
+#: htdocs/luci-static/resources/fchomo/listeners.js:1195
+#: htdocs/luci-static/resources/view/fchomo/node.js:1362
msgid "gRPC service name"
msgstr ""
@@ -3698,23 +3726,23 @@ msgstr ""
msgid "gVisor"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:781
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1467
+#: htdocs/luci-static/resources/view/fchomo/node.js:1478
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:768
+#: htdocs/luci-static/resources/view/fchomo/node.js:779
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:780
msgid "h3-l4proxy"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
msgid "least one keypair required"
msgstr ""
@@ -3722,13 +3750,13 @@ msgstr ""
msgid "metacubexd"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1030
-#: htdocs/luci-static/resources/view/fchomo/client.js:1327
-#: htdocs/luci-static/resources/view/fchomo/client.js:1422
-#: htdocs/luci-static/resources/view/fchomo/client.js:1564
-#: htdocs/luci-static/resources/view/fchomo/client.js:1798
-#: htdocs/luci-static/resources/view/fchomo/client.js:1854
-#: htdocs/luci-static/resources/view/fchomo/node.js:1673
+#: htdocs/luci-static/resources/view/fchomo/client.js:1034
+#: htdocs/luci-static/resources/view/fchomo/client.js:1331
+#: htdocs/luci-static/resources/view/fchomo/client.js:1426
+#: htdocs/luci-static/resources/view/fchomo/client.js:1568
+#: htdocs/luci-static/resources/view/fchomo/client.js:1802
+#: htdocs/luci-static/resources/view/fchomo/client.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
msgid "mihomo config"
msgstr ""
@@ -3737,8 +3765,8 @@ msgstr ""
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1540
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1909
msgid "mpTCP"
msgstr ""
@@ -3746,24 +3774,24 @@ msgstr ""
msgid "new_reno"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:836
+#: htdocs/luci-static/resources/view/fchomo/client.js:840
msgid "no-resolve"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1969
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1957
msgid "non-empty value"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:343
#: htdocs/luci-static/resources/fchomo.js:357
#: htdocs/luci-static/resources/fchomo.js:369
-#: htdocs/luci-static/resources/fchomo/listeners.js:558
-#: htdocs/luci-static/resources/view/fchomo/node.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:724
-#: htdocs/luci-static/resources/view/fchomo/node.js:882
+#: htdocs/luci-static/resources/fchomo/listeners.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:715
+#: htdocs/luci-static/resources/view/fchomo/node.js:735
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
msgid "none"
msgstr ""
@@ -3772,51 +3800,51 @@ msgstr ""
msgid "not found"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
msgid "not included \",\""
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:229
-#: htdocs/luci-static/resources/fchomo/listeners.js:619
-#: htdocs/luci-static/resources/fchomo/listeners.js:622
+#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:632
msgid "null"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:559
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:883
+#: htdocs/luci-static/resources/fchomo/listeners.js:562
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
#: htdocs/luci-static/resources/view/fchomo/node.js:894
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "only applies when %s is %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
msgid "only applies when %s is not %s."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
+#: htdocs/luci-static/resources/view/fchomo/node.js:1889
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:725
+#: htdocs/luci-static/resources/view/fchomo/node.js:736
msgid "packet addr (v2ray-core v5+)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:439
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
msgid "poll"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1017
-#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/fchomo/listeners.js:1027
+#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "private key"
msgstr ""
@@ -3824,12 +3852,13 @@ msgstr ""
msgid "razord-meta"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1251
-#: htdocs/luci-static/resources/view/fchomo/client.js:1257
+#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1261
msgid "requires front-end adaptation using the API."
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:887
+#: htdocs/luci-static/resources/fchomo/listeners.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:898
msgid "restls"
msgstr ""
@@ -3837,41 +3866,41 @@ msgstr ""
msgid "rule-set"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/fchomo/listeners.js:568
-#: htdocs/luci-static/resources/view/fchomo/node.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:895
+#: htdocs/luci-static/resources/fchomo/listeners.js:563
+#: htdocs/luci-static/resources/fchomo/listeners.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:897
+#: htdocs/luci-static/resources/view/fchomo/node.js:906
msgid "shadow-tls"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
msgid "split-stream"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:818
+#: htdocs/luci-static/resources/view/fchomo/client.js:822
msgid "src"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1193
-#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/fchomo/listeners.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "stream-one"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1392
+#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid "stream-up"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1210
+#: htdocs/luci-static/resources/fchomo/listeners.js:1220
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "stream/poll/auto"
msgstr ""
@@ -3891,77 +3920,80 @@ msgstr ""
msgid "unique identifier"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1966
msgid "unique value"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1914
+#: htdocs/luci-static/resources/view/fchomo/node.js:1925
msgid "up"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:604
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
-#: htdocs/luci-static/resources/view/fchomo/node.js:594
-#: htdocs/luci-static/resources/view/fchomo/node.js:924
-#: htdocs/luci-static/resources/view/fchomo/node.js:983
+#: htdocs/luci-static/resources/fchomo/listeners.js:464
+#: htdocs/luci-static/resources/fchomo/listeners.js:608
+#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "v1"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
-#: htdocs/luci-static/resources/view/fchomo/node.js:925
-#: htdocs/luci-static/resources/view/fchomo/node.js:984
+#: htdocs/luci-static/resources/fchomo/listeners.js:465
+#: htdocs/luci-static/resources/fchomo/listeners.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "v2"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:926
+#: htdocs/luci-static/resources/fchomo/listeners.js:466
+#: htdocs/luci-static/resources/fchomo/listeners.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:565
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "v3"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/fchomo/listeners.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "v4"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:556
+#: htdocs/luci-static/resources/fchomo/listeners.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1846
+#: htdocs/luci-static/resources/fchomo.js:1849
msgid "valid JSON format"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "valid SHA256 string with %d characters"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
+#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1874
msgid "valid URL"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1896
+#: htdocs/luci-static/resources/fchomo.js:1884
msgid "valid base64 key with %d characters"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
msgid "valid format: 2x, 2p, 4v"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1943
+#: htdocs/luci-static/resources/fchomo.js:1931
msgid "valid key length with %d characters"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1821
+#: htdocs/luci-static/resources/fchomo.js:1809
msgid "valid port value"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1859
msgid "valid uuid"
msgstr ""
@@ -3981,7 +4013,7 @@ msgstr ""
msgid "yacd-meta"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1466
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "yamux"
msgstr ""
@@ -3989,10 +4021,10 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:716
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1639
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "🡇"
msgstr ""
diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po
index 004b066a..6b3f4d32 100644
--- a/luci-app-fchomo/po/zh_Hans/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hans/fchomo.po
@@ -27,49 +27,53 @@ msgstr "%s 端口"
msgid "(Imported)"
msgstr "(已导入)"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
#: htdocs/luci-static/resources/view/fchomo/global.js:564
#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "(mTLS)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:688
+#: htdocs/luci-static/resources/view/fchomo/client.js:696
msgid "-- NETWORK --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1204
+#: htdocs/luci-static/resources/view/fchomo/client.js:1208
msgid "-- PROXY-GROUP --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1139
-#: htdocs/luci-static/resources/view/fchomo/client.js:1206
+#: htdocs/luci-static/resources/view/fchomo/client.js:1143
+#: htdocs/luci-static/resources/view/fchomo/client.js:1210
msgid "-- PROXY-NODE --"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:832
-#: htdocs/luci-static/resources/view/fchomo/client.js:877
-#: htdocs/luci-static/resources/view/fchomo/client.js:880
-#: htdocs/luci-static/resources/view/fchomo/client.js:1077
+#: htdocs/luci-static/resources/view/fchomo/client.js:573
+#: htdocs/luci-static/resources/view/fchomo/client.js:881
+#: htdocs/luci-static/resources/view/fchomo/client.js:884
#: htdocs/luci-static/resources/view/fchomo/client.js:1081
-#: htdocs/luci-static/resources/view/fchomo/client.js:1097
+#: htdocs/luci-static/resources/view/fchomo/client.js:1085
#: htdocs/luci-static/resources/view/fchomo/client.js:1101
-#: htdocs/luci-static/resources/view/fchomo/client.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:270
-#: htdocs/luci-static/resources/view/fchomo/node.js:281
-#: htdocs/luci-static/resources/view/fchomo/node.js:2071
+#: htdocs/luci-static/resources/view/fchomo/client.js:1105
+#: htdocs/luci-static/resources/view/fchomo/client.js:1361
+#: htdocs/luci-static/resources/view/fchomo/node.js:284
#: htdocs/luci-static/resources/view/fchomo/node.js:2082
-#: htdocs/luci-static/resources/view/fchomo/node.js:2101
+#: htdocs/luci-static/resources/view/fchomo/node.js:2093
#: htdocs/luci-static/resources/view/fchomo/node.js:2112
+#: htdocs/luci-static/resources/view/fchomo/node.js:2123
msgid "-- Please choose --"
msgstr "-- 请选择 --"
-#: htdocs/luci-static/resources/view/fchomo/client.js:691
+#: htdocs/luci-static/resources/view/fchomo/client.js:694
+msgid "-- REMATCH-NAME --"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/client.js:699
msgid "-- RULE-SET --"
msgstr ""
@@ -102,20 +106,20 @@ msgstr ""
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:703
+#: htdocs/luci-static/resources/view/fchomo/client.js:707
msgid "0 or 1 only."
msgstr "仅限 0 或 1。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:998
-#: htdocs/luci-static/resources/fchomo/listeners.js:1013
-#: htdocs/luci-static/resources/fchomo/listeners.js:1038
-#: htdocs/luci-static/resources/view/fchomo/node.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/fchomo/listeners.js:1008
+#: htdocs/luci-static/resources/fchomo/listeners.js:1023
+#: htdocs/luci-static/resources/fchomo/listeners.js:1048
+#: htdocs/luci-static/resources/view/fchomo/node.js:1206
+#: htdocs/luci-static/resources/view/fchomo/node.js:1220
msgid "Save your configuration before uploading files!"
msgstr "上传文件前请先保存配置!"
#: htdocs/luci-static/resources/fchomo/listeners.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:424
+#: htdocs/luci-static/resources/view/fchomo/node.js:435
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
@@ -175,9 +179,9 @@ msgstr "API 令牌"
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "ASCII data stream"
msgstr "ASCII 数据流"
@@ -190,15 +194,15 @@ msgstr "ASN 版本"
msgid "Access Control"
msgstr "访问控制"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Add a Bootstrap DNS policy (Node)"
msgstr "新增 引导 DNS 策略 (节点)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
msgid "Add a DNS policy"
msgstr "新增 DNS 策略"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
msgid "Add a DNS server"
msgstr "新增 DNS 服务器"
@@ -210,19 +214,19 @@ msgstr "新增 节点"
msgid "Add a inbound"
msgstr "新增 入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
msgid "Add a provider"
msgstr "新增 供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Add a proxy chain"
msgstr "新增 代理链"
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
msgid "Add a proxy group"
msgstr "新增 代理组"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Add a routing rule"
msgstr "新增 路由规则"
@@ -234,20 +238,20 @@ msgstr "新增 规则集"
msgid "Add a server"
msgstr "新增 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Add a sub rule"
msgstr "新增 子规则"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1867
+#: htdocs/luci-static/resources/view/fchomo/node.js:1878
msgid "Add prefix"
msgstr "添加前缀"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1871
+#: htdocs/luci-static/resources/view/fchomo/node.js:1882
msgid "Add suffix"
msgstr "添加后缀"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1581
-#: htdocs/luci-static/resources/view/fchomo/client.js:1586
+#: htdocs/luci-static/resources/view/fchomo/client.js:1585
+#: htdocs/luci-static/resources/view/fchomo/client.js:1590
msgid "Address"
msgstr "地址"
@@ -283,11 +287,11 @@ msgid ""
msgstr ""
"允许从私有网络访问。要从公共网站访问私有网络上的 API,则必须启用。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:979
+#: htdocs/luci-static/resources/fchomo/listeners.js:989
msgid "Allow insecure connections"
msgstr "允许不安全的连接"
-#: htdocs/luci-static/resources/view/fchomo/node.js:845
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Allowed IPs"
msgstr "允许的 IP"
@@ -299,8 +303,8 @@ msgstr "已是最新版本。"
msgid "Already in updating."
msgstr "已在更新中。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:540
-#: htdocs/luci-static/resources/view/fchomo/node.js:695
+#: htdocs/luci-static/resources/fchomo/listeners.js:543
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Alter ID"
msgstr "额外 ID"
@@ -322,20 +326,20 @@ msgstr "作为 dnsmasq 的最优先上游"
msgid "As the TOP upstream of dnsmasq."
msgstr "作为 dnsmasq 的最优先上游。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:490
+#: htdocs/luci-static/resources/fchomo/listeners.js:493
msgid "Auth timeout"
msgstr "认证超时"
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:728
msgid "Authenticated length"
msgstr "认证长度"
#: htdocs/luci-static/resources/fchomo/listeners.js:440
-#: htdocs/luci-static/resources/fchomo/listeners.js:1192
+#: htdocs/luci-static/resources/fchomo/listeners.js:1202
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
-#: htdocs/luci-static/resources/view/fchomo/node.js:1390
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Auto"
msgstr "自动"
@@ -351,8 +355,8 @@ msgstr "自动更新"
msgid "Auto update resources."
msgstr "自动更新资源文件。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:651
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/fchomo/listeners.js:661
+#: htdocs/luci-static/resources/view/fchomo/node.js:964
msgid "BBR profile"
msgstr "BBR 配置文件"
@@ -360,11 +364,11 @@ msgstr "BBR 配置文件"
msgid "Baidu"
msgstr "百度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:732
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr "基于 NIST P-256 曲线的 Base64 编码 ECDSA 私钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:751
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr "基于 NIST P-256 曲线的 Base64 编码 ECDSA 公钥。"
@@ -386,13 +390,13 @@ msgid "Binary mrs"
msgstr "二进制 mrs"
#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
-#: htdocs/luci-static/resources/view/fchomo/node.js:1943
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1954
msgid "Bind interface"
msgstr "绑定接口"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
-#: htdocs/luci-static/resources/view/fchomo/node.js:1944
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1955
msgid "Bind outbound interface."
msgstr "绑定出站接口。"
@@ -409,16 +413,16 @@ msgstr "黑名单"
msgid "Block DNS queries"
msgstr "封锁 DNS 请求"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1767
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1771
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Bootstrap DNS policy (Node)"
msgstr "引导 DNS 策略 (节点)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1466
+#: htdocs/luci-static/resources/view/fchomo/client.js:1470
msgid "Bootstrap DNS server"
msgstr "引导 DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1473
+#: htdocs/luci-static/resources/view/fchomo/client.js:1477
msgid "Bootstrap DNS server (Node)"
msgstr "引导 DNS 服务器 (节点)"
@@ -438,10 +442,10 @@ msgstr "绕过 DSCP"
#: htdocs/luci-static/resources/fchomo/listeners.js:439
#: htdocs/luci-static/resources/fchomo/listeners.js:440
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
msgid "CDN support"
msgstr "CDN 支持"
@@ -461,17 +465,17 @@ msgstr "CORS 允许的来源,留空则使用 *。"
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:1178
msgid "Cert fingerprint"
msgstr "证书指纹"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1168
+#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr "证书指纹。用于实现 SSL证书固定 并防止 MitM。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
+#: htdocs/luci-static/resources/fchomo/listeners.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
msgid "Certificate path"
msgstr "证书路径"
@@ -484,7 +488,7 @@ msgstr "检查"
msgid "Check routerself NAT Behavior"
msgstr "检测路由器自身 NAT 行为"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1921
+#: htdocs/luci-static/resources/view/fchomo/client.js:1926
msgid ""
"Check the response from the %s, only initiate query if the "
"%s is satisfied."
@@ -509,14 +513,14 @@ msgstr "大陆域名列表版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:255
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:436
-#: htdocs/luci-static/resources/view/fchomo/node.js:701
+#: htdocs/luci-static/resources/view/fchomo/node.js:388
+#: htdocs/luci-static/resources/view/fchomo/node.js:447
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
msgid "Chipher"
msgstr "加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr "如果下行链路混淆功能被禁用,则必须启用加密。"
@@ -532,25 +536,25 @@ msgstr ""
"点击此处下载"
"最新的初始包。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr "客户端"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
msgid "Client Auth Certificate path"
msgstr "客户端认证证书路径"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
msgid "Client Auth type"
msgstr "客户端认证类型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1234
+#: htdocs/luci-static/resources/view/fchomo/node.js:1245
msgid "Client fingerprint"
msgstr "客户端指纹"
@@ -571,16 +575,16 @@ msgstr "收集数据中..."
msgid "Common ports (bypass P2P traffic)"
msgstr "常用端口(绕过 P2P 流量)"
-#: htdocs/luci-static/resources/fchomo.js:1755
+#: htdocs/luci-static/resources/fchomo.js:1743
msgid "Complete"
msgstr "完成"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Configuration Items"
msgstr "配置项"
-#: htdocs/luci-static/resources/fchomo/listeners.js:643
-#: htdocs/luci-static/resources/view/fchomo/node.js:944
+#: htdocs/luci-static/resources/fchomo/listeners.js:653
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Congestion controller"
msgstr "拥塞控制器"
@@ -588,7 +592,7 @@ msgstr "拥塞控制器"
msgid "Connection check"
msgstr "连接检查"
-#: htdocs/luci-static/resources/view/fchomo/node.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Connection reuse"
msgstr "连接复用"
@@ -600,15 +604,15 @@ msgstr "保守"
msgid "Content copied to clipboard!"
msgstr "内容已复制到剪贴板!"
-#: htdocs/luci-static/resources/view/fchomo/client.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1727
-#: htdocs/luci-static/resources/view/fchomo/node.js:1753
+#: htdocs/luci-static/resources/view/fchomo/client.js:687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1738
+#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "内容将不会被验证,请确保输入正确。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1726
+#: htdocs/luci-static/resources/view/fchomo/node.js:1737
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Contents"
msgstr "内容"
@@ -633,7 +637,7 @@ msgstr "Cron 表达式"
msgid "Custom Direct List"
msgstr "自定义直连列表"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1869
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
msgid "Custom HTTP header."
msgstr "自定义 HTTP header。"
@@ -643,7 +647,7 @@ msgid "Custom Proxy List"
msgstr "自定义代理列表"
#: htdocs/luci-static/resources/fchomo/listeners.js:378
-#: htdocs/luci-static/resources/view/fchomo/node.js:460
+#: htdocs/luci-static/resources/view/fchomo/node.js:471
msgid "Custom byte layout"
msgstr "自定义字节布局"
@@ -656,8 +660,9 @@ msgstr "自定义内部 hosts。支持 yaml 或 json
msgid "DIRECT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1819
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1823
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
msgid "DNS policy"
msgstr "DNS 策略"
@@ -665,15 +670,15 @@ msgstr "DNS 策略"
msgid "DNS port"
msgstr " DNS 端口"
-#: htdocs/luci-static/resources/view/fchomo/client.js:895
-#: htdocs/luci-static/resources/view/fchomo/client.js:1512
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:792
-#: htdocs/luci-static/resources/view/fchomo/node.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:899
+#: htdocs/luci-static/resources/view/fchomo/client.js:1516
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
+#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:886
msgid "DNS server"
msgstr "DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1449
+#: htdocs/luci-static/resources/view/fchomo/client.js:1453
msgid "DNS settings"
msgstr "DNS 设置"
@@ -693,13 +698,13 @@ msgstr "调试"
msgid "Default DNS (issued by WAN)"
msgstr "默认 DNS(由 WAN 下发)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1487
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1491
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Default DNS server"
msgstr "默认 DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1197
+#: htdocs/luci-static/resources/view/fchomo/client.js:1201
msgid "Default selected"
msgstr "默认选中"
@@ -707,15 +712,15 @@ msgstr "默认选中"
msgid "Derive from priv-key"
msgstr "从私钥派生"
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:857
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允许通过 WireGuard 转发的目的地址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2068
+#: htdocs/luci-static/resources/view/fchomo/node.js:2079
msgid "Destination provider"
msgstr "落地供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2079
+#: htdocs/luci-static/resources/view/fchomo/node.js:2090
msgid "Destination proxy node"
msgstr "落地代理节点"
@@ -723,8 +728,8 @@ msgstr "落地代理节点"
msgid "Dial fields"
msgstr "拨号字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
msgid "Different chain head/tail"
msgstr "不同的链头/链尾"
@@ -746,7 +751,7 @@ msgstr "直连 MAC 地址"
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:332
+#: htdocs/luci-static/resources/view/fchomo/node.js:343
msgid "Disable"
msgstr "禁用"
@@ -762,11 +767,11 @@ msgstr "禁用 quic-go 的 通用分段卸载(GSO)"
msgid "Disable ICMP Forwarding"
msgstr "禁用 ICMP 转发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+#: htdocs/luci-static/resources/view/fchomo/node.js:1121
msgid "Disable SNI"
msgstr "禁用 SNI"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1146
+#: htdocs/luci-static/resources/view/fchomo/client.js:1150
msgid "Disable UDP"
msgstr "禁用 UDP"
@@ -774,7 +779,7 @@ msgstr "禁用 UDP"
msgid "Disable safe path check"
msgstr "禁用安全路径检查"
-#: htdocs/luci-static/resources/view/fchomo/client.js:837
+#: htdocs/luci-static/resources/view/fchomo/client.js:841
msgid ""
"Do not resolve the domain connection to IP for this match.Only works "
"for pure domain inbound connections without DNS resolution. e.g., socks5h"
@@ -782,37 +787,39 @@ msgstr ""
"不要将域名连接解析为 IP 以进行此次匹配。仅对未经 DNS 解析的纯域名入站连"
"接有效。例如,socks5h"
-#: htdocs/luci-static/resources/view/fchomo/client.js:860
-#: htdocs/luci-static/resources/view/fchomo/client.js:865
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
-#: htdocs/luci-static/resources/view/fchomo/client.js:1909
-#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:864
+#: htdocs/luci-static/resources/view/fchomo/client.js:869
+#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "Domain"
msgstr "域名"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+#: htdocs/luci-static/resources/view/fchomo/node.js:1122
msgid "Donot send server name in ClientHello."
msgstr "不要在 ClientHello 中发送服务器名称。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1664
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1668
+#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "Donot verifying server certificate."
msgstr "不验证服务器证书。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1528
+#: htdocs/luci-static/resources/fchomo/listeners.js:1254
+#: htdocs/luci-static/resources/view/fchomo/node.js:1539
msgid "Download bandwidth"
msgstr "下载带宽"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1529
+#: htdocs/luci-static/resources/fchomo/listeners.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:1540
msgid "Download bandwidth in Mbps."
msgstr "下载带宽(单位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo.js:1634
+#: htdocs/luci-static/resources/fchomo.js:1622
msgid "Download failed: %s"
msgstr "下载失败: %s"
-#: htdocs/luci-static/resources/fchomo.js:1632
+#: htdocs/luci-static/resources/fchomo.js:1620
msgid "Download successful."
msgstr "下载成功。"
@@ -820,24 +827,24 @@ msgstr "下载成功。"
msgid "Dual stack"
msgstr "双栈"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1228
+#: htdocs/luci-static/resources/view/fchomo/node.js:1239
msgid "ECH HTTPS record query servername"
msgstr "ECH HTTPS 记录查询域名"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1086
-#: htdocs/luci-static/resources/view/fchomo/node.js:1222
+#: htdocs/luci-static/resources/fchomo/listeners.js:1096
+#: htdocs/luci-static/resources/view/fchomo/node.js:1233
msgid "ECH config"
msgstr "ECH 配置"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1045
+#: htdocs/luci-static/resources/fchomo/listeners.js:1055
msgid "ECH key"
msgstr "ECH 密钥"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1698
+#: htdocs/luci-static/resources/view/fchomo/client.js:1702
msgid "ECS override"
msgstr "强制覆盖 ECS"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1682
+#: htdocs/luci-static/resources/view/fchomo/client.js:1686
msgid "EDNS Client Subnet"
msgstr "EDNS 客户端子网"
@@ -845,11 +852,11 @@ msgstr "EDNS 客户端子网"
msgid "ETag support"
msgstr "ETag 支持"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1368
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Early Data first packet length limit."
msgstr "前置数据长度阈值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1374
+#: htdocs/luci-static/resources/view/fchomo/node.js:1385
msgid "Early Data header name"
msgstr "前置数据标头"
@@ -865,7 +872,7 @@ msgstr "编辑出站"
msgid "Edit ruleset"
msgstr "编辑规则集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1724
+#: htdocs/luci-static/resources/view/fchomo/node.js:1735
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
msgid "Editer"
msgstr "编辑器"
@@ -874,30 +881,30 @@ msgstr "编辑器"
msgid "Eliminate encryption header characteristics"
msgstr "消除加密头特征"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1131
+#: htdocs/luci-static/resources/view/fchomo/client.js:1135
msgid "Empty fallback"
msgstr "为空时回退"
#: htdocs/luci-static/resources/fchomo/listeners.js:133
-#: htdocs/luci-static/resources/view/fchomo/client.js:958
-#: htdocs/luci-static/resources/view/fchomo/client.js:1053
-#: htdocs/luci-static/resources/view/fchomo/client.js:1340
-#: htdocs/luci-static/resources/view/fchomo/client.js:1435
-#: htdocs/luci-static/resources/view/fchomo/client.js:1577
-#: htdocs/luci-static/resources/view/fchomo/client.js:1811
-#: htdocs/luci-static/resources/view/fchomo/client.js:1867
+#: htdocs/luci-static/resources/view/fchomo/client.js:962
+#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:1344
+#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1581
+#: htdocs/luci-static/resources/view/fchomo/client.js:1815
+#: htdocs/luci-static/resources/view/fchomo/client.js:1871
#: htdocs/luci-static/resources/view/fchomo/global.js:422
#: htdocs/luci-static/resources/view/fchomo/global.js:704
#: htdocs/luci-static/resources/view/fchomo/node.js:246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2055
+#: htdocs/luci-static/resources/view/fchomo/node.js:1708
+#: htdocs/luci-static/resources/view/fchomo/node.js:1977
+#: htdocs/luci-static/resources/view/fchomo/node.js:2066
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr "启用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:621
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
强烈建议禁用此功能,因为它容易受到重放攻击。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:620
msgid "Enable 0-RTT handshake"
msgstr "启用 0-RTT 握手"
@@ -918,57 +925,60 @@ msgstr ""
"为出站连接启用 IP4P 转换"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1216
+#: htdocs/luci-static/resources/view/fchomo/node.js:1227
msgid "Enable ECH"
msgstr "启用 ECH"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1516
+#: htdocs/luci-static/resources/fchomo/listeners.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:1527
msgid "Enable TCP Brutal"
msgstr "启用 TCP Brutal"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1517
+#: htdocs/luci-static/resources/fchomo/listeners.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:1528
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "启用 TCP Brutal 拥塞控制算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:604
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Enable fast open"
msgstr "启用 Fast open"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1505
+#: htdocs/luci-static/resources/view/fchomo/node.js:1516
msgid "Enable multiplexing only for TCP."
msgstr "仅为 TCP 启用多路复用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "Enable obfuscate for downlink"
msgstr "启用下行链路混淆"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1499
+#: htdocs/luci-static/resources/fchomo/listeners.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:1510
msgid "Enable padding"
msgstr "启用填充"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1510
+#: htdocs/luci-static/resources/view/fchomo/node.js:1521
msgid "Enable statistic"
msgstr "启用统计"
-#: htdocs/luci-static/resources/view/fchomo/node.js:977
-#: htdocs/luci-static/resources/view/fchomo/node.js:1909
+#: htdocs/luci-static/resources/view/fchomo/node.js:988
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:201
-#: htdocs/luci-static/resources/view/fchomo/node.js:339
+#: htdocs/luci-static/resources/view/fchomo/node.js:350
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr "启用混淆将使服务器与标准的 QUIC 连接不兼容,失去 HTTP/3 伪装的能力。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:712
+#: htdocs/luci-static/resources/fchomo/listeners.js:722
msgid "Encryption method"
msgstr "加密方法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:739
+#: htdocs/luci-static/resources/view/fchomo/node.js:750
msgid "Endpoint pubkic key"
msgstr "端点公钥"
@@ -976,8 +986,8 @@ msgstr "端点公钥"
msgid "Endpoint-Independent NAT"
msgstr "端点独立 NAT"
-#: htdocs/luci-static/resources/view/fchomo/client.js:736
-#: htdocs/luci-static/resources/view/fchomo/client.js:887
+#: htdocs/luci-static/resources/view/fchomo/client.js:740
+#: htdocs/luci-static/resources/view/fchomo/client.js:891
msgid "Entry"
msgstr "条目"
@@ -985,17 +995,17 @@ msgstr "条目"
msgid "Error"
msgstr "错误"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1190
+#: htdocs/luci-static/resources/view/fchomo/client.js:1194
msgid ""
"Exceeding this triggers a forced health check. 5 will be used "
"if empty."
msgstr "超过此限制将会触发强制健康检查。留空则使用 5。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2024
+#: htdocs/luci-static/resources/view/fchomo/node.js:2035
msgid "Exclude matched node types."
msgstr "排除匹配的节点类型。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1244
+#: htdocs/luci-static/resources/view/fchomo/client.js:1248
msgid ""
"Exclude matched node types. Available types see here."
@@ -1003,8 +1013,8 @@ msgstr ""
"排除匹配的节点类型。可用类型请参见此处。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:2017
+#: htdocs/luci-static/resources/view/fchomo/client.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:2028
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配关键词或表达式的节点。"
@@ -1012,69 +1022,74 @@ msgstr "排除匹配关键词或表达式的节点。"
msgid "Expand/Collapse result"
msgstr "展开/收起 结果"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:2002
+#: htdocs/luci-static/resources/view/fchomo/client.js:1186
+#: htdocs/luci-static/resources/view/fchomo/node.js:2013
msgid "Expected HTTP code. 204 will be used if empty."
msgstr "预期的 HTTP code。留空则使用 204。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2004
+#: htdocs/luci-static/resources/view/fchomo/client.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Expected status"
msgstr "预期状态"
#: htdocs/luci-static/resources/fchomo.js:452
#: htdocs/luci-static/resources/fchomo.js:455
#: htdocs/luci-static/resources/fchomo.js:458
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1788
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1814
-#: htdocs/luci-static/resources/fchomo.js:1821
-#: htdocs/luci-static/resources/fchomo.js:1837
+#: htdocs/luci-static/resources/fchomo.js:1760
+#: htdocs/luci-static/resources/fchomo.js:1768
+#: htdocs/luci-static/resources/fchomo.js:1776
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1802
+#: htdocs/luci-static/resources/fchomo.js:1809
+#: htdocs/luci-static/resources/fchomo.js:1825
+#: htdocs/luci-static/resources/fchomo.js:1834
#: htdocs/luci-static/resources/fchomo.js:1846
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1849
+#: htdocs/luci-static/resources/fchomo.js:1859
#: htdocs/luci-static/resources/fchomo.js:1871
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
-#: htdocs/luci-static/resources/fchomo.js:1896
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1943
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
-#: htdocs/luci-static/resources/fchomo.js:1969
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1874
+#: htdocs/luci-static/resources/fchomo.js:1884
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1931
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
+#: htdocs/luci-static/resources/fchomo.js:1957
+#: htdocs/luci-static/resources/fchomo.js:1966
#: htdocs/luci-static/resources/fchomo/listeners.js:363
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/fchomo/listeners.js:741
-#: htdocs/luci-static/resources/fchomo/listeners.js:772
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:751
+#: htdocs/luci-static/resources/fchomo/listeners.js:782
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
#: htdocs/luci-static/resources/view/fchomo/client.js:71
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
msgid "Expecting: %s"
msgstr "请输入:%s"
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:894
-#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
+msgid "Expecting: Least one of %s or %s."
+msgstr "请输入:至少包含 %s 或 %s 中的一个。"
+
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "Expecting: only support %s."
msgstr "请输入:仅支援 %s。"
@@ -1084,29 +1099,29 @@ msgstr "实验性"
#: htdocs/luci-static/resources/view/fchomo/client.js:553
#: htdocs/luci-static/resources/view/fchomo/client.js:566
-#: htdocs/luci-static/resources/view/fchomo/client.js:574
-#: htdocs/luci-static/resources/view/fchomo/client.js:581
-#: htdocs/luci-static/resources/view/fchomo/client.js:591
-#: htdocs/luci-static/resources/view/fchomo/client.js:598
-#: htdocs/luci-static/resources/view/fchomo/client.js:606
-#: htdocs/luci-static/resources/view/fchomo/client.js:613
-#: htdocs/luci-static/resources/view/fchomo/client.js:680
+#: htdocs/luci-static/resources/view/fchomo/client.js:580
+#: htdocs/luci-static/resources/view/fchomo/client.js:587
+#: htdocs/luci-static/resources/view/fchomo/client.js:597
+#: htdocs/luci-static/resources/view/fchomo/client.js:604
+#: htdocs/luci-static/resources/view/fchomo/client.js:612
+#: htdocs/luci-static/resources/view/fchomo/client.js:619
+#: htdocs/luci-static/resources/view/fchomo/client.js:686
msgid "Factor"
msgstr "条件"
-#: htdocs/luci-static/resources/fchomo.js:1713
+#: htdocs/luci-static/resources/fchomo.js:1701
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:1666
+#: htdocs/luci-static/resources/fchomo.js:1654
msgid "Failed to generate %s, error: %s."
msgstr "生成 %s 失败,错误:%s。"
-#: htdocs/luci-static/resources/fchomo.js:2078
+#: htdocs/luci-static/resources/fchomo.js:2066
msgid "Failed to upload %s, error: %s."
msgstr "上传 %s 失败,错误:%s。"
-#: htdocs/luci-static/resources/fchomo.js:2097
+#: htdocs/luci-static/resources/fchomo.js:2085
msgid "Failed to upload, error: %s."
msgstr "上传失败,错误:%s。"
@@ -1115,40 +1130,40 @@ msgstr "上传失败,错误:%s。"
msgid "Fallback"
msgstr "自动回退"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1481
-#: htdocs/luci-static/resources/view/fchomo/client.js:1494
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1498
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Fallback DNS server"
msgstr "後備 DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1881
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
+#: htdocs/luci-static/resources/view/fchomo/client.js:1885
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
msgid "Fallback filter"
msgstr "後備过滤器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1234
-#: htdocs/luci-static/resources/view/fchomo/node.js:2011
+#: htdocs/luci-static/resources/view/fchomo/client.js:1238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2022
msgid "Filter nodes that meet keywords or regexps."
msgstr "过滤匹配关键字或表达式的节点。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1748
+#: htdocs/luci-static/resources/view/fchomo/client.js:1752
msgid "Filter record type:"
msgstr "过滤记录类型:"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1716
-#: htdocs/luci-static/resources/view/fchomo/client.js:1732
+#: htdocs/luci-static/resources/view/fchomo/client.js:1720
+#: htdocs/luci-static/resources/view/fchomo/client.js:1736
msgid "Filter record: %s"
msgstr "过滤 %s 记录"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1480
+#: htdocs/luci-static/resources/view/fchomo/client.js:1484
msgid "Final DNS server"
msgstr "兜底 DNS 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1482
+#: htdocs/luci-static/resources/view/fchomo/client.js:1486
msgid "Final DNS server (For non-poisoned domains)"
msgstr "兜底 DNS 服务器 (用于未被投毒污染的域名)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1484
+#: htdocs/luci-static/resources/view/fchomo/client.js:1488
msgid "Final DNS server (For poisoned domains)"
msgstr "兜底 DNS 服务器 (用于已被投毒污染的域名)"
@@ -1156,12 +1171,12 @@ msgstr "兜底 DNS 服务器 (用于已被投毒污染的域名)"
msgid "Firewall"
msgstr "防火墙"
-#: htdocs/luci-static/resources/fchomo/listeners.js:532
-#: htdocs/luci-static/resources/view/fchomo/node.js:687
+#: htdocs/luci-static/resources/fchomo/listeners.js:535
+#: htdocs/luci-static/resources/view/fchomo/node.js:698
msgid "Flow"
msgstr "流控"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1223
+#: htdocs/luci-static/resources/view/fchomo/client.js:1227
msgid ""
"For details, see %s."
@@ -1169,9 +1184,9 @@ msgstr ""
"实现细节请参阅 %s."
-#: htdocs/luci-static/resources/view/fchomo/client.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1877
-#: htdocs/luci-static/resources/view/fchomo/node.js:2003
+#: htdocs/luci-static/resources/view/fchomo/client.js:1187
+#: htdocs/luci-static/resources/view/fchomo/node.js:1888
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid ""
"For format see %s."
@@ -1179,8 +1194,8 @@ msgstr ""
"格式请参阅 %s"
"a>."
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
-#: htdocs/luci-static/resources/view/fchomo/node.js:870
+#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:881
msgid "Force DNS remote resolution."
msgstr "强制 DNS 远程解析。"
@@ -1199,7 +1214,7 @@ msgstr "格式"
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1323
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "GET"
msgstr ""
@@ -1208,7 +1223,7 @@ msgid "GFW list version"
msgstr "GFW 域名列表版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:196
-#: htdocs/luci-static/resources/view/fchomo/node.js:334
+#: htdocs/luci-static/resources/view/fchomo/node.js:345
msgid "Gecko"
msgstr ""
@@ -1217,9 +1232,9 @@ msgid "General"
msgstr "常规"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
-#: htdocs/luci-static/resources/view/fchomo/client.js:1038
+#: htdocs/luci-static/resources/view/fchomo/client.js:1042
#: htdocs/luci-static/resources/view/fchomo/node.js:233
-#: htdocs/luci-static/resources/view/fchomo/node.js:1687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1698
msgid "General fields"
msgstr "常规字段"
@@ -1234,10 +1249,10 @@ msgstr "常规设置"
#: htdocs/luci-static/resources/fchomo/listeners.js:341
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:387
-#: htdocs/luci-static/resources/fchomo/listeners.js:845
-#: htdocs/luci-static/resources/fchomo/listeners.js:1078
+#: htdocs/luci-static/resources/fchomo/listeners.js:855
+#: htdocs/luci-static/resources/fchomo/listeners.js:1088
#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1845
+#: htdocs/luci-static/resources/view/fchomo/node.js:1856
msgid "Generate"
msgstr "生成"
@@ -1253,17 +1268,17 @@ msgstr "GeoIP 版本"
msgid "GeoSite version"
msgstr "GeoSite 版本"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1891
+#: htdocs/luci-static/resources/view/fchomo/client.js:1895
msgid "Geoip code"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1888
+#: htdocs/luci-static/resources/view/fchomo/client.js:1892
msgid "Geoip enable"
msgstr "Geoip 启用"
-#: htdocs/luci-static/resources/view/fchomo/client.js:861
-#: htdocs/luci-static/resources/view/fchomo/client.js:870
-#: htdocs/luci-static/resources/view/fchomo/client.js:1900
+#: htdocs/luci-static/resources/view/fchomo/client.js:865
+#: htdocs/luci-static/resources/view/fchomo/client.js:874
+#: htdocs/luci-static/resources/view/fchomo/client.js:1904
msgid "Geosite"
msgstr ""
@@ -1284,7 +1299,7 @@ msgstr "全局"
msgid "Global Authentication"
msgstr "全局认证"
-#: htdocs/luci-static/resources/view/fchomo/node.js:711
+#: htdocs/luci-static/resources/view/fchomo/node.js:722
msgid "Global padding"
msgstr "全局填充"
@@ -1300,58 +1315,58 @@ msgstr "谷歌 FCM"
msgid "Grant access to fchomo configuration"
msgstr "授予 fchomo 访问 UCI 配置的权限"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1063
+#: htdocs/luci-static/resources/view/fchomo/client.js:1067
msgid "Group"
msgstr "组"
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:190
-#: htdocs/luci-static/resources/fchomo/listeners.js:578
-#: htdocs/luci-static/resources/view/fchomo/node.js:905
-#: htdocs/luci-static/resources/view/fchomo/node.js:1272
+#: htdocs/luci-static/resources/fchomo/listeners.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:916
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:301
-#: htdocs/luci-static/resources/view/fchomo/node.js:1345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:312
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
msgid "HTTP header"
msgstr "HTTP header"
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:505
msgid "HTTP mask"
msgstr "HTTP 伪装"
#: htdocs/luci-static/resources/fchomo/listeners.js:435
-#: htdocs/luci-static/resources/view/fchomo/node.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:510
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "HTTP mask mode"
msgstr "HTTP 伪装模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:535
msgid "HTTP mask multiplex"
msgstr "HTTP 伪装多路复用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "HTTP mask: %s"
msgstr "HTTP 伪装: %s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "HTTP request method"
msgstr "HTTP 请求方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:531
msgid "HTTP root path"
msgstr "HTTP 根路径"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1647
+#: htdocs/luci-static/resources/view/fchomo/client.js:1651
msgid "HTTP/3"
msgstr ""
@@ -1361,9 +1376,9 @@ msgid ""
"returned if empty."
msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
-#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1302
msgid "HTTPUpgrade"
msgstr ""
@@ -1371,16 +1386,16 @@ msgstr ""
msgid "Handle domain"
msgstr "处理域名"
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:427
msgid "Handshake mode"
msgstr "握手模式"
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
msgid "Handshake target that supports TLS 1.3"
msgstr "握手目标 (支援 TLS 1.3)"
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:962
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Handshake timeout"
msgstr "握手超时"
@@ -1388,57 +1403,57 @@ msgstr "握手超时"
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr "用于读取客户端真实 IP 的 Header(例如 X-Forwarded-For)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:809
msgid "Health check"
msgstr "健康检查"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1152
-#: htdocs/luci-static/resources/view/fchomo/node.js:1971
+#: htdocs/luci-static/resources/view/fchomo/client.js:1156
+#: htdocs/luci-static/resources/view/fchomo/node.js:1982
msgid "Health check URL"
msgstr "健康检查 URL"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:2001
+#: htdocs/luci-static/resources/view/fchomo/client.js:1185
+#: htdocs/luci-static/resources/view/fchomo/node.js:2012
msgid "Health check expected status"
msgstr "健康检查预期状态"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:1981
+#: htdocs/luci-static/resources/view/fchomo/client.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
msgid "Health check interval"
msgstr "健康检查间隔"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:1988
+#: htdocs/luci-static/resources/view/fchomo/client.js:1172
+#: htdocs/luci-static/resources/view/fchomo/node.js:1999
msgid "Health check timeout"
msgstr "健康检查超时"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1040
-#: htdocs/luci-static/resources/view/fchomo/node.js:1689
+#: htdocs/luci-static/resources/view/fchomo/client.js:1044
+#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health fields"
msgstr "健康字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:627
msgid "Heartbeat interval"
msgstr "心跳间隔"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1249
+#: htdocs/luci-static/resources/view/fchomo/client.js:1253
msgid "Hidden"
msgstr "隐藏"
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
msgid "Host that supports TLS 1.3"
msgstr "主机名称 (支援 TLS 1.3)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:371
+#: htdocs/luci-static/resources/view/fchomo/node.js:382
msgid "Host-key"
msgstr "主机密钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:366
+#: htdocs/luci-static/resources/view/fchomo/node.js:377
msgid "Host-key algorithms"
msgstr "主机密钥算法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "Host/SNI override"
msgstr "主机/SNI 覆盖"
@@ -1461,21 +1476,21 @@ msgstr "Hysteria2 Realm"
msgid "Hysteria2 Realm fields"
msgstr "Hysteria2 Realm 字段"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
-#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
+#: htdocs/luci-static/resources/view/fchomo/client.js:1911
msgid "IP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1904
+#: htdocs/luci-static/resources/view/fchomo/client.js:1909
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/node.js:584
msgid "IP override"
msgstr "IP 覆写"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1565
-#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1968
msgid "IP version"
msgstr "IP 版本"
@@ -1487,28 +1502,28 @@ msgstr "仅 IPv4"
msgid "IPv6 only"
msgstr "仅 IPv6"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1463
+#: htdocs/luci-static/resources/view/fchomo/client.js:1467
#: htdocs/luci-static/resources/view/fchomo/global.js:436
msgid "IPv6 support"
msgstr "IPv6 支持"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1259
msgid "Icon"
msgstr "图标"
-#: htdocs/luci-static/resources/view/fchomo/node.js:660
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Idle session check interval"
msgstr "闲置会话检查间隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:667
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
msgid "Idle session timeout"
msgstr "闲置会话超时"
-#: htdocs/luci-static/resources/fchomo/listeners.js:483
+#: htdocs/luci-static/resources/fchomo/listeners.js:486
msgid "Idle timeout"
msgstr "闲置超时"
-#: htdocs/luci-static/resources/fchomo.js:1814
+#: htdocs/luci-static/resources/fchomo.js:1802
msgid "If All ports is selected, uncheck others"
msgstr "如果选择了“所有端口”,则取消选中“其他”"
@@ -1524,20 +1539,20 @@ msgstr "忽略客户端带宽"
msgid "Import"
msgstr "导入"
-#: htdocs/luci-static/resources/view/fchomo/client.js:975
-#: htdocs/luci-static/resources/view/fchomo/client.js:1032
-#: htdocs/luci-static/resources/view/fchomo/client.js:1278
-#: htdocs/luci-static/resources/view/fchomo/client.js:1329
-#: htdocs/luci-static/resources/view/fchomo/client.js:1400
-#: htdocs/luci-static/resources/view/fchomo/client.js:1424
-#: htdocs/luci-static/resources/view/fchomo/client.js:1528
-#: htdocs/luci-static/resources/view/fchomo/client.js:1566
-#: htdocs/luci-static/resources/view/fchomo/client.js:1783
-#: htdocs/luci-static/resources/view/fchomo/client.js:1800
-#: htdocs/luci-static/resources/view/fchomo/client.js:1835
-#: htdocs/luci-static/resources/view/fchomo/client.js:1856
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/client.js:979
+#: htdocs/luci-static/resources/view/fchomo/client.js:1036
+#: htdocs/luci-static/resources/view/fchomo/client.js:1282
+#: htdocs/luci-static/resources/view/fchomo/client.js:1333
+#: htdocs/luci-static/resources/view/fchomo/client.js:1404
+#: htdocs/luci-static/resources/view/fchomo/client.js:1428
+#: htdocs/luci-static/resources/view/fchomo/client.js:1532
+#: htdocs/luci-static/resources/view/fchomo/client.js:1570
+#: htdocs/luci-static/resources/view/fchomo/client.js:1787
+#: htdocs/luci-static/resources/view/fchomo/client.js:1804
+#: htdocs/luci-static/resources/view/fchomo/client.js:1839
+#: htdocs/luci-static/resources/view/fchomo/client.js:1860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
+#: htdocs/luci-static/resources/view/fchomo/node.js:1686
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "Import mihomo config"
@@ -1551,61 +1566,61 @@ msgstr "导入规则集链接"
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:182
-#: htdocs/luci-static/resources/view/fchomo/node.js:320
-#: htdocs/luci-static/resources/view/fchomo/node.js:326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1915
-#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:331
+#: htdocs/luci-static/resources/view/fchomo/node.js:337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
msgid "In Mbps."
msgstr "单位为 Mbps。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1765
+#: htdocs/luci-static/resources/view/fchomo/node.js:1776
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
msgid "In bytes. %s will be used if empty."
msgstr "单位为字节。留空则使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:617
-#: htdocs/luci-static/resources/view/fchomo/node.js:624
+#: htdocs/luci-static/resources/view/fchomo/node.js:628
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "In millisecond."
msgstr "单位为毫秒。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1169
-#: htdocs/luci-static/resources/view/fchomo/client.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1989
+#: htdocs/luci-static/resources/view/fchomo/client.js:1173
+#: htdocs/luci-static/resources/view/fchomo/client.js:1219
+#: htdocs/luci-static/resources/view/fchomo/node.js:2000
msgid "In millisecond. %s will be used if empty."
msgstr "单位为毫秒。留空则使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "In milliseconds."
msgstr "单位为毫秒。"
#: htdocs/luci-static/resources/fchomo/listeners.js:418
-#: htdocs/luci-static/resources/fchomo/listeners.js:484
-#: htdocs/luci-static/resources/fchomo/listeners.js:491
-#: htdocs/luci-static/resources/view/fchomo/node.js:661
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
-#: htdocs/luci-static/resources/view/fchomo/node.js:1361
+#: htdocs/luci-static/resources/fchomo/listeners.js:487
+#: htdocs/luci-static/resources/fchomo/listeners.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:1372
msgid "In seconds."
msgstr "单位为秒。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1162
+#: htdocs/luci-static/resources/view/fchomo/client.js:1166
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:314
-#: htdocs/luci-static/resources/view/fchomo/node.js:1771
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
+#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1782
+#: htdocs/luci-static/resources/view/fchomo/node.js:1993
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
msgid "In seconds. %s will be used if empty."
msgstr "单位为秒。留空则使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:963
+#: htdocs/luci-static/resources/view/fchomo/node.js:974
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr "单位为秒。配置后握手时不受外层连接超时影响。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:761
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:1048
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1619,27 +1634,27 @@ msgstr ""
msgid "Inbound"
msgstr "入站"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1116
+#: htdocs/luci-static/resources/view/fchomo/client.js:1120
msgid "Include all"
msgstr "引入所有"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1121
+#: htdocs/luci-static/resources/view/fchomo/client.js:1125
msgid "Include all node"
msgstr "引入所有节点"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1126
+#: htdocs/luci-static/resources/view/fchomo/client.js:1130
msgid "Include all provider"
msgstr "引入所有供应商"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1127
+#: htdocs/luci-static/resources/view/fchomo/client.js:1131
msgid "Includes all Provider."
msgstr "引入所有供应商。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1117
+#: htdocs/luci-static/resources/view/fchomo/client.js:1121
msgid "Includes all Proxy Node and Provider."
msgstr "引入所有代理节点及供应商。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1122
+#: htdocs/luci-static/resources/view/fchomo/client.js:1126
msgid "Includes all Proxy Node."
msgstr "引入所有代理节点。"
@@ -1647,7 +1662,7 @@ msgstr "引入所有代理节点。"
msgid "Info"
msgstr "信息"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1704
+#: htdocs/luci-static/resources/view/fchomo/node.js:1715
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Inline"
msgstr "内嵌"
@@ -1660,61 +1675,61 @@ msgstr "接口控制"
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:173
#: htdocs/luci-static/resources/fchomo.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1942
msgid "Keep default"
msgstr "保持缺省"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "Keep-alive period"
msgstr "Keep-alive 周期"
#: htdocs/luci-static/resources/fchomo/listeners.js:296
-#: htdocs/luci-static/resources/view/fchomo/node.js:430
+#: htdocs/luci-static/resources/view/fchomo/node.js:441
msgid "Key"
msgstr "密钥"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1005
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/fchomo/listeners.js:1015
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "Key path"
msgstr "证书路径"
-#: htdocs/luci-static/resources/fchomo/listeners.js:780
+#: htdocs/luci-static/resources/fchomo/listeners.js:790
msgid "Keypairs"
msgstr "密钥对"
#: htdocs/luci-static/resources/fchomo/listeners.js:128
-#: htdocs/luci-static/resources/view/fchomo/client.js:1043
-#: htdocs/luci-static/resources/view/fchomo/client.js:1335
-#: htdocs/luci-static/resources/view/fchomo/client.js:1430
-#: htdocs/luci-static/resources/view/fchomo/client.js:1572
-#: htdocs/luci-static/resources/view/fchomo/client.js:1806
-#: htdocs/luci-static/resources/view/fchomo/client.js:1862
+#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1339
+#: htdocs/luci-static/resources/view/fchomo/client.js:1434
+#: 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:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:2050
+#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
msgid "Label"
msgstr "标签"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1175
-#: htdocs/luci-static/resources/view/fchomo/node.js:1995
+#: htdocs/luci-static/resources/view/fchomo/client.js:1179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2006
msgid "Lazy"
msgstr "怠惰状态"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1913
+#: htdocs/luci-static/resources/view/fchomo/client.js:1918
msgid "Lazy query"
msgstr "怠惰查询"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1919
msgid "Lazy query."
msgstr "怠惰查询。"
#: htdocs/luci-static/resources/fchomo/listeners.js:437
-#: htdocs/luci-static/resources/view/fchomo/node.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:512
msgid "Legacy"
msgstr "传统"
-#: htdocs/luci-static/resources/fchomo/listeners.js:541
+#: htdocs/luci-static/resources/fchomo/listeners.js:544
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
"compatibility purposes only, use of alterId > 1 is not recommended."
@@ -1726,8 +1741,8 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr "有时性能更好。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:986
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/fchomo/listeners.js:996
+#: htdocs/luci-static/resources/view/fchomo/node.js:1134
msgid "List of supported application level protocols, in order of preference."
msgstr "支持的应用层协议协商列表,按顺序排列。"
@@ -1744,7 +1759,7 @@ msgid "Listen interfaces"
msgstr "监听接口"
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/client.js:1455
+#: htdocs/luci-static/resources/view/fchomo/client.js:1459
msgid "Listen port"
msgstr "监听端口"
@@ -1752,7 +1767,7 @@ msgstr "监听端口"
msgid "Listen ports"
msgstr "监听端口"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1460
+#: htdocs/luci-static/resources/view/fchomo/client.js:1464
msgid "Listen routing mark (Fwmark)"
msgstr "监听路由标记 (Fwmark)"
@@ -1760,18 +1775,18 @@ msgstr "监听路由标记 (Fwmark)"
msgid "Load balance"
msgstr "负载均衡"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1702
+#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
msgid "Local"
msgstr "本地"
-#: htdocs/luci-static/resources/view/fchomo/node.js:754
-#: htdocs/luci-static/resources/view/fchomo/node.js:817
+#: htdocs/luci-static/resources/view/fchomo/node.js:765
+#: htdocs/luci-static/resources/view/fchomo/node.js:828
msgid "Local IPv6 address"
msgstr "本地 IPv6 地址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:809
+#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:820
msgid "Local address"
msgstr "本地地址"
@@ -1795,10 +1810,10 @@ msgstr "日志等级"
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Low-entropy data stream"
msgstr "低熵数据流"
@@ -1807,8 +1822,8 @@ msgid "Lowercase only"
msgstr "仅限小写"
#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:863
+#: htdocs/luci-static/resources/view/fchomo/node.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:874
msgid "MTU"
msgstr ""
@@ -1820,70 +1835,70 @@ msgstr ""
msgid "Masquerade"
msgstr "伪装"
-#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:870
msgid "Match domain. Support wildcards."
msgstr "匹配域名。支持通配符。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1910
+#: htdocs/luci-static/resources/view/fchomo/client.js:1915
msgid "Match domain. Support wildcards."
msgstr "匹配域名。支持通配符。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:871
+#: htdocs/luci-static/resources/view/fchomo/client.js:875
msgid "Match geosite."
msgstr "匹配 geosite。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1901
+#: htdocs/luci-static/resources/view/fchomo/client.js:1905
msgid "Match geosite."
msgstr "匹配 geosite。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1892
+#: htdocs/luci-static/resources/view/fchomo/client.js:1896
msgid "Match response with geoip."
msgstr "匹配响应通过 geoip。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1905
+#: htdocs/luci-static/resources/view/fchomo/client.js:1910
msgid "Match response with ipcidr."
msgstr "匹配响应通过 ipcidr"
-#: htdocs/luci-static/resources/view/fchomo/client.js:876
+#: htdocs/luci-static/resources/view/fchomo/client.js:880
msgid "Match rule set."
msgstr "匹配规则集。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1367
+#: htdocs/luci-static/resources/view/fchomo/node.js:1378
msgid "Max Early Data"
msgstr "前置数据最大值"
-#: htdocs/luci-static/resources/fchomo/listeners.js:477
-#: htdocs/luci-static/resources/view/fchomo/node.js:598
+#: htdocs/luci-static/resources/fchomo/listeners.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
msgid "Max UDP relay packet size"
msgstr "UDP 中继数据包最大尺寸"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/fchomo/listeners.js:1214
msgid "Max buffered posts"
msgstr "POST 最大缓冲"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Max concurrency"
msgstr "最大并发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Max connections"
msgstr "最大连接数"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1189
+#: htdocs/luci-static/resources/view/fchomo/client.js:1193
msgid "Max count of failures"
msgstr "最大失败次数"
#: htdocs/luci-static/resources/fchomo/listeners.js:181
-#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:336
msgid "Max download speed"
msgstr "最大下载速度"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1407
+#: htdocs/luci-static/resources/fchomo/listeners.js:1225
+#: htdocs/luci-static/resources/view/fchomo/node.js:1418
msgid "Max each POST bytes"
msgstr "POST 最大字节数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:630
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "Max open streams"
msgstr "限制打开流的数量"
@@ -1895,29 +1910,29 @@ msgstr "最大 Realms 总数"
msgid "Max realms per client IP"
msgstr "每客户端 IP 最大 Realms 总数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
msgid "Max request times"
msgstr "最大请求次数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
msgid "Max reusable seconds"
msgstr "最大可复用秒数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
msgid "Max reuse times"
msgstr "最大复用次数"
#: htdocs/luci-static/resources/fchomo/listeners.js:175
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
+#: htdocs/luci-static/resources/view/fchomo/node.js:330
msgid "Max upload speed"
msgstr "最大上传速度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Maximum connections"
msgstr "最大连接数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1489
+#: htdocs/luci-static/resources/view/fchomo/node.js:1500
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
@@ -1926,18 +1941,18 @@ msgstr ""
"%s 冲突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:402
-#: htdocs/luci-static/resources/view/fchomo/node.js:473
+#: htdocs/luci-static/resources/view/fchomo/node.js:484
msgid "Maximum padding rate"
msgstr "最大填充率"
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr "最大填充率必须大于等于最小填充率。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1488
+#: htdocs/luci-static/resources/view/fchomo/node.js:1499
msgid "Maximum streams"
msgstr "最大流数量"
@@ -1946,7 +1961,7 @@ msgstr "最大流数量"
msgid "Mieru"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:930
+#: htdocs/luci-static/resources/view/fchomo/client.js:934
#: htdocs/luci-static/resources/view/fchomo/log.js:149
#: htdocs/luci-static/resources/view/fchomo/log.js:154
msgid "Mihomo client"
@@ -1958,26 +1973,26 @@ msgstr "Mihomo 客户端"
msgid "Mihomo server"
msgstr "Mihomo 服务端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:674
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Min of idle sessions to keep"
msgstr "要保留的最少闲置会话数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1413
+#: htdocs/luci-static/resources/view/fchomo/node.js:1424
msgid "Min posts interval"
msgstr "POST 请求最小间隔时间"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1480
+#: htdocs/luci-static/resources/view/fchomo/node.js:1491
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
#: htdocs/luci-static/resources/fchomo/listeners.js:395
-#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Minimum padding rate"
msgstr "最小填充率"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1479
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1490
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Minimum streams"
msgstr "最小流数量"
@@ -1994,7 +2009,8 @@ msgstr "混合 系统 TCP 栈和 gVisor UDP 栈。"
msgid "Mixed port"
msgstr "混合端口"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1457
+#: htdocs/luci-static/resources/fchomo/listeners.js:1232
+#: htdocs/luci-static/resources/view/fchomo/node.js:1468
msgid "Multiplex"
msgstr "多路复用"
@@ -2003,20 +2019,20 @@ msgstr "多路复用"
msgid "Multiplex fields"
msgstr "多路复用字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:407
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
msgid "Multiplexing"
msgstr "多路复用"
-#: htdocs/luci-static/resources/view/fchomo/client.js:624
-#: htdocs/luci-static/resources/view/fchomo/client.js:702
+#: htdocs/luci-static/resources/view/fchomo/client.js:630
+#: htdocs/luci-static/resources/view/fchomo/client.js:706
msgid "NOT"
msgstr "NOT"
-#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:639
msgid "Name of the Proxy group as outbound."
msgstr "出站代理组的名称。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1777
+#: htdocs/luci-static/resources/view/fchomo/node.js:1788
msgid "Name of the Proxy group to download provider."
msgstr "用于下载供应商订阅的代理组名称。"
@@ -2024,11 +2040,11 @@ msgstr "用于下载供应商订阅的代理组名称。"
msgid "Name of the Proxy group to download rule set."
msgstr "用于下载规则集订阅的代理组名称。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:618
+#: htdocs/luci-static/resources/fchomo/listeners.js:628
msgid "Name of the Sub rule used for inbound matching."
msgstr "用于入站匹配的子规则名称。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Native UDP"
msgstr "原生 UDP"
@@ -2036,15 +2052,15 @@ msgstr "原生 UDP"
msgid "Native appearance"
msgstr "原生外观"
-#: htdocs/luci-static/resources/view/fchomo/node.js:766
+#: htdocs/luci-static/resources/view/fchomo/node.js:777
msgid "Network"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:660
+#: htdocs/luci-static/resources/fchomo/listeners.js:670
msgid "Network type"
msgstr "网络类型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1944
msgid "No"
msgstr ""
@@ -2052,20 +2068,20 @@ msgstr ""
msgid "No Authentication IP ranges"
msgstr "无需认证的 IP 范围"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1209
msgid "No SSE header"
msgstr "无 SSE header"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
msgid "No add'l params"
msgstr "无附加参数"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
+#: htdocs/luci-static/resources/view/fchomo/node.js:1408
msgid "No gRPC header"
msgstr "无 gRPC header"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1176
-#: htdocs/luci-static/resources/view/fchomo/node.js:1996
+#: htdocs/luci-static/resources/view/fchomo/client.js:1180
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "No testing is performed when this provider node is not in use."
msgstr "当此供应商的节点未使用时,不执行任何测试。"
@@ -2077,27 +2093,27 @@ msgstr "未找到有效的%s。"
msgid "No valid rule-set link found."
msgstr "未找到有效的规则集链接。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1076
+#: htdocs/luci-static/resources/view/fchomo/client.js:1080
#: htdocs/luci-static/resources/view/fchomo/node.js:228
msgid "Node"
msgstr "节点"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:2016
+#: htdocs/luci-static/resources/view/fchomo/client.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:2027
msgid "Node exclude filter"
msgstr "排除节点"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2023
+#: htdocs/luci-static/resources/view/fchomo/client.js:1247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2034
msgid "Node exclude type"
msgstr "排除节点类型"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1233
-#: htdocs/luci-static/resources/view/fchomo/node.js:2010
+#: htdocs/luci-static/resources/view/fchomo/client.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Node filter"
msgstr "过滤节点"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1214
+#: htdocs/luci-static/resources/view/fchomo/client.js:1218
msgid "Node switch tolerance"
msgstr "节点切换容差"
@@ -2109,49 +2125,49 @@ msgstr "无"
msgid "Not Installed"
msgstr "未安装"
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Not Running"
msgstr "未在运行"
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
+#: htdocs/luci-static/resources/view/fchomo/node.js:538
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "ON"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
msgid "Obfs Mode"
msgstr "Obfs 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:213
-#: htdocs/luci-static/resources/view/fchomo/node.js:351
+#: htdocs/luci-static/resources/view/fchomo/node.js:362
msgid "Obfuscate maximum packet size"
msgstr "混淆最大数据包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:208
-#: htdocs/luci-static/resources/view/fchomo/node.js:346
+#: htdocs/luci-static/resources/view/fchomo/node.js:357
msgid "Obfuscate minimum packet size"
msgstr "混淆最小数据包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:200
-#: htdocs/luci-static/resources/view/fchomo/node.js:338
+#: htdocs/luci-static/resources/view/fchomo/node.js:349
msgid "Obfuscate password"
msgstr "混淆密码"
#: htdocs/luci-static/resources/fchomo/listeners.js:193
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:331
-#: htdocs/luci-static/resources/view/fchomo/node.js:452
+#: htdocs/luci-static/resources/view/fchomo/node.js:342
+#: htdocs/luci-static/resources/view/fchomo/node.js:463
msgid "Obfuscate type"
msgstr "混淆类型"
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:372
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "Obfuscated as %s"
msgstr "混淆为%s"
@@ -2159,12 +2175,12 @@ 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:980
+#: htdocs/luci-static/resources/fchomo/listeners.js:990
msgid "Only applicable when %s are used as a frontend."
msgstr "仅当 %s 用作前端时适用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Only applies to the %s."
msgstr "只对%s生效。"
@@ -2172,7 +2188,7 @@ msgstr "只对%s生效。"
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr "只处理来自指定接口的流量。留空表示全部。"
-#: htdocs/luci-static/resources/fchomo.js:1586
+#: htdocs/luci-static/resources/fchomo.js:1574
msgid "Open Dashboard"
msgstr "打开面板"
@@ -2180,6 +2196,10 @@ msgstr "打开面板"
msgid "Operation mode"
msgstr "运行模式"
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
+msgid "Option is deprecated. Please use %s instead."
+msgstr "该选项已弃用,请使用%s作为代替。"
+
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:46
msgid "Outbound"
msgstr "出站"
@@ -2189,16 +2209,16 @@ msgstr "出站"
msgid "Override destination"
msgstr "覆盖目标地址"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1039
-#: htdocs/luci-static/resources/view/fchomo/node.js:1688
+#: htdocs/luci-static/resources/view/fchomo/client.js:1043
+#: htdocs/luci-static/resources/view/fchomo/node.js:1699
msgid "Override fields"
msgstr "覆盖字段"
-#: htdocs/luci-static/resources/view/fchomo/node.js:574
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Override the IP address of the server that DNS response."
msgstr "覆盖 DNS 回应的服务器的 IP 地址。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:904
+#: htdocs/luci-static/resources/view/fchomo/client.js:908
msgid "Override the Proxy group of DNS server."
msgstr "覆盖 DNS 服务器所使用的代理组。"
@@ -2206,11 +2226,11 @@ msgstr "覆盖 DNS 服务器所使用的代理组。"
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的域名覆盖连接目标。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1699
+#: htdocs/luci-static/resources/view/fchomo/client.js:1703
msgid "Override the existing ECS in original request."
msgstr "覆盖原始请求中已有的 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1229
+#: htdocs/luci-static/resources/view/fchomo/node.js:1240
msgid "Overrides the domain name used for HTTPS record queries."
msgstr "覆盖用于 HTTPS 记录查询的域名。"
@@ -2218,37 +2238,37 @@ msgstr "覆盖用于 HTTPS 记录查询的域名。"
msgid "Overview"
msgstr "概览"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:723
+#: htdocs/luci-static/resources/view/fchomo/node.js:734
msgid "Packet encoding"
msgstr "数据包编码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
+#: htdocs/luci-static/resources/view/fchomo/node.js:1413
msgid "Padding bytes"
msgstr "填充字节"
-#: htdocs/luci-static/resources/fchomo/listeners.js:521
+#: htdocs/luci-static/resources/fchomo/listeners.js:524
msgid "Padding scheme"
msgstr "填充方案"
-#: htdocs/luci-static/resources/fchomo/listeners.js:759
-#: htdocs/luci-static/resources/view/fchomo/node.js:1035
+#: htdocs/luci-static/resources/fchomo/listeners.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
msgid "Paddings"
msgstr "填充 (Paddings)"
#: htdocs/luci-static/resources/fchomo/listeners.js:166
#: htdocs/luci-static/resources/fchomo/listeners.js:263
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/view/fchomo/node.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:385
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:306
+#: htdocs/luci-static/resources/view/fchomo/node.js:396
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
msgid "Password"
msgstr "密码"
@@ -2260,13 +2280,13 @@ msgstr "捆绑包路径"
msgid "Path in bundle: %s"
msgstr "在捆绑包%s中的路径"
-#: htdocs/luci-static/resources/fchomo/listeners.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
+#: htdocs/luci-static/resources/fchomo/listeners.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
msgid "Payload"
msgstr "Payload"
-#: htdocs/luci-static/resources/view/fchomo/node.js:831
+#: htdocs/luci-static/resources/view/fchomo/node.js:842
msgid "Peer pubkic key"
msgstr "对端公钥"
@@ -2276,11 +2296,11 @@ msgid ""
"it is not needed."
msgstr "性能可能会略有下降,建议仅在需要时开启。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:858
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Periodically sends data packets to maintain connection persistence."
msgstr "定期发送数据包以维持连接持久性。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:857
+#: htdocs/luci-static/resources/view/fchomo/node.js:868
msgid "Persistent keepalive"
msgstr "持久连接"
@@ -2303,8 +2323,8 @@ msgid ""
"standards."
msgstr "链接格式标准请参考 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1725
-#: htdocs/luci-static/resources/view/fchomo/node.js:1751
+#: htdocs/luci-static/resources/view/fchomo/node.js:1736
+#: htdocs/luci-static/resources/view/fchomo/node.js:1762
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
msgid ""
@@ -2313,33 +2333,34 @@ msgid ""
msgstr ""
"请输入 %s。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:976
-#: htdocs/luci-static/resources/view/fchomo/client.js:1279
-#: htdocs/luci-static/resources/view/fchomo/client.js:1401
-#: htdocs/luci-static/resources/view/fchomo/client.js:1529
-#: htdocs/luci-static/resources/view/fchomo/client.js:1784
-#: htdocs/luci-static/resources/view/fchomo/client.js:1836
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:980
+#: htdocs/luci-static/resources/view/fchomo/client.js:1283
+#: htdocs/luci-static/resources/view/fchomo/client.js:1405
+#: htdocs/luci-static/resources/view/fchomo/client.js:1533
+#: htdocs/luci-static/resources/view/fchomo/client.js:1788
+#: htdocs/luci-static/resources/view/fchomo/client.js:1840
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
msgid "Please type %s fields of mihomo config."
msgstr "请输入 mihomo 配置的 %s 字段。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:557
-#: htdocs/luci-static/resources/view/fchomo/node.js:881
+#: htdocs/luci-static/resources/fchomo/listeners.js:560
+#: htdocs/luci-static/resources/view/fchomo/node.js:892
msgid "Plugin"
msgstr "插件"
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Plugin:"
msgstr "插件:"
@@ -2347,15 +2368,15 @@ msgstr "插件:"
msgid "Port"
msgstr "端口"
-#: htdocs/luci-static/resources/fchomo.js:1823
+#: htdocs/luci-static/resources/fchomo.js:1811
msgid "Port %s alrealy exists!"
msgstr "端口 %s 已存在!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:313
+#: htdocs/luci-static/resources/view/fchomo/node.js:324
msgid "Port hop interval"
msgstr "端口跳跃间隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:395
+#: htdocs/luci-static/resources/view/fchomo/node.js:406
msgid "Port range"
msgstr "端口范围"
@@ -2364,19 +2385,19 @@ msgid "Ports"
msgstr "端口"
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/node.js:308
+#: htdocs/luci-static/resources/view/fchomo/node.js:319
msgid "Ports pool"
msgstr "端口池"
#: htdocs/luci-static/resources/fchomo/listeners.js:225
#: htdocs/luci-static/resources/fchomo/listeners.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:544
-#: htdocs/luci-static/resources/view/fchomo/node.js:838
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Pre-shared key"
msgstr "预共享密钥"
-#: htdocs/luci-static/resources/fchomo/listeners.js:897
-#: htdocs/luci-static/resources/view/fchomo/node.js:1070
+#: htdocs/luci-static/resources/fchomo/listeners.js:907
+#: htdocs/luci-static/resources/view/fchomo/node.js:1081
msgid "Pre-shared key of rendezvous server"
msgstr "牵线服务器的预共享密钥"
@@ -2395,23 +2416,23 @@ msgstr "防止某些情况下的 ICMP 环回问题。Ping 不会显示实际延
#: htdocs/luci-static/resources/view/fchomo/global.js:760
#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1553
-#: htdocs/luci-static/resources/view/fchomo/node.js:1560
-#: htdocs/luci-static/resources/view/fchomo/node.js:1945
-#: htdocs/luci-static/resources/view/fchomo/node.js:1952
+#: htdocs/luci-static/resources/view/fchomo/node.js:1564
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1956
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Priority: Proxy Node > Global."
msgstr "优先级: 代理节点 > 全局。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:357
+#: htdocs/luci-static/resources/view/fchomo/node.js:368
msgid "Priv-key"
msgstr "密钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:361
+#: htdocs/luci-static/resources/view/fchomo/node.js:372
msgid "Priv-key passphrase"
msgstr "密钥密码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:742
+#: htdocs/luci-static/resources/view/fchomo/node.js:834
msgid "Private key"
msgstr "私钥"
@@ -2420,34 +2441,34 @@ msgid "Process matching mode"
msgstr "进程匹配模式"
#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1463
+#: htdocs/luci-static/resources/view/fchomo/node.js:1474
msgid "Protocol"
msgstr "协议"
-#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:729
msgid "Protocol parameter. Enable length block encryption."
msgstr "协议参数。启用长度块加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:723
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1096
-#: htdocs/luci-static/resources/view/fchomo/node.js:1575
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
-#: htdocs/luci-static/resources/view/fchomo/node.js:2061
+#: htdocs/luci-static/resources/view/fchomo/client.js:1100
+#: htdocs/luci-static/resources/view/fchomo/node.js:1586
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Provider"
msgstr "供应商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
msgid "Provider URL"
msgstr "供应商订阅 URL"
-#: htdocs/luci-static/resources/view/fchomo/client.js:950
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid "Proxy Group"
msgstr "代理组"
@@ -2464,24 +2485,24 @@ msgid "Proxy MAC-s"
msgstr "代理 MAC 地址"
#: htdocs/luci-static/resources/view/fchomo/node.js:219
-#: htdocs/luci-static/resources/view/fchomo/node.js:2060
+#: htdocs/luci-static/resources/view/fchomo/node.js:2071
msgid "Proxy Node"
msgstr "代理节点"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2036
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2047
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Proxy chain"
msgstr "代理链"
-#: htdocs/luci-static/resources/fchomo/listeners.js:628
-#: htdocs/luci-static/resources/view/fchomo/client.js:797
-#: htdocs/luci-static/resources/view/fchomo/client.js:1627
-#: htdocs/luci-static/resources/view/fchomo/node.js:1776
+#: htdocs/luci-static/resources/fchomo/listeners.js:638
+#: htdocs/luci-static/resources/view/fchomo/client.js:801
+#: htdocs/luci-static/resources/view/fchomo/client.js:1631
+#: htdocs/luci-static/resources/view/fchomo/node.js:1787
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
msgid "Proxy group"
msgstr "代理组"
-#: htdocs/luci-static/resources/view/fchomo/client.js:903
+#: htdocs/luci-static/resources/view/fchomo/client.js:907
msgid "Proxy group override"
msgstr "代理组覆盖"
@@ -2493,54 +2514,56 @@ msgstr "代理模式"
msgid "Proxy routerself"
msgstr "代理路由器自身"
-#: htdocs/luci-static/resources/view/fchomo/node.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:594
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "QUIC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:953
+#: htdocs/luci-static/resources/view/fchomo/client.js:957
#: htdocs/luci-static/resources/view/fchomo/server.js:44
msgid "Quick Reload"
msgstr "快速重载"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1093
-#: htdocs/luci-static/resources/view/fchomo/node.js:1243
+#: htdocs/luci-static/resources/fchomo/listeners.js:1103
+#: htdocs/luci-static/resources/view/fchomo/node.js:1254
msgid "REALITY"
msgstr "REALITY"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1258
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "REALITY X25519MLKEM768 PQC support"
msgstr "REALITY X25519MLKEM768 后量子加密支持"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/fchomo/listeners.js:1140
msgid "REALITY certificate issued to"
msgstr "REALITY 证书颁发给"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1098
+#: htdocs/luci-static/resources/fchomo/listeners.js:1108
msgid "REALITY handshake server"
msgstr "REALITY 握手服务器"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1105
+#: htdocs/luci-static/resources/fchomo/listeners.js:1115
msgid "REALITY private key"
msgstr "REALITY 私钥"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1248
+#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/view/fchomo/node.js:1259
msgid "REALITY public key"
msgstr "REALITY 公钥"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1253
+#: htdocs/luci-static/resources/fchomo/listeners.js:1134
+#: htdocs/luci-static/resources/view/fchomo/node.js:1264
msgid "REALITY short ID"
msgstr "REALITY 标识符"
-#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:268
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "REMATCH-NAME marking"
msgstr "REMATCH-NAME 打标"
-#: htdocs/luci-static/resources/fchomo/listeners.js:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
msgid "RTT"
msgstr ""
@@ -2556,13 +2579,13 @@ msgstr "留空将使用随机令牌。"
msgid "Randomized traffic characteristics"
msgstr "随机化流量特征"
-#: htdocs/luci-static/resources/fchomo/listeners.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/fchomo/listeners.js:896
+#: htdocs/luci-static/resources/view/fchomo/node.js:1070
msgid "Realm"
msgstr "Realm"
-#: htdocs/luci-static/resources/fchomo/listeners.js:902
-#: htdocs/luci-static/resources/view/fchomo/node.js:1075
+#: htdocs/luci-static/resources/fchomo/listeners.js:912
+#: htdocs/luci-static/resources/view/fchomo/node.js:1086
msgid "Realm ID"
msgstr "Realm ID"
@@ -2590,8 +2613,8 @@ msgstr "Redirect TCP + Tun UDP"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/fchomo.js:1579
-#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/fchomo.js:1567
+#: htdocs/luci-static/resources/view/fchomo/client.js:958
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
msgid "Reload"
@@ -2609,38 +2632,38 @@ msgstr "再路由"
msgid "Rematching routing rules"
msgstr "重新匹配路由规则"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:1714
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Remote"
msgstr "远程"
-#: htdocs/luci-static/resources/view/fchomo/node.js:786
-#: htdocs/luci-static/resources/view/fchomo/node.js:869
+#: htdocs/luci-static/resources/view/fchomo/node.js:797
+#: htdocs/luci-static/resources/view/fchomo/node.js:880
msgid "Remote DNS resolve"
msgstr "远程 DNS 解析"
-#: htdocs/luci-static/resources/fchomo.js:1744
+#: htdocs/luci-static/resources/fchomo.js:1732
msgid "Remove"
msgstr "移除"
-#: htdocs/luci-static/resources/fchomo.js:1749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
+#: htdocs/luci-static/resources/fchomo.js:1737
+#: htdocs/luci-static/resources/view/fchomo/node.js:1690
+#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
msgid "Remove idles"
msgstr "移除闲置"
-#: htdocs/luci-static/resources/fchomo/listeners.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1064
+#: htdocs/luci-static/resources/fchomo/listeners.js:901
+#: htdocs/luci-static/resources/view/fchomo/node.js:1075
msgid "Rendezvous server"
msgstr "牵线服务器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1875
+#: htdocs/luci-static/resources/view/fchomo/node.js:1886
msgid "Replace name"
msgstr "名称替换"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1876
+#: htdocs/luci-static/resources/view/fchomo/node.js:1887
msgid "Replace node name."
msgstr "替换节点名称"
@@ -2648,13 +2671,13 @@ msgstr "替换节点名称"
msgid "Request"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1178
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
-#: htdocs/luci-static/resources/view/fchomo/node.js:1338
+#: htdocs/luci-static/resources/fchomo/listeners.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:1342
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Request path"
msgstr "请求路径"
-#: htdocs/luci-static/resources/view/fchomo/node.js:623
+#: htdocs/luci-static/resources/view/fchomo/node.js:634
msgid "Request timeout"
msgstr "请求超时"
@@ -2667,11 +2690,11 @@ msgid "Require any"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1259
+#: htdocs/luci-static/resources/view/fchomo/node.js:1270
msgid "Requires server support."
msgstr "需要服务器支持。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:852
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
msgid "Reserved field bytes"
msgstr "保留字段字节"
@@ -2679,26 +2702,27 @@ msgstr "保留字段字节"
msgid "Resources management"
msgstr "资源管理"
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Restls script"
msgstr "Restls 剧本"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1250
+#: htdocs/luci-static/resources/view/fchomo/client.js:1254
msgid ""
"Returns hidden status in the API to hide the display of this proxy group."
msgstr "在 API 返回 hidden 状态,以隐藏该代理组显示。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1256
+#: htdocs/luci-static/resources/view/fchomo/client.js:1260
msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr "在 API 返回 icon 所输入的字符串,以在该代理组显示。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr "重用 HTTP 连接以减少每次建立连接的 RTT。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:525
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr "复用单条隧道使其内部承载多条目标连线。"
@@ -2715,10 +2739,10 @@ msgstr "路由 DSCP"
msgid "Routing GFW"
msgstr "路由 GFW 流量"
-#: htdocs/luci-static/resources/fchomo/listeners.js:613
+#: htdocs/luci-static/resources/fchomo/listeners.js:623
#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1559
-#: htdocs/luci-static/resources/view/fchomo/node.js:1951
+#: htdocs/luci-static/resources/view/fchomo/node.js:1570
+#: htdocs/luci-static/resources/view/fchomo/node.js:1962
msgid "Routing mark (Fwmark)"
msgstr "路由标记 (Fwmark)"
@@ -2739,8 +2763,8 @@ msgstr "路由模式将处理域名。"
msgid "Routing ports"
msgstr "路由端口"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1262
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1266
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Routing rule"
msgstr "路由规则"
@@ -2756,8 +2780,8 @@ msgstr "路由表 ID"
msgid "Rule"
msgstr "规则"
-#: htdocs/luci-static/resources/view/fchomo/client.js:862
-#: htdocs/luci-static/resources/view/fchomo/client.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:879
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
msgid "Rule set"
msgstr "规则集"
@@ -2774,7 +2798,7 @@ msgstr "规则集"
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Running"
msgstr "正在运行"
@@ -2798,21 +2822,21 @@ msgstr ""
msgid "STUN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:908
-#: htdocs/luci-static/resources/view/fchomo/node.js:1081
+#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1092
msgid "STUN servers"
msgstr "STUN 服务器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1354
+#: htdocs/luci-static/resources/view/fchomo/client.js:1358
msgid "SUB-RULE"
msgstr "SUB-RULE"
-#: htdocs/luci-static/resources/view/fchomo/node.js:982
+#: htdocs/luci-static/resources/view/fchomo/node.js:993
msgid "SUoT version"
msgstr "SUoT 版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:195
-#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:344
msgid "Salamander"
msgstr "Salamander"
@@ -2845,7 +2869,7 @@ msgstr "选择面板"
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr "以 50% 的概率发送随机 0-3333 字节的填充。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1924
+#: htdocs/luci-static/resources/view/fchomo/client.js:1929
msgid "Send queries to both the %s and the %s."
msgstr "同时向%s和%s发起查询。"
@@ -2854,9 +2878,9 @@ msgstr "同时向%s和%s发起查询。"
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:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
#: htdocs/luci-static/resources/view/fchomo/server.js:58
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:62
msgid "Server"
@@ -2866,9 +2890,9 @@ msgstr "服务端"
msgid "Server address"
msgstr "服务器地址"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1172
-#: htdocs/luci-static/resources/view/fchomo/node.js:1310
-#: htdocs/luci-static/resources/view/fchomo/node.js:1316
+#: htdocs/luci-static/resources/fchomo/listeners.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:1321
+#: htdocs/luci-static/resources/view/fchomo/node.js:1327
msgid "Server hostname"
msgstr "服务器主机名称"
@@ -2885,22 +2909,22 @@ msgstr "服务状态"
msgid "Shadowsocks"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
+#: htdocs/luci-static/resources/fchomo/listeners.js:506
+#: htdocs/luci-static/resources/view/fchomo/node.js:653
msgid "Shadowsocks chipher"
msgstr "Shadowsocks 加密方法"
-#: htdocs/luci-static/resources/fchomo/listeners.js:498
-#: htdocs/luci-static/resources/view/fchomo/node.js:637
+#: htdocs/luci-static/resources/fchomo/listeners.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:648
msgid "Shadowsocks encrypt"
msgstr "Shadowsocks 加密"
-#: htdocs/luci-static/resources/fchomo/listeners.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:650
+#: htdocs/luci-static/resources/fchomo/listeners.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:661
msgid "Shadowsocks password"
msgstr "Shadowsocks 密码"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1511
+#: htdocs/luci-static/resources/view/fchomo/node.js:1522
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中显示连接以便于打断连接。"
@@ -2912,14 +2936,14 @@ msgstr "静音"
msgid "Simple round-robin all nodes"
msgstr "简单轮替所有节点"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1764
+#: htdocs/luci-static/resources/view/fchomo/node.js:1775
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
msgid "Size limit"
msgstr "大小限制"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1663
-#: htdocs/luci-static/resources/view/fchomo/node.js:1180
-#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/client.js:1667
+#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "Skip cert verify"
msgstr "跳过证书验证"
@@ -2979,18 +3003,18 @@ msgstr ""
msgid "Steam P2P"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1222
-#: htdocs/luci-static/resources/view/fchomo/client.js:1224
+#: htdocs/luci-static/resources/view/fchomo/client.js:1226
+#: htdocs/luci-static/resources/view/fchomo/client.js:1228
msgid "Strategy"
msgstr "策略"
-#: htdocs/luci-static/resources/fchomo/listeners.js:617
-#: htdocs/luci-static/resources/view/fchomo/client.js:1384
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:627
+#: htdocs/luci-static/resources/view/fchomo/client.js:1388
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Sub rule"
msgstr "子规则"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1443
msgid "Sub rule group"
msgstr "子规则组"
@@ -3003,7 +3027,7 @@ msgstr "已成功导入 %s 个%s (共 %s 个)。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/fchomo.js:2094
+#: htdocs/luci-static/resources/fchomo.js:2082
msgid "Successfully uploaded."
msgstr "已成功上传。"
@@ -3043,9 +3067,9 @@ msgstr "系统 DNS"
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:207
-#: htdocs/luci-static/resources/fchomo/listeners.js:661
-#: htdocs/luci-static/resources/view/fchomo/client.js:600
-#: htdocs/luci-static/resources/view/fchomo/client.js:690
+#: htdocs/luci-static/resources/fchomo/listeners.js:671
+#: htdocs/luci-static/resources/view/fchomo/client.js:606
+#: htdocs/luci-static/resources/view/fchomo/client.js:698
msgid "TCP"
msgstr "TCP"
@@ -3053,7 +3077,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 并发"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1504
+#: htdocs/luci-static/resources/view/fchomo/node.js:1515
msgid "TCP only"
msgstr "仅 TCP"
@@ -3080,26 +3104,26 @@ msgstr "TCP-Keep-Alive 间隔"
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1535
-#: htdocs/luci-static/resources/view/fchomo/node.js:1893
+#: htdocs/luci-static/resources/view/fchomo/node.js:1546
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "TFO"
msgstr "TCP 快速打开 (TFO)"
-#: htdocs/luci-static/resources/fchomo/listeners.js:579
-#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/fchomo/listeners.js:583
+#: htdocs/luci-static/resources/fchomo/listeners.js:928
#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:906
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1102
msgid "TLS"
msgstr "TLS"
-#: htdocs/luci-static/resources/fchomo/listeners.js:985
-#: htdocs/luci-static/resources/view/fchomo/node.js:1122
+#: htdocs/luci-static/resources/fchomo/listeners.js:995
+#: htdocs/luci-static/resources/view/fchomo/node.js:1133
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1127
msgid "TLS SNI"
msgstr ""
@@ -3117,7 +3141,7 @@ msgstr ""
msgid "TURN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:550
+#: htdocs/luci-static/resources/fchomo/listeners.js:553
msgid "Target address"
msgstr "目标地址"
@@ -3126,35 +3150,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr "让客户端使用 BBR 流控算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:755
+#: htdocs/luci-static/resources/view/fchomo/node.js:758
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "The %s address used by local machine in the Cloudflare WARP network."
msgstr "Cloudflare WARP 网络中使用的本机 %s 地址。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:810
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:829
msgid "The %s address used by local machine in the Wireguard network."
msgstr "WireGuard 网络中使用的本机 %s 地址。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
msgid "The %s private key, in PEM format."
msgstr "%s私钥,需要 PEM 格式。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
msgid "The %s public key, in PEM format."
msgstr "%s公钥,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1223
+#: htdocs/luci-static/resources/view/fchomo/node.js:1234
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr "域名的 HTTPS 记录的 ECH 参数。留空则通过 DNS 解析。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:431
+#: htdocs/luci-static/resources/view/fchomo/node.js:442
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr "Sudoku 服务器提供的 ED25519 可用私钥 或 UUID。"
@@ -3166,48 +3190,48 @@ msgstr "Sudoku 生成的 ED25519 主公钥 或 UUID。"
msgid "The default value is 2:00 every day."
msgstr "默认值为每天 2:00。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:975
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr "默认值为%s,表示仅使用外层连接超时。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:762
-#: htdocs/luci-static/resources/view/fchomo/node.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:772
+#: htdocs/luci-static/resources/view/fchomo/node.js:1049
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr "首个填充必须为 100% 的概率并且至少 35 字节。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
msgid "The matching %s will be deemed as not-poisoned."
msgstr "匹配 %s 的将被视为未被投毒污染。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
#: htdocs/luci-static/resources/view/fchomo/client.js:1906
#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "The matching %s will be deemed as poisoned."
msgstr "匹配 %s 的将被视为已被投毒污染。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/fchomo/listeners.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1047
msgid "The server and client can set different padding parameters."
msgstr "服务器和客户端可以设置不同的填充参数。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1087
+#: htdocs/luci-static/resources/fchomo/listeners.js:1097
#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr "此 ECH 参数需要添加到域名的 HTTPS 记录中。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1666
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/client.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
"这是危险行为,您的流量将几乎等同于明文!使用风险自负!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:588
+#: htdocs/luci-static/resources/view/fchomo/node.js:599
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3240,22 +3264,22 @@ msgid "Tproxy port"
msgstr "Tproxy 端口"
#: htdocs/luci-static/resources/fchomo/listeners.js:285
-#: htdocs/luci-static/resources/view/fchomo/node.js:423
+#: htdocs/luci-static/resources/view/fchomo/node.js:434
msgid "Traffic pattern"
msgstr "流量模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2098
+#: htdocs/luci-static/resources/view/fchomo/node.js:2109
msgid "Transit proxy group"
msgstr "中转代理组"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2120
msgid "Transit proxy node"
msgstr "中转代理节点"
#: htdocs/luci-static/resources/fchomo/listeners.js:273
-#: htdocs/luci-static/resources/fchomo/listeners.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:400
-#: htdocs/luci-static/resources/view/fchomo/node.js:1265
+#: htdocs/luci-static/resources/fchomo/listeners.js:1148
+#: htdocs/luci-static/resources/view/fchomo/node.js:411
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
msgid "Transport"
msgstr "传输层"
@@ -3264,12 +3288,12 @@ msgstr "传输层"
msgid "Transport fields"
msgstr "传输层字段"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1270
+#: htdocs/luci-static/resources/fchomo/listeners.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
msgid "Transport type"
msgstr "传输层类型"
-#: htdocs/luci-static/resources/view/fchomo/client.js:819
+#: htdocs/luci-static/resources/view/fchomo/client.js:823
msgid "Treat the destination IP as the source IP."
msgstr "将 目标 IP 视为 来源 IP。"
@@ -3309,13 +3333,13 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:142
#: htdocs/luci-static/resources/view/fchomo/client.js:533
-#: htdocs/luci-static/resources/view/fchomo/client.js:654
-#: htdocs/luci-static/resources/view/fchomo/client.js:751
-#: htdocs/luci-static/resources/view/fchomo/client.js:859
-#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:660
+#: htdocs/luci-static/resources/view/fchomo/client.js:755
+#: htdocs/luci-static/resources/view/fchomo/client.js:863
+#: htdocs/luci-static/resources/view/fchomo/client.js:1061
#: htdocs/luci-static/resources/view/fchomo/node.js:250
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
-#: htdocs/luci-static/resources/view/fchomo/node.js:2059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2070
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
msgid "Type"
msgstr "类型"
@@ -3326,12 +3350,12 @@ msgstr "类型"
#: htdocs/luci-static/resources/fchomo.js:203
#: htdocs/luci-static/resources/fchomo.js:204
#: htdocs/luci-static/resources/fchomo.js:206
-#: htdocs/luci-static/resources/fchomo/listeners.js:662
-#: htdocs/luci-static/resources/fchomo/listeners.js:667
-#: htdocs/luci-static/resources/view/fchomo/client.js:599
-#: htdocs/luci-static/resources/view/fchomo/client.js:689
-#: htdocs/luci-static/resources/view/fchomo/node.js:970
-#: htdocs/luci-static/resources/view/fchomo/node.js:1903
+#: htdocs/luci-static/resources/fchomo/listeners.js:672
+#: htdocs/luci-static/resources/fchomo/listeners.js:677
+#: htdocs/luci-static/resources/view/fchomo/client.js:605
+#: htdocs/luci-static/resources/view/fchomo/client.js:697
+#: htdocs/luci-static/resources/view/fchomo/node.js:981
+#: htdocs/luci-static/resources/view/fchomo/node.js:1914
msgid "UDP"
msgstr "UDP"
@@ -3339,26 +3363,26 @@ msgstr "UDP"
msgid "UDP NAT expiration time"
msgstr "UDP NAT 过期时间"
-#: htdocs/luci-static/resources/view/fchomo/node.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:598
msgid "UDP over stream"
msgstr "UDP over stream"
-#: htdocs/luci-static/resources/view/fchomo/node.js:593
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "UDP over stream version"
msgstr "UDP over stream 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:580
+#: htdocs/luci-static/resources/view/fchomo/node.js:591
msgid "UDP packet relay mode."
msgstr "UDP 包中继模式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:579
+#: htdocs/luci-static/resources/view/fchomo/node.js:590
msgid "UDP relay mode"
msgstr "UDP 中继模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "UP: %s; DOWN: %s"
msgstr "上传: %s; 下载: %s"
@@ -3367,14 +3391,14 @@ msgid "URL test"
msgstr "自动选择"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
-#: htdocs/luci-static/resources/fchomo/listeners.js:471
-#: htdocs/luci-static/resources/fchomo/listeners.js:526
-#: htdocs/luci-static/resources/view/fchomo/node.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:681
+#: htdocs/luci-static/resources/fchomo/listeners.js:474
+#: htdocs/luci-static/resources/fchomo/listeners.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:578
+#: htdocs/luci-static/resources/view/fchomo/node.js:692
msgid "UUID"
msgstr "UUID"
-#: htdocs/luci-static/resources/fchomo.js:1637
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Unable to download unsupported type: %s"
msgstr "无法下载不支持的类型: %s"
@@ -3399,8 +3423,8 @@ msgstr "未知错误。"
msgid "Unknown error: %s"
msgstr "未知错误:%s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:976
-#: htdocs/luci-static/resources/view/fchomo/node.js:1908
+#: htdocs/luci-static/resources/view/fchomo/node.js:987
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@@ -3408,22 +3432,24 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失败。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1781
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
msgid "Update interval"
msgstr "更新间隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1522
+#: htdocs/luci-static/resources/fchomo/listeners.js:1248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1533
msgid "Upload bandwidth"
msgstr "上传带宽"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1523
+#: htdocs/luci-static/resources/fchomo/listeners.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1534
msgid "Upload bandwidth in Mbps."
msgstr "上传带宽(单位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:997
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/fchomo/listeners.js:1007
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
msgid "Upload certificate"
msgstr "上传证书"
@@ -3431,45 +3457,47 @@ msgstr "上传证书"
msgid "Upload initial package"
msgstr "上传初始资源包"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1012
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/fchomo/listeners.js:1022
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "Upload key"
msgstr "上传密钥"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1000
-#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/fchomo/listeners.js:1040
+#: htdocs/luci-static/resources/fchomo/listeners.js:1010
+#: htdocs/luci-static/resources/fchomo/listeners.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:1050
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:1211
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1222
msgid "Upload..."
msgstr "上传..."
-#: htdocs/luci-static/resources/view/fchomo/node.js:278
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:281
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "Use sub rule"
msgstr "使用子规则"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1483
+#: htdocs/luci-static/resources/view/fchomo/client.js:1487
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
"servers or ECS."
msgstr "用于解析可直连的域名。可以使用国内 DNS 服务器或 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid ""
"Used to resolve domains you want to proxy. Recommended to configure %s for "
"DNS servers."
msgstr "用于解析想要代理的域名。建议为 DNS 服务器配置%s。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1467
+#: htdocs/luci-static/resources/view/fchomo/client.js:1471
msgid "Used to resolve the domain of the DNS server. Must be IP."
msgstr "用于解析 DNS 服务器的域名。必须是 IP。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1474
+#: htdocs/luci-static/resources/view/fchomo/client.js:1478
msgid "Used to resolve the domain of the Proxy node."
msgstr "用于解析代理节点的域名。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1128
msgid "Used to verify the hostname on the returned certificates."
msgstr "用于验证返回的证书上的主机名。"
@@ -3482,7 +3510,7 @@ msgid "User-hint is mandatory"
msgstr "User-hint 是必填项"
#: htdocs/luci-static/resources/fchomo/listeners.js:161
-#: htdocs/luci-static/resources/view/fchomo/node.js:290
+#: htdocs/luci-static/resources/view/fchomo/node.js:301
msgid "Username"
msgstr "用户名"
@@ -3490,11 +3518,11 @@ msgstr "用户名"
msgid "Users filter mode"
msgstr "使用者过滤模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1379
+#: htdocs/luci-static/resources/view/fchomo/node.js:1390
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1395
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3508,8 +3536,8 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1707
-#: htdocs/luci-static/resources/view/fchomo/node.js:2065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1718
+#: htdocs/luci-static/resources/view/fchomo/node.js:2076
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
msgid "Value"
msgstr "可视化值"
@@ -3519,13 +3547,13 @@ msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:463
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/view/fchomo/node.js:562
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
msgid "Version"
msgstr "版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
msgid "Version hint"
msgstr ""
@@ -3543,15 +3571,15 @@ msgid "Warning"
msgstr "警告"
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/fchomo/listeners.js:1145
-#: htdocs/luci-static/resources/fchomo/listeners.js:1154
-#: htdocs/luci-static/resources/fchomo/listeners.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:1275
+#: htdocs/luci-static/resources/fchomo/listeners.js:1155
+#: htdocs/luci-static/resources/fchomo/listeners.js:1164
+#: htdocs/luci-static/resources/fchomo/listeners.js:1171
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
-#: htdocs/luci-static/resources/view/fchomo/node.js:1293
-#: htdocs/luci-static/resources/view/fchomo/node.js:1299
+#: htdocs/luci-static/resources/view/fchomo/node.js:1297
+#: htdocs/luci-static/resources/view/fchomo/node.js:1304
+#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "WebSocket"
msgstr ""
@@ -3567,48 +3595,48 @@ msgstr "白名单"
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:832
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "WireGuard peer public key."
msgstr "WireGuard 对端公钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:839
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "WireGuard pre-shared key."
msgstr "WireGuard 预共享密钥。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:824
+#: htdocs/luci-static/resources/view/fchomo/node.js:835
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 编码的私钥。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1146
-#: htdocs/luci-static/resources/fchomo/listeners.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/fchomo/listeners.js:1156
+#: htdocs/luci-static/resources/fchomo/listeners.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1287
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "XHTTP"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/fchomo/listeners.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1400
msgid "XHTTP mode"
msgstr "XHTTP 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1420
+#: htdocs/luci-static/resources/view/fchomo/node.js:1431
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "XMUX:"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:721
+#: htdocs/luci-static/resources/fchomo/listeners.js:731
msgid "XOR mode"
msgstr "XOR 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:726
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Xudp (Xray-core)"
msgstr ""
@@ -3616,7 +3644,7 @@ msgstr ""
msgid "Yaml text"
msgstr "Yaml 格式文本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1943
msgid "Yes"
msgstr ""
@@ -3624,14 +3652,14 @@ msgstr ""
msgid "YouTube"
msgstr "油管"
-#: htdocs/luci-static/resources/fchomo.js:2076
+#: htdocs/luci-static/resources/fchomo.js:2064
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr "您的 %s 已成功上传。大小:%sB。"
#: htdocs/luci-static/resources/fchomo.js:345
#: htdocs/luci-static/resources/fchomo.js:358
#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:706
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "aes-128-gcm"
msgstr ""
@@ -3644,11 +3672,11 @@ msgstr ""
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1803
msgid "age private key"
msgstr "age 私钥"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1853
+#: htdocs/luci-static/resources/view/fchomo/node.js:1864
msgid "age public key"
msgstr "age 公钥"
@@ -3660,7 +3688,7 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:714
msgid "auto"
msgstr "自动"
@@ -3668,9 +3696,9 @@ msgstr "自动"
msgid "bbr"
msgstr "bbr"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1002
-#: htdocs/luci-static/resources/fchomo/listeners.js:1042
-#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1012
+#: htdocs/luci-static/resources/fchomo/listeners.js:1052
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "certificate"
msgstr "证书"
@@ -3680,7 +3708,7 @@ msgstr "证书"
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:707
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
msgid "chacha20-poly1305"
msgstr ""
@@ -3688,8 +3716,8 @@ msgstr ""
msgid "cubic"
msgstr "cubic"
-#: htdocs/luci-static/resources/fchomo/listeners.js:673
-#: htdocs/luci-static/resources/fchomo/listeners.js:704
+#: htdocs/luci-static/resources/fchomo/listeners.js:683
+#: htdocs/luci-static/resources/fchomo/listeners.js:714
msgid "decryption"
msgstr "decryption"
@@ -3697,41 +3725,41 @@ msgstr "decryption"
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行选择上游服务器。 (可能影响 CDN 准确性)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
msgid "down"
msgstr "Hysteria 下载速率"
-#: htdocs/luci-static/resources/fchomo/listeners.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1013
+#: htdocs/luci-static/resources/fchomo/listeners.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1024
msgid "encryption"
msgstr "encryption"
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:500
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr "false = 带宽优化下行 true = 纯 Sudoku 下行。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1144
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:1274
+#: htdocs/luci-static/resources/fchomo/listeners.js:1154
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
#: htdocs/luci-static/resources/view/fchomo/node.js:1285
-#: htdocs/luci-static/resources/view/fchomo/node.js:1292
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1303
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1366
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1371
msgid "gRPC ping interval"
msgstr "gRPC ping 间隔"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1185
-#: htdocs/luci-static/resources/view/fchomo/node.js:1351
+#: htdocs/luci-static/resources/fchomo/listeners.js:1195
+#: htdocs/luci-static/resources/view/fchomo/node.js:1362
msgid "gRPC service name"
msgstr "gRPC 服务名称"
@@ -3739,23 +3767,23 @@ msgstr "gRPC 服务名称"
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/fchomo/node.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:781
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1467
+#: htdocs/luci-static/resources/view/fchomo/node.js:1478
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:768
+#: htdocs/luci-static/resources/view/fchomo/node.js:779
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:780
msgid "h3-l4proxy"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
msgid "least one keypair required"
msgstr "至少需要一对密钥"
@@ -3763,13 +3791,13 @@ msgstr "至少需要一对密钥"
msgid "metacubexd"
msgstr "metacubexd"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1030
-#: htdocs/luci-static/resources/view/fchomo/client.js:1327
-#: htdocs/luci-static/resources/view/fchomo/client.js:1422
-#: htdocs/luci-static/resources/view/fchomo/client.js:1564
-#: htdocs/luci-static/resources/view/fchomo/client.js:1798
-#: htdocs/luci-static/resources/view/fchomo/client.js:1854
-#: htdocs/luci-static/resources/view/fchomo/node.js:1673
+#: htdocs/luci-static/resources/view/fchomo/client.js:1034
+#: htdocs/luci-static/resources/view/fchomo/client.js:1331
+#: htdocs/luci-static/resources/view/fchomo/client.js:1426
+#: htdocs/luci-static/resources/view/fchomo/client.js:1568
+#: htdocs/luci-static/resources/view/fchomo/client.js:1802
+#: htdocs/luci-static/resources/view/fchomo/client.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
msgid "mihomo config"
msgstr "mihomo 配置"
@@ -3778,8 +3806,8 @@ msgstr "mihomo 配置"
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1540
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1909
msgid "mpTCP"
msgstr "多路径 TCP (mpTCP)"
@@ -3787,24 +3815,24 @@ msgstr "多路径 TCP (mpTCP)"
msgid "new_reno"
msgstr "new_reno"
-#: htdocs/luci-static/resources/view/fchomo/client.js:836
+#: htdocs/luci-static/resources/view/fchomo/client.js:840
msgid "no-resolve"
msgstr "no-resolve"
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1969
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1957
msgid "non-empty value"
msgstr "非空值"
#: htdocs/luci-static/resources/fchomo.js:343
#: htdocs/luci-static/resources/fchomo.js:357
#: htdocs/luci-static/resources/fchomo.js:369
-#: htdocs/luci-static/resources/fchomo/listeners.js:558
-#: htdocs/luci-static/resources/view/fchomo/node.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:724
-#: htdocs/luci-static/resources/view/fchomo/node.js:882
+#: htdocs/luci-static/resources/fchomo/listeners.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:715
+#: htdocs/luci-static/resources/view/fchomo/node.js:735
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
msgid "none"
msgstr "无"
@@ -3813,51 +3841,51 @@ msgstr "无"
msgid "not found"
msgstr "未找到"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
msgid "not included \",\""
msgstr "不包含 \",\""
#: htdocs/luci-static/resources/fchomo.js:229
-#: htdocs/luci-static/resources/fchomo/listeners.js:619
-#: htdocs/luci-static/resources/fchomo/listeners.js:622
+#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:632
msgid "null"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:559
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:883
+#: htdocs/luci-static/resources/fchomo/listeners.js:562
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
#: htdocs/luci-static/resources/view/fchomo/node.js:894
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "only applies when %s is %s."
msgstr "仅当 %s 为 %s 时适用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
msgid "only applies when %s is not %s."
msgstr "仅当 %s 不为 %s 时适用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
+#: htdocs/luci-static/resources/view/fchomo/node.js:1889
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:725
+#: htdocs/luci-static/resources/view/fchomo/node.js:736
msgid "packet addr (v2ray-core v5+)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:439
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
msgid "poll"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1017
-#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/fchomo/listeners.js:1027
+#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "private key"
msgstr "私钥"
@@ -3865,12 +3893,13 @@ msgstr "私钥"
msgid "razord-meta"
msgstr "razord-meta"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1251
-#: htdocs/luci-static/resources/view/fchomo/client.js:1257
+#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1261
msgid "requires front-end adaptation using the API."
msgstr "需要使用 API 的前端适配。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:887
+#: htdocs/luci-static/resources/fchomo/listeners.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:898
msgid "restls"
msgstr ""
@@ -3878,41 +3907,41 @@ msgstr ""
msgid "rule-set"
msgstr "规则集"
-#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/fchomo/listeners.js:568
-#: htdocs/luci-static/resources/view/fchomo/node.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:895
+#: htdocs/luci-static/resources/fchomo/listeners.js:563
+#: htdocs/luci-static/resources/fchomo/listeners.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:897
+#: htdocs/luci-static/resources/view/fchomo/node.js:906
msgid "shadow-tls"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
msgid "split-stream"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:818
+#: htdocs/luci-static/resources/view/fchomo/client.js:822
msgid "src"
msgstr "src"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1193
-#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/fchomo/listeners.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "stream-one"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1392
+#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid "stream-up"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1210
+#: htdocs/luci-static/resources/fchomo/listeners.js:1220
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "stream/poll/auto"
msgstr ""
@@ -3932,77 +3961,80 @@ msgstr "独立 UCI 标识"
msgid "unique identifier"
msgstr "独立标识"
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1966
msgid "unique value"
msgstr "独立值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1914
+#: htdocs/luci-static/resources/view/fchomo/node.js:1925
msgid "up"
msgstr "Hysteria 上传速率"
-#: htdocs/luci-static/resources/fchomo/listeners.js:604
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
-#: htdocs/luci-static/resources/view/fchomo/node.js:594
-#: htdocs/luci-static/resources/view/fchomo/node.js:924
-#: htdocs/luci-static/resources/view/fchomo/node.js:983
+#: htdocs/luci-static/resources/fchomo/listeners.js:464
+#: htdocs/luci-static/resources/fchomo/listeners.js:608
+#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "v1"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
-#: htdocs/luci-static/resources/view/fchomo/node.js:925
-#: htdocs/luci-static/resources/view/fchomo/node.js:984
+#: htdocs/luci-static/resources/fchomo/listeners.js:465
+#: htdocs/luci-static/resources/fchomo/listeners.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "v2"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:926
+#: htdocs/luci-static/resources/fchomo/listeners.js:466
+#: htdocs/luci-static/resources/fchomo/listeners.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:565
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "v3"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/fchomo/listeners.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "v4"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:556
+#: htdocs/luci-static/resources/fchomo/listeners.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1846
+#: htdocs/luci-static/resources/fchomo.js:1849
msgid "valid JSON format"
msgstr "有效的 JSON 格式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "valid SHA256 string with %d characters"
msgstr "包含 %d 个字符的有效 SHA256 字符串"
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
+#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1874
msgid "valid URL"
msgstr "有效网址"
-#: htdocs/luci-static/resources/fchomo.js:1896
+#: htdocs/luci-static/resources/fchomo.js:1884
msgid "valid base64 key with %d characters"
msgstr "包含 %d 个字符的有效 base64 密钥"
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
msgid "valid format: 2x, 2p, 4v"
msgstr "有效格式: 2x, 2p, 4v"
-#: htdocs/luci-static/resources/fchomo.js:1943
+#: htdocs/luci-static/resources/fchomo.js:1931
msgid "valid key length with %d characters"
msgstr "包含 %d 个字符的有效密钥"
-#: htdocs/luci-static/resources/fchomo.js:1821
+#: htdocs/luci-static/resources/fchomo.js:1809
msgid "valid port value"
msgstr "有效端口值"
-#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1859
msgid "valid uuid"
msgstr "有效 uuid"
@@ -4022,7 +4054,7 @@ msgstr ""
msgid "yacd-meta"
msgstr "yacd-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1466
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "yamux"
msgstr ""
@@ -4030,11 +4062,11 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:716
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1639
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "🡇"
msgstr ""
diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po
index 224c332a..97a4d829 100644
--- a/luci-app-fchomo/po/zh_Hant/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hant/fchomo.po
@@ -27,49 +27,53 @@ msgstr "%s 連接埠"
msgid "(Imported)"
msgstr "(已導入)"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
#: htdocs/luci-static/resources/view/fchomo/global.js:564
#: htdocs/luci-static/resources/view/fchomo/global.js:570
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "(mTLS)"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:688
+#: htdocs/luci-static/resources/view/fchomo/client.js:696
msgid "-- NETWORK --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1204
+#: htdocs/luci-static/resources/view/fchomo/client.js:1208
msgid "-- PROXY-GROUP --"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1139
-#: htdocs/luci-static/resources/view/fchomo/client.js:1206
+#: htdocs/luci-static/resources/view/fchomo/client.js:1143
+#: htdocs/luci-static/resources/view/fchomo/client.js:1210
msgid "-- PROXY-NODE --"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:832
-#: htdocs/luci-static/resources/view/fchomo/client.js:877
-#: htdocs/luci-static/resources/view/fchomo/client.js:880
-#: htdocs/luci-static/resources/view/fchomo/client.js:1077
+#: htdocs/luci-static/resources/view/fchomo/client.js:573
+#: htdocs/luci-static/resources/view/fchomo/client.js:881
+#: htdocs/luci-static/resources/view/fchomo/client.js:884
#: htdocs/luci-static/resources/view/fchomo/client.js:1081
-#: htdocs/luci-static/resources/view/fchomo/client.js:1097
+#: htdocs/luci-static/resources/view/fchomo/client.js:1085
#: htdocs/luci-static/resources/view/fchomo/client.js:1101
-#: htdocs/luci-static/resources/view/fchomo/client.js:1357
-#: htdocs/luci-static/resources/view/fchomo/node.js:270
-#: htdocs/luci-static/resources/view/fchomo/node.js:281
-#: htdocs/luci-static/resources/view/fchomo/node.js:2071
+#: htdocs/luci-static/resources/view/fchomo/client.js:1105
+#: htdocs/luci-static/resources/view/fchomo/client.js:1361
+#: htdocs/luci-static/resources/view/fchomo/node.js:284
#: htdocs/luci-static/resources/view/fchomo/node.js:2082
-#: htdocs/luci-static/resources/view/fchomo/node.js:2101
+#: htdocs/luci-static/resources/view/fchomo/node.js:2093
#: htdocs/luci-static/resources/view/fchomo/node.js:2112
+#: htdocs/luci-static/resources/view/fchomo/node.js:2123
msgid "-- Please choose --"
msgstr "-- 請選擇 --"
-#: htdocs/luci-static/resources/view/fchomo/client.js:691
+#: htdocs/luci-static/resources/view/fchomo/client.js:694
+msgid "-- REMATCH-NAME --"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/fchomo/client.js:699
msgid "-- RULE-SET --"
msgstr ""
@@ -102,20 +106,20 @@ msgstr ""
msgid "2022-blake3-chacha20-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:703
+#: htdocs/luci-static/resources/view/fchomo/client.js:707
msgid "0 or 1 only."
msgstr "僅限 0 或 1。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:998
-#: htdocs/luci-static/resources/fchomo/listeners.js:1013
-#: htdocs/luci-static/resources/fchomo/listeners.js:1038
-#: htdocs/luci-static/resources/view/fchomo/node.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1209
+#: htdocs/luci-static/resources/fchomo/listeners.js:1008
+#: htdocs/luci-static/resources/fchomo/listeners.js:1023
+#: htdocs/luci-static/resources/fchomo/listeners.js:1048
+#: htdocs/luci-static/resources/view/fchomo/node.js:1206
+#: htdocs/luci-static/resources/view/fchomo/node.js:1220
msgid "Save your configuration before uploading files!"
msgstr "上傳文件前請先保存配置!"
#: htdocs/luci-static/resources/fchomo/listeners.js:286
-#: htdocs/luci-static/resources/view/fchomo/node.js:424
+#: htdocs/luci-static/resources/view/fchomo/node.js:435
msgid ""
"A base64 string is used to fine-tune network behavior.
Please refer to "
"the document"
@@ -175,9 +179,9 @@ msgstr "API 令牌"
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "ASCII data stream"
msgstr "ASCII 資料流"
@@ -190,15 +194,15 @@ msgstr "ASN 版本"
msgid "Access Control"
msgstr "訪問控制"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Add a Bootstrap DNS policy (Node)"
msgstr "新增 引導 DNS 策略 (節點)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
msgid "Add a DNS policy"
msgstr "新增 DNS 策略"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
msgid "Add a DNS server"
msgstr "新增 DNS 伺服器"
@@ -210,19 +214,19 @@ msgstr "新增 節點"
msgid "Add a inbound"
msgstr "新增 入站"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
msgid "Add a provider"
msgstr "新增 供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Add a proxy chain"
msgstr "新增 代理鏈"
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
msgid "Add a proxy group"
msgstr "新增 代理組"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Add a routing rule"
msgstr "新增 路由規則"
@@ -234,20 +238,20 @@ msgstr "新增 規則集"
msgid "Add a server"
msgstr "新增 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Add a sub rule"
msgstr "新增 子規則"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1867
+#: htdocs/luci-static/resources/view/fchomo/node.js:1878
msgid "Add prefix"
msgstr "添加前綴"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1871
+#: htdocs/luci-static/resources/view/fchomo/node.js:1882
msgid "Add suffix"
msgstr "添加後綴"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1581
-#: htdocs/luci-static/resources/view/fchomo/client.js:1586
+#: htdocs/luci-static/resources/view/fchomo/client.js:1585
+#: htdocs/luci-static/resources/view/fchomo/client.js:1590
msgid "Address"
msgstr "位址"
@@ -283,11 +287,11 @@ msgid ""
msgstr ""
"允許從私有網路訪問。要從公共網站訪問私有網路上的 API,則必須啟用。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:979
+#: htdocs/luci-static/resources/fchomo/listeners.js:989
msgid "Allow insecure connections"
msgstr "允許不安全的連線"
-#: htdocs/luci-static/resources/view/fchomo/node.js:845
+#: htdocs/luci-static/resources/view/fchomo/node.js:856
msgid "Allowed IPs"
msgstr "允許的 IP"
@@ -299,8 +303,8 @@ msgstr "已是最新版本。"
msgid "Already in updating."
msgstr "已在更新中。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:540
-#: htdocs/luci-static/resources/view/fchomo/node.js:695
+#: htdocs/luci-static/resources/fchomo/listeners.js:543
+#: htdocs/luci-static/resources/view/fchomo/node.js:706
msgid "Alter ID"
msgstr "額外 ID"
@@ -322,20 +326,20 @@ msgstr "作為 dnsmasq 的最優先上游"
msgid "As the TOP upstream of dnsmasq."
msgstr "作為 dnsmasq 的最優先上游。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:490
+#: htdocs/luci-static/resources/fchomo/listeners.js:493
msgid "Auth timeout"
msgstr "認證逾時"
-#: htdocs/luci-static/resources/view/fchomo/node.js:717
+#: htdocs/luci-static/resources/view/fchomo/node.js:728
msgid "Authenticated length"
msgstr "認證長度"
#: htdocs/luci-static/resources/fchomo/listeners.js:440
-#: htdocs/luci-static/resources/fchomo/listeners.js:1192
+#: htdocs/luci-static/resources/fchomo/listeners.js:1202
#: htdocs/luci-static/resources/view/fchomo/global.js:423
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
-#: htdocs/luci-static/resources/view/fchomo/node.js:1390
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
+#: htdocs/luci-static/resources/view/fchomo/node.js:1401
msgid "Auto"
msgstr "自動"
@@ -351,8 +355,8 @@ msgstr "自動更新"
msgid "Auto update resources."
msgstr "自動更新資源文件。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:651
-#: htdocs/luci-static/resources/view/fchomo/node.js:953
+#: htdocs/luci-static/resources/fchomo/listeners.js:661
+#: htdocs/luci-static/resources/view/fchomo/node.js:964
msgid "BBR profile"
msgstr "BBR 設定檔"
@@ -360,11 +364,11 @@ msgstr "BBR 設定檔"
msgid "Baidu"
msgstr "百度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:732
+#: htdocs/luci-static/resources/view/fchomo/node.js:743
msgid "Base64 encoded ECDSA private key on the NIST P-256 curve."
msgstr "基於 NIST P-256 曲線的 Base64 編碼 ECDSA 私鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:740
+#: htdocs/luci-static/resources/view/fchomo/node.js:751
msgid "Base64 encoded ECDSA public key on the NIST P-256 curve."
msgstr "基於 NIST P-256 曲線的 Base64 編碼 ECDSA 公鑰。"
@@ -386,13 +390,13 @@ msgid "Binary mrs"
msgstr "二進位 mrs"
#: htdocs/luci-static/resources/view/fchomo/global.js:758
-#: htdocs/luci-static/resources/view/fchomo/node.js:1551
-#: htdocs/luci-static/resources/view/fchomo/node.js:1943
+#: htdocs/luci-static/resources/view/fchomo/node.js:1562
+#: htdocs/luci-static/resources/view/fchomo/node.js:1954
msgid "Bind interface"
msgstr "綁定介面"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1552
-#: htdocs/luci-static/resources/view/fchomo/node.js:1944
+#: htdocs/luci-static/resources/view/fchomo/node.js:1563
+#: htdocs/luci-static/resources/view/fchomo/node.js:1955
msgid "Bind outbound interface."
msgstr "綁定出站介面。"
@@ -409,16 +413,16 @@ msgstr "黑名單"
msgid "Block DNS queries"
msgstr "封鎖 DNS 請求"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1767
-#: htdocs/luci-static/resources/view/fchomo/client.js:1776
+#: htdocs/luci-static/resources/view/fchomo/client.js:1771
+#: htdocs/luci-static/resources/view/fchomo/client.js:1780
msgid "Bootstrap DNS policy (Node)"
msgstr "引導 DNS 策略 (節點)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1466
+#: htdocs/luci-static/resources/view/fchomo/client.js:1470
msgid "Bootstrap DNS server"
msgstr "引導 DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1473
+#: htdocs/luci-static/resources/view/fchomo/client.js:1477
msgid "Bootstrap DNS server (Node)"
msgstr "引導 DNS 伺服器 (節點)"
@@ -438,10 +442,10 @@ msgstr "繞過 DSCP"
#: htdocs/luci-static/resources/fchomo/listeners.js:439
#: htdocs/luci-static/resources/fchomo/listeners.js:440
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:504
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:515
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
msgid "CDN support"
msgstr "CDN 支援"
@@ -461,17 +465,17 @@ msgstr "CORS 允許的來源,留空則使用 *。"
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1167
+#: htdocs/luci-static/resources/view/fchomo/node.js:1178
msgid "Cert fingerprint"
msgstr "憑證指紋"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1168
+#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid ""
"Certificate fingerprint. Used to implement SSL Pinning and prevent MitM."
msgstr "憑證指紋。用於實現 SSL憑證固定 並防止 MitM。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1188
+#: htdocs/luci-static/resources/fchomo/listeners.js:1000
+#: htdocs/luci-static/resources/view/fchomo/node.js:1199
msgid "Certificate path"
msgstr "憑證路徑"
@@ -484,7 +488,7 @@ msgstr "檢查"
msgid "Check routerself NAT Behavior"
msgstr "檢測路由器自身 NAT 行為"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1921
+#: htdocs/luci-static/resources/view/fchomo/client.js:1926
msgid ""
"Check the response from the %s, only initiate query if the "
"%s is satisfied."
@@ -509,14 +513,14 @@ msgstr "大陸網域清單版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:255
#: htdocs/luci-static/resources/fchomo/listeners.js:354
-#: htdocs/luci-static/resources/view/fchomo/node.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:436
-#: htdocs/luci-static/resources/view/fchomo/node.js:701
+#: htdocs/luci-static/resources/view/fchomo/node.js:388
+#: htdocs/luci-static/resources/view/fchomo/node.js:447
+#: htdocs/luci-static/resources/view/fchomo/node.js:712
msgid "Chipher"
msgstr "加密方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
msgid "Chipher must be enabled if obfuscate downlink is disabled."
msgstr "如果下行鏈路混淆功能已停用,則必須啟用加密。"
@@ -532,25 +536,25 @@ msgstr ""
"點擊此處下載"
"最新的初始包。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:22
msgid "Client"
msgstr "客戶端"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1028
+#: htdocs/luci-static/resources/fchomo/listeners.js:1038
msgid "Client Auth Certificate path"
msgstr "客戶端認證憑證路徑"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1020
+#: htdocs/luci-static/resources/fchomo/listeners.js:1030
msgid "Client Auth type"
msgstr "客戶端認證類型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1234
+#: htdocs/luci-static/resources/view/fchomo/node.js:1245
msgid "Client fingerprint"
msgstr "客戶端指紋"
@@ -571,16 +575,16 @@ msgstr "收集資料中..."
msgid "Common ports (bypass P2P traffic)"
msgstr "常用連接埠(繞過 P2P 流量)"
-#: htdocs/luci-static/resources/fchomo.js:1755
+#: htdocs/luci-static/resources/fchomo.js:1743
msgid "Complete"
msgstr "完成"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1887
+#: htdocs/luci-static/resources/view/fchomo/node.js:1898
msgid "Configuration Items"
msgstr "配置項"
-#: htdocs/luci-static/resources/fchomo/listeners.js:643
-#: htdocs/luci-static/resources/view/fchomo/node.js:944
+#: htdocs/luci-static/resources/fchomo/listeners.js:653
+#: htdocs/luci-static/resources/view/fchomo/node.js:955
msgid "Congestion controller"
msgstr "擁塞控制器"
@@ -588,7 +592,7 @@ msgstr "擁塞控制器"
msgid "Connection check"
msgstr "連接檢查"
-#: htdocs/luci-static/resources/view/fchomo/node.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:572
msgid "Connection reuse"
msgstr "連接重用"
@@ -600,15 +604,15 @@ msgstr "保守"
msgid "Content copied to clipboard!"
msgstr "內容已複製到剪貼簿!"
-#: htdocs/luci-static/resources/view/fchomo/client.js:681
-#: htdocs/luci-static/resources/view/fchomo/node.js:1727
-#: htdocs/luci-static/resources/view/fchomo/node.js:1753
+#: htdocs/luci-static/resources/view/fchomo/client.js:687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1738
+#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:348
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:374
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "內容將不會被驗證,請確保輸入正確。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1726
+#: htdocs/luci-static/resources/view/fchomo/node.js:1737
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:347
msgid "Contents"
msgstr "內容"
@@ -633,7 +637,7 @@ msgstr "Cron 表達式"
msgid "Custom Direct List"
msgstr "自訂直連清單"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1869
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:420
msgid "Custom HTTP header."
msgstr "自訂 HTTP header。"
@@ -643,7 +647,7 @@ msgid "Custom Proxy List"
msgstr "自訂代理清單"
#: htdocs/luci-static/resources/fchomo/listeners.js:378
-#: htdocs/luci-static/resources/view/fchomo/node.js:460
+#: htdocs/luci-static/resources/view/fchomo/node.js:471
msgid "Custom byte layout"
msgstr "自訂位元組佈局"
@@ -656,8 +660,9 @@ msgstr "自訂內部 hosts。支援 yaml 或 json 格
msgid "DIRECT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1819
-#: htdocs/luci-static/resources/view/fchomo/client.js:1828
+#: htdocs/luci-static/resources/view/fchomo/client.js:1823
+#: htdocs/luci-static/resources/view/fchomo/client.js:1832
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
msgid "DNS policy"
msgstr "DNS 策略"
@@ -665,15 +670,15 @@ msgstr "DNS 策略"
msgid "DNS port"
msgstr " DNS 連接埠"
-#: htdocs/luci-static/resources/view/fchomo/client.js:895
-#: htdocs/luci-static/resources/view/fchomo/client.js:1512
-#: htdocs/luci-static/resources/view/fchomo/client.js:1521
-#: htdocs/luci-static/resources/view/fchomo/node.js:792
-#: htdocs/luci-static/resources/view/fchomo/node.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:899
+#: htdocs/luci-static/resources/view/fchomo/client.js:1516
+#: htdocs/luci-static/resources/view/fchomo/client.js:1525
+#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:886
msgid "DNS server"
msgstr "DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1449
+#: htdocs/luci-static/resources/view/fchomo/client.js:1453
msgid "DNS settings"
msgstr "DNS 設定"
@@ -693,13 +698,13 @@ msgstr "調試"
msgid "Default DNS (issued by WAN)"
msgstr "預設 DNS(由 WAN 下發)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1487
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1491
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Default DNS server"
msgstr "預設 DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1197
+#: htdocs/luci-static/resources/view/fchomo/client.js:1201
msgid "Default selected"
msgstr "預設選中"
@@ -707,15 +712,15 @@ msgstr "預設選中"
msgid "Derive from priv-key"
msgstr "從私鑰派生"
-#: htdocs/luci-static/resources/view/fchomo/node.js:846
+#: htdocs/luci-static/resources/view/fchomo/node.js:857
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允許通過 WireGuard 轉發的目的位址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2068
+#: htdocs/luci-static/resources/view/fchomo/node.js:2079
msgid "Destination provider"
msgstr "落地供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2079
+#: htdocs/luci-static/resources/view/fchomo/node.js:2090
msgid "Destination proxy node"
msgstr "落地代理節點"
@@ -723,8 +728,8 @@ msgstr "落地代理節點"
msgid "Dial fields"
msgstr "撥號欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
msgid "Different chain head/tail"
msgstr "不同的鏈頭/鏈尾"
@@ -746,7 +751,7 @@ msgstr "直連 MAC 位址"
#: htdocs/luci-static/resources/fchomo/listeners.js:194
#: htdocs/luci-static/resources/view/fchomo/global.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:332
+#: htdocs/luci-static/resources/view/fchomo/node.js:343
msgid "Disable"
msgstr "停用"
@@ -762,11 +767,11 @@ msgstr "停用 quic-go 的 通用分段卸載(GSO)"
msgid "Disable ICMP Forwarding"
msgstr "禁用 ICMP 轉發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1110
+#: htdocs/luci-static/resources/view/fchomo/node.js:1121
msgid "Disable SNI"
msgstr "停用 SNI"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1146
+#: htdocs/luci-static/resources/view/fchomo/client.js:1150
msgid "Disable UDP"
msgstr "停用 UDP"
@@ -774,7 +779,7 @@ msgstr "停用 UDP"
msgid "Disable safe path check"
msgstr "禁用安全路徑檢查"
-#: htdocs/luci-static/resources/view/fchomo/client.js:837
+#: htdocs/luci-static/resources/view/fchomo/client.js:841
msgid ""
"Do not resolve the domain connection to IP for this match.Only works "
"for pure domain inbound connections without DNS resolution. e.g., socks5h"
@@ -782,37 +787,39 @@ msgstr ""
"不要將網域連線解析為 IP 以進行此次匹配。 僅對未經 DNS 解析的純網域入站連"
"線有效。例如,socks5h"
-#: htdocs/luci-static/resources/view/fchomo/client.js:860
-#: htdocs/luci-static/resources/view/fchomo/client.js:865
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
-#: htdocs/luci-static/resources/view/fchomo/client.js:1909
-#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:864
+#: htdocs/luci-static/resources/view/fchomo/client.js:869
+#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "Domain"
msgstr "網域"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1111
+#: htdocs/luci-static/resources/view/fchomo/node.js:1122
msgid "Donot send server name in ClientHello."
msgstr "不要在 ClientHello 中傳送伺服器名稱。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1664
-#: htdocs/luci-static/resources/view/fchomo/node.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:1927
+#: htdocs/luci-static/resources/view/fchomo/client.js:1668
+#: htdocs/luci-static/resources/view/fchomo/node.js:1192
+#: htdocs/luci-static/resources/view/fchomo/node.js:1938
msgid "Donot verifying server certificate."
msgstr "不驗證伺服器憑證。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1528
+#: htdocs/luci-static/resources/fchomo/listeners.js:1254
+#: htdocs/luci-static/resources/view/fchomo/node.js:1539
msgid "Download bandwidth"
msgstr "下載頻寬"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1529
+#: htdocs/luci-static/resources/fchomo/listeners.js:1255
+#: htdocs/luci-static/resources/view/fchomo/node.js:1540
msgid "Download bandwidth in Mbps."
msgstr "下載頻寬(單位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo.js:1634
+#: htdocs/luci-static/resources/fchomo.js:1622
msgid "Download failed: %s"
msgstr "下載失敗: %s"
-#: htdocs/luci-static/resources/fchomo.js:1632
+#: htdocs/luci-static/resources/fchomo.js:1620
msgid "Download successful."
msgstr "下載成功。"
@@ -820,24 +827,24 @@ msgstr "下載成功。"
msgid "Dual stack"
msgstr "雙棧"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1228
+#: htdocs/luci-static/resources/view/fchomo/node.js:1239
msgid "ECH HTTPS record query servername"
msgstr "ECH HTTPS 記錄查詢網域"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1086
-#: htdocs/luci-static/resources/view/fchomo/node.js:1222
+#: htdocs/luci-static/resources/fchomo/listeners.js:1096
+#: htdocs/luci-static/resources/view/fchomo/node.js:1233
msgid "ECH config"
msgstr "ECH 配置"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1045
+#: htdocs/luci-static/resources/fchomo/listeners.js:1055
msgid "ECH key"
msgstr "ECH 密鑰"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1698
+#: htdocs/luci-static/resources/view/fchomo/client.js:1702
msgid "ECS override"
msgstr "強制覆蓋 ECS"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1682
+#: htdocs/luci-static/resources/view/fchomo/client.js:1686
msgid "EDNS Client Subnet"
msgstr "EDNS 客戶端子網"
@@ -845,11 +852,11 @@ msgstr "EDNS 客戶端子網"
msgid "ETag support"
msgstr "ETag 支援"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1368
+#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Early Data first packet length limit."
msgstr "前置數據長度閾值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1374
+#: htdocs/luci-static/resources/view/fchomo/node.js:1385
msgid "Early Data header name"
msgstr "前置數據標頭"
@@ -865,7 +872,7 @@ msgstr "編輯出站"
msgid "Edit ruleset"
msgstr "編輯規則集"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1724
+#: htdocs/luci-static/resources/view/fchomo/node.js:1735
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:345
msgid "Editer"
msgstr "編輯器"
@@ -874,30 +881,30 @@ msgstr "編輯器"
msgid "Eliminate encryption header characteristics"
msgstr "消除加密頭特徵"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1131
+#: htdocs/luci-static/resources/view/fchomo/client.js:1135
msgid "Empty fallback"
msgstr "為空時回退"
#: htdocs/luci-static/resources/fchomo/listeners.js:133
-#: htdocs/luci-static/resources/view/fchomo/client.js:958
-#: htdocs/luci-static/resources/view/fchomo/client.js:1053
-#: htdocs/luci-static/resources/view/fchomo/client.js:1340
-#: htdocs/luci-static/resources/view/fchomo/client.js:1435
-#: htdocs/luci-static/resources/view/fchomo/client.js:1577
-#: htdocs/luci-static/resources/view/fchomo/client.js:1811
-#: htdocs/luci-static/resources/view/fchomo/client.js:1867
+#: htdocs/luci-static/resources/view/fchomo/client.js:962
+#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:1344
+#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1581
+#: htdocs/luci-static/resources/view/fchomo/client.js:1815
+#: htdocs/luci-static/resources/view/fchomo/client.js:1871
#: htdocs/luci-static/resources/view/fchomo/global.js:422
#: htdocs/luci-static/resources/view/fchomo/global.js:704
#: htdocs/luci-static/resources/view/fchomo/node.js:246
-#: htdocs/luci-static/resources/view/fchomo/node.js:1697
-#: htdocs/luci-static/resources/view/fchomo/node.js:1966
-#: htdocs/luci-static/resources/view/fchomo/node.js:2055
+#: htdocs/luci-static/resources/view/fchomo/node.js:1708
+#: htdocs/luci-static/resources/view/fchomo/node.js:1977
+#: htdocs/luci-static/resources/view/fchomo/node.js:2066
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:272
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
msgstr "啟用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:621
msgid ""
"Enable 0-RTT QUIC connection handshake on the client side. This is not "
"impacting much on the performance, as the protocol is fully multiplexed.
強烈建議停用此功能,因為它容易受到重放攻擊。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:620
msgid "Enable 0-RTT handshake"
msgstr "啟用 0-RTT 握手"
@@ -918,57 +925,60 @@ msgstr ""
"為出站連線啟用 IP4P 轉換"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1216
+#: htdocs/luci-static/resources/view/fchomo/node.js:1227
msgid "Enable ECH"
msgstr "啟用 ECH"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1516
+#: htdocs/luci-static/resources/fchomo/listeners.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:1527
msgid "Enable TCP Brutal"
msgstr "啟用 TCP Brutal"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1517
+#: htdocs/luci-static/resources/fchomo/listeners.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:1528
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "啟用 TCP Brutal 擁塞控制演算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:604
+#: htdocs/luci-static/resources/view/fchomo/node.js:615
msgid "Enable fast open"
msgstr "啟用 Fast open"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1505
+#: htdocs/luci-static/resources/view/fchomo/node.js:1516
msgid "Enable multiplexing only for TCP."
msgstr "僅為 TCP 啟用多路復用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:424
-#: htdocs/luci-static/resources/view/fchomo/node.js:488
+#: htdocs/luci-static/resources/view/fchomo/node.js:499
msgid "Enable obfuscate for downlink"
msgstr "啟用下行鏈路混淆"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1499
+#: htdocs/luci-static/resources/fchomo/listeners.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:1510
msgid "Enable padding"
msgstr "啟用填充"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1510
+#: htdocs/luci-static/resources/view/fchomo/node.js:1521
msgid "Enable statistic"
msgstr "啟用統計"
-#: htdocs/luci-static/resources/view/fchomo/node.js:977
-#: htdocs/luci-static/resources/view/fchomo/node.js:1909
+#: htdocs/luci-static/resources/view/fchomo/node.js:988
+#: htdocs/luci-static/resources/view/fchomo/node.js:1920
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "啟用 SUoT 協議,需要服務端支援。與多路復用衝突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:201
-#: htdocs/luci-static/resources/view/fchomo/node.js:339
+#: htdocs/luci-static/resources/view/fchomo/node.js:350
msgid ""
"Enabling obfuscation will make the server incompatible with standard QUIC "
"connections, losing the ability to masquerade with HTTP/3."
msgstr "啟用混淆將使伺服器與標準的 QUIC 連線不相容,失去 HTTP/3 偽裝的能力。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:712
+#: htdocs/luci-static/resources/fchomo/listeners.js:722
msgid "Encryption method"
msgstr "加密方法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:739
+#: htdocs/luci-static/resources/view/fchomo/node.js:750
msgid "Endpoint pubkic key"
msgstr "端點公鑰"
@@ -976,8 +986,8 @@ msgstr "端點公鑰"
msgid "Endpoint-Independent NAT"
msgstr "端點獨立 NAT"
-#: htdocs/luci-static/resources/view/fchomo/client.js:736
-#: htdocs/luci-static/resources/view/fchomo/client.js:887
+#: htdocs/luci-static/resources/view/fchomo/client.js:740
+#: htdocs/luci-static/resources/view/fchomo/client.js:891
msgid "Entry"
msgstr "條目"
@@ -985,17 +995,17 @@ msgstr "條目"
msgid "Error"
msgstr "錯誤"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1190
+#: htdocs/luci-static/resources/view/fchomo/client.js:1194
msgid ""
"Exceeding this triggers a forced health check. 5 will be used "
"if empty."
msgstr "超過此限制將會觸發強制健康檢查。留空則使用 5。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2024
+#: htdocs/luci-static/resources/view/fchomo/node.js:2035
msgid "Exclude matched node types."
msgstr "排除匹配的節點類型。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1244
+#: htdocs/luci-static/resources/view/fchomo/client.js:1248
msgid ""
"Exclude matched node types. Available types see here."
@@ -1003,8 +1013,8 @@ msgstr ""
"排除匹配的節點類型。可用類型請參考此處。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1239
-#: htdocs/luci-static/resources/view/fchomo/node.js:2017
+#: htdocs/luci-static/resources/view/fchomo/client.js:1243
+#: htdocs/luci-static/resources/view/fchomo/node.js:2028
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配關鍵字或表達式的節點。"
@@ -1012,69 +1022,74 @@ msgstr "排除匹配關鍵字或表達式的節點。"
msgid "Expand/Collapse result"
msgstr "展開/收起 結果"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1182
-#: htdocs/luci-static/resources/view/fchomo/node.js:2002
+#: htdocs/luci-static/resources/view/fchomo/client.js:1186
+#: htdocs/luci-static/resources/view/fchomo/node.js:2013
msgid "Expected HTTP code. 204 will be used if empty."
msgstr "預期的 HTTP code。留空則使用 204。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1184
-#: htdocs/luci-static/resources/view/fchomo/node.js:2004
+#: htdocs/luci-static/resources/view/fchomo/client.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:2015
msgid "Expected status"
msgstr "預期狀態"
#: htdocs/luci-static/resources/fchomo.js:452
#: htdocs/luci-static/resources/fchomo.js:455
#: htdocs/luci-static/resources/fchomo.js:458
-#: htdocs/luci-static/resources/fchomo.js:1772
-#: htdocs/luci-static/resources/fchomo.js:1780
-#: htdocs/luci-static/resources/fchomo.js:1788
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1814
-#: htdocs/luci-static/resources/fchomo.js:1821
-#: htdocs/luci-static/resources/fchomo.js:1837
+#: htdocs/luci-static/resources/fchomo.js:1760
+#: htdocs/luci-static/resources/fchomo.js:1768
+#: htdocs/luci-static/resources/fchomo.js:1776
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1802
+#: htdocs/luci-static/resources/fchomo.js:1809
+#: htdocs/luci-static/resources/fchomo.js:1825
+#: htdocs/luci-static/resources/fchomo.js:1834
#: htdocs/luci-static/resources/fchomo.js:1846
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1849
+#: htdocs/luci-static/resources/fchomo.js:1859
#: htdocs/luci-static/resources/fchomo.js:1871
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
-#: htdocs/luci-static/resources/fchomo.js:1896
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1943
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
-#: htdocs/luci-static/resources/fchomo.js:1969
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1874
+#: htdocs/luci-static/resources/fchomo.js:1884
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1931
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
+#: htdocs/luci-static/resources/fchomo.js:1957
+#: htdocs/luci-static/resources/fchomo.js:1966
#: htdocs/luci-static/resources/fchomo/listeners.js:363
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/fchomo/listeners.js:741
-#: htdocs/luci-static/resources/fchomo/listeners.js:772
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:751
+#: htdocs/luci-static/resources/fchomo/listeners.js:782
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
#: htdocs/luci-static/resources/view/fchomo/client.js:71
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
#: htdocs/luci-static/resources/view/fchomo/global.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:1048
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
-#: htdocs/luci-static/resources/view/fchomo/node.js:2091
-#: htdocs/luci-static/resources/view/fchomo/node.js:2121
+#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
+#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
+#: htdocs/luci-static/resources/view/fchomo/node.js:2102
+#: htdocs/luci-static/resources/view/fchomo/node.js:2132
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:300
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:314
msgid "Expecting: %s"
msgstr "請輸入:%s"
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:894
-#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
+msgid "Expecting: Least one of %s or %s."
+msgstr "請輸入:至少包含 %s 或 %s 中的一個。"
+
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "Expecting: only support %s."
msgstr "請輸入:僅支援 %s。"
@@ -1084,29 +1099,29 @@ msgstr "實驗性"
#: htdocs/luci-static/resources/view/fchomo/client.js:553
#: htdocs/luci-static/resources/view/fchomo/client.js:566
-#: htdocs/luci-static/resources/view/fchomo/client.js:574
-#: htdocs/luci-static/resources/view/fchomo/client.js:581
-#: htdocs/luci-static/resources/view/fchomo/client.js:591
-#: htdocs/luci-static/resources/view/fchomo/client.js:598
-#: htdocs/luci-static/resources/view/fchomo/client.js:606
-#: htdocs/luci-static/resources/view/fchomo/client.js:613
-#: htdocs/luci-static/resources/view/fchomo/client.js:680
+#: htdocs/luci-static/resources/view/fchomo/client.js:580
+#: htdocs/luci-static/resources/view/fchomo/client.js:587
+#: htdocs/luci-static/resources/view/fchomo/client.js:597
+#: htdocs/luci-static/resources/view/fchomo/client.js:604
+#: htdocs/luci-static/resources/view/fchomo/client.js:612
+#: htdocs/luci-static/resources/view/fchomo/client.js:619
+#: htdocs/luci-static/resources/view/fchomo/client.js:686
msgid "Factor"
msgstr "條件"
-#: htdocs/luci-static/resources/fchomo.js:1713
+#: htdocs/luci-static/resources/fchomo.js:1701
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:1666
+#: htdocs/luci-static/resources/fchomo.js:1654
msgid "Failed to generate %s, error: %s."
msgstr "生成 %s 失敗,錯誤:%s。"
-#: htdocs/luci-static/resources/fchomo.js:2078
+#: htdocs/luci-static/resources/fchomo.js:2066
msgid "Failed to upload %s, error: %s."
msgstr "上傳 %s 失敗,錯誤:%s。"
-#: htdocs/luci-static/resources/fchomo.js:2097
+#: htdocs/luci-static/resources/fchomo.js:2085
msgid "Failed to upload, error: %s."
msgstr "上傳失敗,錯誤:%s。"
@@ -1115,40 +1130,40 @@ msgstr "上傳失敗,錯誤:%s。"
msgid "Fallback"
msgstr "自動回退"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1481
-#: htdocs/luci-static/resources/view/fchomo/client.js:1494
-#: htdocs/luci-static/resources/view/fchomo/client.js:1925
+#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1498
+#: htdocs/luci-static/resources/view/fchomo/client.js:1930
msgid "Fallback DNS server"
msgstr "後備 DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1881
-#: htdocs/luci-static/resources/view/fchomo/client.js:1922
+#: htdocs/luci-static/resources/view/fchomo/client.js:1885
+#: htdocs/luci-static/resources/view/fchomo/client.js:1927
msgid "Fallback filter"
msgstr "後備過濾器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1234
-#: htdocs/luci-static/resources/view/fchomo/node.js:2011
+#: htdocs/luci-static/resources/view/fchomo/client.js:1238
+#: htdocs/luci-static/resources/view/fchomo/node.js:2022
msgid "Filter nodes that meet keywords or regexps."
msgstr "過濾匹配關鍵字或表達式的節點。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1748
+#: htdocs/luci-static/resources/view/fchomo/client.js:1752
msgid "Filter record type:"
msgstr "過濾記錄類型:"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1716
-#: htdocs/luci-static/resources/view/fchomo/client.js:1732
+#: htdocs/luci-static/resources/view/fchomo/client.js:1720
+#: htdocs/luci-static/resources/view/fchomo/client.js:1736
msgid "Filter record: %s"
msgstr "過濾 %s 記錄"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1480
+#: htdocs/luci-static/resources/view/fchomo/client.js:1484
msgid "Final DNS server"
msgstr "兜底 DNS 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1482
+#: htdocs/luci-static/resources/view/fchomo/client.js:1486
msgid "Final DNS server (For non-poisoned domains)"
msgstr "兜底 DNS 伺服器 (用於未被投毒汙染的網域)"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1484
+#: htdocs/luci-static/resources/view/fchomo/client.js:1488
msgid "Final DNS server (For poisoned domains)"
msgstr "兜底 DNS 伺服器 (用於已被投毒汙染的網域)"
@@ -1156,12 +1171,12 @@ msgstr "兜底 DNS 伺服器 (用於已被投毒汙染的網域)"
msgid "Firewall"
msgstr "防火牆"
-#: htdocs/luci-static/resources/fchomo/listeners.js:532
-#: htdocs/luci-static/resources/view/fchomo/node.js:687
+#: htdocs/luci-static/resources/fchomo/listeners.js:535
+#: htdocs/luci-static/resources/view/fchomo/node.js:698
msgid "Flow"
msgstr "流控"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1223
+#: htdocs/luci-static/resources/view/fchomo/client.js:1227
msgid ""
"For details, see %s."
@@ -1169,9 +1184,9 @@ msgstr ""
"實作細節請參閱 %s."
-#: htdocs/luci-static/resources/view/fchomo/client.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1877
-#: htdocs/luci-static/resources/view/fchomo/node.js:2003
+#: htdocs/luci-static/resources/view/fchomo/client.js:1187
+#: htdocs/luci-static/resources/view/fchomo/node.js:1888
+#: htdocs/luci-static/resources/view/fchomo/node.js:2014
msgid ""
"For format see %s."
@@ -1179,8 +1194,8 @@ msgstr ""
"格式請參閱 %s"
"a>."
-#: htdocs/luci-static/resources/view/fchomo/node.js:787
-#: htdocs/luci-static/resources/view/fchomo/node.js:870
+#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:881
msgid "Force DNS remote resolution."
msgstr "強制 DNS 遠端解析。"
@@ -1199,7 +1214,7 @@ msgstr "格式"
msgid "FullCombo Shark!"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1323
+#: htdocs/luci-static/resources/view/fchomo/node.js:1334
msgid "GET"
msgstr ""
@@ -1208,7 +1223,7 @@ msgid "GFW list version"
msgstr "GFW 網域清單版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:196
-#: htdocs/luci-static/resources/view/fchomo/node.js:334
+#: htdocs/luci-static/resources/view/fchomo/node.js:345
msgid "Gecko"
msgstr ""
@@ -1217,9 +1232,9 @@ msgid "General"
msgstr "常規"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
-#: htdocs/luci-static/resources/view/fchomo/client.js:1038
+#: htdocs/luci-static/resources/view/fchomo/client.js:1042
#: htdocs/luci-static/resources/view/fchomo/node.js:233
-#: htdocs/luci-static/resources/view/fchomo/node.js:1687
+#: htdocs/luci-static/resources/view/fchomo/node.js:1698
msgid "General fields"
msgstr "常規欄位"
@@ -1234,10 +1249,10 @@ msgstr "常規設定"
#: htdocs/luci-static/resources/fchomo/listeners.js:341
#: htdocs/luci-static/resources/fchomo/listeners.js:385
#: htdocs/luci-static/resources/fchomo/listeners.js:387
-#: htdocs/luci-static/resources/fchomo/listeners.js:845
-#: htdocs/luci-static/resources/fchomo/listeners.js:1078
+#: htdocs/luci-static/resources/fchomo/listeners.js:855
+#: htdocs/luci-static/resources/fchomo/listeners.js:1088
#: htdocs/luci-static/resources/view/fchomo/global.js:608
-#: htdocs/luci-static/resources/view/fchomo/node.js:1845
+#: htdocs/luci-static/resources/view/fchomo/node.js:1856
msgid "Generate"
msgstr "生成"
@@ -1253,17 +1268,17 @@ msgstr "GeoIP 版本"
msgid "GeoSite version"
msgstr "GeoSite 版本"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1891
+#: htdocs/luci-static/resources/view/fchomo/client.js:1895
msgid "Geoip code"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1888
+#: htdocs/luci-static/resources/view/fchomo/client.js:1892
msgid "Geoip enable"
msgstr "Geoip 啟用"
-#: htdocs/luci-static/resources/view/fchomo/client.js:861
-#: htdocs/luci-static/resources/view/fchomo/client.js:870
-#: htdocs/luci-static/resources/view/fchomo/client.js:1900
+#: htdocs/luci-static/resources/view/fchomo/client.js:865
+#: htdocs/luci-static/resources/view/fchomo/client.js:874
+#: htdocs/luci-static/resources/view/fchomo/client.js:1904
msgid "Geosite"
msgstr ""
@@ -1284,7 +1299,7 @@ msgstr "全域"
msgid "Global Authentication"
msgstr "全域認證"
-#: htdocs/luci-static/resources/view/fchomo/node.js:711
+#: htdocs/luci-static/resources/view/fchomo/node.js:722
msgid "Global padding"
msgstr "全域填充"
@@ -1300,58 +1315,58 @@ msgstr ""
msgid "Grant access to fchomo configuration"
msgstr "授予 fchomo 存取 UCI 配置的權限"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1063
+#: htdocs/luci-static/resources/view/fchomo/client.js:1067
msgid "Group"
msgstr "組"
#: htdocs/luci-static/resources/fchomo.js:154
#: htdocs/luci-static/resources/fchomo.js:190
-#: htdocs/luci-static/resources/fchomo/listeners.js:578
-#: htdocs/luci-static/resources/view/fchomo/node.js:905
-#: htdocs/luci-static/resources/view/fchomo/node.js:1272
+#: htdocs/luci-static/resources/fchomo/listeners.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:916
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
-#: htdocs/luci-static/resources/view/fchomo/node.js:1290
+#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/view/fchomo/node.js:1301
msgid "HTTP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:301
-#: htdocs/luci-static/resources/view/fchomo/node.js:1345
-#: htdocs/luci-static/resources/view/fchomo/node.js:1857
+#: htdocs/luci-static/resources/view/fchomo/node.js:312
+#: htdocs/luci-static/resources/view/fchomo/node.js:1356
+#: htdocs/luci-static/resources/view/fchomo/node.js:1868
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:419
msgid "HTTP header"
msgstr "HTTP header"
#: htdocs/luci-static/resources/fchomo/listeners.js:430
-#: htdocs/luci-static/resources/view/fchomo/node.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:505
msgid "HTTP mask"
msgstr "HTTP 偽裝"
#: htdocs/luci-static/resources/fchomo/listeners.js:435
-#: htdocs/luci-static/resources/view/fchomo/node.js:499
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:510
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "HTTP mask mode"
msgstr "HTTP 偽裝模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:524
+#: htdocs/luci-static/resources/view/fchomo/node.js:535
msgid "HTTP mask multiplex"
msgstr "HTTP 偽裝多路復用"
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "HTTP mask: %s"
msgstr "HTTP 偽裝: %s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1322
+#: htdocs/luci-static/resources/view/fchomo/node.js:1333
msgid "HTTP request method"
msgstr "HTTP 請求方法"
#: htdocs/luci-static/resources/fchomo/listeners.js:445
-#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:531
msgid "HTTP root path"
msgstr "HTTP 根路徑"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1647
+#: htdocs/luci-static/resources/view/fchomo/client.js:1651
msgid "HTTP/3"
msgstr ""
@@ -1361,9 +1376,9 @@ msgid ""
"returned if empty."
msgstr "身份驗證失敗時的 HTTP3 伺服器回應。預設回傳 404 頁面。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1273
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
-#: htdocs/luci-static/resources/view/fchomo/node.js:1291
+#: htdocs/luci-static/resources/view/fchomo/node.js:1295
+#: htdocs/luci-static/resources/view/fchomo/node.js:1302
msgid "HTTPUpgrade"
msgstr ""
@@ -1371,16 +1386,16 @@ msgstr ""
msgid "Handle domain"
msgstr "處理網域"
-#: htdocs/luci-static/resources/view/fchomo/node.js:416
+#: htdocs/luci-static/resources/view/fchomo/node.js:427
msgid "Handshake mode"
msgstr "握手模式"
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
msgid "Handshake target that supports TLS 1.3"
msgstr "握手目標 (支援 TLS 1.3)"
#: htdocs/luci-static/resources/fchomo/listeners.js:417
-#: htdocs/luci-static/resources/view/fchomo/node.js:962
+#: htdocs/luci-static/resources/view/fchomo/node.js:973
msgid "Handshake timeout"
msgstr "握手逾時"
@@ -1388,57 +1403,57 @@ msgstr "握手逾時"
msgid "Header to read real client IP from (e.g. X-Forwarded-For)"
msgstr "用於讀取客戶端真實 IP 的 Header(例如 X-Forwarded-For)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:798
+#: htdocs/luci-static/resources/view/fchomo/node.js:809
msgid "Health check"
msgstr "健康檢查"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1152
-#: htdocs/luci-static/resources/view/fchomo/node.js:1971
+#: htdocs/luci-static/resources/view/fchomo/client.js:1156
+#: htdocs/luci-static/resources/view/fchomo/node.js:1982
msgid "Health check URL"
msgstr "健康檢查 URL"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1181
-#: htdocs/luci-static/resources/view/fchomo/node.js:2001
+#: htdocs/luci-static/resources/view/fchomo/client.js:1185
+#: htdocs/luci-static/resources/view/fchomo/node.js:2012
msgid "Health check expected status"
msgstr "健康檢查预期状态"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:1981
+#: htdocs/luci-static/resources/view/fchomo/client.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1992
msgid "Health check interval"
msgstr "健康檢查間隔"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1168
-#: htdocs/luci-static/resources/view/fchomo/node.js:1988
+#: htdocs/luci-static/resources/view/fchomo/client.js:1172
+#: htdocs/luci-static/resources/view/fchomo/node.js:1999
msgid "Health check timeout"
msgstr "健康檢查逾時"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1040
-#: htdocs/luci-static/resources/view/fchomo/node.js:1689
+#: htdocs/luci-static/resources/view/fchomo/client.js:1044
+#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health fields"
msgstr "健康欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:616
+#: htdocs/luci-static/resources/view/fchomo/node.js:627
msgid "Heartbeat interval"
msgstr "心跳間隔"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1249
+#: htdocs/luci-static/resources/view/fchomo/client.js:1253
msgid "Hidden"
msgstr "隱藏"
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
msgid "Host that supports TLS 1.3"
msgstr "主機名稱 (支援 TLS 1.3)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:371
+#: htdocs/luci-static/resources/view/fchomo/node.js:382
msgid "Host-key"
msgstr "主機金鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:366
+#: htdocs/luci-static/resources/view/fchomo/node.js:377
msgid "Host-key algorithms"
msgstr "主機金鑰演算法"
-#: htdocs/luci-static/resources/view/fchomo/node.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:525
msgid "Host/SNI override"
msgstr "主機/SNI 覆蓋"
@@ -1461,21 +1476,21 @@ msgstr "Hysteria2 Realm"
msgid "Hysteria2 Realm fields"
msgstr "Hysteria2 Realm 欄位"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
-#: htdocs/luci-static/resources/view/fchomo/client.js:1906
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
+#: htdocs/luci-static/resources/view/fchomo/client.js:1911
msgid "IP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1904
+#: htdocs/luci-static/resources/view/fchomo/client.js:1909
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:573
+#: htdocs/luci-static/resources/view/fchomo/node.js:584
msgid "IP override"
msgstr "IP 覆寫"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1565
-#: htdocs/luci-static/resources/view/fchomo/node.js:1957
+#: htdocs/luci-static/resources/view/fchomo/node.js:1576
+#: htdocs/luci-static/resources/view/fchomo/node.js:1968
msgid "IP version"
msgstr "IP 版本"
@@ -1487,28 +1502,28 @@ msgstr "僅 IPv4"
msgid "IPv6 only"
msgstr "僅 IPv6"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1463
+#: htdocs/luci-static/resources/view/fchomo/client.js:1467
#: htdocs/luci-static/resources/view/fchomo/global.js:436
msgid "IPv6 support"
msgstr "IPv6 支援"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1259
msgid "Icon"
msgstr "圖標"
-#: htdocs/luci-static/resources/view/fchomo/node.js:660
+#: htdocs/luci-static/resources/view/fchomo/node.js:671
msgid "Idle session check interval"
msgstr "閒置會話檢查間隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:667
+#: htdocs/luci-static/resources/view/fchomo/node.js:678
msgid "Idle session timeout"
msgstr "閒置會話逾時"
-#: htdocs/luci-static/resources/fchomo/listeners.js:483
+#: htdocs/luci-static/resources/fchomo/listeners.js:486
msgid "Idle timeout"
msgstr "閒置逾時"
-#: htdocs/luci-static/resources/fchomo.js:1814
+#: htdocs/luci-static/resources/fchomo.js:1802
msgid "If All ports is selected, uncheck others"
msgstr "如果選擇了“所有連接埠”,則取消選取“其他”"
@@ -1524,20 +1539,20 @@ msgstr "忽略客戶端頻寬"
msgid "Import"
msgstr "導入"
-#: htdocs/luci-static/resources/view/fchomo/client.js:975
-#: htdocs/luci-static/resources/view/fchomo/client.js:1032
-#: htdocs/luci-static/resources/view/fchomo/client.js:1278
-#: htdocs/luci-static/resources/view/fchomo/client.js:1329
-#: htdocs/luci-static/resources/view/fchomo/client.js:1400
-#: htdocs/luci-static/resources/view/fchomo/client.js:1424
-#: htdocs/luci-static/resources/view/fchomo/client.js:1528
-#: htdocs/luci-static/resources/view/fchomo/client.js:1566
-#: htdocs/luci-static/resources/view/fchomo/client.js:1783
-#: htdocs/luci-static/resources/view/fchomo/client.js:1800
-#: htdocs/luci-static/resources/view/fchomo/client.js:1835
-#: htdocs/luci-static/resources/view/fchomo/client.js:1856
-#: htdocs/luci-static/resources/view/fchomo/node.js:1591
-#: htdocs/luci-static/resources/view/fchomo/node.js:1675
+#: htdocs/luci-static/resources/view/fchomo/client.js:979
+#: htdocs/luci-static/resources/view/fchomo/client.js:1036
+#: htdocs/luci-static/resources/view/fchomo/client.js:1282
+#: htdocs/luci-static/resources/view/fchomo/client.js:1333
+#: htdocs/luci-static/resources/view/fchomo/client.js:1404
+#: htdocs/luci-static/resources/view/fchomo/client.js:1428
+#: htdocs/luci-static/resources/view/fchomo/client.js:1532
+#: htdocs/luci-static/resources/view/fchomo/client.js:1570
+#: htdocs/luci-static/resources/view/fchomo/client.js:1787
+#: htdocs/luci-static/resources/view/fchomo/client.js:1804
+#: htdocs/luci-static/resources/view/fchomo/client.js:1839
+#: htdocs/luci-static/resources/view/fchomo/client.js:1860
+#: htdocs/luci-static/resources/view/fchomo/node.js:1602
+#: htdocs/luci-static/resources/view/fchomo/node.js:1686
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:249
msgid "Import mihomo config"
@@ -1551,61 +1566,61 @@ msgstr "導入規則集連結"
#: htdocs/luci-static/resources/fchomo/listeners.js:176
#: htdocs/luci-static/resources/fchomo/listeners.js:182
-#: htdocs/luci-static/resources/view/fchomo/node.js:320
-#: htdocs/luci-static/resources/view/fchomo/node.js:326
-#: htdocs/luci-static/resources/view/fchomo/node.js:1915
-#: htdocs/luci-static/resources/view/fchomo/node.js:1921
+#: htdocs/luci-static/resources/view/fchomo/node.js:331
+#: htdocs/luci-static/resources/view/fchomo/node.js:337
+#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/node.js:1932
msgid "In Mbps."
msgstr "單位為 Mbps。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1765
+#: htdocs/luci-static/resources/view/fchomo/node.js:1776
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:392
msgid "In bytes. %s will be used if empty."
msgstr "單位為位元組。留空則使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:617
-#: htdocs/luci-static/resources/view/fchomo/node.js:624
+#: htdocs/luci-static/resources/view/fchomo/node.js:628
+#: htdocs/luci-static/resources/view/fchomo/node.js:635
msgid "In millisecond."
msgstr "單位為毫秒。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1169
-#: htdocs/luci-static/resources/view/fchomo/client.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1989
+#: htdocs/luci-static/resources/view/fchomo/client.js:1173
+#: htdocs/luci-static/resources/view/fchomo/client.js:1219
+#: htdocs/luci-static/resources/view/fchomo/node.js:2000
msgid "In millisecond. %s will be used if empty."
msgstr "單位為毫秒。留空則使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1414
+#: htdocs/luci-static/resources/view/fchomo/node.js:1425
msgid "In milliseconds."
msgstr "單位為毫秒。"
#: htdocs/luci-static/resources/fchomo/listeners.js:418
-#: htdocs/luci-static/resources/fchomo/listeners.js:484
-#: htdocs/luci-static/resources/fchomo/listeners.js:491
-#: htdocs/luci-static/resources/view/fchomo/node.js:661
-#: htdocs/luci-static/resources/view/fchomo/node.js:668
-#: htdocs/luci-static/resources/view/fchomo/node.js:1361
+#: htdocs/luci-static/resources/fchomo/listeners.js:487
+#: htdocs/luci-static/resources/fchomo/listeners.js:494
+#: htdocs/luci-static/resources/view/fchomo/node.js:672
+#: htdocs/luci-static/resources/view/fchomo/node.js:679
+#: htdocs/luci-static/resources/view/fchomo/node.js:1372
msgid "In seconds."
msgstr "單位為秒。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1162
+#: htdocs/luci-static/resources/view/fchomo/client.js:1166
#: htdocs/luci-static/resources/view/fchomo/global.js:446
#: htdocs/luci-static/resources/view/fchomo/global.js:451
#: htdocs/luci-static/resources/view/fchomo/global.js:536
-#: htdocs/luci-static/resources/view/fchomo/node.js:314
-#: htdocs/luci-static/resources/view/fchomo/node.js:1771
-#: htdocs/luci-static/resources/view/fchomo/node.js:1982
+#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1782
+#: htdocs/luci-static/resources/view/fchomo/node.js:1993
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:398
msgid "In seconds. %s will be used if empty."
msgstr "單位為秒。留空則使用 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:963
+#: htdocs/luci-static/resources/view/fchomo/node.js:974
msgid ""
"In seconds. After configuration, the handshake is not affected by the outer "
"connection timeout."
msgstr "單位為秒。配置後握手時不受外層連線逾時影響。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:761
-#: htdocs/luci-static/resources/view/fchomo/node.js:1037
+#: htdocs/luci-static/resources/fchomo/listeners.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:1048
msgid ""
"In the order of one Padding-Length and one Padding-"
"Interval, infinite concatenation."
@@ -1619,27 +1634,27 @@ msgstr ""
msgid "Inbound"
msgstr "入站"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1116
+#: htdocs/luci-static/resources/view/fchomo/client.js:1120
msgid "Include all"
msgstr "引入所有"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1121
+#: htdocs/luci-static/resources/view/fchomo/client.js:1125
msgid "Include all node"
msgstr "引入所有節點"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1126
+#: htdocs/luci-static/resources/view/fchomo/client.js:1130
msgid "Include all provider"
msgstr "引入所有供應商"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1127
+#: htdocs/luci-static/resources/view/fchomo/client.js:1131
msgid "Includes all Provider."
msgstr "引入所有供應商。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1117
+#: htdocs/luci-static/resources/view/fchomo/client.js:1121
msgid "Includes all Proxy Node and Provider."
msgstr "引入所有代理節點及供應商。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1122
+#: htdocs/luci-static/resources/view/fchomo/client.js:1126
msgid "Includes all Proxy Node."
msgstr "引入所有代理節點。"
@@ -1647,7 +1662,7 @@ msgstr "引入所有代理節點。"
msgid "Info"
msgstr "訊息"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1704
+#: htdocs/luci-static/resources/view/fchomo/node.js:1715
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:288
msgid "Inline"
msgstr "內嵌"
@@ -1660,61 +1675,61 @@ msgstr "介面控制"
#: htdocs/luci-static/resources/fchomo.js:60
#: htdocs/luci-static/resources/fchomo.js:173
#: htdocs/luci-static/resources/fchomo.js:377
-#: htdocs/luci-static/resources/view/fchomo/node.js:1931
+#: htdocs/luci-static/resources/view/fchomo/node.js:1942
msgid "Keep default"
msgstr "保持預設"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "Keep-alive period"
msgstr "Keep-alive 週期"
#: htdocs/luci-static/resources/fchomo/listeners.js:296
-#: htdocs/luci-static/resources/view/fchomo/node.js:430
+#: htdocs/luci-static/resources/view/fchomo/node.js:441
msgid "Key"
msgstr "密鑰"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1005
-#: htdocs/luci-static/resources/view/fchomo/node.js:1202
+#: htdocs/luci-static/resources/fchomo/listeners.js:1015
+#: htdocs/luci-static/resources/view/fchomo/node.js:1213
msgid "Key path"
msgstr "憑證路徑"
-#: htdocs/luci-static/resources/fchomo/listeners.js:780
+#: htdocs/luci-static/resources/fchomo/listeners.js:790
msgid "Keypairs"
msgstr "密鑰對"
#: htdocs/luci-static/resources/fchomo/listeners.js:128
-#: htdocs/luci-static/resources/view/fchomo/client.js:1043
-#: htdocs/luci-static/resources/view/fchomo/client.js:1335
-#: htdocs/luci-static/resources/view/fchomo/client.js:1430
-#: htdocs/luci-static/resources/view/fchomo/client.js:1572
-#: htdocs/luci-static/resources/view/fchomo/client.js:1806
-#: htdocs/luci-static/resources/view/fchomo/client.js:1862
+#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1339
+#: htdocs/luci-static/resources/view/fchomo/client.js:1434
+#: 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:241
-#: htdocs/luci-static/resources/view/fchomo/node.js:1692
-#: htdocs/luci-static/resources/view/fchomo/node.js:2050
+#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:2061
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:267
msgid "Label"
msgstr "標籤"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1175
-#: htdocs/luci-static/resources/view/fchomo/node.js:1995
+#: htdocs/luci-static/resources/view/fchomo/client.js:1179
+#: htdocs/luci-static/resources/view/fchomo/node.js:2006
msgid "Lazy"
msgstr "怠惰狀態"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1913
+#: htdocs/luci-static/resources/view/fchomo/client.js:1918
msgid "Lazy query"
msgstr "怠惰查詢"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1914
+#: htdocs/luci-static/resources/view/fchomo/client.js:1919
msgid "Lazy query."
msgstr "怠惰查詢。"
#: htdocs/luci-static/resources/fchomo/listeners.js:437
-#: htdocs/luci-static/resources/view/fchomo/node.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:512
msgid "Legacy"
msgstr "傳統"
-#: htdocs/luci-static/resources/fchomo/listeners.js:541
+#: htdocs/luci-static/resources/fchomo/listeners.js:544
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
"compatibility purposes only, use of alterId > 1 is not recommended."
@@ -1726,8 +1741,8 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr "有時效能較好。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:986
-#: htdocs/luci-static/resources/view/fchomo/node.js:1123
+#: htdocs/luci-static/resources/fchomo/listeners.js:996
+#: htdocs/luci-static/resources/view/fchomo/node.js:1134
msgid "List of supported application level protocols, in order of preference."
msgstr "支援的應用層協議協商清單,依序排列。"
@@ -1744,7 +1759,7 @@ msgid "Listen interfaces"
msgstr "監聽介面"
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/client.js:1455
+#: htdocs/luci-static/resources/view/fchomo/client.js:1459
msgid "Listen port"
msgstr "監聽埠"
@@ -1752,7 +1767,7 @@ msgstr "監聽埠"
msgid "Listen ports"
msgstr "監聽埠"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1460
+#: htdocs/luci-static/resources/view/fchomo/client.js:1464
msgid "Listen routing mark (Fwmark)"
msgstr "監聽路由標記 (Fwmark)"
@@ -1760,18 +1775,18 @@ msgstr "監聽路由標記 (Fwmark)"
msgid "Load balance"
msgstr "負載均衡"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1702
+#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:286
msgid "Local"
msgstr "本地"
-#: htdocs/luci-static/resources/view/fchomo/node.js:754
-#: htdocs/luci-static/resources/view/fchomo/node.js:817
+#: htdocs/luci-static/resources/view/fchomo/node.js:765
+#: htdocs/luci-static/resources/view/fchomo/node.js:828
msgid "Local IPv6 address"
msgstr "本地 IPv6 位址"
-#: htdocs/luci-static/resources/view/fchomo/node.js:746
-#: htdocs/luci-static/resources/view/fchomo/node.js:809
+#: htdocs/luci-static/resources/view/fchomo/node.js:757
+#: htdocs/luci-static/resources/view/fchomo/node.js:820
msgid "Local address"
msgstr "本地位址"
@@ -1795,10 +1810,10 @@ msgstr "日誌等級"
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Low-entropy data stream"
msgstr "低熵資料流"
@@ -1807,8 +1822,8 @@ msgid "Lowercase only"
msgstr "僅限小寫"
#: htdocs/luci-static/resources/view/fchomo/global.js:523
-#: htdocs/luci-static/resources/view/fchomo/node.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:863
+#: htdocs/luci-static/resources/view/fchomo/node.js:771
+#: htdocs/luci-static/resources/view/fchomo/node.js:874
msgid "MTU"
msgstr ""
@@ -1820,70 +1835,70 @@ msgstr ""
msgid "Masquerade"
msgstr "偽裝"
-#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:870
msgid "Match domain. Support wildcards."
msgstr "匹配網域。支援通配符。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1910
+#: htdocs/luci-static/resources/view/fchomo/client.js:1915
msgid "Match domain. Support wildcards."
msgstr "匹配網域。支援通配符。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:871
+#: htdocs/luci-static/resources/view/fchomo/client.js:875
msgid "Match geosite."
msgstr "匹配 geosite。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1901
+#: htdocs/luci-static/resources/view/fchomo/client.js:1905
msgid "Match geosite."
msgstr "匹配 geosite。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1892
+#: htdocs/luci-static/resources/view/fchomo/client.js:1896
msgid "Match response with geoip."
msgstr "匹配回應通過 geoip。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1905
+#: htdocs/luci-static/resources/view/fchomo/client.js:1910
msgid "Match response with ipcidr."
msgstr "匹配回應通過 ipcidr"
-#: htdocs/luci-static/resources/view/fchomo/client.js:876
+#: htdocs/luci-static/resources/view/fchomo/client.js:880
msgid "Match rule set."
msgstr "匹配規則集。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1367
+#: htdocs/luci-static/resources/view/fchomo/node.js:1378
msgid "Max Early Data"
msgstr "前置數據最大值"
-#: htdocs/luci-static/resources/fchomo/listeners.js:477
-#: htdocs/luci-static/resources/view/fchomo/node.js:598
+#: htdocs/luci-static/resources/fchomo/listeners.js:480
+#: htdocs/luci-static/resources/view/fchomo/node.js:609
msgid "Max UDP relay packet size"
msgstr "UDP 中繼數據包最大尺寸"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/fchomo/listeners.js:1214
msgid "Max buffered posts"
msgstr "POST 最大緩衝"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
msgid "Max concurrency"
msgstr "最大並發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
msgid "Max connections"
msgstr "最大連線數"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1189
+#: htdocs/luci-static/resources/view/fchomo/client.js:1193
msgid "Max count of failures"
msgstr "最大失敗次數"
#: htdocs/luci-static/resources/fchomo/listeners.js:181
-#: htdocs/luci-static/resources/view/fchomo/node.js:325
+#: htdocs/luci-static/resources/view/fchomo/node.js:336
msgid "Max download speed"
msgstr "最大下載速度"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1215
-#: htdocs/luci-static/resources/view/fchomo/node.js:1407
+#: htdocs/luci-static/resources/fchomo/listeners.js:1225
+#: htdocs/luci-static/resources/view/fchomo/node.js:1418
msgid "Max each POST bytes"
msgstr "POST 最大位元組數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:630
+#: htdocs/luci-static/resources/view/fchomo/node.js:641
msgid "Max open streams"
msgstr "限制打開流的數量"
@@ -1895,29 +1910,29 @@ msgstr "最大 Realms 數量"
msgid "Max realms per client IP"
msgstr "每客戶端 IP 最大 Realms 數量"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
msgid "Max request times"
msgstr "最大請求次數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
msgid "Max reusable seconds"
msgstr "最大可重用秒數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
msgid "Max reuse times"
msgstr "最大重用次數"
#: htdocs/luci-static/resources/fchomo/listeners.js:175
-#: htdocs/luci-static/resources/view/fchomo/node.js:319
+#: htdocs/luci-static/resources/view/fchomo/node.js:330
msgid "Max upload speed"
msgstr "最大上傳速度"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1471
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1482
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Maximum connections"
msgstr "最大連線數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1489
+#: htdocs/luci-static/resources/view/fchomo/node.js:1500
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with %s and %s."
@@ -1926,18 +1941,18 @@ msgstr ""
"%s 衝突。"
#: htdocs/luci-static/resources/fchomo/listeners.js:402
-#: htdocs/luci-static/resources/view/fchomo/node.js:473
+#: htdocs/luci-static/resources/view/fchomo/node.js:484
msgid "Maximum padding rate"
msgstr "最大填充率"
#: htdocs/luci-static/resources/fchomo/listeners.js:410
-#: htdocs/luci-static/resources/view/fchomo/node.js:481
+#: htdocs/luci-static/resources/view/fchomo/node.js:492
msgid ""
"Maximum padding rate must be greater than or equal to the minimum padding "
"rate."
msgstr "最大填充率必須大於等于最小填充率。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1488
+#: htdocs/luci-static/resources/view/fchomo/node.js:1499
msgid "Maximum streams"
msgstr "最大流數量"
@@ -1946,7 +1961,7 @@ msgstr "最大流數量"
msgid "Mieru"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:930
+#: htdocs/luci-static/resources/view/fchomo/client.js:934
#: htdocs/luci-static/resources/view/fchomo/log.js:149
#: htdocs/luci-static/resources/view/fchomo/log.js:154
msgid "Mihomo client"
@@ -1958,26 +1973,26 @@ msgstr "Mihomo 客戶端"
msgid "Mihomo server"
msgstr "Mihomo 服務端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:674
+#: htdocs/luci-static/resources/view/fchomo/node.js:685
msgid "Min of idle sessions to keep"
msgstr "要保留的最少閒置會話數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1413
+#: htdocs/luci-static/resources/view/fchomo/node.js:1424
msgid "Min posts interval"
msgstr "POST 請求最小間隔時間"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1480
+#: htdocs/luci-static/resources/view/fchomo/node.js:1491
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在開啟新連線之前,連線中的最小多路復用流數量。"
#: htdocs/luci-static/resources/fchomo/listeners.js:395
-#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:477
msgid "Minimum padding rate"
msgstr "最小填充率"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1479
-#: htdocs/luci-static/resources/view/fchomo/node.js:1491
+#: htdocs/luci-static/resources/view/fchomo/node.js:1490
+#: htdocs/luci-static/resources/view/fchomo/node.js:1502
msgid "Minimum streams"
msgstr "最小流數量"
@@ -1994,7 +2009,8 @@ msgstr "混合 系統 TCP 堆栈和 gVisor UDP 堆栈
msgid "Mixed port"
msgstr "混合連接埠"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1457
+#: htdocs/luci-static/resources/fchomo/listeners.js:1232
+#: htdocs/luci-static/resources/view/fchomo/node.js:1468
msgid "Multiplex"
msgstr "多路復用"
@@ -2003,20 +2019,20 @@ msgstr "多路復用"
msgid "Multiplex fields"
msgstr "多路復用欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:407
+#: htdocs/luci-static/resources/view/fchomo/node.js:418
msgid "Multiplexing"
msgstr "多路復用"
-#: htdocs/luci-static/resources/view/fchomo/client.js:624
-#: htdocs/luci-static/resources/view/fchomo/client.js:702
+#: htdocs/luci-static/resources/view/fchomo/client.js:630
+#: htdocs/luci-static/resources/view/fchomo/client.js:706
msgid "NOT"
msgstr "NOT"
-#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:639
msgid "Name of the Proxy group as outbound."
msgstr "出站代理組的名稱。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1777
+#: htdocs/luci-static/resources/view/fchomo/node.js:1788
msgid "Name of the Proxy group to download provider."
msgstr "用於下載供應商訂閱的代理組名稱。"
@@ -2024,11 +2040,11 @@ msgstr "用於下載供應商訂閱的代理組名稱。"
msgid "Name of the Proxy group to download rule set."
msgstr "用於下載規則集訂閱的代理組名稱。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:618
+#: htdocs/luci-static/resources/fchomo/listeners.js:628
msgid "Name of the Sub rule used for inbound matching."
msgstr "用於入站匹配的子規則名稱。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:582
+#: htdocs/luci-static/resources/view/fchomo/node.js:593
msgid "Native UDP"
msgstr "原生 UDP"
@@ -2036,15 +2052,15 @@ msgstr "原生 UDP"
msgid "Native appearance"
msgstr "原生外觀"
-#: htdocs/luci-static/resources/view/fchomo/node.js:766
+#: htdocs/luci-static/resources/view/fchomo/node.js:777
msgid "Network"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:660
+#: htdocs/luci-static/resources/fchomo/listeners.js:670
msgid "Network type"
msgstr "網路類型"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1933
+#: htdocs/luci-static/resources/view/fchomo/node.js:1944
msgid "No"
msgstr ""
@@ -2052,20 +2068,20 @@ msgstr ""
msgid "No Authentication IP ranges"
msgstr "無需認證的 IP 範圍"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1209
msgid "No SSE header"
msgstr "無 SSE header"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:1596
msgid "No add'l params"
msgstr "無附加參數"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1397
+#: htdocs/luci-static/resources/view/fchomo/node.js:1408
msgid "No gRPC header"
msgstr "無 gRPC header"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1176
-#: htdocs/luci-static/resources/view/fchomo/node.js:1996
+#: htdocs/luci-static/resources/view/fchomo/client.js:1180
+#: htdocs/luci-static/resources/view/fchomo/node.js:2007
msgid "No testing is performed when this provider node is not in use."
msgstr "當此供應商的節點未使用時,不執行任何測試。"
@@ -2077,27 +2093,27 @@ msgstr "未找到有效的%s。"
msgid "No valid rule-set link found."
msgstr "未找到有效的規則集連結。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1076
+#: htdocs/luci-static/resources/view/fchomo/client.js:1080
#: htdocs/luci-static/resources/view/fchomo/node.js:228
msgid "Node"
msgstr "節點"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1238
-#: htdocs/luci-static/resources/view/fchomo/node.js:2016
+#: htdocs/luci-static/resources/view/fchomo/client.js:1242
+#: htdocs/luci-static/resources/view/fchomo/node.js:2027
msgid "Node exclude filter"
msgstr "排除節點"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1243
-#: htdocs/luci-static/resources/view/fchomo/node.js:2023
+#: htdocs/luci-static/resources/view/fchomo/client.js:1247
+#: htdocs/luci-static/resources/view/fchomo/node.js:2034
msgid "Node exclude type"
msgstr "排除節點類型"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1233
-#: htdocs/luci-static/resources/view/fchomo/node.js:2010
+#: htdocs/luci-static/resources/view/fchomo/client.js:1237
+#: htdocs/luci-static/resources/view/fchomo/node.js:2021
msgid "Node filter"
msgstr "過濾節點"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1214
+#: htdocs/luci-static/resources/view/fchomo/client.js:1218
msgid "Node switch tolerance"
msgstr "節點切換容差"
@@ -2109,49 +2125,49 @@ msgstr "無"
msgid "Not Installed"
msgstr "未安裝"
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Not Running"
msgstr "未在運作"
-#: htdocs/luci-static/resources/view/fchomo/node.js:527
+#: htdocs/luci-static/resources/view/fchomo/node.js:538
msgid "OFF"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "ON"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
msgid "Obfs Mode"
msgstr "Obfs 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:213
-#: htdocs/luci-static/resources/view/fchomo/node.js:351
+#: htdocs/luci-static/resources/view/fchomo/node.js:362
msgid "Obfuscate maximum packet size"
msgstr "混淆最大資料包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:208
-#: htdocs/luci-static/resources/view/fchomo/node.js:346
+#: htdocs/luci-static/resources/view/fchomo/node.js:357
msgid "Obfuscate minimum packet size"
msgstr "混淆最小資料包大小"
#: htdocs/luci-static/resources/fchomo/listeners.js:200
-#: htdocs/luci-static/resources/view/fchomo/node.js:338
+#: htdocs/luci-static/resources/view/fchomo/node.js:349
msgid "Obfuscate password"
msgstr "混淆密碼"
#: htdocs/luci-static/resources/fchomo/listeners.js:193
#: htdocs/luci-static/resources/fchomo/listeners.js:370
-#: htdocs/luci-static/resources/view/fchomo/node.js:331
-#: htdocs/luci-static/resources/view/fchomo/node.js:452
+#: htdocs/luci-static/resources/view/fchomo/node.js:342
+#: htdocs/luci-static/resources/view/fchomo/node.js:463
msgid "Obfuscate type"
msgstr "混淆類型"
#: htdocs/luci-static/resources/fchomo/listeners.js:371
#: htdocs/luci-static/resources/fchomo/listeners.js:372
-#: htdocs/luci-static/resources/view/fchomo/node.js:453
-#: htdocs/luci-static/resources/view/fchomo/node.js:454
+#: htdocs/luci-static/resources/view/fchomo/node.js:464
+#: htdocs/luci-static/resources/view/fchomo/node.js:465
msgid "Obfuscated as %s"
msgstr "混淆為%s"
@@ -2159,12 +2175,12 @@ 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:980
+#: htdocs/luci-static/resources/fchomo/listeners.js:990
msgid "Only applicable when %s are used as a frontend."
msgstr "僅當 %s 用作前端時適用。"
#: htdocs/luci-static/resources/fchomo/listeners.js:379
-#: htdocs/luci-static/resources/view/fchomo/node.js:461
+#: htdocs/luci-static/resources/view/fchomo/node.js:472
msgid "Only applies to the %s."
msgstr "只對%s生效。"
@@ -2172,7 +2188,7 @@ msgstr "只對%s生效。"
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr "只處理來自指定介面的流量。留空表示全部。"
-#: htdocs/luci-static/resources/fchomo.js:1586
+#: htdocs/luci-static/resources/fchomo.js:1574
msgid "Open Dashboard"
msgstr "打開面板"
@@ -2180,6 +2196,10 @@ msgstr "打開面板"
msgid "Operation mode"
msgstr "運作模式"
+#: htdocs/luci-static/resources/view/fchomo/client.js:1907
+msgid "Option is deprecated. Please use %s instead."
+msgstr "該選項已棄用,請使用%s作為代替。"
+
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:46
msgid "Outbound"
msgstr "出站"
@@ -2189,16 +2209,16 @@ msgstr "出站"
msgid "Override destination"
msgstr "覆蓋目標位址"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1039
-#: htdocs/luci-static/resources/view/fchomo/node.js:1688
+#: htdocs/luci-static/resources/view/fchomo/client.js:1043
+#: htdocs/luci-static/resources/view/fchomo/node.js:1699
msgid "Override fields"
msgstr "覆蓋欄位"
-#: htdocs/luci-static/resources/view/fchomo/node.js:574
+#: htdocs/luci-static/resources/view/fchomo/node.js:585
msgid "Override the IP address of the server that DNS response."
msgstr "覆蓋 DNS 回應的伺服器的 IP 位址。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:904
+#: htdocs/luci-static/resources/view/fchomo/client.js:908
msgid "Override the Proxy group of DNS server."
msgstr "覆蓋 DNS 伺服器所使用的代理組。"
@@ -2206,11 +2226,11 @@ msgstr "覆蓋 DNS 伺服器所使用的代理組。"
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的網域覆寫連線目標。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1699
+#: htdocs/luci-static/resources/view/fchomo/client.js:1703
msgid "Override the existing ECS in original request."
msgstr "覆蓋原始請求中已有的 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1229
+#: htdocs/luci-static/resources/view/fchomo/node.js:1240
msgid "Overrides the domain name used for HTTPS record queries."
msgstr "覆蓋用於 HTTPS 記錄查詢的網域。"
@@ -2218,37 +2238,37 @@ msgstr "覆蓋用於 HTTPS 記錄查詢的網域。"
msgid "Overview"
msgstr "概覽"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1324
+#: htdocs/luci-static/resources/view/fchomo/node.js:1335
msgid "POST"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1325
+#: htdocs/luci-static/resources/view/fchomo/node.js:1336
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:723
+#: htdocs/luci-static/resources/view/fchomo/node.js:734
msgid "Packet encoding"
msgstr "數據包編碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1402
+#: htdocs/luci-static/resources/view/fchomo/node.js:1413
msgid "Padding bytes"
msgstr "填充位元組"
-#: htdocs/luci-static/resources/fchomo/listeners.js:521
+#: htdocs/luci-static/resources/fchomo/listeners.js:524
msgid "Padding scheme"
msgstr "填充方案"
-#: htdocs/luci-static/resources/fchomo/listeners.js:759
-#: htdocs/luci-static/resources/view/fchomo/node.js:1035
+#: htdocs/luci-static/resources/fchomo/listeners.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:1046
msgid "Paddings"
msgstr "填充 (Paddings)"
#: htdocs/luci-static/resources/fchomo/listeners.js:166
#: htdocs/luci-static/resources/fchomo/listeners.js:263
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/view/fchomo/node.js:295
-#: htdocs/luci-static/resources/view/fchomo/node.js:385
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/view/fchomo/node.js:306
+#: htdocs/luci-static/resources/view/fchomo/node.js:396
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
msgid "Password"
msgstr "密碼"
@@ -2260,13 +2280,13 @@ msgstr "捆綁包路徑"
msgid "Path in bundle: %s"
msgstr "在捆綁包%s中的路徑"
-#: htdocs/luci-static/resources/fchomo/listeners.js:699
-#: htdocs/luci-static/resources/view/fchomo/node.js:1752
+#: htdocs/luci-static/resources/fchomo/listeners.js:709
+#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:373
msgid "Payload"
msgstr "Payload"
-#: htdocs/luci-static/resources/view/fchomo/node.js:831
+#: htdocs/luci-static/resources/view/fchomo/node.js:842
msgid "Peer pubkic key"
msgstr "對端公鑰"
@@ -2276,11 +2296,11 @@ msgid ""
"it is not needed."
msgstr "效能可能會略有下降,建議僅在需要時開啟。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:858
+#: htdocs/luci-static/resources/view/fchomo/node.js:869
msgid "Periodically sends data packets to maintain connection persistence."
msgstr "定期發送資料包以維持連線持久性。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:857
+#: htdocs/luci-static/resources/view/fchomo/node.js:868
msgid "Persistent keepalive"
msgstr "持久連接"
@@ -2303,8 +2323,8 @@ msgid ""
"standards."
msgstr "連結格式標準請參考 %s。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1725
-#: htdocs/luci-static/resources/view/fchomo/node.js:1751
+#: htdocs/luci-static/resources/view/fchomo/node.js:1736
+#: htdocs/luci-static/resources/view/fchomo/node.js:1762
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:346
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:372
msgid ""
@@ -2313,33 +2333,34 @@ msgid ""
msgstr ""
"請輸入 %s。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:976
-#: htdocs/luci-static/resources/view/fchomo/client.js:1279
-#: htdocs/luci-static/resources/view/fchomo/client.js:1401
-#: htdocs/luci-static/resources/view/fchomo/client.js:1529
-#: htdocs/luci-static/resources/view/fchomo/client.js:1784
-#: htdocs/luci-static/resources/view/fchomo/client.js:1836
-#: htdocs/luci-static/resources/view/fchomo/node.js:1592
+#: htdocs/luci-static/resources/view/fchomo/client.js:980
+#: htdocs/luci-static/resources/view/fchomo/client.js:1283
+#: htdocs/luci-static/resources/view/fchomo/client.js:1405
+#: htdocs/luci-static/resources/view/fchomo/client.js:1533
+#: htdocs/luci-static/resources/view/fchomo/client.js:1788
+#: htdocs/luci-static/resources/view/fchomo/client.js:1840
+#: htdocs/luci-static/resources/view/fchomo/node.js:1603
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:155
msgid "Please type %s fields of mihomo config."
msgstr "請輸入 mihomo 配置的 %s 欄位。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:557
-#: htdocs/luci-static/resources/view/fchomo/node.js:881
+#: htdocs/luci-static/resources/fchomo/listeners.js:560
+#: htdocs/luci-static/resources/view/fchomo/node.js:892
msgid "Plugin"
msgstr "插件"
-#: htdocs/luci-static/resources/fchomo/listeners.js:577
-#: htdocs/luci-static/resources/fchomo/listeners.js:583
-#: htdocs/luci-static/resources/fchomo/listeners.js:590
-#: htdocs/luci-static/resources/fchomo/listeners.js:597
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:904
-#: htdocs/luci-static/resources/view/fchomo/node.js:910
-#: htdocs/luci-static/resources/view/fchomo/node.js:917
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:581
+#: htdocs/luci-static/resources/fchomo/listeners.js:587
+#: htdocs/luci-static/resources/fchomo/listeners.js:594
+#: htdocs/luci-static/resources/fchomo/listeners.js:601
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:915
+#: htdocs/luci-static/resources/view/fchomo/node.js:921
+#: htdocs/luci-static/resources/view/fchomo/node.js:928
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Plugin:"
msgstr "插件:"
@@ -2347,15 +2368,15 @@ msgstr "插件:"
msgid "Port"
msgstr "連接埠"
-#: htdocs/luci-static/resources/fchomo.js:1823
+#: htdocs/luci-static/resources/fchomo.js:1811
msgid "Port %s alrealy exists!"
msgstr "連接埠 %s 已存在!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:313
+#: htdocs/luci-static/resources/view/fchomo/node.js:324
msgid "Port hop interval"
msgstr "連接埠跳躍間隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:395
+#: htdocs/luci-static/resources/view/fchomo/node.js:406
msgid "Port range"
msgstr "連接埠範圍"
@@ -2364,19 +2385,19 @@ msgid "Ports"
msgstr "連接埠"
#: htdocs/luci-static/resources/fchomo/listeners.js:153
-#: htdocs/luci-static/resources/view/fchomo/node.js:308
+#: htdocs/luci-static/resources/view/fchomo/node.js:319
msgid "Ports pool"
msgstr "連接埠池"
#: htdocs/luci-static/resources/fchomo/listeners.js:225
#: htdocs/luci-static/resources/fchomo/listeners.js:456
-#: htdocs/luci-static/resources/view/fchomo/node.js:544
-#: htdocs/luci-static/resources/view/fchomo/node.js:838
+#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/view/fchomo/node.js:849
msgid "Pre-shared key"
msgstr "預先共用金鑰"
-#: htdocs/luci-static/resources/fchomo/listeners.js:897
-#: htdocs/luci-static/resources/view/fchomo/node.js:1070
+#: htdocs/luci-static/resources/fchomo/listeners.js:907
+#: htdocs/luci-static/resources/view/fchomo/node.js:1081
msgid "Pre-shared key of rendezvous server"
msgstr "牽線伺服器的預先共用金鑰"
@@ -2395,23 +2416,23 @@ msgstr "防止某些情況下的 ICMP 環回問題。 Ping 不會顯示實際延
#: htdocs/luci-static/resources/view/fchomo/global.js:760
#: htdocs/luci-static/resources/view/fchomo/global.js:777
-#: htdocs/luci-static/resources/view/fchomo/node.js:1553
-#: htdocs/luci-static/resources/view/fchomo/node.js:1560
-#: htdocs/luci-static/resources/view/fchomo/node.js:1945
-#: htdocs/luci-static/resources/view/fchomo/node.js:1952
+#: htdocs/luci-static/resources/view/fchomo/node.js:1564
+#: htdocs/luci-static/resources/view/fchomo/node.js:1571
+#: htdocs/luci-static/resources/view/fchomo/node.js:1956
+#: htdocs/luci-static/resources/view/fchomo/node.js:1963
msgid "Priority: Proxy Node > Global."
msgstr "優先權: 代理節點 > 全域。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:357
+#: htdocs/luci-static/resources/view/fchomo/node.js:368
msgid "Priv-key"
msgstr "金鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:361
+#: htdocs/luci-static/resources/view/fchomo/node.js:372
msgid "Priv-key passphrase"
msgstr "金鑰密碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:731
-#: htdocs/luci-static/resources/view/fchomo/node.js:823
+#: htdocs/luci-static/resources/view/fchomo/node.js:742
+#: htdocs/luci-static/resources/view/fchomo/node.js:834
msgid "Private key"
msgstr "私鑰"
@@ -2420,34 +2441,34 @@ msgid "Process matching mode"
msgstr "進程匹配模式"
#: htdocs/luci-static/resources/view/fchomo/global.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:1463
+#: htdocs/luci-static/resources/view/fchomo/node.js:1474
msgid "Protocol"
msgstr "協議"
-#: htdocs/luci-static/resources/view/fchomo/node.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:729
msgid "Protocol parameter. Enable length block encryption."
msgstr "協議參數。啟用長度塊加密。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:712
+#: htdocs/luci-static/resources/view/fchomo/node.js:723
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr "協議參數。 如啟用會隨機浪費流量(在 v2ray 中預設為啟用且無法停用)。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1096
-#: htdocs/luci-static/resources/view/fchomo/node.js:1575
-#: htdocs/luci-static/resources/view/fchomo/node.js:1584
-#: htdocs/luci-static/resources/view/fchomo/node.js:2061
+#: htdocs/luci-static/resources/view/fchomo/client.js:1100
+#: htdocs/luci-static/resources/view/fchomo/node.js:1586
+#: htdocs/luci-static/resources/view/fchomo/node.js:1595
+#: htdocs/luci-static/resources/view/fchomo/node.js:2072
msgid "Provider"
msgstr "供應商"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1758
+#: htdocs/luci-static/resources/view/fchomo/node.js:1769
msgid "Provider URL"
msgstr "供應商訂閱 URL"
-#: htdocs/luci-static/resources/view/fchomo/client.js:950
-#: htdocs/luci-static/resources/view/fchomo/client.js:968
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/view/fchomo/client.js:972
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid "Proxy Group"
msgstr "代理組"
@@ -2464,24 +2485,24 @@ msgid "Proxy MAC-s"
msgstr "代理 MAC 位址"
#: htdocs/luci-static/resources/view/fchomo/node.js:219
-#: htdocs/luci-static/resources/view/fchomo/node.js:2060
+#: htdocs/luci-static/resources/view/fchomo/node.js:2071
msgid "Proxy Node"
msgstr "代理節點"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2036
-#: htdocs/luci-static/resources/view/fchomo/node.js:2045
+#: htdocs/luci-static/resources/view/fchomo/node.js:2047
+#: htdocs/luci-static/resources/view/fchomo/node.js:2056
msgid "Proxy chain"
msgstr "代理鏈"
-#: htdocs/luci-static/resources/fchomo/listeners.js:628
-#: htdocs/luci-static/resources/view/fchomo/client.js:797
-#: htdocs/luci-static/resources/view/fchomo/client.js:1627
-#: htdocs/luci-static/resources/view/fchomo/node.js:1776
+#: htdocs/luci-static/resources/fchomo/listeners.js:638
+#: htdocs/luci-static/resources/view/fchomo/client.js:801
+#: htdocs/luci-static/resources/view/fchomo/client.js:1631
+#: htdocs/luci-static/resources/view/fchomo/node.js:1787
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:403
msgid "Proxy group"
msgstr "代理組"
-#: htdocs/luci-static/resources/view/fchomo/client.js:903
+#: htdocs/luci-static/resources/view/fchomo/client.js:907
msgid "Proxy group override"
msgstr "代理組覆蓋"
@@ -2493,54 +2514,56 @@ msgstr "代理模式"
msgid "Proxy routerself"
msgstr "代理路由器自身"
-#: htdocs/luci-static/resources/view/fchomo/node.js:583
-#: htdocs/luci-static/resources/view/fchomo/node.js:803
+#: htdocs/luci-static/resources/view/fchomo/node.js:594
+#: htdocs/luci-static/resources/view/fchomo/node.js:814
msgid "QUIC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:953
+#: htdocs/luci-static/resources/view/fchomo/client.js:957
#: htdocs/luci-static/resources/view/fchomo/server.js:44
msgid "Quick Reload"
msgstr "快速重載"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1093
-#: htdocs/luci-static/resources/view/fchomo/node.js:1243
+#: htdocs/luci-static/resources/fchomo/listeners.js:1103
+#: htdocs/luci-static/resources/view/fchomo/node.js:1254
msgid "REALITY"
msgstr "REALITY"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1258
+#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "REALITY X25519MLKEM768 PQC support"
msgstr "REALITY X25519MLKEM768 後量子加密支援"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/fchomo/listeners.js:1140
msgid "REALITY certificate issued to"
msgstr "REALITY 證書頒發給"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1098
+#: htdocs/luci-static/resources/fchomo/listeners.js:1108
msgid "REALITY handshake server"
msgstr "REALITY 握手伺服器"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1105
+#: htdocs/luci-static/resources/fchomo/listeners.js:1115
msgid "REALITY private key"
msgstr "REALITY 私鑰"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1120
-#: htdocs/luci-static/resources/view/fchomo/node.js:1248
+#: htdocs/luci-static/resources/fchomo/listeners.js:1130
+#: htdocs/luci-static/resources/view/fchomo/node.js:1259
msgid "REALITY public key"
msgstr "REALITY 公鑰"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1124
-#: htdocs/luci-static/resources/view/fchomo/node.js:1253
+#: htdocs/luci-static/resources/fchomo/listeners.js:1134
+#: htdocs/luci-static/resources/view/fchomo/node.js:1264
msgid "REALITY short ID"
msgstr "REALITY 標識符"
-#: htdocs/luci-static/resources/view/fchomo/node.js:267
+#: htdocs/luci-static/resources/view/fchomo/node.js:268
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "REMATCH-NAME marking"
msgstr "REMATCH-NAME 打標"
-#: htdocs/luci-static/resources/fchomo/listeners.js:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:759
+#: htdocs/luci-static/resources/view/fchomo/node.js:1036
msgid "RTT"
msgstr ""
@@ -2556,13 +2579,13 @@ msgstr "留空將使用隨機令牌。"
msgid "Randomized traffic characteristics"
msgstr "隨機化流量特徵"
-#: htdocs/luci-static/resources/fchomo/listeners.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:1059
+#: htdocs/luci-static/resources/fchomo/listeners.js:896
+#: htdocs/luci-static/resources/view/fchomo/node.js:1070
msgid "Realm"
msgstr "Realm"
-#: htdocs/luci-static/resources/fchomo/listeners.js:902
-#: htdocs/luci-static/resources/view/fchomo/node.js:1075
+#: htdocs/luci-static/resources/fchomo/listeners.js:912
+#: htdocs/luci-static/resources/view/fchomo/node.js:1086
msgid "Realm ID"
msgstr "Realm ID"
@@ -2590,8 +2613,8 @@ msgstr "Redirect TCP + Tun UDP"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/fchomo.js:1579
-#: htdocs/luci-static/resources/view/fchomo/client.js:954
+#: htdocs/luci-static/resources/fchomo.js:1567
+#: htdocs/luci-static/resources/view/fchomo/client.js:958
#: htdocs/luci-static/resources/view/fchomo/global.js:193
#: htdocs/luci-static/resources/view/fchomo/server.js:45
msgid "Reload"
@@ -2609,38 +2632,38 @@ msgstr "再路由"
msgid "Rematching routing rules"
msgstr "重新匹配路由規則"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1703
+#: htdocs/luci-static/resources/view/fchomo/node.js:1714
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:287
msgid "Remote"
msgstr "遠端"
-#: htdocs/luci-static/resources/view/fchomo/node.js:786
-#: htdocs/luci-static/resources/view/fchomo/node.js:869
+#: htdocs/luci-static/resources/view/fchomo/node.js:797
+#: htdocs/luci-static/resources/view/fchomo/node.js:880
msgid "Remote DNS resolve"
msgstr "遠端 DNS 解析"
-#: htdocs/luci-static/resources/fchomo.js:1744
+#: htdocs/luci-static/resources/fchomo.js:1732
msgid "Remove"
msgstr "移除"
-#: htdocs/luci-static/resources/fchomo.js:1749
-#: htdocs/luci-static/resources/view/fchomo/node.js:1679
-#: htdocs/luci-static/resources/view/fchomo/node.js:1681
+#: htdocs/luci-static/resources/fchomo.js:1737
+#: htdocs/luci-static/resources/view/fchomo/node.js:1690
+#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:261
msgid "Remove idles"
msgstr "移除閒置"
-#: htdocs/luci-static/resources/fchomo/listeners.js:891
-#: htdocs/luci-static/resources/view/fchomo/node.js:1064
+#: htdocs/luci-static/resources/fchomo/listeners.js:901
+#: htdocs/luci-static/resources/view/fchomo/node.js:1075
msgid "Rendezvous server"
msgstr "牽線伺服器"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1875
+#: htdocs/luci-static/resources/view/fchomo/node.js:1886
msgid "Replace name"
msgstr "名稱替換"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1876
+#: htdocs/luci-static/resources/view/fchomo/node.js:1887
msgid "Replace node name."
msgstr "替換節點名稱"
@@ -2648,13 +2671,13 @@ msgstr "替換節點名稱"
msgid "Request"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1178
-#: htdocs/luci-static/resources/view/fchomo/node.js:1331
-#: htdocs/luci-static/resources/view/fchomo/node.js:1338
+#: htdocs/luci-static/resources/fchomo/listeners.js:1188
+#: htdocs/luci-static/resources/view/fchomo/node.js:1342
+#: htdocs/luci-static/resources/view/fchomo/node.js:1349
msgid "Request path"
msgstr "請求路徑"
-#: htdocs/luci-static/resources/view/fchomo/node.js:623
+#: htdocs/luci-static/resources/view/fchomo/node.js:634
msgid "Request timeout"
msgstr "請求逾時"
@@ -2667,11 +2690,11 @@ msgid "Require any"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:404
-#: htdocs/luci-static/resources/view/fchomo/node.js:1259
+#: htdocs/luci-static/resources/view/fchomo/node.js:1270
msgid "Requires server support."
msgstr "需要伺服器支援。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:852
+#: htdocs/luci-static/resources/view/fchomo/node.js:863
msgid "Reserved field bytes"
msgstr "保留字段位元組"
@@ -2679,26 +2702,27 @@ msgstr "保留字段位元組"
msgid "Resources management"
msgstr "資源管理"
-#: htdocs/luci-static/resources/view/fchomo/node.js:937
+#: htdocs/luci-static/resources/fchomo/listeners.js:615
+#: htdocs/luci-static/resources/view/fchomo/node.js:948
msgid "Restls script"
msgstr "Restls 劇本"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1250
+#: htdocs/luci-static/resources/view/fchomo/client.js:1254
msgid ""
"Returns hidden status in the API to hide the display of this proxy group."
msgstr "在 API 傳回 hidden 狀態,以隱藏該代理組顯示。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1256
+#: htdocs/luci-static/resources/view/fchomo/client.js:1260
msgid ""
"Returns the string input for icon in the API to display in this proxy group."
msgstr "在 API 傳回 icon 所輸入的字串,以在該代理組顯示。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:528
+#: htdocs/luci-static/resources/view/fchomo/node.js:539
msgid "Reuse HTTP connections to reduce RTT for each connection establishment."
msgstr "重用 HTTP 連接以減少每次建立連接的 RTT。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:525
-#: htdocs/luci-static/resources/view/fchomo/node.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:540
msgid "Reusing a single tunnel to carry multiple target connections within it."
msgstr "複用單條隧道使其內部承載多條目標連線。"
@@ -2715,10 +2739,10 @@ msgstr "路由 DSCP"
msgid "Routing GFW"
msgstr "路由 GFW 流量"
-#: htdocs/luci-static/resources/fchomo/listeners.js:613
+#: htdocs/luci-static/resources/fchomo/listeners.js:623
#: htdocs/luci-static/resources/view/fchomo/global.js:776
-#: htdocs/luci-static/resources/view/fchomo/node.js:1559
-#: htdocs/luci-static/resources/view/fchomo/node.js:1951
+#: htdocs/luci-static/resources/view/fchomo/node.js:1570
+#: htdocs/luci-static/resources/view/fchomo/node.js:1962
msgid "Routing mark (Fwmark)"
msgstr "路由標記 (Fwmark)"
@@ -2739,8 +2763,8 @@ msgstr "路由模式將處理網域。"
msgid "Routing ports"
msgstr "路由連接埠"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1262
-#: htdocs/luci-static/resources/view/fchomo/client.js:1271
+#: htdocs/luci-static/resources/view/fchomo/client.js:1266
+#: htdocs/luci-static/resources/view/fchomo/client.js:1275
msgid "Routing rule"
msgstr "路由規則"
@@ -2756,8 +2780,8 @@ msgstr "路由表 ID"
msgid "Rule"
msgstr "規則"
-#: htdocs/luci-static/resources/view/fchomo/client.js:862
-#: htdocs/luci-static/resources/view/fchomo/client.js:875
+#: htdocs/luci-static/resources/view/fchomo/client.js:866
+#: htdocs/luci-static/resources/view/fchomo/client.js:879
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:147
msgid "Rule set"
msgstr "規則集"
@@ -2774,7 +2798,7 @@ msgstr "規則集"
msgid "Ruleset-URI-Scheme"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1592
+#: htdocs/luci-static/resources/fchomo.js:1580
msgid "Running"
msgstr "正在運作"
@@ -2798,21 +2822,21 @@ msgstr ""
msgid "STUN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:908
-#: htdocs/luci-static/resources/view/fchomo/node.js:1081
+#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/view/fchomo/node.js:1092
msgid "STUN servers"
msgstr "STUN 伺服器"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1354
+#: htdocs/luci-static/resources/view/fchomo/client.js:1358
msgid "SUB-RULE"
msgstr "SUB-RULE"
-#: htdocs/luci-static/resources/view/fchomo/node.js:982
+#: htdocs/luci-static/resources/view/fchomo/node.js:993
msgid "SUoT version"
msgstr "SUoT 版本"
#: htdocs/luci-static/resources/fchomo/listeners.js:195
-#: htdocs/luci-static/resources/view/fchomo/node.js:333
+#: htdocs/luci-static/resources/view/fchomo/node.js:344
msgid "Salamander"
msgstr "Salamander"
@@ -2845,7 +2869,7 @@ msgstr "選擇面板"
msgid "Send padding randomly 0-3333 bytes with 50% probability."
msgstr "以 50% 的機率發送隨機 0 到 3333 位元組的填充。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1924
+#: htdocs/luci-static/resources/view/fchomo/client.js:1929
msgid "Send queries to both the %s and the %s."
msgstr "同時向%s和%s發起查詢。"
@@ -2854,9 +2878,9 @@ msgstr "同時向%s和%s發起查詢。"
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:730
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
+#: htdocs/luci-static/resources/fchomo/listeners.js:740
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
#: htdocs/luci-static/resources/view/fchomo/server.js:58
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:62
msgid "Server"
@@ -2866,9 +2890,9 @@ msgstr "服務端"
msgid "Server address"
msgstr "伺服器位址"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1172
-#: htdocs/luci-static/resources/view/fchomo/node.js:1310
-#: htdocs/luci-static/resources/view/fchomo/node.js:1316
+#: htdocs/luci-static/resources/fchomo/listeners.js:1182
+#: htdocs/luci-static/resources/view/fchomo/node.js:1321
+#: htdocs/luci-static/resources/view/fchomo/node.js:1327
msgid "Server hostname"
msgstr "伺服器主機名稱"
@@ -2885,22 +2909,22 @@ msgstr "服務狀態"
msgid "Shadowsocks"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:503
-#: htdocs/luci-static/resources/view/fchomo/node.js:642
+#: htdocs/luci-static/resources/fchomo/listeners.js:506
+#: htdocs/luci-static/resources/view/fchomo/node.js:653
msgid "Shadowsocks chipher"
msgstr "Shadowsocks 加密方法"
-#: htdocs/luci-static/resources/fchomo/listeners.js:498
-#: htdocs/luci-static/resources/view/fchomo/node.js:637
+#: htdocs/luci-static/resources/fchomo/listeners.js:501
+#: htdocs/luci-static/resources/view/fchomo/node.js:648
msgid "Shadowsocks encrypt"
msgstr "Shadowsocks 加密"
-#: htdocs/luci-static/resources/fchomo/listeners.js:511
-#: htdocs/luci-static/resources/view/fchomo/node.js:650
+#: htdocs/luci-static/resources/fchomo/listeners.js:514
+#: htdocs/luci-static/resources/view/fchomo/node.js:661
msgid "Shadowsocks password"
msgstr "Shadowsocks 密碼"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1511
+#: htdocs/luci-static/resources/view/fchomo/node.js:1522
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中顯示連線以便於打斷連線。"
@@ -2912,14 +2936,14 @@ msgstr "靜音"
msgid "Simple round-robin all nodes"
msgstr "簡單輪替所有節點"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1764
+#: htdocs/luci-static/resources/view/fchomo/node.js:1775
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:391
msgid "Size limit"
msgstr "大小限制"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1663
-#: htdocs/luci-static/resources/view/fchomo/node.js:1180
-#: htdocs/luci-static/resources/view/fchomo/node.js:1926
+#: htdocs/luci-static/resources/view/fchomo/client.js:1667
+#: htdocs/luci-static/resources/view/fchomo/node.js:1191
+#: htdocs/luci-static/resources/view/fchomo/node.js:1937
msgid "Skip cert verify"
msgstr "跳過憑證驗證"
@@ -2979,18 +3003,18 @@ msgstr "Steam 客戶端"
msgid "Steam P2P"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:1222
-#: htdocs/luci-static/resources/view/fchomo/client.js:1224
+#: htdocs/luci-static/resources/view/fchomo/client.js:1226
+#: htdocs/luci-static/resources/view/fchomo/client.js:1228
msgid "Strategy"
msgstr "策略"
-#: htdocs/luci-static/resources/fchomo/listeners.js:617
-#: htdocs/luci-static/resources/view/fchomo/client.js:1384
-#: htdocs/luci-static/resources/view/fchomo/client.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:627
+#: htdocs/luci-static/resources/view/fchomo/client.js:1388
+#: htdocs/luci-static/resources/view/fchomo/client.js:1397
msgid "Sub rule"
msgstr "子規則"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1439
+#: htdocs/luci-static/resources/view/fchomo/client.js:1443
msgid "Sub rule group"
msgstr "子規則組"
@@ -3003,7 +3027,7 @@ msgstr "已成功匯入 %s 個%s (共 %s 個)。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/fchomo.js:2094
+#: htdocs/luci-static/resources/fchomo.js:2082
msgid "Successfully uploaded."
msgstr "已成功上傳。"
@@ -3043,9 +3067,9 @@ msgstr "系統 DNS"
#: htdocs/luci-static/resources/fchomo.js:199
#: htdocs/luci-static/resources/fchomo.js:200
#: htdocs/luci-static/resources/fchomo.js:207
-#: htdocs/luci-static/resources/fchomo/listeners.js:661
-#: htdocs/luci-static/resources/view/fchomo/client.js:600
-#: htdocs/luci-static/resources/view/fchomo/client.js:690
+#: htdocs/luci-static/resources/fchomo/listeners.js:671
+#: htdocs/luci-static/resources/view/fchomo/client.js:606
+#: htdocs/luci-static/resources/view/fchomo/client.js:698
msgid "TCP"
msgstr "TCP"
@@ -3053,7 +3077,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 併發"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1504
+#: htdocs/luci-static/resources/view/fchomo/node.js:1515
msgid "TCP only"
msgstr "僅 TCP"
@@ -3080,26 +3104,26 @@ msgstr "TCP-Keep-Alive 間隔"
msgid "TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1535
-#: htdocs/luci-static/resources/view/fchomo/node.js:1893
+#: htdocs/luci-static/resources/view/fchomo/node.js:1546
+#: htdocs/luci-static/resources/view/fchomo/node.js:1904
msgid "TFO"
msgstr "TCP 快速開啟 (TFO)"
-#: htdocs/luci-static/resources/fchomo/listeners.js:579
-#: htdocs/luci-static/resources/fchomo/listeners.js:918
+#: htdocs/luci-static/resources/fchomo/listeners.js:583
+#: htdocs/luci-static/resources/fchomo/listeners.js:928
#: htdocs/luci-static/resources/view/fchomo/global.js:550
-#: htdocs/luci-static/resources/view/fchomo/node.js:509
-#: htdocs/luci-static/resources/view/fchomo/node.js:906
-#: htdocs/luci-static/resources/view/fchomo/node.js:1091
+#: htdocs/luci-static/resources/view/fchomo/node.js:520
+#: htdocs/luci-static/resources/view/fchomo/node.js:917
+#: htdocs/luci-static/resources/view/fchomo/node.js:1102
msgid "TLS"
msgstr "TLS"
-#: htdocs/luci-static/resources/fchomo/listeners.js:985
-#: htdocs/luci-static/resources/view/fchomo/node.js:1122
+#: htdocs/luci-static/resources/fchomo/listeners.js:995
+#: htdocs/luci-static/resources/view/fchomo/node.js:1133
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1116
+#: htdocs/luci-static/resources/view/fchomo/node.js:1127
msgid "TLS SNI"
msgstr ""
@@ -3117,7 +3141,7 @@ msgstr ""
msgid "TURN"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:550
+#: htdocs/luci-static/resources/fchomo/listeners.js:553
msgid "Target address"
msgstr "目標位址"
@@ -3126,35 +3150,35 @@ msgid ""
"Tell the client to use the BBR flow control algorithm instead of Hysteria CC."
msgstr "讓客戶端使用 BBR 流控演算法。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:747
-#: htdocs/luci-static/resources/view/fchomo/node.js:755
+#: htdocs/luci-static/resources/view/fchomo/node.js:758
+#: htdocs/luci-static/resources/view/fchomo/node.js:766
msgid "The %s address used by local machine in the Cloudflare WARP network."
msgstr "Cloudflare WARP 網路中使用的本機 %s 位址。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:810
-#: htdocs/luci-static/resources/view/fchomo/node.js:818
+#: htdocs/luci-static/resources/view/fchomo/node.js:821
+#: htdocs/luci-static/resources/view/fchomo/node.js:829
msgid "The %s address used by local machine in the Wireguard network."
msgstr "WireGuard 網路中使用的本機 %s 位址。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1006
-#: htdocs/luci-static/resources/view/fchomo/node.js:1203
+#: htdocs/luci-static/resources/fchomo/listeners.js:1016
+#: htdocs/luci-static/resources/view/fchomo/node.js:1214
msgid "The %s private key, in PEM format."
msgstr "%s私鑰,需要 PEM 格式。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:991
-#: htdocs/luci-static/resources/fchomo/listeners.js:1029
+#: htdocs/luci-static/resources/fchomo/listeners.js:1001
+#: htdocs/luci-static/resources/fchomo/listeners.js:1039
#: htdocs/luci-static/resources/view/fchomo/global.js:571
-#: htdocs/luci-static/resources/view/fchomo/node.js:1189
+#: htdocs/luci-static/resources/view/fchomo/node.js:1200
msgid "The %s public key, in PEM format."
msgstr "%s公鑰,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1223
+#: htdocs/luci-static/resources/view/fchomo/node.js:1234
msgid ""
"The ECH parameter of the HTTPS record for the domain. Leave empty to resolve "
"via DNS."
msgstr "網域的 HTTPS 記錄的 ECH 參數。留空則透過 DNS 解析。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:431
+#: htdocs/luci-static/resources/view/fchomo/node.js:442
msgid "The ED25519 available private key or UUID provided by Sudoku server."
msgstr "Sudoku 伺服器提供的 ED25519 可用私鑰 或 UUID。"
@@ -3166,48 +3190,48 @@ msgstr "Sudoku 產生的 ED25519 主公鑰 或 UUID。"
msgid "The default value is 2:00 every day."
msgstr "預設值為每天 2:00。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:964
+#: htdocs/luci-static/resources/view/fchomo/node.js:975
msgid ""
"The default value is %s, indicating that only the outer "
"connection timeout is used."
msgstr "預設值為%s,表示僅使用外層連線逾時。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:762
-#: htdocs/luci-static/resources/view/fchomo/node.js:1038
+#: htdocs/luci-static/resources/fchomo/listeners.js:772
+#: htdocs/luci-static/resources/view/fchomo/node.js:1049
msgid ""
"The first padding must have a probability of 100% and at least 35 bytes."
msgstr "首個填充必須為 100% 的機率並且至少 35 位元組。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1893
+#: htdocs/luci-static/resources/view/fchomo/client.js:1897
msgid "The matching %s will be deemed as not-poisoned."
msgstr "匹配 %s 的將被視為未被投毒汙染。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1902
#: htdocs/luci-static/resources/view/fchomo/client.js:1906
#: htdocs/luci-static/resources/view/fchomo/client.js:1911
+#: htdocs/luci-static/resources/view/fchomo/client.js:1916
msgid "The matching %s will be deemed as poisoned."
msgstr "匹配 %s 的將被視為已被投毒汙染。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:760
-#: htdocs/luci-static/resources/view/fchomo/node.js:1036
+#: htdocs/luci-static/resources/fchomo/listeners.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1047
msgid "The server and client can set different padding parameters."
msgstr "伺服器和客戶端可以設定不同的填充參數。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1087
+#: htdocs/luci-static/resources/fchomo/listeners.js:1097
#: htdocs/luci-static/resources/view/fchomo/global.js:615
msgid "This ECH parameter needs to be added to the HTTPS record of the domain."
msgstr "此 ECH 參數需要加入到網域的 HTTPS 記錄中。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1666
-#: htdocs/luci-static/resources/view/fchomo/node.js:1183
-#: htdocs/luci-static/resources/view/fchomo/node.js:1929
+#: htdocs/luci-static/resources/view/fchomo/client.js:1670
+#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/view/fchomo/node.js:1940
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
"這是危險行為,您的流量將幾乎等同於明文!使用風險自負!"
-#: htdocs/luci-static/resources/view/fchomo/node.js:588
+#: htdocs/luci-static/resources/view/fchomo/node.js:599
msgid ""
"This is the TUIC port of the SUoT protocol, designed to provide a QUIC "
"stream based UDP relay mode that TUIC does not provide."
@@ -3240,22 +3264,22 @@ msgid "Tproxy port"
msgstr "Tproxy 連接埠"
#: htdocs/luci-static/resources/fchomo/listeners.js:285
-#: htdocs/luci-static/resources/view/fchomo/node.js:423
+#: htdocs/luci-static/resources/view/fchomo/node.js:434
msgid "Traffic pattern"
msgstr "流量模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2098
+#: htdocs/luci-static/resources/view/fchomo/node.js:2109
msgid "Transit proxy group"
msgstr "中轉代理組"
-#: htdocs/luci-static/resources/view/fchomo/node.js:2109
+#: htdocs/luci-static/resources/view/fchomo/node.js:2120
msgid "Transit proxy node"
msgstr "中轉代理節點"
#: htdocs/luci-static/resources/fchomo/listeners.js:273
-#: htdocs/luci-static/resources/fchomo/listeners.js:1138
-#: htdocs/luci-static/resources/view/fchomo/node.js:400
-#: htdocs/luci-static/resources/view/fchomo/node.js:1265
+#: htdocs/luci-static/resources/fchomo/listeners.js:1148
+#: htdocs/luci-static/resources/view/fchomo/node.js:411
+#: htdocs/luci-static/resources/view/fchomo/node.js:1276
msgid "Transport"
msgstr "傳輸層"
@@ -3264,12 +3288,12 @@ msgstr "傳輸層"
msgid "Transport fields"
msgstr "傳輸層欄位"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1143
-#: htdocs/luci-static/resources/view/fchomo/node.js:1270
+#: htdocs/luci-static/resources/fchomo/listeners.js:1153
+#: htdocs/luci-static/resources/view/fchomo/node.js:1281
msgid "Transport type"
msgstr "傳輸層類型"
-#: htdocs/luci-static/resources/view/fchomo/client.js:819
+#: htdocs/luci-static/resources/view/fchomo/client.js:823
msgid "Treat the destination IP as the source IP."
msgstr "將 目標 IP 視為 來源 IP。"
@@ -3309,13 +3333,13 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:142
#: htdocs/luci-static/resources/view/fchomo/client.js:533
-#: htdocs/luci-static/resources/view/fchomo/client.js:654
-#: htdocs/luci-static/resources/view/fchomo/client.js:751
-#: htdocs/luci-static/resources/view/fchomo/client.js:859
-#: htdocs/luci-static/resources/view/fchomo/client.js:1057
+#: htdocs/luci-static/resources/view/fchomo/client.js:660
+#: htdocs/luci-static/resources/view/fchomo/client.js:755
+#: htdocs/luci-static/resources/view/fchomo/client.js:863
+#: htdocs/luci-static/resources/view/fchomo/client.js:1061
#: htdocs/luci-static/resources/view/fchomo/node.js:250
-#: htdocs/luci-static/resources/view/fchomo/node.js:1701
-#: htdocs/luci-static/resources/view/fchomo/node.js:2059
+#: htdocs/luci-static/resources/view/fchomo/node.js:1712
+#: htdocs/luci-static/resources/view/fchomo/node.js:2070
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:285
msgid "Type"
msgstr "類型"
@@ -3326,12 +3350,12 @@ msgstr "類型"
#: htdocs/luci-static/resources/fchomo.js:203
#: htdocs/luci-static/resources/fchomo.js:204
#: htdocs/luci-static/resources/fchomo.js:206
-#: htdocs/luci-static/resources/fchomo/listeners.js:662
-#: htdocs/luci-static/resources/fchomo/listeners.js:667
-#: htdocs/luci-static/resources/view/fchomo/client.js:599
-#: htdocs/luci-static/resources/view/fchomo/client.js:689
-#: htdocs/luci-static/resources/view/fchomo/node.js:970
-#: htdocs/luci-static/resources/view/fchomo/node.js:1903
+#: htdocs/luci-static/resources/fchomo/listeners.js:672
+#: htdocs/luci-static/resources/fchomo/listeners.js:677
+#: htdocs/luci-static/resources/view/fchomo/client.js:605
+#: htdocs/luci-static/resources/view/fchomo/client.js:697
+#: htdocs/luci-static/resources/view/fchomo/node.js:981
+#: htdocs/luci-static/resources/view/fchomo/node.js:1914
msgid "UDP"
msgstr "UDP"
@@ -3339,26 +3363,26 @@ msgstr "UDP"
msgid "UDP NAT expiration time"
msgstr "UDP NAT 過期時間"
-#: htdocs/luci-static/resources/view/fchomo/node.js:587
+#: htdocs/luci-static/resources/view/fchomo/node.js:598
msgid "UDP over stream"
msgstr "UDP over stream"
-#: htdocs/luci-static/resources/view/fchomo/node.js:593
+#: htdocs/luci-static/resources/view/fchomo/node.js:604
msgid "UDP over stream version"
msgstr "UDP over stream 版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:580
+#: htdocs/luci-static/resources/view/fchomo/node.js:591
msgid "UDP packet relay mode."
msgstr "UDP 包中繼模式。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:579
+#: htdocs/luci-static/resources/view/fchomo/node.js:590
msgid "UDP relay mode"
msgstr "UDP 中繼模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:373
#: htdocs/luci-static/resources/fchomo/listeners.js:374
-#: htdocs/luci-static/resources/view/fchomo/node.js:455
-#: htdocs/luci-static/resources/view/fchomo/node.js:456
+#: htdocs/luci-static/resources/view/fchomo/node.js:466
+#: htdocs/luci-static/resources/view/fchomo/node.js:467
msgid "UP: %s; DOWN: %s"
msgstr "上傳: %s; 下載: %s"
@@ -3367,14 +3391,14 @@ msgid "URL test"
msgstr "自動選擇"
#: htdocs/luci-static/resources/fchomo/listeners.js:294
-#: htdocs/luci-static/resources/fchomo/listeners.js:471
-#: htdocs/luci-static/resources/fchomo/listeners.js:526
-#: htdocs/luci-static/resources/view/fchomo/node.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:681
+#: htdocs/luci-static/resources/fchomo/listeners.js:474
+#: htdocs/luci-static/resources/fchomo/listeners.js:529
+#: htdocs/luci-static/resources/view/fchomo/node.js:578
+#: htdocs/luci-static/resources/view/fchomo/node.js:692
msgid "UUID"
msgstr "UUID"
-#: htdocs/luci-static/resources/fchomo.js:1637
+#: htdocs/luci-static/resources/fchomo.js:1625
msgid "Unable to download unsupported type: %s"
msgstr "無法下載不支援的類型: %s"
@@ -3399,8 +3423,8 @@ msgstr "未知錯誤。"
msgid "Unknown error: %s"
msgstr "未知錯誤:%s"
-#: htdocs/luci-static/resources/view/fchomo/node.js:976
-#: htdocs/luci-static/resources/view/fchomo/node.js:1908
+#: htdocs/luci-static/resources/view/fchomo/node.js:987
+#: htdocs/luci-static/resources/view/fchomo/node.js:1919
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@@ -3408,22 +3432,24 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失敗。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1770
+#: htdocs/luci-static/resources/view/fchomo/node.js:1781
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:397
msgid "Update interval"
msgstr "更新間隔"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1522
+#: htdocs/luci-static/resources/fchomo/listeners.js:1248
+#: htdocs/luci-static/resources/view/fchomo/node.js:1533
msgid "Upload bandwidth"
msgstr "上傳頻寬"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1523
+#: htdocs/luci-static/resources/fchomo/listeners.js:1249
+#: htdocs/luci-static/resources/view/fchomo/node.js:1534
msgid "Upload bandwidth in Mbps."
msgstr "上傳頻寬(單位:Mbps)。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:997
-#: htdocs/luci-static/resources/fchomo/listeners.js:1037
-#: htdocs/luci-static/resources/view/fchomo/node.js:1194
+#: htdocs/luci-static/resources/fchomo/listeners.js:1007
+#: htdocs/luci-static/resources/fchomo/listeners.js:1047
+#: htdocs/luci-static/resources/view/fchomo/node.js:1205
msgid "Upload certificate"
msgstr "上傳憑證"
@@ -3431,45 +3457,47 @@ msgstr "上傳憑證"
msgid "Upload initial package"
msgstr "上傳初始資源包"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1012
-#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/fchomo/listeners.js:1022
+#: htdocs/luci-static/resources/view/fchomo/node.js:1219
msgid "Upload key"
msgstr "上傳金鑰"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1000
-#: htdocs/luci-static/resources/fchomo/listeners.js:1015
-#: htdocs/luci-static/resources/fchomo/listeners.js:1040
+#: htdocs/luci-static/resources/fchomo/listeners.js:1010
+#: htdocs/luci-static/resources/fchomo/listeners.js:1025
+#: htdocs/luci-static/resources/fchomo/listeners.js:1050
#: htdocs/luci-static/resources/view/fchomo/global.js:306
-#: htdocs/luci-static/resources/view/fchomo/node.js:1197
-#: htdocs/luci-static/resources/view/fchomo/node.js:1211
+#: htdocs/luci-static/resources/view/fchomo/node.js:1208
+#: htdocs/luci-static/resources/view/fchomo/node.js:1222
msgid "Upload..."
msgstr "上傳..."
-#: htdocs/luci-static/resources/view/fchomo/node.js:278
+#: htdocs/luci-static/resources/view/fchomo/node.js:274
+#: htdocs/luci-static/resources/view/fchomo/node.js:281
+#: htdocs/luci-static/resources/view/fchomo/node.js:292
msgid "Use sub rule"
msgstr "使用子規則"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1483
+#: htdocs/luci-static/resources/view/fchomo/client.js:1487
msgid ""
"Used to resolve domains that can be directly connected. Can use domestic DNS "
"servers or ECS."
msgstr "用於解析可直連的網域。可使用國內 DNS 伺服器或 ECS。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1485
+#: htdocs/luci-static/resources/view/fchomo/client.js:1489
msgid ""
"Used to resolve domains you want to proxy. Recommended to configure %s for "
"DNS servers."
msgstr "用於解析想要代理的網域。建議為 DNS 伺服器配置%s。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1467
+#: htdocs/luci-static/resources/view/fchomo/client.js:1471
msgid "Used to resolve the domain of the DNS server. Must be IP."
msgstr "用於解析 DNS 伺服器的網域。必須是 IP。"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1474
+#: htdocs/luci-static/resources/view/fchomo/client.js:1478
msgid "Used to resolve the domain of the Proxy node."
msgstr "用於解析代理節點的網域。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1117
+#: htdocs/luci-static/resources/view/fchomo/node.js:1128
msgid "Used to verify the hostname on the returned certificates."
msgstr "用於驗證傳回的憑證上的主機名稱。"
@@ -3482,7 +3510,7 @@ msgid "User-hint is mandatory"
msgstr "User-hint 是必填項"
#: htdocs/luci-static/resources/fchomo/listeners.js:161
-#: htdocs/luci-static/resources/view/fchomo/node.js:290
+#: htdocs/luci-static/resources/view/fchomo/node.js:301
msgid "Username"
msgstr "使用者名稱"
@@ -3490,11 +3518,11 @@ msgstr "使用者名稱"
msgid "Users filter mode"
msgstr "使用者過濾模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1379
+#: htdocs/luci-static/resources/view/fchomo/node.js:1390
msgid "V2ray HTTPUpgrade"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1384
+#: htdocs/luci-static/resources/view/fchomo/node.js:1395
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@@ -3508,8 +3536,8 @@ msgstr ""
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1707
-#: htdocs/luci-static/resources/view/fchomo/node.js:2065
+#: htdocs/luci-static/resources/view/fchomo/node.js:1718
+#: htdocs/luci-static/resources/view/fchomo/node.js:2076
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:328
msgid "Value"
msgstr "可視化值"
@@ -3519,13 +3547,13 @@ msgid "Verify if given"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:463
-#: htdocs/luci-static/resources/fchomo/listeners.js:603
-#: htdocs/luci-static/resources/view/fchomo/node.js:551
-#: htdocs/luci-static/resources/view/fchomo/node.js:923
+#: htdocs/luci-static/resources/fchomo/listeners.js:607
+#: htdocs/luci-static/resources/view/fchomo/node.js:562
+#: htdocs/luci-static/resources/view/fchomo/node.js:934
msgid "Version"
msgstr "版本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:931
+#: htdocs/luci-static/resources/view/fchomo/node.js:942
msgid "Version hint"
msgstr ""
@@ -3543,15 +3571,15 @@ msgid "Warning"
msgstr "警告"
#: htdocs/luci-static/resources/fchomo/listeners.js:441
-#: htdocs/luci-static/resources/fchomo/listeners.js:1145
-#: htdocs/luci-static/resources/fchomo/listeners.js:1154
-#: htdocs/luci-static/resources/fchomo/listeners.js:1161
-#: htdocs/luci-static/resources/view/fchomo/node.js:505
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
-#: htdocs/luci-static/resources/view/fchomo/node.js:1275
+#: htdocs/luci-static/resources/fchomo/listeners.js:1155
+#: htdocs/luci-static/resources/fchomo/listeners.js:1164
+#: htdocs/luci-static/resources/fchomo/listeners.js:1171
+#: htdocs/luci-static/resources/view/fchomo/node.js:516
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
-#: htdocs/luci-static/resources/view/fchomo/node.js:1293
-#: htdocs/luci-static/resources/view/fchomo/node.js:1299
+#: htdocs/luci-static/resources/view/fchomo/node.js:1297
+#: htdocs/luci-static/resources/view/fchomo/node.js:1304
+#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "WebSocket"
msgstr ""
@@ -3567,48 +3595,48 @@ msgstr "白名單"
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:832
+#: htdocs/luci-static/resources/view/fchomo/node.js:843
msgid "WireGuard peer public key."
msgstr "WireGuard 對端公鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:839
+#: htdocs/luci-static/resources/view/fchomo/node.js:850
msgid "WireGuard pre-shared key."
msgstr "WireGuard 預先共用金鑰。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:824
+#: htdocs/luci-static/resources/view/fchomo/node.js:835
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 編碼的私鑰。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1146
-#: htdocs/luci-static/resources/fchomo/listeners.js:1155
-#: htdocs/luci-static/resources/view/fchomo/node.js:1276
-#: htdocs/luci-static/resources/view/fchomo/node.js:1294
+#: htdocs/luci-static/resources/fchomo/listeners.js:1156
+#: htdocs/luci-static/resources/fchomo/listeners.js:1165
+#: htdocs/luci-static/resources/view/fchomo/node.js:1287
+#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "XHTTP"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1191
-#: htdocs/luci-static/resources/view/fchomo/node.js:1389
+#: htdocs/luci-static/resources/fchomo/listeners.js:1201
+#: htdocs/luci-static/resources/view/fchomo/node.js:1400
msgid "XHTTP mode"
msgstr "XHTTP 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1420
+#: htdocs/luci-static/resources/view/fchomo/node.js:1431
msgid "XMUX"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1425
-#: htdocs/luci-static/resources/view/fchomo/node.js:1430
-#: htdocs/luci-static/resources/view/fchomo/node.js:1435
-#: htdocs/luci-static/resources/view/fchomo/node.js:1440
-#: htdocs/luci-static/resources/view/fchomo/node.js:1445
-#: htdocs/luci-static/resources/view/fchomo/node.js:1450
+#: htdocs/luci-static/resources/view/fchomo/node.js:1436
+#: htdocs/luci-static/resources/view/fchomo/node.js:1441
+#: htdocs/luci-static/resources/view/fchomo/node.js:1446
+#: htdocs/luci-static/resources/view/fchomo/node.js:1451
+#: htdocs/luci-static/resources/view/fchomo/node.js:1456
+#: htdocs/luci-static/resources/view/fchomo/node.js:1461
msgid "XMUX:"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:721
+#: htdocs/luci-static/resources/fchomo/listeners.js:731
msgid "XOR mode"
msgstr "XOR 模式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:726
+#: htdocs/luci-static/resources/view/fchomo/node.js:737
msgid "Xudp (Xray-core)"
msgstr ""
@@ -3616,7 +3644,7 @@ msgstr ""
msgid "Yaml text"
msgstr "Yaml 格式文本"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1932
+#: htdocs/luci-static/resources/view/fchomo/node.js:1943
msgid "Yes"
msgstr ""
@@ -3624,14 +3652,14 @@ msgstr ""
msgid "YouTube"
msgstr "YouTube"
-#: htdocs/luci-static/resources/fchomo.js:2076
+#: htdocs/luci-static/resources/fchomo.js:2064
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr "您的 %s 已成功上傳。大小:%sB。"
#: htdocs/luci-static/resources/fchomo.js:345
#: htdocs/luci-static/resources/fchomo.js:358
#: htdocs/luci-static/resources/fchomo.js:363
-#: htdocs/luci-static/resources/view/fchomo/node.js:706
+#: htdocs/luci-static/resources/view/fchomo/node.js:717
msgid "aes-128-gcm"
msgstr ""
@@ -3644,11 +3672,11 @@ msgstr ""
msgid "aes-256-gcm"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1792
+#: htdocs/luci-static/resources/view/fchomo/node.js:1803
msgid "age private key"
msgstr "age 私鑰"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1853
+#: htdocs/luci-static/resources/view/fchomo/node.js:1864
msgid "age public key"
msgstr "age 公鑰"
@@ -3660,7 +3688,7 @@ msgstr ""
msgid "age-x25519"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:703
+#: htdocs/luci-static/resources/view/fchomo/node.js:714
msgid "auto"
msgstr "自動"
@@ -3668,9 +3696,9 @@ msgstr "自動"
msgid "bbr"
msgstr "bbr"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1002
-#: htdocs/luci-static/resources/fchomo/listeners.js:1042
-#: htdocs/luci-static/resources/view/fchomo/node.js:1199
+#: htdocs/luci-static/resources/fchomo/listeners.js:1012
+#: htdocs/luci-static/resources/fchomo/listeners.js:1052
+#: htdocs/luci-static/resources/view/fchomo/node.js:1210
msgid "certificate"
msgstr "憑證"
@@ -3680,7 +3708,7 @@ msgstr "憑證"
msgid "chacha20-ietf-poly1305"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:707
+#: htdocs/luci-static/resources/view/fchomo/node.js:718
msgid "chacha20-poly1305"
msgstr ""
@@ -3688,8 +3716,8 @@ msgstr ""
msgid "cubic"
msgstr "cubic"
-#: htdocs/luci-static/resources/fchomo/listeners.js:673
-#: htdocs/luci-static/resources/fchomo/listeners.js:704
+#: htdocs/luci-static/resources/fchomo/listeners.js:683
+#: htdocs/luci-static/resources/fchomo/listeners.js:714
msgid "decryption"
msgstr "decryption"
@@ -3697,41 +3725,41 @@ msgstr "decryption"
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行選擇上游服務器。 (可能影響 CDN 準確性)"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1920
+#: htdocs/luci-static/resources/view/fchomo/node.js:1931
msgid "down"
msgstr "Hysteria 下載速率"
-#: htdocs/luci-static/resources/fchomo/listeners.js:708
-#: htdocs/luci-static/resources/view/fchomo/node.js:990
-#: htdocs/luci-static/resources/view/fchomo/node.js:1013
+#: htdocs/luci-static/resources/fchomo/listeners.js:718
+#: htdocs/luci-static/resources/view/fchomo/node.js:1001
+#: htdocs/luci-static/resources/view/fchomo/node.js:1024
msgid "encryption"
msgstr "encryption"
#: htdocs/luci-static/resources/fchomo/listeners.js:425
-#: htdocs/luci-static/resources/view/fchomo/node.js:489
+#: htdocs/luci-static/resources/view/fchomo/node.js:500
msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink."
msgstr "false = 頻寬最佳化下行 true = 純 Sudoku 下行。"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1144
-#: htdocs/luci-static/resources/fchomo/listeners.js:1153
-#: htdocs/luci-static/resources/fchomo/listeners.js:1160
-#: htdocs/luci-static/resources/view/fchomo/node.js:1274
+#: htdocs/luci-static/resources/fchomo/listeners.js:1154
+#: htdocs/luci-static/resources/fchomo/listeners.js:1163
+#: htdocs/luci-static/resources/fchomo/listeners.js:1170
#: htdocs/luci-static/resources/view/fchomo/node.js:1285
-#: htdocs/luci-static/resources/view/fchomo/node.js:1292
-#: htdocs/luci-static/resources/view/fchomo/node.js:1298
+#: htdocs/luci-static/resources/view/fchomo/node.js:1296
+#: htdocs/luci-static/resources/view/fchomo/node.js:1303
+#: htdocs/luci-static/resources/view/fchomo/node.js:1309
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1355
+#: htdocs/luci-static/resources/view/fchomo/node.js:1366
msgid "gRPC User-Agent"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1360
+#: htdocs/luci-static/resources/view/fchomo/node.js:1371
msgid "gRPC ping interval"
msgstr "gRPC ping 間隔"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1185
-#: htdocs/luci-static/resources/view/fchomo/node.js:1351
+#: htdocs/luci-static/resources/fchomo/listeners.js:1195
+#: htdocs/luci-static/resources/view/fchomo/node.js:1362
msgid "gRPC service name"
msgstr "gRPC 服務名稱"
@@ -3739,23 +3767,23 @@ msgstr "gRPC 服務名稱"
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/fchomo/node.js:770
+#: htdocs/luci-static/resources/view/fchomo/node.js:781
msgid "h2"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1467
+#: htdocs/luci-static/resources/view/fchomo/node.js:1478
msgid "h2mux"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:768
+#: htdocs/luci-static/resources/view/fchomo/node.js:779
msgid "h3"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:769
+#: htdocs/luci-static/resources/view/fchomo/node.js:780
msgid "h3-l4proxy"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:873
+#: htdocs/luci-static/resources/fchomo/listeners.js:883
msgid "least one keypair required"
msgstr "至少需要一對密鑰"
@@ -3763,13 +3791,13 @@ msgstr "至少需要一對密鑰"
msgid "metacubexd"
msgstr "metacubexd"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1030
-#: htdocs/luci-static/resources/view/fchomo/client.js:1327
-#: htdocs/luci-static/resources/view/fchomo/client.js:1422
-#: htdocs/luci-static/resources/view/fchomo/client.js:1564
-#: htdocs/luci-static/resources/view/fchomo/client.js:1798
-#: htdocs/luci-static/resources/view/fchomo/client.js:1854
-#: htdocs/luci-static/resources/view/fchomo/node.js:1673
+#: htdocs/luci-static/resources/view/fchomo/client.js:1034
+#: htdocs/luci-static/resources/view/fchomo/client.js:1331
+#: htdocs/luci-static/resources/view/fchomo/client.js:1426
+#: htdocs/luci-static/resources/view/fchomo/client.js:1568
+#: htdocs/luci-static/resources/view/fchomo/client.js:1802
+#: htdocs/luci-static/resources/view/fchomo/client.js:1858
+#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:247
msgid "mihomo config"
msgstr "mihomo 配置"
@@ -3778,8 +3806,8 @@ msgstr "mihomo 配置"
msgid "mlkem768x25519plus"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1540
-#: htdocs/luci-static/resources/view/fchomo/node.js:1898
+#: htdocs/luci-static/resources/view/fchomo/node.js:1551
+#: htdocs/luci-static/resources/view/fchomo/node.js:1909
msgid "mpTCP"
msgstr "多路徑 TCP (mpTCP)"
@@ -3787,24 +3815,24 @@ msgstr "多路徑 TCP (mpTCP)"
msgid "new_reno"
msgstr "new_reno"
-#: htdocs/luci-static/resources/view/fchomo/client.js:836
+#: htdocs/luci-static/resources/view/fchomo/client.js:840
msgid "no-resolve"
msgstr "no-resolve"
-#: htdocs/luci-static/resources/fchomo.js:1811
-#: htdocs/luci-static/resources/fchomo.js:1906
-#: htdocs/luci-static/resources/fchomo.js:1941
-#: htdocs/luci-static/resources/fchomo.js:1969
+#: htdocs/luci-static/resources/fchomo.js:1799
+#: htdocs/luci-static/resources/fchomo.js:1894
+#: htdocs/luci-static/resources/fchomo.js:1929
+#: htdocs/luci-static/resources/fchomo.js:1957
msgid "non-empty value"
msgstr "非空值"
#: htdocs/luci-static/resources/fchomo.js:343
#: htdocs/luci-static/resources/fchomo.js:357
#: htdocs/luci-static/resources/fchomo.js:369
-#: htdocs/luci-static/resources/fchomo/listeners.js:558
-#: htdocs/luci-static/resources/view/fchomo/node.js:704
-#: htdocs/luci-static/resources/view/fchomo/node.js:724
-#: htdocs/luci-static/resources/view/fchomo/node.js:882
+#: htdocs/luci-static/resources/fchomo/listeners.js:561
+#: htdocs/luci-static/resources/view/fchomo/node.js:715
+#: htdocs/luci-static/resources/view/fchomo/node.js:735
+#: htdocs/luci-static/resources/view/fchomo/node.js:893
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:324
msgid "none"
msgstr "無"
@@ -3813,51 +3841,51 @@ msgstr "無"
msgid "not found"
msgstr "未找到"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1047
+#: htdocs/luci-static/resources/view/fchomo/client.js:1051
msgid "not included \",\""
msgstr "不包含 \",\""
#: htdocs/luci-static/resources/fchomo.js:229
-#: htdocs/luci-static/resources/fchomo/listeners.js:619
-#: htdocs/luci-static/resources/fchomo/listeners.js:622
+#: htdocs/luci-static/resources/fchomo/listeners.js:629
+#: htdocs/luci-static/resources/fchomo/listeners.js:632
msgid "null"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:559
-#: htdocs/luci-static/resources/fchomo/listeners.js:567
-#: htdocs/luci-static/resources/view/fchomo/node.js:883
+#: htdocs/luci-static/resources/fchomo/listeners.js:562
+#: htdocs/luci-static/resources/fchomo/listeners.js:571
#: htdocs/luci-static/resources/view/fchomo/node.js:894
+#: htdocs/luci-static/resources/view/fchomo/node.js:905
msgid "obfs-simple"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "only applies when %s is %s."
msgstr "僅當 %s 為 %s 時適用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:534
+#: htdocs/luci-static/resources/view/fchomo/node.js:545
msgid "only applies when %s is not %s."
msgstr "僅當 %s 不為 %s 時適用。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1878
+#: htdocs/luci-static/resources/view/fchomo/node.js:1889
msgid "override.proxy-name"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:725
+#: htdocs/luci-static/resources/view/fchomo/node.js:736
msgid "packet addr (v2ray-core v5+)"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1195
-#: htdocs/luci-static/resources/view/fchomo/node.js:1393
+#: htdocs/luci-static/resources/fchomo/listeners.js:1205
+#: htdocs/luci-static/resources/view/fchomo/node.js:1404
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:439
-#: htdocs/luci-static/resources/view/fchomo/node.js:503
+#: htdocs/luci-static/resources/view/fchomo/node.js:514
msgid "poll"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1017
-#: htdocs/luci-static/resources/view/fchomo/node.js:1213
+#: htdocs/luci-static/resources/fchomo/listeners.js:1027
+#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "private key"
msgstr "私鑰"
@@ -3865,12 +3893,13 @@ msgstr "私鑰"
msgid "razord-meta"
msgstr "razord-meta"
-#: htdocs/luci-static/resources/view/fchomo/client.js:1251
-#: htdocs/luci-static/resources/view/fchomo/client.js:1257
+#: htdocs/luci-static/resources/view/fchomo/client.js:1255
+#: htdocs/luci-static/resources/view/fchomo/client.js:1261
msgid "requires front-end adaptation using the API."
msgstr "需要使用 API 的前端適配。"
-#: htdocs/luci-static/resources/view/fchomo/node.js:887
+#: htdocs/luci-static/resources/fchomo/listeners.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:898
msgid "restls"
msgstr ""
@@ -3878,41 +3907,41 @@ msgstr ""
msgid "rule-set"
msgstr "規則集"
-#: htdocs/luci-static/resources/fchomo/listeners.js:560
-#: htdocs/luci-static/resources/fchomo/listeners.js:568
-#: htdocs/luci-static/resources/view/fchomo/node.js:886
-#: htdocs/luci-static/resources/view/fchomo/node.js:895
+#: htdocs/luci-static/resources/fchomo/listeners.js:563
+#: htdocs/luci-static/resources/fchomo/listeners.js:572
+#: htdocs/luci-static/resources/view/fchomo/node.js:897
+#: htdocs/luci-static/resources/view/fchomo/node.js:906
msgid "shadow-tls"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:1465
+#: htdocs/luci-static/resources/view/fchomo/node.js:1476
msgid "smux"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:438
-#: htdocs/luci-static/resources/view/fchomo/node.js:502
+#: htdocs/luci-static/resources/view/fchomo/node.js:513
msgid "split-stream"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/client.js:818
+#: htdocs/luci-static/resources/view/fchomo/client.js:822
msgid "src"
msgstr "src"
-#: htdocs/luci-static/resources/fchomo/listeners.js:1193
-#: htdocs/luci-static/resources/view/fchomo/node.js:1391
+#: htdocs/luci-static/resources/fchomo/listeners.js:1203
+#: htdocs/luci-static/resources/view/fchomo/node.js:1402
msgid "stream-one"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1194
-#: htdocs/luci-static/resources/view/fchomo/node.js:1392
+#: htdocs/luci-static/resources/fchomo/listeners.js:1204
+#: htdocs/luci-static/resources/view/fchomo/node.js:1403
msgid "stream-up"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:1210
+#: htdocs/luci-static/resources/fchomo/listeners.js:1220
msgid "stream-up server seconds"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:536
+#: htdocs/luci-static/resources/view/fchomo/node.js:547
msgid "stream/poll/auto"
msgstr ""
@@ -3932,77 +3961,80 @@ msgstr "獨立 UCI 識別"
msgid "unique identifier"
msgstr "獨立標識"
-#: htdocs/luci-static/resources/fchomo.js:1978
+#: htdocs/luci-static/resources/fchomo.js:1966
msgid "unique value"
msgstr "獨立值"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1914
+#: htdocs/luci-static/resources/view/fchomo/node.js:1925
msgid "up"
msgstr "Hysteria 上傳速率"
-#: htdocs/luci-static/resources/fchomo/listeners.js:604
-#: htdocs/luci-static/resources/view/fchomo/node.js:552
-#: htdocs/luci-static/resources/view/fchomo/node.js:594
-#: htdocs/luci-static/resources/view/fchomo/node.js:924
-#: htdocs/luci-static/resources/view/fchomo/node.js:983
+#: htdocs/luci-static/resources/fchomo/listeners.js:464
+#: htdocs/luci-static/resources/fchomo/listeners.js:608
+#: htdocs/luci-static/resources/view/fchomo/node.js:563
+#: htdocs/luci-static/resources/view/fchomo/node.js:605
+#: htdocs/luci-static/resources/view/fchomo/node.js:935
+#: htdocs/luci-static/resources/view/fchomo/node.js:994
msgid "v1"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:605
-#: htdocs/luci-static/resources/view/fchomo/node.js:553
-#: htdocs/luci-static/resources/view/fchomo/node.js:925
-#: htdocs/luci-static/resources/view/fchomo/node.js:984
+#: htdocs/luci-static/resources/fchomo/listeners.js:465
+#: htdocs/luci-static/resources/fchomo/listeners.js:609
+#: htdocs/luci-static/resources/view/fchomo/node.js:564
+#: htdocs/luci-static/resources/view/fchomo/node.js:936
+#: htdocs/luci-static/resources/view/fchomo/node.js:995
msgid "v2"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:606
-#: htdocs/luci-static/resources/view/fchomo/node.js:554
-#: htdocs/luci-static/resources/view/fchomo/node.js:926
+#: htdocs/luci-static/resources/fchomo/listeners.js:466
+#: htdocs/luci-static/resources/fchomo/listeners.js:610
+#: htdocs/luci-static/resources/view/fchomo/node.js:565
+#: htdocs/luci-static/resources/view/fchomo/node.js:937
msgid "v3"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:464
-#: htdocs/luci-static/resources/view/fchomo/node.js:555
+#: htdocs/luci-static/resources/fchomo/listeners.js:467
+#: htdocs/luci-static/resources/view/fchomo/node.js:566
msgid "v4"
msgstr ""
-#: htdocs/luci-static/resources/fchomo/listeners.js:465
-#: htdocs/luci-static/resources/view/fchomo/node.js:556
+#: htdocs/luci-static/resources/fchomo/listeners.js:468
+#: htdocs/luci-static/resources/view/fchomo/node.js:567
msgid "v5"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1858
-#: htdocs/luci-static/resources/fchomo.js:1861
+#: htdocs/luci-static/resources/fchomo.js:1846
+#: htdocs/luci-static/resources/fchomo.js:1849
msgid "valid JSON format"
msgstr "有效的 JSON 格式"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1173
+#: htdocs/luci-static/resources/view/fchomo/node.js:1184
msgid "valid SHA256 string with %d characters"
msgstr "包含 %d 個字元的有效 SHA256 字串"
-#: htdocs/luci-static/resources/fchomo.js:1883
-#: htdocs/luci-static/resources/fchomo.js:1886
+#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1874
msgid "valid URL"
msgstr "有效網址"
-#: htdocs/luci-static/resources/fchomo.js:1896
+#: htdocs/luci-static/resources/fchomo.js:1884
msgid "valid base64 key with %d characters"
msgstr "包含 %d 個字元的有效 base64 金鑰"
-#: htdocs/luci-static/resources/fchomo.js:1956
-#: htdocs/luci-static/resources/fchomo.js:1962
+#: htdocs/luci-static/resources/fchomo.js:1944
+#: htdocs/luci-static/resources/fchomo.js:1950
msgid "valid format: 2x, 2p, 4v"
msgstr "有效格式: 2x, 2p, 4v"
-#: htdocs/luci-static/resources/fchomo.js:1943
+#: htdocs/luci-static/resources/fchomo.js:1931
msgid "valid key length with %d characters"
msgstr "包含 %d 個字元的有效金鑰"
-#: htdocs/luci-static/resources/fchomo.js:1821
+#: htdocs/luci-static/resources/fchomo.js:1809
msgid "valid port value"
msgstr "有效連接埠值"
-#: htdocs/luci-static/resources/fchomo.js:1871
+#: htdocs/luci-static/resources/fchomo.js:1859
msgid "valid uuid"
msgstr "有效 uuid"
@@ -4022,7 +4054,7 @@ msgstr ""
msgid "yacd-meta"
msgstr "yacd-meta"
-#: htdocs/luci-static/resources/view/fchomo/node.js:1466
+#: htdocs/luci-static/resources/view/fchomo/node.js:1477
msgid "yamux"
msgstr ""
@@ -4030,11 +4062,11 @@ msgstr ""
msgid "zashboard"
msgstr ""
-#: htdocs/luci-static/resources/view/fchomo/node.js:705
+#: htdocs/luci-static/resources/view/fchomo/node.js:716
msgid "zero"
msgstr ""
-#: htdocs/luci-static/resources/fchomo.js:1639
+#: htdocs/luci-static/resources/fchomo.js:1627
msgid "🡇"
msgstr ""
diff --git a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc
index b01edc2c..59422183 100644
--- a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc
+++ b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc
@@ -363,6 +363,16 @@ export function parseListener(cfg, isClient, label) {
dest: cfg.plugin_opts_handshake_dest
}
}
+ } : cfg.plugin === 'restls' ? {
+ // restls
+ "res-tls": {
+ enable: true,
+ dest: cfg.plugin_opts_handshake_dest,
+ password: cfg.plugin_opts_thetlspassword,
+ "restls-script": cfg.plugin_opts_restls_script,
+ //"min-record-len": 0,
+ //proxy: ""
+ }
} : {}
) : {}),
@@ -405,7 +415,17 @@ export function parseListener(cfg, isClient, label) {
"sc-max-each-post-bytes": strToInt(cfg.transport_xhttp_sc_max_each_post_bytes) || null,
// @其他的配置
} : null
- } : {})
+ } : {}),
+
+ /* Multiplex fields */
+ "mux-option": cfg.smux_enabled === '1' ? {
+ padding: strToBool(cfg.smux_padding),
+ brutal: cfg.smux_brutal === '1' ? {
+ enabled: true,
+ up: strToInt(cfg.smux_brutal_up) || null, // Mbps
+ down: strToInt(cfg.smux_brutal_down) || null // Mbps
+ } : null
+ } : null
}
};
/* String universal end */
diff --git a/luci-app-openclaw/CHANGELOG.md b/luci-app-openclaw/CHANGELOG.md
index da544206..0feaed78 100644
--- a/luci-app-openclaw/CHANGELOG.md
+++ b/luci-app-openclaw/CHANGELOG.md
@@ -4,15 +4,31 @@
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)。
+## [2.0.11] - 2026-07-10
+
+### 修复微信扫码后 Gateway 丢失插件
+
+- 微信安装、升级和登录前置检查改为使用官方 `plugins enable openclaw-weixin`、`plugins registry --refresh` 和 `plugins inspect` 完成闭环。
+- 只有官方 npm 安装记录、SQLite 注册表和微信 channel capability 全部验证通过后,LuCI 才返回安装成功。
+- 启动自愈不再删除 OpenClaw 官方生成的 `plugins.entries.openclaw-weixin`,并在 Gateway 启动前以 `openclaw` 用户刷新和验证注册表。
+- 修复扫码认证已保存,但 Gateway 重启后只加载 `memory-core` 并报 `invalid channels.start channel` 的问题。
+
+### 验证
+
+- 增加插件启用、SQLite 注册表刷新、加载能力校验和冷启动自愈的契约断言。
+
+---
+
## [2.0.10] - 2026-07-08
### 修复微信渠道配对
-- 启动 OpenClaw 时自动自愈微信 npm 插件注册,补齐 `plugins.installs.openclaw-weixin`、`plugins.allow` 和 `channels.openclaw-weixin.enabled`。
+- 适配 OpenClaw 2026.6.11 SQLite `installed_plugin_index`,微信安装与升级改用官方 `openclaw plugins install --pin` 写入插件索引。
+- 启动时检测旧 npm 直装目录并一次性迁移到官方插件索引,同时补齐 `plugins.allow` 和 `channels.openclaw-weixin.enabled`。
- 微信安装、升级和登录流程增加 `https://ilinkai.weixin.qq.com` 连通性检查,日志直接显示 HTTP、TLS 或 timeout 结果。
- 兼容没有 `su` / `runuser` 的 OpenWrt 固件,微信安装、升级、登录和下线改用 `start-stop-daemon` 兜底以 `openclaw` 用户执行。
- 微信安装网络探测优先使用 `curl`,避免低内存/精简 musl 固件上 Node `fetch` 触发 undici Wasm OOM。
-- 微信官方 CLI 安装触发 undici Wasm OOM 时,自动改用 npm 直装到 OpenClaw `npm/projects` 并继续注册插件配置。
+- 不再只用 npm 直装并写入已废弃的 `plugins.installs`,避免扫码成功后配置保存导致插件注册丢失。
- 微信插件安装/升级不再预先停止 Gateway,避免反复安装触发 procd crash-loop。
- LuCI 状态页和 `status_service` 增强 procd 状态识别,能区分真实启动中、stale pidfile 和 crash-loop 抑制,不再误显示“正在启动”。
- 微信登录前补充 Node、python3、插件目录、账号状态目录和配置写权限检查,并清理残留登录进程与旧二维码状态。
@@ -24,10 +40,14 @@
- 新增统一权限修复工具 `openclaw-permissions.sh`。
- 避免把整个 `OC_DATA` 或 `OC_STATE_DIR` 递归改成 `openclaw`。
-- `npm/projects` 保持 `openclaw` 可写,插件源码目录保持 `root:root 755`,避免 `EACCES` 和 `suspicious ownership` 互相打架。
-- retained npm generation 目录保持可清理,修复 Gateway 清理旧 generation 的权限报错。
+- `npm/projects` 及插件源码保持 `openclaw` 可写,匹配官方 managed npm generation 生命周期。
+- retained npm generation 目录保持可清理,修复 Gateway 清理旧 generation 时的 `EACCES`。
- legacy `extensions` / `archived-extensions` 保持 root-owned,降低 OpenClaw 插件安全检查误报风险。
+### 更新一万AI分享粉丝专享 API
+
+- `gpt-5.5` 默认上下文声明调整为 1,000,000 tokens,单次请求的实际可用上限仍以上游 API 为准。
+
### 修复检测升级
- “快捷操作 → 检测升级”改为语义版本比较,只在远端版本真正高于当前版本时提示升级。
diff --git a/luci-app-openclaw/Makefile b/luci-app-openclaw/Makefile
index 9f298e61..00dabdc4 100644
--- a/luci-app-openclaw/Makefile
+++ b/luci-app-openclaw/Makefile
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-openclaw
PKG_VERSION:=$(strip $(shell cat $(CURDIR)/VERSION 2>/dev/null || echo "1.0.0"))
-PKG_RELEASE:=22
+PKG_RELEASE:=23
PKG_MAINTAINER:=10000ge10000 <10000ge10000@users.noreply.github.com>
PKG_LICENSE:=GPL-3.0
diff --git a/luci-app-openclaw/VERSION b/luci-app-openclaw/VERSION
index 0a692060..6cbacdc8 100644
--- a/luci-app-openclaw/VERSION
+++ b/luci-app-openclaw/VERSION
@@ -1 +1 @@
-2.0.10
+2.0.11
diff --git a/luci-app-openclaw/luasrc/controller/openclaw.lua b/luci-app-openclaw/luasrc/controller/openclaw.lua
index e18583da..56896033 100644
--- a/luci-app-openclaw/luasrc/controller/openclaw.lua
+++ b/luci-app-openclaw/luasrc/controller/openclaw.lua
@@ -114,51 +114,13 @@ local function find_wechat_plugin_dir(install_path)
return nil
end
-local function wechat_register_plugin_cmd(install_path, node_bin, log_file, exit_file)
+local function wechat_enable_plugin_config_cmd(install_path, node_bin, log_file, exit_file)
exit_file = exit_file or "/tmp/openclaw-wechat-install.exit"
local oc_data = install_path .. "/data"
local config_file = oc_data .. "/.openclaw/openclaw.json"
- local npm_projects = oc_data .. "/.openclaw/npm/projects"
- local legacy_ext_dir = oc_data .. "/.openclaw/extensions/openclaw-weixin"
local register_js = [[
const fs = require('fs');
-const path = require('path');
const configPath = process.env.OC_CONFIG;
-const npmProjects = process.env.OC_NPM_PROJECTS;
-const legacyDir = process.env.OC_LEGACY_WECHAT_DIR;
-const candidates = [];
-function addPluginDir(dir) {
- if (!dir) return;
- const pluginJson = path.join(dir, 'openclaw.plugin.json');
- try {
- const st = fs.statSync(pluginJson);
- if (st.isFile()) candidates.push({ dir, mtime: st.mtimeMs });
- } catch (e) {}
-}
-function walk(dir) {
- let entries = [];
- try {
- entries = fs.readdirSync(dir, { withFileTypes: true });
- } catch (e) {
- return;
- }
- for (const entry of entries) {
- if (!entry.isDirectory()) continue;
- const full = path.join(dir, entry.name);
- if (full.endsWith(path.join('node_modules', '@tencent-weixin', 'openclaw-weixin'))) {
- addPluginDir(full);
- continue;
- }
- walk(full);
- }
-}
-addPluginDir(legacyDir);
-walk(npmProjects);
-candidates.sort((a, b) => b.mtime - a.mtime);
-if (!candidates.length) {
- console.error('openclaw-weixin plugin directory not found');
- process.exit(2);
-}
let d = {};
try {
d = JSON.parse(fs.readFileSync(configPath, 'utf8'));
@@ -166,13 +128,11 @@ try {
d = {};
}
if (!d.plugins || typeof d.plugins !== 'object') d.plugins = {};
-if (!d.plugins.installs || typeof d.plugins.installs !== 'object') d.plugins.installs = {};
if (!Array.isArray(d.plugins.allow)) d.plugins.allow = [];
-d.plugins.installs['openclaw-weixin'] = {
- kind: 'npm',
- installPath: candidates[0].dir,
- packageName: '@tencent-weixin/openclaw-weixin'
-};
+// OpenClaw 2026.6.11 persists install records in its SQLite plugin index.
+// Remove the deprecated authored config ledger so later config writes do not
+// silently discard the only registration record again.
+if (d.plugins.installs) delete d.plugins.installs['openclaw-weixin'];
if (!d.plugins.allow.includes('openclaw-weixin')) d.plugins.allow.push('openclaw-weixin');
if (!d.channels || typeof d.channels !== 'object') d.channels = {};
if (!d.channels['openclaw-weixin'] || typeof d.channels['openclaw-weixin'] !== 'object') {
@@ -185,16 +145,14 @@ fs.writeFileSync(configPath, JSON.stringify(d, null, 2) + '\n');
return "if [ $RC -eq 0 ]; then " ..
"if [ -x " .. shellquote(node_bin) .. " ]; then " ..
"OC_CONFIG=" .. shellquote(config_file) .. " " ..
- "OC_NPM_PROJECTS=" .. shellquote(npm_projects) .. " " ..
- "OC_LEGACY_WECHAT_DIR=" .. shellquote(legacy_ext_dir) .. " " ..
shellquote(node_bin) .. " -e " .. shellquote(register_js) .. " >> " .. shellquote(log_file) .. " 2>&1; " ..
"REG_RC=$?; " ..
"if [ $REG_RC -eq 0 ]; then " ..
"chown openclaw:openclaw " .. shellquote(config_file) .. " 2>/dev/null; " ..
"[ -x /usr/libexec/openclaw-permissions.sh ] && /usr/libexec/openclaw-permissions.sh fix-state " .. shellquote(oc_data .. "/.openclaw") .. " >/dev/null 2>&1; " ..
- "echo 'Registered openclaw-weixin npm plugin in OpenClaw config.' >> " .. shellquote(log_file) .. "; " ..
- "else RC=$REG_RC; echo $RC > " .. shellquote(exit_file) .. "; echo 'Failed to register openclaw-weixin npm plugin in OpenClaw config.' >> " .. shellquote(log_file) .. "; fi; " ..
- "else RC=127; echo $RC > " .. shellquote(exit_file) .. "; echo 'Node.js not found, cannot register openclaw-weixin plugin.' >> " .. shellquote(log_file) .. "; fi; " ..
+ "echo 'Enabled openclaw-weixin channel in OpenClaw config.' >> " .. shellquote(log_file) .. "; " ..
+ "else RC=$REG_RC; echo $RC > " .. shellquote(exit_file) .. "; echo 'Failed to enable openclaw-weixin channel in OpenClaw config.' >> " .. shellquote(log_file) .. "; fi; " ..
+ "else RC=127; echo $RC > " .. shellquote(exit_file) .. "; echo 'Node.js not found, cannot enable openclaw-weixin channel.' >> " .. shellquote(log_file) .. "; fi; " ..
"fi; "
end
@@ -253,44 +211,49 @@ local function openclaw_user_runner_cmd()
"}; "
end
-local function wechat_npm_fallback_install_cmd(install_path, log_file, exit_file)
- local package_json = "{\n \"private\": true,\n \"dependencies\": {\n \"@tencent-weixin/openclaw-weixin\": \"latest\"\n }\n}\n"
- return "if [ $RC -ne 0 ]; then " ..
- "echo '⚠️ 官方微信 CLI 安装失败,尝试 npm 直装兜底...' >> " .. shellquote(log_file) .. "; " ..
- "OC_WECHAT_NPM_PROJECT=\"$OC_WECHAT_DATA/.openclaw/npm/projects/tencent-weixin-openclaw-weixin-7783ac86ba\"; " ..
- "mkdir -p \"$OC_WECHAT_NPM_PROJECT\" \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/npm/projects\"; " ..
- "chown -R openclaw:openclaw \"$OC_WECHAT_NPM_PROJECT\" \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/npm/projects\" 2>/dev/null; " ..
- "cat > \"$OC_WECHAT_NPM_PROJECT/package.json\" <<'OC_WECHAT_PACKAGE_JSON'\n" ..
- package_json ..
- "OC_WECHAT_PACKAGE_JSON\n" ..
- "chown openclaw:openclaw \"$OC_WECHAT_NPM_PROJECT/package.json\" 2>/dev/null; " ..
- "cd \"$OC_WECHAT_NPM_PROJECT\" && " ..
- "_oc_as_openclaw 'HOME=$OC_WECHAT_DATA OPENCLAW_HOME=$OC_WECHAT_DATA OPENCLAW_STATE_DIR=$OC_WECHAT_DATA/.openclaw OPENCLAW_CONFIG_PATH=$OC_WECHAT_DATA/.openclaw/openclaw.json " ..
- "NPM_CONFIG_CACHE=$OC_WECHAT_DATA/.npm npm_config_cache=$OC_WECHAT_DATA/.npm TMPDIR=$OC_WECHAT_DATA/.tmp " ..
- "PATH=" .. install_path .. "/node/bin:" .. install_path .. "/global/bin:$PATH " ..
- "npm install --omit=dev --omit=peer --legacy-peer-deps --no-audit --no-fund --loglevel=error' >> " .. shellquote(log_file) .. " 2>&1; " ..
- "RC=$?; echo $RC > " .. shellquote(exit_file) .. "; " ..
- "if [ $RC -eq 0 ]; then echo '✅ npm 直装兜底完成' >> " .. shellquote(log_file) .. "; else echo '❌ npm 直装兜底失败 (exit: '$RC')' >> " .. shellquote(log_file) .. "; fi; " ..
- "fi; "
-end
-
-local function wechat_npm_direct_install_cmd(install_path, log_file, exit_file)
- local package_json = "{\n \"private\": true,\n \"dependencies\": {\n \"@tencent-weixin/openclaw-weixin\": \"latest\"\n }\n}\n"
- return "echo '使用 npm 直装微信插件,避免官方安装器进入扫码等待...' >> " .. shellquote(log_file) .. "; " ..
- "OC_WECHAT_NPM_PROJECT=\"$OC_WECHAT_DATA/.openclaw/npm/projects/tencent-weixin-openclaw-weixin-7783ac86ba\"; " ..
- "mkdir -p \"$OC_WECHAT_NPM_PROJECT\" \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/npm/projects\"; " ..
- "chown -R openclaw:openclaw \"$OC_WECHAT_NPM_PROJECT\" \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/npm/projects\" 2>/dev/null; " ..
- "cat > \"$OC_WECHAT_NPM_PROJECT/package.json\" <<'OC_WECHAT_PACKAGE_JSON'\n" ..
- package_json ..
- "OC_WECHAT_PACKAGE_JSON\n" ..
- "chown openclaw:openclaw \"$OC_WECHAT_NPM_PROJECT/package.json\" 2>/dev/null; " ..
- "cd \"$OC_WECHAT_NPM_PROJECT\" && " ..
+local function wechat_openclaw_plugin_install_cmd(install_path, oc_entry, log_file, exit_file)
+ return "OC_WECHAT_NODE=" .. shellquote(install_path .. "/node/bin/node") .. "; " ..
+ "OC_WECHAT_ENTRY=" .. shellquote(oc_entry) .. "; export OC_WECHAT_NODE OC_WECHAT_ENTRY; " ..
+ "echo '使用 OpenClaw 官方插件安装器写入 SQLite 插件索引...' >> " .. shellquote(log_file) .. "; " ..
"_oc_as_openclaw 'HOME=$OC_WECHAT_DATA OPENCLAW_HOME=$OC_WECHAT_DATA OPENCLAW_STATE_DIR=$OC_WECHAT_DATA/.openclaw OPENCLAW_CONFIG_PATH=$OC_WECHAT_DATA/.openclaw/openclaw.json " ..
"NODE_ICU_DATA=" .. install_path .. "/node/share/icu NPM_CONFIG_CACHE=$OC_WECHAT_DATA/.npm npm_config_cache=$OC_WECHAT_DATA/.npm TMPDIR=$OC_WECHAT_DATA/.tmp " ..
"PATH=" .. install_path .. "/node/bin:" .. install_path .. "/global/bin:$PATH " ..
- "npm install --omit=dev --omit=peer --legacy-peer-deps --no-audit --no-fund --loglevel=error' >> " .. shellquote(log_file) .. " 2>&1; " ..
+ "\"$OC_WECHAT_NODE\" \"$OC_WECHAT_ENTRY\" plugins install --force --pin @tencent-weixin/openclaw-weixin@2.4.6' >> " .. shellquote(log_file) .. " 2>&1; " ..
"RC=$?; echo $RC > " .. shellquote(exit_file) .. "; " ..
- "if [ $RC -eq 0 ]; then echo '✅ npm 直装微信插件完成' >> " .. shellquote(log_file) .. "; else echo '❌ npm 直装微信插件失败 (exit: '$RC')' >> " .. shellquote(log_file) .. "; fi; "
+ "if [ $RC -eq 0 ]; then echo '✅ OpenClaw 插件索引注册完成' >> " .. shellquote(log_file) .. "; else echo '❌ OpenClaw 插件安装失败 (exit: '$RC')' >> " .. shellquote(log_file) .. "; fi; "
+end
+
+local function wechat_finalize_plugin_registry_cmd(install_path, oc_entry, log_file, exit_file)
+ exit_file = exit_file or "/tmp/openclaw-wechat-install.exit"
+ local oc_data = install_path .. "/data"
+ local node_bin = install_path .. "/node/bin/node"
+ local cli_env = "HOME=" .. oc_data .. " OPENCLAW_HOME=" .. oc_data ..
+ " OPENCLAW_STATE_DIR=" .. oc_data .. "/.openclaw" ..
+ " OPENCLAW_CONFIG_PATH=" .. oc_data .. "/.openclaw/openclaw.json" ..
+ " NODE_ICU_DATA=" .. install_path .. "/node/share/icu" ..
+ " NPM_CONFIG_CACHE=" .. oc_data .. "/.npm TMPDIR=" .. oc_data .. "/.tmp" ..
+ " PATH=" .. install_path .. "/node/bin:" .. install_path .. "/global/bin:$PATH "
+ local cli = cli_env .. node_bin .. " " .. oc_entry
+
+ return "if [ $RC -eq 0 ]; then " ..
+ "echo '正在写入微信插件启用状态...' >> " .. shellquote(log_file) .. "; " ..
+ "_oc_as_openclaw '" .. cli .. " plugins enable openclaw-weixin' >> " .. shellquote(log_file) .. " 2>&1; " ..
+ "FINAL_RC=$?; " ..
+ "if [ $FINAL_RC -eq 0 ]; then " ..
+ "echo '正在刷新 SQLite 插件注册表...' >> " .. shellquote(log_file) .. "; " ..
+ "_oc_as_openclaw '" .. cli .. " plugins registry --refresh' >> " .. shellquote(log_file) .. " 2>&1; " ..
+ "FINAL_RC=$?; fi; " ..
+ "if [ $FINAL_RC -eq 0 ]; then " ..
+ "_OC_WECHAT_INSPECT=/tmp/openclaw-wechat-inspect-$$.log; " ..
+ "_oc_as_openclaw '" .. cli .. " plugins inspect openclaw-weixin' > \"$_OC_WECHAT_INSPECT\" 2>&1; " ..
+ "VERIFY_RC=$?; cat \"$_OC_WECHAT_INSPECT\" >> " .. shellquote(log_file) .. "; " ..
+ "if [ $VERIFY_RC -ne 0 ] || ! grep -q '^Status: loaded$' \"$_OC_WECHAT_INSPECT\" || ! grep -q '^channel: openclaw-weixin$' \"$_OC_WECHAT_INSPECT\"; then FINAL_RC=1; fi; " ..
+ "rm -f \"$_OC_WECHAT_INSPECT\"; fi; " ..
+ "if [ $FINAL_RC -eq 0 ]; then " ..
+ "echo '✅ 微信插件已启用,SQLite 注册表已刷新并通过加载验证' >> " .. shellquote(log_file) .. "; " ..
+ "else RC=$FINAL_RC; echo $RC > " .. shellquote(exit_file) .. "; " ..
+ "echo '❌ 微信插件启用或注册表验证失败' >> " .. shellquote(log_file) .. "; fi; " ..
+ "fi; "
end
local function wechat_tail_detail(text, max_lines)
@@ -1556,16 +1519,29 @@ function action_wechat_install()
local node_bin = install_path .. "/node/bin/node"
local npx_bin = install_path .. "/node/bin/npx"
local oc_data = install_path .. "/data"
+ local oc_entry = ""
+ for _, d in ipairs({
+ install_path .. "/global/lib/node_modules/openclaw",
+ install_path .. "/global/node_modules/openclaw",
+ install_path .. "/node/lib/node_modules/openclaw",
+ }) do
+ if nixio.fs.stat(d .. "/openclaw.mjs", "type") then
+ oc_entry = d .. "/openclaw.mjs"
+ break
+ elseif nixio.fs.stat(d .. "/dist/cli.js", "type") then
+ oc_entry = d .. "/dist/cli.js"
+ break
+ end
+ end
-- 清理旧日志和状态
sys.exec("rm -f /tmp/openclaw-wechat-install.log /tmp/openclaw-wechat-install.pid /tmp/openclaw-wechat-install.exit")
- -- 校验: 确保 npx 存在 (运行环境已安装)
- if not nixio.fs.stat(npx_bin, "type") then
- -- npx 不存在,运行环境未安装或路径配置错误
+ -- 官方插件安装器必须通过当前 OpenClaw CLI 写入 SQLite 安装索引。
+ if not nixio.fs.stat(node_bin, "type") or oc_entry == "" then
local log_content = "开始安装微信插件...\n" ..
"安装路径: " .. install_path .. "\n" ..
- "❌ 错误: npx 命令不存在 (" .. npx_bin .. ")\n" ..
+ "❌ 错误: Node.js 或 OpenClaw CLI 不存在。\n" ..
"请先在「基本设置」页面安装运行环境。\n" ..
"UCI install_path=" .. (uci:get("openclaw", "main", "install_path") or "未设置")
local f = io.open("/tmp/openclaw-wechat-install.log", "w")
@@ -1611,11 +1587,12 @@ function action_wechat_install()
"else mkdir -p \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/extensions\"; chown -R openclaw:openclaw \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" 2>/dev/null; chown openclaw:openclaw \"$OC_WECHAT_DATA/.openclaw\" 2>/dev/null; fi; " ..
"if [ ! -w %s/.npm ] || [ ! -w %s/.tmp ]; then echo '❌ npm cache/tmp 目录不可写' >> /tmp/openclaw-wechat-install.log; echo 1 > /tmp/openclaw-wechat-install.exit; exit 0; fi; " ..
"_oc_as_openclaw 'test -w %s/.npm && test -w %s/.tmp && test -w %s/.openclaw' || { echo '❌ openclaw 用户无法写入 npm cache/tmp/data 目录' >> /tmp/openclaw-wechat-install.log; echo 1 > /tmp/openclaw-wechat-install.exit; exit 0; }; " ..
- wechat_npm_direct_install_cmd(install_path, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
- wechat_register_plugin_cmd(install_path, node_bin, "/tmp/openclaw-wechat-install.log") ..
+ wechat_openclaw_plugin_install_cmd(install_path, oc_entry, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
+ wechat_enable_plugin_config_cmd(install_path, node_bin, "/tmp/openclaw-wechat-install.log") ..
+ wechat_finalize_plugin_registry_cmd(install_path, oc_entry, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
-- 关键修复: 安装完成后强制修复插件目录权限 (确保 Gateway 可读取插件)
-- 原因: npx/npm 以 root 身份创建目录,默认权限 700 导致其他用户无法读取
- -- 注意: 保持 root:root 属主 (OpenClaw v2026.4.9+ 安全要求),仅修复权限模式
+ -- 官方 npm generation 由 openclaw 用户维护,必须允许后续升级清理。
"[ -x /usr/libexec/openclaw-permissions.sh ] && /usr/libexec/openclaw-permissions.sh fix-state %s/.openclaw >/dev/null 2>&1; " ..
"if [ $RC -eq 0 ]; then echo '✅ 微信插件安装成功!' >> /tmp/openclaw-wechat-install.log; " ..
"else echo '❌ 安装失败 (exit: '$RC')' >> /tmp/openclaw-wechat-install.log; fi " ..
@@ -1761,7 +1738,8 @@ function action_wechat_login()
"chown openclaw:openclaw %s/.openclaw %s/.openclaw/openclaw.json 2>/dev/null; " ..
"_oc_as_openclaw 'test -w %s/.npm && test -w %s/.tmp && test -w %s/.openclaw && test -w %s/.openclaw/openclaw-weixin && test -w %s/.openclaw/openclaw.json' || { echo '❌ openclaw 用户无法写入微信登录目录,请检查数据目录权限' >> /tmp/openclaw-wechat-qrcode.txt; echo 1 > /tmp/openclaw-wechat-login.exit; exit 0; }; " ..
"RC=0; " ..
- wechat_register_plugin_cmd(install_path, node_bin, "/tmp/openclaw-wechat-qrcode.txt", "/tmp/openclaw-wechat-login.exit") ..
+ wechat_enable_plugin_config_cmd(install_path, node_bin, "/tmp/openclaw-wechat-qrcode.txt", "/tmp/openclaw-wechat-login.exit") ..
+ wechat_finalize_plugin_registry_cmd(install_path, oc_entry, "/tmp/openclaw-wechat-qrcode.txt", "/tmp/openclaw-wechat-login.exit") ..
"if [ $RC -ne 0 ]; then echo '❌ 微信插件注册失败,无法登录' >> /tmp/openclaw-wechat-qrcode.txt; exit 0; fi; " ..
"cd %s && " ..
"_oc_as_openclaw 'HOME=%s OPENCLAW_HOME=%s OPENCLAW_STATE_DIR=%s/.openclaw OPENCLAW_CONFIG_PATH=%s/.openclaw/openclaw.json " ..
@@ -2026,15 +2004,29 @@ function action_wechat_upgrade_plugin()
local node_bin = install_path .. "/node/bin/node"
local npx_bin = install_path .. "/node/bin/npx"
local oc_data = install_path .. "/data"
+ local oc_entry = ""
+ for _, d in ipairs({
+ install_path .. "/global/lib/node_modules/openclaw",
+ install_path .. "/global/node_modules/openclaw",
+ install_path .. "/node/lib/node_modules/openclaw",
+ }) do
+ if nixio.fs.stat(d .. "/openclaw.mjs", "type") then
+ oc_entry = d .. "/openclaw.mjs"
+ break
+ elseif nixio.fs.stat(d .. "/dist/cli.js", "type") then
+ oc_entry = d .. "/dist/cli.js"
+ break
+ end
+ end
-- 清理旧日志和状态
sys.exec("rm -f /tmp/openclaw-wechat-install.log /tmp/openclaw-wechat-install.pid /tmp/openclaw-wechat-install.exit")
- -- 校验: 确保 npx 存在 (运行环境已安装)
- if not nixio.fs.stat(npx_bin, "type") then
+ -- 升级也必须由官方 CLI 更新 SQLite 插件索引。
+ if not nixio.fs.stat(node_bin, "type") or oc_entry == "" then
local log_content = "正在升级微信插件...\n" ..
"安装路径: " .. install_path .. "\n" ..
- "❌ 错误: npx 命令不存在 (" .. npx_bin .. ")\n" ..
+ "❌ 错误: Node.js 或 OpenClaw CLI 不存在。\n" ..
"请先检查运行环境是否正常安装。\n" ..
"UCI install_path=" .. (uci:get("openclaw", "main", "install_path") or "未设置")
local f = io.open("/tmp/openclaw-wechat-install.log", "w")
@@ -2080,10 +2072,11 @@ function action_wechat_upgrade_plugin()
"else mkdir -p \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" \"$OC_WECHAT_DATA/.openclaw/extensions\"; chown -R openclaw:openclaw \"$OC_WECHAT_DATA/.npm\" \"$OC_WECHAT_DATA/.tmp\" 2>/dev/null; chown openclaw:openclaw \"$OC_WECHAT_DATA/.openclaw\" 2>/dev/null; fi; " ..
"if [ ! -w %s/.npm ] || [ ! -w %s/.tmp ]; then echo '❌ npm cache/tmp 目录不可写' >> /tmp/openclaw-wechat-install.log; echo 1 > /tmp/openclaw-wechat-install.exit; exit 0; fi; " ..
"_oc_as_openclaw 'test -w %s/.npm && test -w %s/.tmp && test -w %s/.openclaw' || { echo '❌ openclaw 用户无法写入 npm cache/tmp/data 目录' >> /tmp/openclaw-wechat-install.log; echo 1 > /tmp/openclaw-wechat-install.exit; exit 0; }; " ..
- wechat_npm_direct_install_cmd(install_path, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
- wechat_register_plugin_cmd(install_path, node_bin, "/tmp/openclaw-wechat-install.log") ..
+ wechat_openclaw_plugin_install_cmd(install_path, oc_entry, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
+ wechat_enable_plugin_config_cmd(install_path, node_bin, "/tmp/openclaw-wechat-install.log") ..
+ wechat_finalize_plugin_registry_cmd(install_path, oc_entry, "/tmp/openclaw-wechat-install.log", "/tmp/openclaw-wechat-install.exit") ..
-- 关键修复: 升级完成后强制修复插件目录权限 (确保 Gateway 可读取插件)
- -- 注意: 保持 root:root 属主 (OpenClaw v2026.4.9+ 安全要求),仅修复权限模式
+ -- 官方 npm generation 由 openclaw 用户维护,必须允许后续升级清理。
"[ -x /usr/libexec/openclaw-permissions.sh ] && /usr/libexec/openclaw-permissions.sh fix-state %s/.openclaw >/dev/null 2>&1; " ..
"if [ $RC -eq 0 ]; then echo '✅ 微信插件升级成功!' >> /tmp/openclaw-wechat-install.log; " ..
"else echo '❌ 升级失败 (exit: '$RC')' >> /tmp/openclaw-wechat-install.log; fi " ..
diff --git a/luci-app-openclaw/root/etc/init.d/openclaw b/luci-app-openclaw/root/etc/init.d/openclaw
index 895cdda3..f9d14b3f 100755
--- a/luci-app-openclaw/root/etc/init.d/openclaw
+++ b/luci-app-openclaw/root/etc/init.d/openclaw
@@ -61,6 +61,29 @@ _oc_fix_opt
NODE_BIN="${NODE_BASE}/bin/node"
CONFIG_FILE="${OC_DATA}/.openclaw/openclaw.json"
+run_openclaw_cli_as_user() {
+ local oc_entry="$1"
+ shift
+ local pid_file="/tmp/openclaw-cli-$$.pid"
+ local rc
+
+ [ -x "$NODE_BIN" ] || return 127
+ id -u openclaw >/dev/null 2>&1 || return 127
+ rm -f "$pid_file"
+ ulimit -v unlimited 2>/dev/null || true
+ ulimit -m unlimited 2>/dev/null || true
+ ulimit -d unlimited 2>/dev/null || true
+ HOME="$OC_DATA" OPENCLAW_HOME="$OC_DATA" OPENCLAW_STATE_DIR="${OC_DATA}/.openclaw" \
+ OPENCLAW_CONFIG_PATH="$CONFIG_FILE" NODE_ICU_DATA="${NODE_BASE}/share/icu" \
+ NPM_CONFIG_CACHE="${OC_DATA}/.npm" npm_config_cache="${OC_DATA}/.npm" TMPDIR="${OC_DATA}/.tmp" \
+ PATH="${NODE_BASE}/bin:${OC_GLOBAL}/bin:$PATH" \
+ start-stop-daemon -S -m -p "$pid_file" -c openclaw:openclaw -d "$OC_INSTALL_PATH" \
+ -x "$NODE_BIN" -- "$oc_entry" "$@"
+ rc=$?
+ rm -f "$pid_file"
+ return "$rc"
+}
+
get_oc_entry() {
local search_dirs="${OC_GLOBAL}/lib/node_modules/openclaw
${OC_GLOBAL}/node_modules/openclaw
@@ -333,9 +356,6 @@ if(Array.isArray(d.plugins.allow)){
delete d.plugins[ns].weixin;
}
});
-if(d.plugins.entries&&d.plugins.entries['openclaw-weixin']){
- delete d.plugins.entries['openclaw-weixin'];
-}
['channel','channels'].forEach(ns=>{
if(d[ns]&&d[ns].weixin){
if(!d[ns]['openclaw-weixin'])d[ns]['openclaw-weixin']=d[ns].weixin;
@@ -392,34 +412,67 @@ fi
# 同步 UCI 到 JSON
sync_uci_to_json
- # 微信 npm 插件自愈注册:
- # 有些环境里 npm projects 已安装 @tencent-weixin/openclaw-weixin,
- # 但 openclaw.json 缺少 plugins.installs / plugins.allow / channels 配置,
- # 会导致页面显示“已安装”而 Gateway 或登录流程无法稳定加载插件。
+ # 微信 npm 插件自愈注册:OpenClaw 2026.6.11 已把安装记录从
+ # openclaw.json 的 plugins.installs 迁移到 SQLite installed_plugin_index。
+ # 所有官方 CLI 和 SQLite 注册表操作都以 openclaw 用户执行;完成配置写入后
+ # 强制 refresh 并检查 channel capability,避免重启后只加载 memory-core。
self_heal_wechat_npm_plugin_config() {
[ -x "$NODE_BIN" ] || return 0
[ -f "$CONFIG_FILE" ] || return 0
local npm_projects_dir="${OC_DATA}/.openclaw/npm/projects"
[ -d "$npm_projects_dir" ] || return 0
- local wechat_plugin_json wechat_plugin_dir heal_out
+ local wechat_plugin_json heal_out index_ok inspect_ok config_ok inspect_file
wechat_plugin_json=$(find "$npm_projects_dir" -path "*/node_modules/@tencent-weixin/openclaw-weixin/openclaw.plugin.json" -type f 2>/dev/null | head -n 1)
[ -n "$wechat_plugin_json" ] || return 0
- wechat_plugin_dir="${wechat_plugin_json%/openclaw.plugin.json}"
- heal_out=$(OC_CONFIG="$CONFIG_FILE" OC_WECHAT_PLUGIN_DIR="$wechat_plugin_dir" "$NODE_BIN" -e "
+ inspect_file="/tmp/openclaw-wechat-self-heal.inspect"
+ rm -f "$inspect_file"
+ : > /tmp/openclaw-wechat-self-heal.log
+ index_ok=0
+ inspect_ok=0
+ config_ok=0
+ if run_openclaw_cli_as_user "$oc_entry" plugins inspect openclaw-weixin >"$inspect_file" 2>&1; then
+ grep -q '^Install:$' "$inspect_file" && grep -q '^Source: npm$' "$inspect_file" && index_ok=1
+ grep -q '^Status: loaded$' "$inspect_file" && grep -q '^channel: openclaw-weixin$' "$inspect_file" && inspect_ok=1
+ fi
+ OC_CONFIG="$CONFIG_FILE" "$NODE_BIN" -e "
+try {
+ const d=JSON.parse(require('fs').readFileSync(process.env.OC_CONFIG,'utf8'));
+ const ok=d.plugins&&Array.isArray(d.plugins.allow)&&d.plugins.allow.includes('openclaw-weixin')&&
+ d.plugins.entries&&d.plugins.entries['openclaw-weixin']&&d.plugins.entries['openclaw-weixin'].enabled===true&&
+ d.channels&&d.channels['openclaw-weixin']&&d.channels['openclaw-weixin'].enabled===true&&
+ !(d.plugins.installs&&d.plugins.installs['openclaw-weixin']);
+ process.exit(ok?0:1);
+} catch(e) { process.exit(1); }
+" >/dev/null 2>&1 && config_ok=1
+ if [ "$index_ok" = "1" ] && [ "$inspect_ok" = "1" ] && [ "$config_ok" = "1" ]; then
+ cat "$inspect_file" >> /tmp/openclaw-wechat-self-heal.log
+ logger -t openclaw "微信插件注册状态已有效,跳过重复刷新"
+ rm -f "$inspect_file"
+ return 0
+ fi
+ if [ "$index_ok" != "1" ]; then
+ logger -t openclaw "检测到旧微信直装目录,正在迁移到 SQLite 插件索引"
+ mkdir -p "${OC_DATA}/.npm" "${OC_DATA}/.tmp" 2>/dev/null || true
+ if run_openclaw_cli_as_user "$oc_entry" plugins install --force --pin '@tencent-weixin/openclaw-weixin@2.4.6' \
+ >>/tmp/openclaw-wechat-self-heal.log 2>&1; then
+ logger -t openclaw "微信插件已迁移到 SQLite installed_plugin_index"
+ else
+ logger -t openclaw "微信插件 SQLite 索引迁移失败,请查看 /tmp/openclaw-wechat-self-heal.log"
+ rm -f "$inspect_file"
+ return 0
+ fi
+ fi
+ heal_out=$(OC_CONFIG="$CONFIG_FILE" "$NODE_BIN" -e "
const fs=require('fs');
const p=process.env.OC_CONFIG;
-const pluginDir=process.env.OC_WECHAT_PLUGIN_DIR;
let d={};
try{d=JSON.parse(fs.readFileSync(p,'utf8'));}catch(e){}
if(!d.plugins||typeof d.plugins!=='object')d.plugins={};
-if(!d.plugins.installs||typeof d.plugins.installs!=='object')d.plugins.installs={};
if(!Array.isArray(d.plugins.allow))d.plugins.allow=[];
if(!d.channels||typeof d.channels!=='object')d.channels={};
let changed=false;
-const want={kind:'npm',installPath:pluginDir,packageName:'@tencent-weixin/openclaw-weixin'};
-const cur=d.plugins.installs['openclaw-weixin'];
-if(!cur||cur.kind!==want.kind||cur.installPath!==want.installPath||cur.packageName!==want.packageName){
- d.plugins.installs['openclaw-weixin']=want; changed=true;
+if(d.plugins.installs&&d.plugins.installs['openclaw-weixin']){
+ delete d.plugins.installs['openclaw-weixin']; changed=true;
}
if(!d.plugins.allow.includes('openclaw-weixin')){
d.plugins.allow.push('openclaw-weixin'); changed=true;
@@ -430,9 +483,6 @@ if(!d.channels['openclaw-weixin']||typeof d.channels['openclaw-weixin']!=='objec
if(d.channels['openclaw-weixin'].enabled!==true){
d.channels['openclaw-weixin'].enabled=true; changed=true;
}
-if(d.plugins.entries&&d.plugins.entries['openclaw-weixin']){
- delete d.plugins.entries['openclaw-weixin']; changed=true;
-}
if(changed){
fs.writeFileSync(p,JSON.stringify(d,null,2)+'\n');
console.log('FIXED');
@@ -440,8 +490,29 @@ if(changed){
" 2>/dev/null)
if echo "$heal_out" | grep -q "FIXED"; then
chown openclaw:openclaw "$CONFIG_FILE" 2>/dev/null || true
- logger -t openclaw "已自愈注册 openclaw-weixin npm plugin: $wechat_plugin_dir"
+ logger -t openclaw "已自愈启用 openclaw-weixin channel"
fi
+ if ! run_openclaw_cli_as_user "$oc_entry" plugins enable openclaw-weixin \
+ >>/tmp/openclaw-wechat-self-heal.log 2>&1; then
+ logger -t openclaw "微信插件启用失败,请查看 /tmp/openclaw-wechat-self-heal.log"
+ rm -f "$inspect_file"
+ return 0
+ fi
+ if ! run_openclaw_cli_as_user "$oc_entry" plugins registry --refresh \
+ >>/tmp/openclaw-wechat-self-heal.log 2>&1; then
+ logger -t openclaw "微信插件注册表刷新失败,请查看 /tmp/openclaw-wechat-self-heal.log"
+ rm -f "$inspect_file"
+ return 0
+ fi
+ if run_openclaw_cli_as_user "$oc_entry" plugins inspect openclaw-weixin >"$inspect_file" 2>&1 && \
+ grep -q '^Status: loaded$' "$inspect_file" && grep -q '^channel: openclaw-weixin$' "$inspect_file"; then
+ cat "$inspect_file" >> /tmp/openclaw-wechat-self-heal.log
+ logger -t openclaw "微信插件 SQLite 注册表已刷新并通过加载验证"
+ else
+ cat "$inspect_file" >> /tmp/openclaw-wechat-self-heal.log 2>/dev/null || true
+ logger -t openclaw "微信插件加载验证失败,请查看 /tmp/openclaw-wechat-self-heal.log"
+ fi
+ rm -f "$inspect_file"
}
self_heal_wechat_npm_plugin_config
diff --git a/luci-app-openclaw/root/usr/libexec/openclaw-permissions.sh b/luci-app-openclaw/root/usr/libexec/openclaw-permissions.sh
index 0fc04e45..312c5971 100755
--- a/luci-app-openclaw/root/usr/libexec/openclaw-permissions.sh
+++ b/luci-app-openclaw/root/usr/libexec/openclaw-permissions.sh
@@ -1,7 +1,8 @@
#!/bin/sh
# OpenClaw state permission helper.
-# Keep runtime state writable by the openclaw user, while keeping plugin source
-# directories root-owned for OpenClaw's official ownership checks.
+# Keep runtime state and managed npm plugin generations writable by the
+# openclaw user. OpenClaw 2026.6.11 installs and retires these generations
+# itself, so root-owned files under npm/projects break later cleanup.
oc_perm_state_dir() {
if [ -n "${1:-}" ]; then
@@ -24,33 +25,16 @@ oc_perm_data_dir_from_state() {
}
oc_fix_npm_projects_permissions() {
- local state_dir npm_projects plugin_json plugin_dir
+ local state_dir npm_projects
state_dir="$(oc_perm_state_dir "${1:-}")"
npm_projects="${state_dir}/npm/projects"
[ -d "$npm_projects" ] || return 0
- # Gateway must be able to clean npm project generations.
+ # The official plugin installer runs as openclaw and the Gateway removes
+ # retired generations asynchronously. Keep the complete tree writable by
+ # that user, including plugin source files.
chown -R openclaw:openclaw "$npm_projects" 2>/dev/null || true
- chmod u+rwx,go+rx "$npm_projects" 2>/dev/null || true
-
- # Actual OpenClaw plugin roots must stay root-owned, otherwise OpenClaw refuses
- # to load them with "suspicious ownership".
- find "$npm_projects" -name openclaw.plugin.json -type f 2>/dev/null | while IFS= read -r plugin_json; do
- plugin_dir="${plugin_json%/openclaw.plugin.json}"
- case "$plugin_dir" in
- *__openclaw-generation__*)
- # Retained generation dirs are temporary and must remain removable by openclaw.
- ;;
- "$npm_projects"/*/node_modules/*)
- chown -R root:root "$plugin_dir" 2>/dev/null || true
- chmod -R 755 "$plugin_dir" 2>/dev/null || true
- ;;
- esac
- done
-
- # Compatibility for the WeChat plugin path even if its manifest scan fails.
- find "$npm_projects" -path '*/node_modules/@tencent-weixin/openclaw-weixin' -type d -prune \
- -exec chown -R root:root {} \; -exec chmod -R 755 {} \; 2>/dev/null || true
+ chmod -R u+rwX,go+rX "$npm_projects" 2>/dev/null || true
}
oc_fix_state_permissions() {
@@ -106,8 +90,7 @@ oc_prepare_openclaw_workdirs() {
chown openclaw:openclaw "$data_dir" "$state_dir" "${state_dir}/npm" "$npm_dir" 2>/dev/null || true
chmod u+rwx,go+rx "${data_dir}/.npm" "${data_dir}/.tmp" "$state_dir" "${state_dir}/npm" "$npm_dir" 2>/dev/null || true
- # During install/upgrade, allow openclaw to update npm generations. Call
- # fix-state after the install to restore plugin roots to root:root.
+ # During install/upgrade, allow openclaw to update npm generations.
[ -d "$npm_dir" ] && chown -R openclaw:openclaw "$npm_dir" 2>/dev/null || true
}
diff --git a/luci-app-openclaw/root/usr/share/openclaw/oc-config-interactive.js b/luci-app-openclaw/root/usr/share/openclaw/oc-config-interactive.js
index d85e5d85..0a2b7a81 100644
--- a/luci-app-openclaw/root/usr/share/openclaw/oc-config-interactive.js
+++ b/luci-app-openclaw/root/usr/share/openclaw/oc-config-interactive.js
@@ -1277,7 +1277,7 @@ async function configureYiwanAIFanAPI() {
if (!apiKey) { console.log(`${C.yellow}已取消${C.reset}`); return false; }
authSetApikey(providerName, apiKey, `${providerName}:fan`);
- registerCustomProvider(providerName, baseUrl, apiKey, modelName, modelName);
+ registerCustomProvider(providerName, baseUrl, apiKey, modelName, modelName, 1000000, 32000);
const config = readConfig();
const provider = config.models?.providers?.[providerName];
if (provider?.models?.[0]) {
diff --git a/luci-app-openclaw/root/usr/share/openclaw/oc-config.sh b/luci-app-openclaw/root/usr/share/openclaw/oc-config.sh
index 420ac72f..974514e9 100755
--- a/luci-app-openclaw/root/usr/share/openclaw/oc-config.sh
+++ b/luci-app-openclaw/root/usr/share/openclaw/oc-config.sh
@@ -1448,7 +1448,7 @@ configure_model() {
prompt_with_default "API Key" "" api_key
if [ -n "$api_key" ]; then
auth_set_apikey yiwanai "$api_key" "yiwanai:fan"
- register_custom_provider yiwanai "https://api.910501.xyz/v1" "$api_key" "gpt-5.5" "gpt-5.5"
+ register_custom_provider yiwanai "https://api.910501.xyz/v1" "$api_key" "gpt-5.5" "gpt-5.5" 1000000 32000
_YW_PROV="yiwanai" "$NODE_BIN" -e "
const fs=require('fs');
let d={};
diff --git a/luci-app-openclaw/scripts/build_ipk.sh b/luci-app-openclaw/scripts/build_ipk.sh
index 8cc19b75..1a009cf5 100755
--- a/luci-app-openclaw/scripts/build_ipk.sh
+++ b/luci-app-openclaw/scripts/build_ipk.sh
@@ -189,9 +189,9 @@ cat > "$CTRL_DIR/postinst" << 'EOF'
[ -e "$p" ] && chown -R root:root "$p" 2>/dev/null || true
done
- # 升级/重装后修复已存在的 OpenClaw 运行数据权限。尤其是 npm 外部插件:
- # npm 安装阶段需要 openclaw 可写,运行阶段插件源码目录必须 root:root,
- # 否则 OpenClaw 会因为 suspicious ownership 拒绝加载微信插件。
+ # 升级/重装后修复已存在的 OpenClaw 运行数据权限。OpenClaw 2026.6.11
+ # 会以 openclaw 用户安装和清理 managed npm generations,因此 npm/projects
+ # 内的插件源码也必须保持 openclaw 可写。
OPENCLAW_INSTALL_BASE="$(uci -q get openclaw.main.install_path 2>/dev/null || echo /opt)"
if [ -r /usr/libexec/openclaw-paths.sh ]; then
. /usr/libexec/openclaw-paths.sh
diff --git a/luci-app-openclaw/tests/test_openclaw_contracts.sh b/luci-app-openclaw/tests/test_openclaw_contracts.sh
index fb041fd0..b716c896 100755
--- a/luci-app-openclaw/tests/test_openclaw_contracts.sh
+++ b/luci-app-openclaw/tests/test_openclaw_contracts.sh
@@ -51,16 +51,22 @@ grep -q "openclaw 用户无法写入微信登录目录" luasrc/controller/opencl
grep -q "node_modules/@tencent-weixin/openclaw-weixin" luasrc/controller/openclaw.lua || fail "wechat uninstall must remove npm project plugin"
grep -q "dropChannel(d.plugins.installs)" luasrc/controller/openclaw.lua || fail "wechat uninstall must clean plugin installs"
grep -q "openclaw-weixin" root/etc/init.d/openclaw || fail "weixin channel migration missing"
-grep -q "delete d.plugins.entries\\['openclaw-weixin'\\]" root/etc/init.d/openclaw || fail "weixin duplicate entries cleanup missing"
+if grep -q "delete d.plugins.entries\\['openclaw-weixin'\\]" root/etc/init.d/openclaw; then
+ fail "init must preserve the official plugins.entries enable record"
+fi
grep -q "npm/projects" root/etc/init.d/openclaw || fail "npm plugin project ownership fix missing"
grep -q "! -path.*npm/projects" root/usr/libexec/openclaw-permissions.sh || fail "npm plugin projects should be excluded from generic ownership reset"
grep -q "archived-extensions" root/etc/init.d/openclaw || fail "legacy weixin extension archive missing"
grep -q "find_wechat_plugin_dir" luasrc/controller/openclaw.lua || fail "wechat npm plugin detection missing"
-grep -q "wechat_register_plugin_cmd" luasrc/controller/openclaw.lua || fail "wechat install must register npm plugin config"
-grep -q "plugins.installs\\['openclaw-weixin'\\]" luasrc/controller/openclaw.lua || fail "wechat plugin installPath registration missing"
-grep -q "packageName: '@tencent-weixin/openclaw-weixin'" luasrc/controller/openclaw.lua || fail "wechat plugin packageName registration missing"
+grep -q "wechat_openclaw_plugin_install_cmd" luasrc/controller/openclaw.lua || fail "wechat install must use OpenClaw plugin installer"
+grep -q "delete d.plugins.installs\\['openclaw-weixin'\\]" luasrc/controller/openclaw.lua || fail "wechat config must remove deprecated authored install records"
+grep -q "plugins install --force --pin @tencent-weixin/openclaw-weixin@2.4.6" luasrc/controller/openclaw.lua || fail "wechat install must write the official plugin index"
grep -q "channels\\['openclaw-weixin'\\].enabled = true" luasrc/controller/openclaw.lua || fail "wechat channel enable registration missing"
-grep -q "Registered openclaw-weixin npm plugin" luasrc/controller/openclaw.lua || fail "wechat install log must confirm config registration"
+grep -q "OpenClaw 插件索引注册完成" luasrc/controller/openclaw.lua || fail "wechat install log must confirm index registration"
+grep -q "plugins enable openclaw-weixin" luasrc/controller/openclaw.lua || fail "wechat lifecycle must persist the official plugin enable entry"
+grep -q "plugins registry --refresh" luasrc/controller/openclaw.lua || fail "wechat lifecycle must refresh the SQLite plugin registry after config changes"
+grep -q "plugins inspect openclaw-weixin" luasrc/controller/openclaw.lua || fail "wechat lifecycle must verify the loaded plugin capability"
+grep -q "SQLite 注册表已刷新并通过加载验证" luasrc/controller/openclaw.lua || fail "wechat success log must require registry verification"
grep -q "wechat_network_probe_cmd" luasrc/controller/openclaw.lua || fail "wechat network probe helper missing"
grep -q "NODE_ICU_DATA=%s/node/share/icu" luasrc/controller/openclaw.lua || fail "wechat LuCI CLI commands must export NODE_ICU_DATA"
grep -q "openclaw_user_runner_cmd" luasrc/controller/openclaw.lua || fail "wechat commands need user runner compatibility helper"
@@ -68,16 +74,13 @@ grep -q "ulimit -v unlimited" luasrc/controller/openclaw.lua || fail "wechat com
grep -q "start-stop-daemon -S -m -p" luasrc/controller/openclaw.lua || fail "wechat commands must support OpenWrt without su"
grep -q "command -v curl" luasrc/controller/openclaw.lua || fail "wechat network probe should prefer curl"
grep -q "%%{http_code}" luasrc/controller/openclaw.lua || fail "wechat curl probe percent must be escaped for string.format"
-grep -q "wechat_npm_fallback_install_cmd" luasrc/controller/openclaw.lua || fail "wechat install needs npm fallback for OpenWrt Node undici OOM"
if awk '/function action_wechat_install\(\)/,/function action_wechat_install_log\(\)/' luasrc/controller/openclaw.lua | grep -q "ensure_port_free"; then
fail "wechat install must not stop gateway before plugin installation"
fi
if awk '/function action_wechat_upgrade_plugin\(\)/,/function action_wechat_uninstall_plugin\(\)/' luasrc/controller/openclaw.lua | grep -q "ensure_port_free"; then
fail "wechat upgrade must not stop gateway before plugin upgrade"
fi
-grep -q "npm install --omit=dev --omit=peer" luasrc/controller/openclaw.lua || fail "wechat npm fallback install command missing"
-grep -q "tencent-weixin-openclaw-weixin-7783ac86ba" luasrc/controller/openclaw.lua || fail "wechat npm fallback project dir missing"
-grep -q "export OC_WECHAT_DATA" luasrc/controller/openclaw.lua || fail "wechat npm fallback must export data dir into openclaw user shell"
+grep -q "export OC_WECHAT_DATA" luasrc/controller/openclaw.lua || fail "wechat installer must export data dir into openclaw user shell"
grep -q "compare_versions" luasrc/controller/openclaw.lua || fail "semantic version compare helper missing"
grep -q "is_newer_version(plugin_latest, plugin_current)" luasrc/controller/openclaw.lua || fail "plugin update check must not treat newer local versions as upgradeable"
grep -q "is_newer_version(latest_version, current_version)" luasrc/controller/openclaw.lua || fail "wechat update check must use semantic version compare"
@@ -88,8 +91,18 @@ grep -q "已将此 OpenClaw 连接到微信" luasrc/controller/openclaw.lua || f
grep -q "Local login saved auth for openclaw%-weixin" luasrc/controller/openclaw.lua || fail "wechat login status must tolerate channels.start restart warning"
grep -q "/etc/init.d/openclaw restart_gateway >/dev/null 2>&1 &" luasrc/controller/openclaw.lua || fail "wechat login success should use lightweight gateway restart"
grep -q "self_heal_wechat_npm_plugin_config" root/etc/init.d/openclaw || fail "init.d wechat npm plugin self-heal missing"
-grep -q "已自愈注册 openclaw-weixin npm plugin" root/etc/init.d/openclaw || fail "init.d wechat self-heal log missing"
-grep -q "OC_WECHAT_PLUGIN_DIR" root/etc/init.d/openclaw || fail "init.d wechat self-heal plugin dir env missing"
+grep -q "installed_plugin_index" root/etc/init.d/openclaw || fail "init.d wechat self-heal must support the SQLite plugin index"
+grep -q "微信插件已迁移到 SQLite installed_plugin_index" root/etc/init.d/openclaw || fail "init.d wechat SQLite self-heal log missing"
+grep -q "run_openclaw_cli_as_user" root/etc/init.d/openclaw || fail "init.d plugin registry operations must run as openclaw"
+if grep -q "DatabaseSync" root/etc/init.d/openclaw; then
+ fail "init.d must not access the SQLite plugin index as root"
+fi
+grep -q "plugins enable openclaw-weixin" root/etc/init.d/openclaw || fail "init.d must restore the official plugin enable entry"
+grep -q "plugins registry --refresh" root/etc/init.d/openclaw || fail "init.d must refresh the plugin registry before gateway start"
+grep -q "plugins inspect openclaw-weixin" root/etc/init.d/openclaw || fail "init.d must verify the wechat plugin before gateway start"
+grep -q "微信插件 SQLite 注册表已刷新并通过加载验证" root/etc/init.d/openclaw || fail "init.d registry verification success log missing"
+grep -q "微信插件注册状态已有效,跳过重复刷新" root/etc/init.d/openclaw || fail "init.d must avoid repeated registry rebuilds after successful repair"
+grep -q "d.plugins.entries\['openclaw-weixin'\].enabled===true" root/etc/init.d/openclaw || fail "init.d fast path must require the official enable entry"
grep -q "openclaw-permissions.sh" root/etc/init.d/openclaw || fail "init.d must use permission helper"
grep -q "fix_openclaw_state_permissions" root/etc/init.d/openclaw || fail "init.d final permission helper call missing"
grep -q 'NODE_ICU_DATA="${NODE_BASE}/share/icu" PATH="${NODE_BASE}/bin:${OC_GLOBAL}/bin:$PATH"' root/etc/init.d/openclaw || fail "doctor migration must run with Node ICU data"
@@ -111,11 +124,10 @@ grep -q 'NODE_COMPILE_CACHE="$node_compile_cache"' root/etc/init.d/openclaw || f
grep -q "通常 20~40 秒" root/etc/init.d/openclaw luasrc/view/openclaw/status.htm luasrc/view/openclaw/console.htm || fail "startup hint must match measured OpenWrt timing"
grep -q "restart_gateway >/dev/null 2>&1 &" luasrc/controller/openclaw.lua || fail "LuCI restart action should use lightweight gateway restart"
grep -q "oc_fix_npm_projects_permissions" root/usr/libexec/openclaw-permissions.sh || fail "npm projects permission helper missing"
-grep -q "openclaw.plugin.json" root/usr/libexec/openclaw-permissions.sh || fail "npm plugin root detection must use plugin manifest"
-grep -q "node_modules/@tencent-weixin/openclaw-weixin" root/usr/libexec/openclaw-permissions.sh || fail "wechat npm plugin compatibility permission fix missing"
-grep -q "__openclaw-generation__" root/usr/libexec/openclaw-permissions.sh || fail "retained npm generations must remain removable by openclaw"
-grep -q 'chown -R root:root "$plugin_dir"' root/usr/libexec/openclaw-permissions.sh || fail "npm plugin roots must keep root ownership"
grep -q 'chown -R openclaw:openclaw "$npm_projects"' root/usr/libexec/openclaw-permissions.sh || fail "npm projects generation must be writable by openclaw"
+if grep -q 'chown -R root:root.*npm_projects' root/usr/libexec/openclaw-permissions.sh; then
+ fail "managed npm plugin generations must not be made root-owned"
+fi
if grep -q 'chown -R openclaw:openclaw "$OC_DATA"' root/etc/init.d/openclaw root/usr/share/openclaw/oc-config.sh root/usr/share/openclaw/web-pty.js; then
fail "must not recursively chown the whole OC_DATA to openclaw"
fi
@@ -143,8 +155,8 @@ grep -q "gpt-5.5" root/usr/share/openclaw/oc-config-interactive.js || fail "inte
grep -q "gpt-5.5" root/usr/share/openclaw/oc-config.sh || fail "shell Yiwan AI model missing"
grep -q "authSetApikey(providerName, apiKey,.*fan" root/usr/share/openclaw/oc-config-interactive.js || fail "interactive Yiwan AI auth profile missing"
grep -q 'auth_set_apikey yiwanai "$api_key" "yiwanai:fan"' root/usr/share/openclaw/oc-config.sh || fail "shell Yiwan AI auth profile missing"
-grep -q "registerCustomProvider(providerName, baseUrl, apiKey, modelName, modelName)" root/usr/share/openclaw/oc-config-interactive.js || fail "interactive Yiwan AI custom provider registration missing"
-grep -q 'register_custom_provider yiwanai "https://api.910501.xyz/v1" "$api_key" "gpt-5.5" "gpt-5.5"' root/usr/share/openclaw/oc-config.sh || fail "shell Yiwan AI custom provider registration missing"
+grep -q "registerCustomProvider(providerName, baseUrl, apiKey, modelName, modelName, 1000000, 32000)" root/usr/share/openclaw/oc-config-interactive.js || fail "interactive Yiwan AI 1M context registration missing"
+grep -q 'register_custom_provider yiwanai "https://api.910501.xyz/v1" "$api_key" "gpt-5.5" "gpt-5.5" 1000000 32000' root/usr/share/openclaw/oc-config.sh || fail "shell Yiwan AI 1M context registration missing"
grep -q 'registerAndSetModel(`${providerName}/${modelName}`)' root/usr/share/openclaw/oc-config-interactive.js || fail "interactive Yiwan AI active model missing"
grep -q "provider.models\[0\].reasoning = true" root/usr/share/openclaw/oc-config-interactive.js || fail "interactive Yiwan AI reasoning flag missing"
grep -q "p.models\[0\].reasoning=true" root/usr/share/openclaw/oc-config.sh || fail "shell Yiwan AI reasoning flag missing"
diff --git a/mihomo/Makefile b/mihomo/Makefile
index 1b30d72c..8848814f 100644
--- a/mihomo/Makefile
+++ b/mihomo/Makefile
@@ -5,8 +5,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mihomo
-PKG_VERSION:=1.19.27
-PKG_RELEASE:=29
+PKG_VERSION:=1.19.28
+PKG_RELEASE:=30
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/metacubex/mihomo/tar.gz/v$(PKG_VERSION)?
diff --git a/natflow/Makefile b/natflow/Makefile
index b8a5c493..53d4d997 100644
--- a/natflow/Makefile
+++ b/natflow/Makefile
@@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=natflow
PKG_VERSION:=20260531
-PKG_RELEASE:=39
+PKG_RELEASE:=40
PKG_SOURCE:=$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=5ba6726ce0a54bf198c470e4b7fc0c3387f85537
+PKG_SOURCE_VERSION:=43fce72a110d72386e65bc49c7c8574592267af3
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Chen Minqiang
PKG_LICENSE:=GPL-2.0
diff --git a/openwrt-fastfetch/Makefile b/openwrt-fastfetch/Makefile
index aea4b6cb..bd737262 100644
--- a/openwrt-fastfetch/Makefile
+++ b/openwrt-fastfetch/Makefile
@@ -5,8 +5,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fastfetch
-PKG_VERSION:=2.65.2
-PKG_RELEASE:=11
+PKG_VERSION:=2.66.0
+PKG_RELEASE:=12
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/fastfetch-cli/fastfetch/tar.gz/$(PKG_VERSION)?
diff --git a/opera-proxy/Makefile b/opera-proxy/Makefile
index 7a37990d..a13a421c 100644
--- a/opera-proxy/Makefile
+++ b/opera-proxy/Makefile
@@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=opera-proxy
-PKG_VERSION:=1.26.0
-PKG_RELEASE:=7
+PKG_VERSION:=1.27.0
+PKG_RELEASE:=8
PKG_MAINTAINER:=Konstantine Shevlakov
PKG_LICENSE:=MIT