🎈 Sync 2026-04-02 20:31:34

This commit is contained in:
github-actions[bot] 2026-04-02 20:31:34 +08:00
parent 77da5c9ab5
commit 89b55b091a
32 changed files with 1032 additions and 531 deletions

View File

@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=cloudreve
PKG_VERSION:=4.15.0
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/cloudreve/Cloudreve.git
PKG_SOURCE_VERSION:=006680c5df8b529ab52656133fc220ad73ab57ff
PKG_SOURCE_VERSION:=58b83ea1e4727f9665a06b46c7f17cb4b4c174a5
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-3.0-only

View File

@ -1,16 +1,16 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hickory-dns
PKG_VERSION:=2026.04.01~b57b7ae
PKG_RELEASE:=8
PKG_VERSION:=2026.04.02~54a81de
PKG_RELEASE:=9
HICKORY_COMMIT:=b57b7aec2c6c18d64b90f01c97595171963e0e56
HICKORY_COMMIT:=54a81deefb24bb97df466b9032d5928345fffdde
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/hickory-dns/hickory-dns/tar.gz/b57b7aec2c6c18d64b90f01c97595171963e0e56?
PKG_SOURCE_URL:=https://codeload.github.com/hickory-dns/hickory-dns/tar.gz/54a81deefb24bb97df466b9032d5928345fffdde?
PKG_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-b57b7aec2c6c18d64b90f01c97595171963e0e56
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-54a81deefb24bb97df466b9032d5928345fffdde
PKG_BUILD_DEPENDS:=rust/host
PKG_BUILD_PARALLEL:=1

View File

@ -1130,18 +1130,26 @@ return view.extend({
so.value('h2', _('HTTPUpgrade'));
so.value('grpc', _('gRPC'));
so.value('ws', _('WebSocket'));
so.value('xhttp', _('XHTTP'));
so.validate = function(section_id, value) {
const type = this.section.getOption('type').formvalue(section_id);
switch (type) {
case 'vmess':
case 'vless':
if (!['http', 'h2', 'grpc', 'ws'].includes(value))
return _('Expecting: only support %s.').format(_('HTTP') +
' / ' + _('HTTPUpgrade') +
' / ' + _('gRPC') +
' / ' + _('WebSocket'));
break;
case 'vless':
if (!['http', 'h2', 'grpc', 'ws', 'xhttp'].includes(value))
return _('Expecting: only support %s.').format(_('HTTP') +
' / ' + _('HTTPUpgrade') +
' / ' + _('gRPC') +
' / ' + _('WebSocket') +
' / ' + _('XHTTP'));
break;
case 'trojan':
if (!['grpc', 'ws'].includes(value))
return _('Expecting: only support %s.').format(_('gRPC') +
@ -1162,6 +1170,12 @@ return view.extend({
so.depends({transport_enabled: '1', transport_type: 'h2'});
so.modalonly = true;
so = ss.taboption('field_transport', form.DynamicList, 'transport_host', _('Server hostname'));
so.datatype = 'hostname';
so.placeholder = 'example.com';
so.depends({transport_enabled: '1', transport_type: 'xhttp'});
so.modalonly = true;
so = ss.taboption('field_transport', form.Value, 'transport_http_method', _('HTTP request method'));
so.value('GET', _('GET'));
so.value('POST', _('POST'));
@ -1182,13 +1196,13 @@ return view.extend({
so.placeholder = '/';
so.default = '/';
so.rmempty = false;
so.depends({transport_enabled: '1', transport_type: /^(h2|ws)$/});
so.depends({transport_enabled: '1', transport_type: /^(h2|ws|xhttp)$/});
so.modalonly = true;
so = ss.taboption('field_transport', hm.TextValue, 'transport_http_headers', _('HTTP header'));
so.placeholder = '{\n "Host": "example.com",\n "Connection": [\n "keep-alive"\n ]\n}';
so.placeholder = '{\n "Host": "example.com",\n "Connection": [\n "keep-alive"\n ],\n "X-Forwarded-For": "" // XHTTP\n}';
so.validate = hm.validateJson;
so.depends({transport_enabled: '1', transport_type: /^(http|ws)$/});
so.depends({transport_enabled: '1', transport_type: /^(http|ws|xhttp)$/});
so.modalonly = true;
so = ss.taboption('field_transport', form.Value, 'transport_grpc_servicename', _('gRPC service name'));
@ -1229,6 +1243,23 @@ return view.extend({
so.depends({transport_enabled: '1', transport_type: 'ws', transport_ws_v2ray_http_upgrade: '1'});
so.modalonly = true;
so = ss.taboption('field_transport', form.ListValue, 'transport_xhttp_mode', _('XHTTP mode'));
so.value('stream-one', _('stream-one'));
so.value('stream-up', _('stream-up'));
so.value('packet-up', _('packet-up'));
so.depends({transport_enabled: '1', transport_type: 'xhttp'});
so.modalonly = true;
so = ss.taboption('field_transport', form.Flag, 'transport_xhttp_no_grpc_header', _('No gRPC header'));
so.default = so.disabled;
so.depends({transport_enabled: '1', transport_type: 'xhttp'});
so.modalonly = true;
so = ss.taboption('field_transport', form.Value, 'transport_xhttp_x_padding_bytes', _('Padding bytes'));
so.placeholder = '100-1000';
so.depends({transport_enabled: '1', transport_type: 'xhttp'});
so.modalonly = true;
/* Multiplex fields */ // TCP protocol only
so = ss.taboption('field_general', form.Flag, 'smux_enabled', _('Multiplex'));
so.default = so.disabled;

View File

@ -39,10 +39,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
#: htdocs/luci-static/resources/view/fchomo/client.js:1057
#: htdocs/luci-static/resources/view/fchomo/client.js:1278
#: htdocs/luci-static/resources/view/fchomo/node.js:1758
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/node.js:1788
#: htdocs/luci-static/resources/view/fchomo/node.js:1794
#: htdocs/luci-static/resources/view/fchomo/node.js:1808
#: htdocs/luci-static/resources/view/fchomo/node.js:1814
msgid "-- Please choose --"
msgstr ""
@ -173,11 +173,11 @@ msgstr ""
msgid "Add a inbound"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Add a provider"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Add a proxy chain"
msgstr ""
@ -201,11 +201,11 @@ msgstr ""
msgid "Add a sub rule"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1559
#: htdocs/luci-static/resources/view/fchomo/node.js:1589
msgid "Add prefix"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1593
msgid "Add suffix"
msgstr ""
@ -332,13 +332,13 @@ msgid "Binary mrs"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:734
#: htdocs/luci-static/resources/view/fchomo/node.js:1319
#: htdocs/luci-static/resources/view/fchomo/node.js:1632
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1662
msgid "Bind interface"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1320
#: htdocs/luci-static/resources/view/fchomo/node.js:1633
#: htdocs/luci-static/resources/view/fchomo/node.js:1350
#: htdocs/luci-static/resources/view/fchomo/node.js:1663
msgid "Bind outbound interface.</br>"
msgstr ""
@ -508,7 +508,7 @@ msgstr ""
msgid "Complete"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1609
msgid "Configuration Items"
msgstr ""
@ -526,14 +526,14 @@ msgid "Content copied to clipboard!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:670
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1515
#: htdocs/luci-static/resources/view/fchomo/node.js:1519
#: htdocs/luci-static/resources/view/fchomo/node.js:1545
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:339
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:365
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1488
#: htdocs/luci-static/resources/view/fchomo/node.js:1518
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:338
msgid "Contents"
msgstr ""
@ -558,7 +558,7 @@ msgstr ""
msgid "Custom Direct List"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
#: htdocs/luci-static/resources/view/fchomo/node.js:1580
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "Custom HTTP header."
msgstr ""
@ -626,11 +626,11 @@ msgstr ""
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1757
#: htdocs/luci-static/resources/view/fchomo/node.js:1787
msgid "Destination provider"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/node.js:1793
msgid "Destination proxy node"
msgstr ""
@ -638,8 +638,8 @@ msgstr ""
msgid "Dial fields"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
msgid "Different chain head/tail"
msgstr ""
@ -709,15 +709,15 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1577
#: htdocs/luci-static/resources/view/fchomo/node.js:1038
#: htdocs/luci-static/resources/view/fchomo/node.js:1619
#: htdocs/luci-static/resources/view/fchomo/node.js:1649
msgid "Donot verifying server certificate."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1298
#: htdocs/luci-static/resources/view/fchomo/node.js:1328
msgid "Download bandwidth"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
#: htdocs/luci-static/resources/view/fchomo/node.js:1329
msgid "Download bandwidth in Mbps."
msgstr ""
@ -758,11 +758,11 @@ msgstr ""
msgid "ETag support"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1211
#: htdocs/luci-static/resources/view/fchomo/node.js:1225
msgid "Early Data first packet length limit."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
#: htdocs/luci-static/resources/view/fchomo/node.js:1231
msgid "Early Data header name"
msgstr ""
@ -778,7 +778,7 @@ msgstr ""
msgid "Edit ruleset"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1486
#: htdocs/luci-static/resources/view/fchomo/node.js:1516
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:336
msgid "Editer"
msgstr ""
@ -798,9 +798,9 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:401
#: htdocs/luci-static/resources/view/fchomo/global.js:680
#: htdocs/luci-static/resources/view/fchomo/node.js:234
#: htdocs/luci-static/resources/view/fchomo/node.js:1459
#: htdocs/luci-static/resources/view/fchomo/node.js:1655
#: htdocs/luci-static/resources/view/fchomo/node.js:1744
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1774
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:264
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
@ -827,15 +827,15 @@ msgstr ""
msgid "Enable ECH"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
#: htdocs/luci-static/resources/view/fchomo/node.js:1316
msgid "Enable TCP Brutal"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1287
#: htdocs/luci-static/resources/view/fchomo/node.js:1317
msgid "Enable TCP Brutal congestion control algorithm"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1275
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Enable multiplexing only for TCP."
msgstr ""
@ -844,16 +844,16 @@ msgstr ""
msgid "Enable obfuscate for downlink"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
msgid "Enable padding"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1280
#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "Enable statistic"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:871
#: htdocs/luci-static/resources/view/fchomo/node.js:1601
#: htdocs/luci-static/resources/view/fchomo/node.js:1631
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr ""
@ -892,7 +892,7 @@ msgid ""
"if empty."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/node.js:1743
msgid "Exclude matched node types."
msgstr ""
@ -903,7 +903,7 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1161
#: htdocs/luci-static/resources/view/fchomo/node.js:1706
#: htdocs/luci-static/resources/view/fchomo/node.js:1736
msgid "Exclude nodes that meet keywords or regexps."
msgstr ""
@ -912,12 +912,12 @@ msgid "Expand/Collapse result"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1121
#: htdocs/luci-static/resources/view/fchomo/node.js:1691
#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Expected HTTP code. <code>204</code> will be used if empty."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1123
#: htdocs/luci-static/resources/view/fchomo/node.js:1693
#: htdocs/luci-static/resources/view/fchomo/node.js:1723
msgid "Expected status"
msgstr ""
@ -960,8 +960,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:491
#: htdocs/luci-static/resources/view/fchomo/node.js:942
#: htdocs/luci-static/resources/view/fchomo/node.js:1030
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
msgid "Expecting: %s"
@ -971,6 +971,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "Expecting: only support %s."
msgstr ""
@ -1020,7 +1021,7 @@ msgid "Fallback filter"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1156
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Filter nodes that meet keywords or regexps."
msgstr ""
@ -1061,8 +1062,8 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1122
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/node.js:1599
#: htdocs/luci-static/resources/view/fchomo/node.js:1722
msgid ""
"For format see <a target=\"_blank\" href=\"%s\" rel=\"noreferrer "
"noopener\">%s</a>."
@ -1088,7 +1089,7 @@ msgstr ""
msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1166
#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "GET"
msgstr ""
@ -1103,7 +1104,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1009
#: htdocs/luci-static/resources/view/fchomo/node.js:222
#: htdocs/luci-static/resources/view/fchomo/node.js:1449
#: htdocs/luci-static/resources/view/fchomo/node.js:1479
msgid "General fields"
msgstr ""
@ -1189,12 +1190,13 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:816
#: htdocs/luci-static/resources/view/fchomo/node.js:1129
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
msgid "HTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:267
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1549
#: htdocs/luci-static/resources/view/fchomo/node.js:1202
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "HTTP header"
msgstr ""
@ -1220,7 +1222,7 @@ msgstr ""
msgid "HTTP mask: %s"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid "HTTP request method"
msgstr ""
@ -1242,6 +1244,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:978
#: htdocs/luci-static/resources/view/fchomo/node.js:1130
#: htdocs/luci-static/resources/view/fchomo/node.js:1141
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
msgid "HTTPUpgrade"
msgstr ""
@ -1266,27 +1269,27 @@ msgid "Health check"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1091
#: htdocs/luci-static/resources/view/fchomo/node.js:1660
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
msgid "Health check URL"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1120
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
#: htdocs/luci-static/resources/view/fchomo/node.js:1720
msgid "Health check expected status"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1100
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health check interval"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1107
#: htdocs/luci-static/resources/view/fchomo/node.js:1677
#: htdocs/luci-static/resources/view/fchomo/node.js:1707
msgid "Health check timeout"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1011
#: htdocs/luci-static/resources/view/fchomo/node.js:1451
#: htdocs/luci-static/resources/view/fchomo/node.js:1481
msgid "Health fields"
msgstr ""
@ -1337,8 +1340,8 @@ msgstr ""
msgid "IP override"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1331
#: htdocs/luci-static/resources/view/fchomo/node.js:1646
#: htdocs/luci-static/resources/view/fchomo/node.js:1361
#: htdocs/luci-static/resources/view/fchomo/node.js:1676
msgid "IP version"
msgstr ""
@ -1399,8 +1402,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1713
#: htdocs/luci-static/resources/view/fchomo/client.js:1748
#: htdocs/luci-static/resources/view/fchomo/client.js:1769
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1437
#: htdocs/luci-static/resources/view/fchomo/node.js:1386
#: htdocs/luci-static/resources/view/fchomo/node.js:1467
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:153
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:241
msgid "Import mihomo config"
@ -1416,12 +1419,12 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:181
#: htdocs/luci-static/resources/view/fchomo/node.js:286
#: htdocs/luci-static/resources/view/fchomo/node.js:292
#: htdocs/luci-static/resources/view/fchomo/node.js:1607
#: htdocs/luci-static/resources/view/fchomo/node.js:1613
#: htdocs/luci-static/resources/view/fchomo/node.js:1637
#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "In Mbps."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1527
#: htdocs/luci-static/resources/view/fchomo/node.js:1557
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:377
msgid "In bytes. <code>%s</code> will be used if empty."
msgstr ""
@ -1433,7 +1436,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1108
#: htdocs/luci-static/resources/view/fchomo/client.js:1137
#: htdocs/luci-static/resources/view/fchomo/node.js:1678
#: htdocs/luci-static/resources/view/fchomo/node.js:1708
msgid "In millisecond. <code>%s</code> will be used if empty."
msgstr ""
@ -1442,7 +1445,7 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:428
#: htdocs/luci-static/resources/view/fchomo/node.js:604
#: htdocs/luci-static/resources/view/fchomo/node.js:611
#: htdocs/luci-static/resources/view/fchomo/node.js:1204
#: htdocs/luci-static/resources/view/fchomo/node.js:1218
msgid "In seconds."
msgstr ""
@ -1451,8 +1454,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:430
#: htdocs/luci-static/resources/view/fchomo/global.js:515
#: htdocs/luci-static/resources/view/fchomo/node.js:280
#: htdocs/luci-static/resources/view/fchomo/node.js:1533
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1701
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:383
msgid "In seconds. <code>%s</code> will be used if empty."
msgstr ""
@ -1498,7 +1501,7 @@ msgstr ""
msgid "Info"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1466
#: htdocs/luci-static/resources/view/fchomo/node.js:1496
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:279
msgid "Inline"
msgstr ""
@ -1535,14 +1538,14 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1719
#: htdocs/luci-static/resources/view/fchomo/client.js:1775
#: htdocs/luci-static/resources/view/fchomo/node.js:229
#: htdocs/luci-static/resources/view/fchomo/node.js:1454
#: htdocs/luci-static/resources/view/fchomo/node.js:1739
#: htdocs/luci-static/resources/view/fchomo/node.js:1484
#: htdocs/luci-static/resources/view/fchomo/node.js:1769
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
msgid "Label"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1114
#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/node.js:1714
msgid "Lazy"
msgstr ""
@ -1591,7 +1594,7 @@ msgstr ""
msgid "Load balance"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1464
#: htdocs/luci-static/resources/view/fchomo/node.js:1494
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:277
msgid "Local"
msgstr ""
@ -1625,9 +1628,11 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:324
#: htdocs/luci-static/resources/fchomo/listeners.js:325
#: htdocs/luci-static/resources/fchomo/listeners.js:326
#: htdocs/luci-static/resources/fchomo/listeners.js:331
#: htdocs/luci-static/resources/view/fchomo/node.js:409
#: htdocs/luci-static/resources/view/fchomo/node.js:410
#: htdocs/luci-static/resources/view/fchomo/node.js:411
#: htdocs/luci-static/resources/view/fchomo/node.js:416
msgid "Low-entropy data stream"
msgstr ""
@ -1677,7 +1682,7 @@ msgstr ""
msgid "Match rule set."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1210
#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "Max Early Data"
msgstr ""
@ -1704,12 +1709,12 @@ msgstr ""
msgid "Max upload speed"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1277
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Maximum connections"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1261
#: htdocs/luci-static/resources/view/fchomo/node.js:1291
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"<br/>Conflict with <code>%s</code> and <code>%s</code>."
@ -1727,7 +1732,7 @@ msgid ""
"rate."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1260
#: htdocs/luci-static/resources/view/fchomo/node.js:1290
msgid "Maximum streams"
msgstr ""
@ -1752,7 +1757,7 @@ msgstr ""
msgid "Min of idle sessions to keep"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1254
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr ""
@ -1762,8 +1767,8 @@ msgstr ""
msgid "Minimum padding rate"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1253
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Minimum streams"
msgstr ""
@ -1780,7 +1785,7 @@ msgstr ""
msgid "Mixed port"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1233
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
msgid "Multiplex"
msgstr ""
@ -1802,7 +1807,7 @@ msgstr ""
msgid "Name of the Proxy group as outbound."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1539
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
msgid "Name of the Proxy group to download provider."
msgstr ""
@ -1834,8 +1839,12 @@ msgstr ""
msgid "No add'l params"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1252
msgid "No gRPC header"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1115
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1715
msgid "No testing is performed when this provider node is not in use."
msgstr ""
@ -1854,17 +1863,17 @@ msgid "Node"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1160
#: htdocs/luci-static/resources/view/fchomo/node.js:1705
#: htdocs/luci-static/resources/view/fchomo/node.js:1735
msgid "Node exclude filter"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1712
#: htdocs/luci-static/resources/view/fchomo/node.js:1742
msgid "Node exclude type"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1155
#: htdocs/luci-static/resources/view/fchomo/node.js:1699
#: htdocs/luci-static/resources/view/fchomo/node.js:1729
msgid "Node filter"
msgstr ""
@ -1942,7 +1951,7 @@ msgid "Override destination"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1010
#: htdocs/luci-static/resources/view/fchomo/node.js:1450
#: htdocs/luci-static/resources/view/fchomo/node.js:1480
msgid "Override fields"
msgstr ""
@ -1970,11 +1979,11 @@ msgstr ""
msgid "Overview"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
msgid "POST"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1168
#: htdocs/luci-static/resources/view/fchomo/node.js:1182
msgid "PUT"
msgstr ""
@ -1982,6 +1991,10 @@ msgstr ""
msgid "Packet encoding"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1257
msgid "Padding bytes"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:458
msgid "Padding scheme"
msgstr ""
@ -2001,7 +2014,7 @@ msgid "Password"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:587
#: htdocs/luci-static/resources/view/fchomo/node.js:1514
#: htdocs/luci-static/resources/view/fchomo/node.js:1544
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:364
msgid "Payload"
msgstr ""
@ -2041,8 +2054,8 @@ msgid ""
"standards."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1487
#: htdocs/luci-static/resources/view/fchomo/node.js:1513
#: htdocs/luci-static/resources/view/fchomo/node.js:1517
#: htdocs/luci-static/resources/view/fchomo/node.js:1543
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:337
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:363
msgid ""
@ -2056,7 +2069,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1445
#: htdocs/luci-static/resources/view/fchomo/client.js:1697
#: htdocs/luci-static/resources/view/fchomo/client.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1387
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
msgid "Please type <code>%s</code> fields of mihomo config.</br>"
msgstr ""
@ -2123,10 +2136,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:736
#: htdocs/luci-static/resources/view/fchomo/global.js:753
#: htdocs/luci-static/resources/view/fchomo/node.js:1321
#: htdocs/luci-static/resources/view/fchomo/node.js:1327
#: htdocs/luci-static/resources/view/fchomo/node.js:1634
#: htdocs/luci-static/resources/view/fchomo/node.js:1641
#: htdocs/luci-static/resources/view/fchomo/node.js:1351
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1664
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
msgid "Priority: Proxy Node > Global."
msgstr ""
@ -2148,7 +2161,7 @@ msgid "Process matching mode"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/global.js:684
#: htdocs/luci-static/resources/view/fchomo/node.js:1239
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Protocol"
msgstr ""
@ -2163,13 +2176,13 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
#: htdocs/luci-static/resources/view/fchomo/node.js:1340
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1750
#: htdocs/luci-static/resources/view/fchomo/node.js:1370
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
#: htdocs/luci-static/resources/view/fchomo/node.js:1780
msgid "Provider"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1520
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
msgid "Provider URL"
msgstr ""
@ -2192,19 +2205,19 @@ msgid "Proxy MAC-s"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:208
#: htdocs/luci-static/resources/view/fchomo/node.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1779
msgid "Proxy Node"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1725
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1755
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Proxy chain"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:530
#: htdocs/luci-static/resources/view/fchomo/client.js:783
#: htdocs/luci-static/resources/view/fchomo/client.js:1543
#: htdocs/luci-static/resources/view/fchomo/node.js:1538
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Proxy group"
msgstr ""
@ -2311,7 +2324,7 @@ msgstr ""
msgid "Reload All"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/node.js:1495
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:278
msgid "Remote"
msgstr ""
@ -2326,18 +2339,18 @@ msgid "Remove"
msgstr ""
#: htdocs/luci-static/resources/fchomo.js:1354
#: htdocs/luci-static/resources/view/fchomo/node.js:1441
#: htdocs/luci-static/resources/view/fchomo/node.js:1443
#: htdocs/luci-static/resources/view/fchomo/node.js:1471
#: htdocs/luci-static/resources/view/fchomo/node.js:1473
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
msgid "Remove idles"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1567
#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid "Replace name"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/node.js:1598
msgid "Replace node name."
msgstr ""
@ -2346,8 +2359,8 @@ msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:996
#: htdocs/luci-static/resources/view/fchomo/node.js:1174
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1195
msgid "Request path"
msgstr ""
@ -2412,8 +2425,8 @@ msgstr ""
msgid "Routing GFW"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1326
#: htdocs/luci-static/resources/view/fchomo/node.js:1640
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
msgid "Routing mark"
msgstr ""
@ -2551,7 +2564,8 @@ msgstr ""
msgid "Server address"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1159
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1173
msgid "Server hostname"
msgstr ""
@ -2583,7 +2597,7 @@ msgstr ""
msgid "Shadowsocks password"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1281
#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Show connections in the dashboard for breaking connections easier."
msgstr ""
@ -2595,14 +2609,14 @@ msgstr ""
msgid "Simple round-robin all nodes"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1526
#: htdocs/luci-static/resources/view/fchomo/node.js:1556
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Size limit"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1576
#: htdocs/luci-static/resources/view/fchomo/node.js:1037
#: htdocs/luci-static/resources/view/fchomo/node.js:1618
#: htdocs/luci-static/resources/view/fchomo/node.js:1648
msgid "Skip cert verify"
msgstr ""
@ -2728,7 +2742,7 @@ msgstr ""
msgid "TCP concurrency"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1274
#: htdocs/luci-static/resources/view/fchomo/node.js:1304
msgid "TCP only"
msgstr ""
@ -2754,8 +2768,8 @@ msgstr ""
msgid "TCP/UDP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
#: htdocs/luci-static/resources/view/fchomo/node.js:1585
#: htdocs/luci-static/resources/view/fchomo/node.js:1335
#: htdocs/luci-static/resources/view/fchomo/node.js:1615
msgid "TFO"
msgstr ""
@ -2867,7 +2881,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1040
#: htdocs/luci-static/resources/view/fchomo/node.js:1621
#: htdocs/luci-static/resources/view/fchomo/node.js:1651
msgid ""
"This is <strong>DANGEROUS</strong>, your traffic is almost like "
"<strong>PLAIN TEXT</strong>! Use at your own risk!"
@ -2907,11 +2921,11 @@ msgstr ""
msgid "Traffic pattern"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1777
#: htdocs/luci-static/resources/view/fchomo/node.js:1807
msgid "Transit proxy group"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1783
#: htdocs/luci-static/resources/view/fchomo/node.js:1813
msgid "Transit proxy node"
msgstr ""
@ -2973,8 +2987,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:842
#: htdocs/luci-static/resources/view/fchomo/client.js:1028
#: htdocs/luci-static/resources/view/fchomo/node.js:238
#: htdocs/luci-static/resources/view/fchomo/node.js:1463
#: htdocs/luci-static/resources/view/fchomo/node.js:1748
#: htdocs/luci-static/resources/view/fchomo/node.js:1493
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:276
msgid "Type"
msgstr ""
@ -2990,7 +3004,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:588
#: htdocs/luci-static/resources/view/fchomo/client.js:678
#: htdocs/luci-static/resources/view/fchomo/node.js:865
#: htdocs/luci-static/resources/view/fchomo/node.js:1595
#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "UDP"
msgstr ""
@ -3059,7 +3073,7 @@ msgid "Unknown error: %s"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:870
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
#: htdocs/luci-static/resources/view/fchomo/node.js:1630
msgid "UoT"
msgstr ""
@ -3067,16 +3081,16 @@ msgstr ""
msgid "Update failed."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1532
#: htdocs/luci-static/resources/view/fchomo/node.js:1562
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:382
msgid "Update interval"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1292
#: htdocs/luci-static/resources/view/fchomo/node.js:1322
msgid "Upload bandwidth"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
#: htdocs/luci-static/resources/view/fchomo/node.js:1323
msgid "Upload bandwidth in Mbps."
msgstr ""
@ -3141,11 +3155,11 @@ msgstr ""
msgid "Users filter mode"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1222
#: htdocs/luci-static/resources/view/fchomo/node.js:1236
msgid "V2ray HTTPUpgrade"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1227
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@ -3159,8 +3173,8 @@ msgstr ""
msgid "VMess"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1469
#: htdocs/luci-static/resources/view/fchomo/node.js:1754
#: htdocs/luci-static/resources/view/fchomo/node.js:1499
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:319
msgid "Value"
msgstr ""
@ -3200,7 +3214,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:489
#: htdocs/luci-static/resources/view/fchomo/node.js:1132
#: htdocs/luci-static/resources/view/fchomo/node.js:1143
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
#: htdocs/luci-static/resources/view/fchomo/node.js:1150
#: htdocs/luci-static/resources/view/fchomo/node.js:1156
msgid "WebSocket"
msgstr ""
@ -3228,6 +3243,15 @@ msgstr ""
msgid "WireGuard requires base64-encoded private keys."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1133
#: htdocs/luci-static/resources/view/fchomo/node.js:1151
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1246
msgid "XHTTP mode"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:609
msgid "XOR mode"
msgstr ""
@ -3301,7 +3325,7 @@ msgstr ""
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1612
#: htdocs/luci-static/resources/view/fchomo/node.js:1642
msgid "down"
msgstr ""
@ -3321,20 +3345,21 @@ msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1131
#: htdocs/luci-static/resources/view/fchomo/node.js:1142
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1149
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "gRPC"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1198
#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "gRPC User-Agent"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1203
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "gRPC ping interval"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:1003
#: htdocs/luci-static/resources/view/fchomo/node.js:1194
#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "gRPC service name"
msgstr ""
@ -3342,7 +3367,7 @@ msgstr ""
msgid "gVisor"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1243
#: htdocs/luci-static/resources/view/fchomo/node.js:1273
msgid "h2mux"
msgstr ""
@ -3360,7 +3385,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1480
#: htdocs/luci-static/resources/view/fchomo/client.js:1711
#: htdocs/luci-static/resources/view/fchomo/client.js:1767
#: htdocs/luci-static/resources/view/fchomo/node.js:1435
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:239
msgid "mihomo config"
msgstr ""
@ -3369,8 +3394,8 @@ msgstr ""
msgid "mlkem768x25519plus"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1309
#: htdocs/luci-static/resources/view/fchomo/node.js:1590
#: htdocs/luci-static/resources/view/fchomo/node.js:1339
#: htdocs/luci-static/resources/view/fchomo/node.js:1620
msgid "mpTCP"
msgstr ""
@ -3426,7 +3451,7 @@ msgstr ""
msgid "only applies when %s is not %s."
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1570
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
msgid "override.proxy-name"
msgstr ""
@ -3434,6 +3459,10 @@ msgstr ""
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1248
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:391
#: htdocs/luci-static/resources/view/fchomo/node.js:458
msgid "poll"
@ -3466,7 +3495,7 @@ msgstr ""
msgid "shadow-tls"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
#: htdocs/luci-static/resources/view/fchomo/node.js:1271
msgid "smux"
msgstr ""
@ -3479,6 +3508,10 @@ msgstr ""
msgid "src"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "stream/poll/auto"
msgstr ""
@ -3503,7 +3536,7 @@ msgstr ""
msgid "unique value"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1606
#: htdocs/luci-static/resources/view/fchomo/node.js:1636
msgid "up"
msgstr ""
@ -3579,7 +3612,7 @@ msgstr ""
msgid "yacd-meta"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1242
#: htdocs/luci-static/resources/view/fchomo/node.js:1272
msgid "yamux"
msgstr ""

View File

@ -46,10 +46,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
#: htdocs/luci-static/resources/view/fchomo/client.js:1057
#: htdocs/luci-static/resources/view/fchomo/client.js:1278
#: htdocs/luci-static/resources/view/fchomo/node.js:1758
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/node.js:1788
#: htdocs/luci-static/resources/view/fchomo/node.js:1794
#: htdocs/luci-static/resources/view/fchomo/node.js:1808
#: htdocs/luci-static/resources/view/fchomo/node.js:1814
msgid "-- Please choose --"
msgstr "-- 请选择 --"
@ -182,11 +182,11 @@ msgstr "新增 节点"
msgid "Add a inbound"
msgstr "新增 入站"
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Add a provider"
msgstr "新增 供应商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Add a proxy chain"
msgstr "新增 代理链"
@ -210,11 +210,11 @@ msgstr "新增 服务器"
msgid "Add a sub rule"
msgstr "新增 子规则"
#: htdocs/luci-static/resources/view/fchomo/node.js:1559
#: htdocs/luci-static/resources/view/fchomo/node.js:1589
msgid "Add prefix"
msgstr "添加前缀"
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1593
msgid "Add suffix"
msgstr "添加后缀"
@ -343,13 +343,13 @@ msgid "Binary mrs"
msgstr "二进制 mrs"
#: htdocs/luci-static/resources/view/fchomo/global.js:734
#: htdocs/luci-static/resources/view/fchomo/node.js:1319
#: htdocs/luci-static/resources/view/fchomo/node.js:1632
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1662
msgid "Bind interface"
msgstr "绑定接口"
#: htdocs/luci-static/resources/view/fchomo/node.js:1320
#: htdocs/luci-static/resources/view/fchomo/node.js:1633
#: htdocs/luci-static/resources/view/fchomo/node.js:1350
#: htdocs/luci-static/resources/view/fchomo/node.js:1663
msgid "Bind outbound interface.</br>"
msgstr "绑定出站接口。</br>"
@ -521,7 +521,7 @@ msgstr "常用端口(绕过 P2P 流量)"
msgid "Complete"
msgstr "完成"
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1609
msgid "Configuration Items"
msgstr "配置项"
@ -539,14 +539,14 @@ msgid "Content copied to clipboard!"
msgstr "内容已复制到剪贴板!"
#: htdocs/luci-static/resources/view/fchomo/client.js:670
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1515
#: htdocs/luci-static/resources/view/fchomo/node.js:1519
#: htdocs/luci-static/resources/view/fchomo/node.js:1545
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:339
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:365
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "内容将不会被验证,请确保输入正确。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1488
#: htdocs/luci-static/resources/view/fchomo/node.js:1518
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:338
msgid "Contents"
msgstr "内容"
@ -571,7 +571,7 @@ msgstr "Cron 表达式"
msgid "Custom Direct List"
msgstr "自定义直连列表"
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
#: htdocs/luci-static/resources/view/fchomo/node.js:1580
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "Custom HTTP header."
msgstr "自定义 HTTP header。"
@ -639,11 +639,11 @@ msgstr "默认 DNS 服务器"
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允许通过 WireGuard 转发的目的地址"
#: htdocs/luci-static/resources/view/fchomo/node.js:1757
#: htdocs/luci-static/resources/view/fchomo/node.js:1787
msgid "Destination provider"
msgstr "落地供应商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/node.js:1793
msgid "Destination proxy node"
msgstr "落地代理节点"
@ -651,8 +651,8 @@ msgstr "落地代理节点"
msgid "Dial fields"
msgstr "拨号字段"
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
msgid "Different chain head/tail"
msgstr "不同的链头/链尾"
@ -724,15 +724,15 @@ msgstr "不要在 ClientHello 中发送服务器名称。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1577
#: htdocs/luci-static/resources/view/fchomo/node.js:1038
#: htdocs/luci-static/resources/view/fchomo/node.js:1619
#: htdocs/luci-static/resources/view/fchomo/node.js:1649
msgid "Donot verifying server certificate."
msgstr "不验证服务器证书。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1298
#: htdocs/luci-static/resources/view/fchomo/node.js:1328
msgid "Download bandwidth"
msgstr "下载带宽"
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
#: htdocs/luci-static/resources/view/fchomo/node.js:1329
msgid "Download bandwidth in Mbps."
msgstr "下载带宽单位Mbps。"
@ -773,11 +773,11 @@ msgstr ""
msgid "ETag support"
msgstr "ETag 支持"
#: htdocs/luci-static/resources/view/fchomo/node.js:1211
#: htdocs/luci-static/resources/view/fchomo/node.js:1225
msgid "Early Data first packet length limit."
msgstr "前置数据长度阈值"
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
#: htdocs/luci-static/resources/view/fchomo/node.js:1231
msgid "Early Data header name"
msgstr "前置数据标头"
@ -793,7 +793,7 @@ msgstr "编辑节点"
msgid "Edit ruleset"
msgstr "编辑规则集"
#: htdocs/luci-static/resources/view/fchomo/node.js:1486
#: htdocs/luci-static/resources/view/fchomo/node.js:1516
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:336
msgid "Editer"
msgstr "编辑器"
@ -813,9 +813,9 @@ msgstr "消除加密头特征"
#: htdocs/luci-static/resources/view/fchomo/global.js:401
#: htdocs/luci-static/resources/view/fchomo/global.js:680
#: htdocs/luci-static/resources/view/fchomo/node.js:234
#: htdocs/luci-static/resources/view/fchomo/node.js:1459
#: htdocs/luci-static/resources/view/fchomo/node.js:1655
#: htdocs/luci-static/resources/view/fchomo/node.js:1744
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1774
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:264
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
@ -846,15 +846,15 @@ msgstr ""
msgid "Enable ECH"
msgstr "启用 ECH"
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
#: htdocs/luci-static/resources/view/fchomo/node.js:1316
msgid "Enable TCP Brutal"
msgstr "启用 TCP Brutal"
#: htdocs/luci-static/resources/view/fchomo/node.js:1287
#: htdocs/luci-static/resources/view/fchomo/node.js:1317
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "启用 TCP Brutal 拥塞控制算法。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1275
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Enable multiplexing only for TCP."
msgstr "仅为 TCP 启用多路复用。"
@ -863,16 +863,16 @@ msgstr "仅为 TCP 启用多路复用。"
msgid "Enable obfuscate for downlink"
msgstr "启用下行链路混淆"
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
msgid "Enable padding"
msgstr "启用填充"
#: htdocs/luci-static/resources/view/fchomo/node.js:1280
#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "Enable statistic"
msgstr "启用统计"
#: htdocs/luci-static/resources/view/fchomo/node.js:871
#: htdocs/luci-static/resources/view/fchomo/node.js:1601
#: htdocs/luci-static/resources/view/fchomo/node.js:1631
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。"
@ -911,7 +911,7 @@ msgid ""
"if empty."
msgstr "超过此限制将会触发强制健康检查。留空则使用 <code>5</code>。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/node.js:1743
msgid "Exclude matched node types."
msgstr "排除匹配的节点类型。"
@ -924,7 +924,7 @@ msgstr ""
"rel=\"noreferrer noopener\">此处</a>。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1161
#: htdocs/luci-static/resources/view/fchomo/node.js:1706
#: htdocs/luci-static/resources/view/fchomo/node.js:1736
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配关键词或表达式的节点。"
@ -933,12 +933,12 @@ msgid "Expand/Collapse result"
msgstr "展开/收起 结果"
#: htdocs/luci-static/resources/view/fchomo/client.js:1121
#: htdocs/luci-static/resources/view/fchomo/node.js:1691
#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Expected HTTP code. <code>204</code> will be used if empty."
msgstr "预期的 HTTP code。留空则使用 <code>204</code>。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1123
#: htdocs/luci-static/resources/view/fchomo/node.js:1693
#: htdocs/luci-static/resources/view/fchomo/node.js:1723
msgid "Expected status"
msgstr "预期状态"
@ -981,8 +981,8 @@ msgstr "预期状态"
#: htdocs/luci-static/resources/view/fchomo/node.js:491
#: htdocs/luci-static/resources/view/fchomo/node.js:942
#: htdocs/luci-static/resources/view/fchomo/node.js:1030
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
msgid "Expecting: %s"
@ -992,6 +992,7 @@ msgstr "请输入:%s"
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "Expecting: only support %s."
msgstr "请输入:仅支援 %s."
@ -1041,7 +1042,7 @@ msgid "Fallback filter"
msgstr "後備过滤器"
#: htdocs/luci-static/resources/view/fchomo/client.js:1156
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Filter nodes that meet keywords or regexps."
msgstr "过滤匹配关键字或表达式的节点。"
@ -1084,8 +1085,8 @@ msgstr ""
"noopener\">%s</a>."
#: htdocs/luci-static/resources/view/fchomo/client.js:1122
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/node.js:1599
#: htdocs/luci-static/resources/view/fchomo/node.js:1722
msgid ""
"For format see <a target=\"_blank\" href=\"%s\" rel=\"noreferrer "
"noopener\">%s</a>."
@ -1113,7 +1114,7 @@ msgstr "格式"
msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1166
#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "GET"
msgstr ""
@ -1128,7 +1129,7 @@ msgstr "常规"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1009
#: htdocs/luci-static/resources/view/fchomo/node.js:222
#: htdocs/luci-static/resources/view/fchomo/node.js:1449
#: htdocs/luci-static/resources/view/fchomo/node.js:1479
msgid "General fields"
msgstr "常规字段"
@ -1214,12 +1215,13 @@ msgstr "组"
#: htdocs/luci-static/resources/view/fchomo/node.js:816
#: htdocs/luci-static/resources/view/fchomo/node.js:1129
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
msgid "HTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:267
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1549
#: htdocs/luci-static/resources/view/fchomo/node.js:1202
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "HTTP header"
msgstr "HTTP header"
@ -1245,7 +1247,7 @@ msgstr "HTTP 伪装多路复用"
msgid "HTTP mask: %s"
msgstr "HTTP 伪装: %s"
#: htdocs/luci-static/resources/view/fchomo/node.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid "HTTP request method"
msgstr "HTTP 请求方法"
@ -1267,6 +1269,7 @@ msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面
#: htdocs/luci-static/resources/fchomo/listeners.js:978
#: htdocs/luci-static/resources/view/fchomo/node.js:1130
#: htdocs/luci-static/resources/view/fchomo/node.js:1141
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
msgid "HTTPUpgrade"
msgstr ""
@ -1291,27 +1294,27 @@ msgid "Health check"
msgstr "健康检查"
#: htdocs/luci-static/resources/view/fchomo/client.js:1091
#: htdocs/luci-static/resources/view/fchomo/node.js:1660
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
msgid "Health check URL"
msgstr "健康检查 URL"
#: htdocs/luci-static/resources/view/fchomo/client.js:1120
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
#: htdocs/luci-static/resources/view/fchomo/node.js:1720
msgid "Health check expected status"
msgstr "健康检查预期状态"
#: htdocs/luci-static/resources/view/fchomo/client.js:1100
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health check interval"
msgstr "健康检查间隔"
#: htdocs/luci-static/resources/view/fchomo/client.js:1107
#: htdocs/luci-static/resources/view/fchomo/node.js:1677
#: htdocs/luci-static/resources/view/fchomo/node.js:1707
msgid "Health check timeout"
msgstr "健康检查超时"
#: htdocs/luci-static/resources/view/fchomo/client.js:1011
#: htdocs/luci-static/resources/view/fchomo/node.js:1451
#: htdocs/luci-static/resources/view/fchomo/node.js:1481
msgid "Health fields"
msgstr "健康字段"
@ -1362,8 +1365,8 @@ msgstr ""
msgid "IP override"
msgstr "IP 覆写"
#: htdocs/luci-static/resources/view/fchomo/node.js:1331
#: htdocs/luci-static/resources/view/fchomo/node.js:1646
#: htdocs/luci-static/resources/view/fchomo/node.js:1361
#: htdocs/luci-static/resources/view/fchomo/node.js:1676
msgid "IP version"
msgstr "IP 版本"
@ -1424,8 +1427,8 @@ msgstr "导入"
#: htdocs/luci-static/resources/view/fchomo/client.js:1713
#: htdocs/luci-static/resources/view/fchomo/client.js:1748
#: htdocs/luci-static/resources/view/fchomo/client.js:1769
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1437
#: htdocs/luci-static/resources/view/fchomo/node.js:1386
#: htdocs/luci-static/resources/view/fchomo/node.js:1467
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:153
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:241
msgid "Import mihomo config"
@ -1441,12 +1444,12 @@ msgstr "导入规则集链接"
#: htdocs/luci-static/resources/fchomo/listeners.js:181
#: htdocs/luci-static/resources/view/fchomo/node.js:286
#: htdocs/luci-static/resources/view/fchomo/node.js:292
#: htdocs/luci-static/resources/view/fchomo/node.js:1607
#: htdocs/luci-static/resources/view/fchomo/node.js:1613
#: htdocs/luci-static/resources/view/fchomo/node.js:1637
#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "In Mbps."
msgstr "单位为 Mbps。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1527
#: htdocs/luci-static/resources/view/fchomo/node.js:1557
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:377
msgid "In bytes. <code>%s</code> will be used if empty."
msgstr "单位为字节。留空则使用 <code>%s</code>。"
@ -1458,7 +1461,7 @@ msgstr "单位为毫秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1108
#: htdocs/luci-static/resources/view/fchomo/client.js:1137
#: htdocs/luci-static/resources/view/fchomo/node.js:1678
#: htdocs/luci-static/resources/view/fchomo/node.js:1708
msgid "In millisecond. <code>%s</code> will be used if empty."
msgstr "单位为毫秒。留空则使用 <code>%s</code>。"
@ -1467,7 +1470,7 @@ msgstr "单位为毫秒。留空则使用 <code>%s</code>。"
#: htdocs/luci-static/resources/fchomo/listeners.js:428
#: htdocs/luci-static/resources/view/fchomo/node.js:604
#: htdocs/luci-static/resources/view/fchomo/node.js:611
#: htdocs/luci-static/resources/view/fchomo/node.js:1204
#: htdocs/luci-static/resources/view/fchomo/node.js:1218
msgid "In seconds."
msgstr "单位为秒。"
@ -1476,8 +1479,8 @@ msgstr "单位为秒。"
#: htdocs/luci-static/resources/view/fchomo/global.js:430
#: htdocs/luci-static/resources/view/fchomo/global.js:515
#: htdocs/luci-static/resources/view/fchomo/node.js:280
#: htdocs/luci-static/resources/view/fchomo/node.js:1533
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1701
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:383
msgid "In seconds. <code>%s</code> will be used if empty."
msgstr "单位为秒。留空则使用 <code>%s</code>。"
@ -1525,7 +1528,7 @@ msgstr "引入所有代理节点。"
msgid "Info"
msgstr "信息"
#: htdocs/luci-static/resources/view/fchomo/node.js:1466
#: htdocs/luci-static/resources/view/fchomo/node.js:1496
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:279
msgid "Inline"
msgstr "内嵌"
@ -1562,14 +1565,14 @@ msgstr "密钥对"
#: htdocs/luci-static/resources/view/fchomo/client.js:1719
#: htdocs/luci-static/resources/view/fchomo/client.js:1775
#: htdocs/luci-static/resources/view/fchomo/node.js:229
#: htdocs/luci-static/resources/view/fchomo/node.js:1454
#: htdocs/luci-static/resources/view/fchomo/node.js:1739
#: htdocs/luci-static/resources/view/fchomo/node.js:1484
#: htdocs/luci-static/resources/view/fchomo/node.js:1769
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
msgid "Label"
msgstr "标签"
#: htdocs/luci-static/resources/view/fchomo/client.js:1114
#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/node.js:1714
msgid "Lazy"
msgstr "懒惰状态"
@ -1620,7 +1623,7 @@ msgstr "监听端口"
msgid "Load balance"
msgstr "负载均衡"
#: htdocs/luci-static/resources/view/fchomo/node.js:1464
#: htdocs/luci-static/resources/view/fchomo/node.js:1494
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:277
msgid "Local"
msgstr "本地"
@ -1654,9 +1657,11 @@ msgstr "日志等级"
#: htdocs/luci-static/resources/fchomo/listeners.js:324
#: htdocs/luci-static/resources/fchomo/listeners.js:325
#: htdocs/luci-static/resources/fchomo/listeners.js:326
#: htdocs/luci-static/resources/fchomo/listeners.js:331
#: htdocs/luci-static/resources/view/fchomo/node.js:409
#: htdocs/luci-static/resources/view/fchomo/node.js:410
#: htdocs/luci-static/resources/view/fchomo/node.js:411
#: htdocs/luci-static/resources/view/fchomo/node.js:416
msgid "Low-entropy data stream"
msgstr "低熵数据流"
@ -1706,7 +1711,7 @@ msgstr "匹配响应通过 ipcidr</br>"
msgid "Match rule set."
msgstr "匹配规则集。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1210
#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "Max Early Data"
msgstr "前置数据最大值"
@ -1733,12 +1738,12 @@ msgstr "限制打开流的数量"
msgid "Max upload speed"
msgstr "最大上传速度"
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1277
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Maximum connections"
msgstr "最大连接数"
#: htdocs/luci-static/resources/view/fchomo/node.js:1261
#: htdocs/luci-static/resources/view/fchomo/node.js:1291
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"<br/>Conflict with <code>%s</code> and <code>%s</code>."
@ -1758,7 +1763,7 @@ msgid ""
"rate."
msgstr "最大填充率必须大于等于最小填充率。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1260
#: htdocs/luci-static/resources/view/fchomo/node.js:1290
msgid "Maximum streams"
msgstr "最大流数量"
@ -1783,7 +1788,7 @@ msgstr "Mihomo 服务端"
msgid "Min of idle sessions to keep"
msgstr "要保留的最少闲置会话数"
#: htdocs/luci-static/resources/view/fchomo/node.js:1254
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
@ -1793,8 +1798,8 @@ msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
msgid "Minimum padding rate"
msgstr "最小填充率"
#: htdocs/luci-static/resources/view/fchomo/node.js:1253
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Minimum streams"
msgstr "最小流数量"
@ -1811,7 +1816,7 @@ msgstr "混合 <code>系统</code> TCP 栈和 <code>gVisor</code> UDP 栈。"
msgid "Mixed port"
msgstr "混合端口"
#: htdocs/luci-static/resources/view/fchomo/node.js:1233
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
msgid "Multiplex"
msgstr "多路复用"
@ -1833,7 +1838,7 @@ msgstr "NOT"
msgid "Name of the Proxy group as outbound."
msgstr "出站代理组的名称。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1539
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
msgid "Name of the Proxy group to download provider."
msgstr "用于下载供应商订阅的代理组名称。"
@ -1865,8 +1870,12 @@ msgstr "无需认证的 IP 范围"
msgid "No add'l params"
msgstr "无附加参数"
#: htdocs/luci-static/resources/view/fchomo/node.js:1252
msgid "No gRPC header"
msgstr "无 gRPC header"
#: htdocs/luci-static/resources/view/fchomo/client.js:1115
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1715
msgid "No testing is performed when this provider node is not in use."
msgstr "当此供应商的节点未使用时,不执行任何测试。"
@ -1885,17 +1894,17 @@ msgid "Node"
msgstr "节点"
#: htdocs/luci-static/resources/view/fchomo/client.js:1160
#: htdocs/luci-static/resources/view/fchomo/node.js:1705
#: htdocs/luci-static/resources/view/fchomo/node.js:1735
msgid "Node exclude filter"
msgstr "排除节点"
#: htdocs/luci-static/resources/view/fchomo/client.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1712
#: htdocs/luci-static/resources/view/fchomo/node.js:1742
msgid "Node exclude type"
msgstr "排除节点类型"
#: htdocs/luci-static/resources/view/fchomo/client.js:1155
#: htdocs/luci-static/resources/view/fchomo/node.js:1699
#: htdocs/luci-static/resources/view/fchomo/node.js:1729
msgid "Node filter"
msgstr "过滤节点"
@ -1973,7 +1982,7 @@ msgid "Override destination"
msgstr "覆盖目标地址"
#: htdocs/luci-static/resources/view/fchomo/client.js:1010
#: htdocs/luci-static/resources/view/fchomo/node.js:1450
#: htdocs/luci-static/resources/view/fchomo/node.js:1480
msgid "Override fields"
msgstr "覆盖字段"
@ -2001,11 +2010,11 @@ msgstr "覆盖用于 HTTPS 记录查询的域名。"
msgid "Overview"
msgstr "概览"
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
msgid "POST"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1168
#: htdocs/luci-static/resources/view/fchomo/node.js:1182
msgid "PUT"
msgstr ""
@ -2013,6 +2022,10 @@ msgstr ""
msgid "Packet encoding"
msgstr "数据包编码"
#: htdocs/luci-static/resources/view/fchomo/node.js:1257
msgid "Padding bytes"
msgstr "填充字节"
#: htdocs/luci-static/resources/fchomo/listeners.js:458
msgid "Padding scheme"
msgstr "填充方案"
@ -2032,7 +2045,7 @@ msgid "Password"
msgstr "密码"
#: htdocs/luci-static/resources/fchomo/listeners.js:587
#: htdocs/luci-static/resources/view/fchomo/node.js:1514
#: htdocs/luci-static/resources/view/fchomo/node.js:1544
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:364
msgid "Payload"
msgstr "Payload"
@ -2074,8 +2087,8 @@ msgid ""
"standards."
msgstr "链接格式标准请参考 <a href=\"%s\" target=\"_blank\">%s</a>。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1487
#: htdocs/luci-static/resources/view/fchomo/node.js:1513
#: htdocs/luci-static/resources/view/fchomo/node.js:1517
#: htdocs/luci-static/resources/view/fchomo/node.js:1543
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:337
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:363
msgid ""
@ -2090,7 +2103,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1445
#: htdocs/luci-static/resources/view/fchomo/client.js:1697
#: htdocs/luci-static/resources/view/fchomo/client.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1387
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
msgid "Please type <code>%s</code> fields of mihomo config.</br>"
msgstr "请输入 mihomo 配置的 <code>%s</code> 字段。</br>"
@ -2157,10 +2170,10 @@ msgstr "防止某些情况下的 ICMP 环回问题。Ping 不会显示实际延
#: htdocs/luci-static/resources/view/fchomo/global.js:736
#: htdocs/luci-static/resources/view/fchomo/global.js:753
#: htdocs/luci-static/resources/view/fchomo/node.js:1321
#: htdocs/luci-static/resources/view/fchomo/node.js:1327
#: htdocs/luci-static/resources/view/fchomo/node.js:1634
#: htdocs/luci-static/resources/view/fchomo/node.js:1641
#: htdocs/luci-static/resources/view/fchomo/node.js:1351
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1664
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
msgid "Priority: Proxy Node > Global."
msgstr "优先级: 代理节点 > 全局。"
@ -2182,7 +2195,7 @@ msgid "Process matching mode"
msgstr "进程匹配模式"
#: htdocs/luci-static/resources/view/fchomo/global.js:684
#: htdocs/luci-static/resources/view/fchomo/node.js:1239
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Protocol"
msgstr "协议"
@ -2197,13 +2210,13 @@ msgid ""
msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
#: htdocs/luci-static/resources/view/fchomo/node.js:1340
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1750
#: htdocs/luci-static/resources/view/fchomo/node.js:1370
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
#: htdocs/luci-static/resources/view/fchomo/node.js:1780
msgid "Provider"
msgstr "供应商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1520
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
msgid "Provider URL"
msgstr "供应商订阅 URL"
@ -2226,19 +2239,19 @@ msgid "Proxy MAC-s"
msgstr "代理 MAC 地址"
#: htdocs/luci-static/resources/view/fchomo/node.js:208
#: htdocs/luci-static/resources/view/fchomo/node.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1779
msgid "Proxy Node"
msgstr "代理节点"
#: htdocs/luci-static/resources/view/fchomo/node.js:1725
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1755
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Proxy chain"
msgstr "代理链"
#: htdocs/luci-static/resources/fchomo/listeners.js:530
#: htdocs/luci-static/resources/view/fchomo/client.js:783
#: htdocs/luci-static/resources/view/fchomo/client.js:1543
#: htdocs/luci-static/resources/view/fchomo/node.js:1538
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Proxy group"
msgstr "代理组"
@ -2345,7 +2358,7 @@ msgstr "重载"
msgid "Reload All"
msgstr "重载所有"
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/node.js:1495
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:278
msgid "Remote"
msgstr "远程"
@ -2360,18 +2373,18 @@ msgid "Remove"
msgstr "移除"
#: htdocs/luci-static/resources/fchomo.js:1354
#: htdocs/luci-static/resources/view/fchomo/node.js:1441
#: htdocs/luci-static/resources/view/fchomo/node.js:1443
#: htdocs/luci-static/resources/view/fchomo/node.js:1471
#: htdocs/luci-static/resources/view/fchomo/node.js:1473
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
msgid "Remove idles"
msgstr "移除闲置"
#: htdocs/luci-static/resources/view/fchomo/node.js:1567
#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid "Replace name"
msgstr "名称替换"
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/node.js:1598
msgid "Replace node name."
msgstr "替换节点名称"
@ -2380,8 +2393,8 @@ msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:996
#: htdocs/luci-static/resources/view/fchomo/node.js:1174
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1195
msgid "Request path"
msgstr "请求路径"
@ -2446,8 +2459,8 @@ msgstr "路由 DSCP"
msgid "Routing GFW"
msgstr "路由 GFW 流量"
#: htdocs/luci-static/resources/view/fchomo/node.js:1326
#: htdocs/luci-static/resources/view/fchomo/node.js:1640
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
msgid "Routing mark"
msgstr "路由标记"
@ -2585,7 +2598,8 @@ msgstr "服务端"
msgid "Server address"
msgstr "服务器地址"
#: htdocs/luci-static/resources/view/fchomo/node.js:1159
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1173
msgid "Server hostname"
msgstr "服务器主机名称"
@ -2617,7 +2631,7 @@ msgstr "Shadowsocks 加密"
msgid "Shadowsocks password"
msgstr "Shadowsocks 密码"
#: htdocs/luci-static/resources/view/fchomo/node.js:1281
#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中显示连接以便于打断连接。"
@ -2629,14 +2643,14 @@ msgstr "静音"
msgid "Simple round-robin all nodes"
msgstr "简单轮替所有节点"
#: htdocs/luci-static/resources/view/fchomo/node.js:1526
#: htdocs/luci-static/resources/view/fchomo/node.js:1556
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Size limit"
msgstr "大小限制"
#: htdocs/luci-static/resources/view/fchomo/client.js:1576
#: htdocs/luci-static/resources/view/fchomo/node.js:1037
#: htdocs/luci-static/resources/view/fchomo/node.js:1618
#: htdocs/luci-static/resources/view/fchomo/node.js:1648
msgid "Skip cert verify"
msgstr "跳过证书验证"
@ -2764,7 +2778,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 并发"
#: htdocs/luci-static/resources/view/fchomo/node.js:1274
#: htdocs/luci-static/resources/view/fchomo/node.js:1304
msgid "TCP only"
msgstr "仅 TCP"
@ -2790,8 +2804,8 @@ msgstr "TCP-Keep-Alive 间隔"
msgid "TCP/UDP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
#: htdocs/luci-static/resources/view/fchomo/node.js:1585
#: htdocs/luci-static/resources/view/fchomo/node.js:1335
#: htdocs/luci-static/resources/view/fchomo/node.js:1615
msgid "TFO"
msgstr "TCP 快速打开 (TFO)"
@ -2903,7 +2917,7 @@ msgstr "此 ECH 参数需要添加到域名的 HTTPS 记录中。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1040
#: htdocs/luci-static/resources/view/fchomo/node.js:1621
#: htdocs/luci-static/resources/view/fchomo/node.js:1651
msgid ""
"This is <strong>DANGEROUS</strong>, your traffic is almost like "
"<strong>PLAIN TEXT</strong>! Use at your own risk!"
@ -2947,11 +2961,11 @@ msgstr "Tproxy 端口"
msgid "Traffic pattern"
msgstr "流量模式"
#: htdocs/luci-static/resources/view/fchomo/node.js:1777
#: htdocs/luci-static/resources/view/fchomo/node.js:1807
msgid "Transit proxy group"
msgstr "中转代理组"
#: htdocs/luci-static/resources/view/fchomo/node.js:1783
#: htdocs/luci-static/resources/view/fchomo/node.js:1813
msgid "Transit proxy node"
msgstr "中转代理节点"
@ -3013,8 +3027,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:842
#: htdocs/luci-static/resources/view/fchomo/client.js:1028
#: htdocs/luci-static/resources/view/fchomo/node.js:238
#: htdocs/luci-static/resources/view/fchomo/node.js:1463
#: htdocs/luci-static/resources/view/fchomo/node.js:1748
#: htdocs/luci-static/resources/view/fchomo/node.js:1493
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:276
msgid "Type"
msgstr "类型"
@ -3030,7 +3044,7 @@ msgstr "类型"
#: htdocs/luci-static/resources/view/fchomo/client.js:588
#: htdocs/luci-static/resources/view/fchomo/client.js:678
#: htdocs/luci-static/resources/view/fchomo/node.js:865
#: htdocs/luci-static/resources/view/fchomo/node.js:1595
#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "UDP"
msgstr "UDP"
@ -3099,7 +3113,7 @@ msgid "Unknown error: %s"
msgstr "未知错误:%s"
#: htdocs/luci-static/resources/view/fchomo/node.js:870
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
#: htdocs/luci-static/resources/view/fchomo/node.js:1630
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@ -3107,16 +3121,16 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失败。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1532
#: htdocs/luci-static/resources/view/fchomo/node.js:1562
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:382
msgid "Update interval"
msgstr "更新间隔"
#: htdocs/luci-static/resources/view/fchomo/node.js:1292
#: htdocs/luci-static/resources/view/fchomo/node.js:1322
msgid "Upload bandwidth"
msgstr "上传带宽"
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
#: htdocs/luci-static/resources/view/fchomo/node.js:1323
msgid "Upload bandwidth in Mbps."
msgstr "上传带宽单位Mbps。"
@ -3181,11 +3195,11 @@ msgstr "用户名"
msgid "Users filter mode"
msgstr "使用者过滤模式"
#: htdocs/luci-static/resources/view/fchomo/node.js:1222
#: htdocs/luci-static/resources/view/fchomo/node.js:1236
msgid "V2ray HTTPUpgrade"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1227
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@ -3199,8 +3213,8 @@ msgstr ""
msgid "VMess"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1469
#: htdocs/luci-static/resources/view/fchomo/node.js:1754
#: htdocs/luci-static/resources/view/fchomo/node.js:1499
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:319
msgid "Value"
msgstr "可视化值"
@ -3240,7 +3254,8 @@ msgstr "警告"
#: htdocs/luci-static/resources/view/fchomo/node.js:489
#: htdocs/luci-static/resources/view/fchomo/node.js:1132
#: htdocs/luci-static/resources/view/fchomo/node.js:1143
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
#: htdocs/luci-static/resources/view/fchomo/node.js:1150
#: htdocs/luci-static/resources/view/fchomo/node.js:1156
msgid "WebSocket"
msgstr ""
@ -3268,6 +3283,15 @@ msgstr "WireGuard 预共享密钥。"
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 编码的私钥。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1133
#: htdocs/luci-static/resources/view/fchomo/node.js:1151
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1246
msgid "XHTTP mode"
msgstr "XHTTP 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:609
msgid "XOR mode"
msgstr "XOR 模式"
@ -3341,7 +3365,7 @@ msgstr "decryption"
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行选择上游服务器。 (可能影响 CDN 准确性)"
#: htdocs/luci-static/resources/view/fchomo/node.js:1612
#: htdocs/luci-static/resources/view/fchomo/node.js:1642
msgid "down"
msgstr "Hysteria 下载速率"
@ -3361,20 +3385,21 @@ msgstr "false = 带宽优化下行 true = 纯 Sudoku 下行。"
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1131
#: htdocs/luci-static/resources/view/fchomo/node.js:1142
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1149
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "gRPC"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1198
#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "gRPC User-Agent"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1203
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "gRPC ping interval"
msgstr "gRPC ping 间隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1003
#: htdocs/luci-static/resources/view/fchomo/node.js:1194
#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "gRPC service name"
msgstr "gRPC 服务名称"
@ -3382,7 +3407,7 @@ msgstr "gRPC 服务名称"
msgid "gVisor"
msgstr "gVisor"
#: htdocs/luci-static/resources/view/fchomo/node.js:1243
#: htdocs/luci-static/resources/view/fchomo/node.js:1273
msgid "h2mux"
msgstr ""
@ -3400,7 +3425,7 @@ msgstr "metacubexd"
#: htdocs/luci-static/resources/view/fchomo/client.js:1480
#: htdocs/luci-static/resources/view/fchomo/client.js:1711
#: htdocs/luci-static/resources/view/fchomo/client.js:1767
#: htdocs/luci-static/resources/view/fchomo/node.js:1435
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:239
msgid "mihomo config"
msgstr "mihomo 配置"
@ -3409,8 +3434,8 @@ msgstr "mihomo 配置"
msgid "mlkem768x25519plus"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1309
#: htdocs/luci-static/resources/view/fchomo/node.js:1590
#: htdocs/luci-static/resources/view/fchomo/node.js:1339
#: htdocs/luci-static/resources/view/fchomo/node.js:1620
msgid "mpTCP"
msgstr "多路径 TCP (mpTCP)"
@ -3466,7 +3491,7 @@ msgstr "仅当 %s 为 %s 时适用。"
msgid "only applies when %s is not %s."
msgstr "仅当 %s 不为 %s 时适用。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1570
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
msgid "override.proxy-name"
msgstr ""
@ -3474,6 +3499,10 @@ msgstr ""
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1248
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:391
#: htdocs/luci-static/resources/view/fchomo/node.js:458
msgid "poll"
@ -3506,7 +3535,7 @@ msgstr "规则集"
msgid "shadow-tls"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
#: htdocs/luci-static/resources/view/fchomo/node.js:1271
msgid "smux"
msgstr ""
@ -3519,6 +3548,10 @@ msgstr ""
msgid "src"
msgstr "src"
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "stream/poll/auto"
msgstr ""
@ -3543,7 +3576,7 @@ msgstr "独立标识"
msgid "unique value"
msgstr "独立值"
#: htdocs/luci-static/resources/view/fchomo/node.js:1606
#: htdocs/luci-static/resources/view/fchomo/node.js:1636
msgid "up"
msgstr "Hysteria 上传速率"
@ -3619,7 +3652,7 @@ msgstr ""
msgid "yacd-meta"
msgstr "yacd-meta"
#: htdocs/luci-static/resources/view/fchomo/node.js:1242
#: htdocs/luci-static/resources/view/fchomo/node.js:1272
msgid "yamux"
msgstr ""

View File

@ -46,10 +46,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1056
#: htdocs/luci-static/resources/view/fchomo/client.js:1057
#: htdocs/luci-static/resources/view/fchomo/client.js:1278
#: htdocs/luci-static/resources/view/fchomo/node.js:1758
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/node.js:1788
#: htdocs/luci-static/resources/view/fchomo/node.js:1794
#: htdocs/luci-static/resources/view/fchomo/node.js:1808
#: htdocs/luci-static/resources/view/fchomo/node.js:1814
msgid "-- Please choose --"
msgstr "-- 請選擇 --"
@ -182,11 +182,11 @@ msgstr "新增 節點"
msgid "Add a inbound"
msgstr "新增 入站"
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
msgid "Add a provider"
msgstr "新增 供應商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Add a proxy chain"
msgstr "新增 代理鏈"
@ -210,11 +210,11 @@ msgstr "新增 伺服器"
msgid "Add a sub rule"
msgstr "新增 子規則"
#: htdocs/luci-static/resources/view/fchomo/node.js:1559
#: htdocs/luci-static/resources/view/fchomo/node.js:1589
msgid "Add prefix"
msgstr "添加前綴"
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1593
msgid "Add suffix"
msgstr "添加後綴"
@ -343,13 +343,13 @@ msgid "Binary mrs"
msgstr "二進位 mrs"
#: htdocs/luci-static/resources/view/fchomo/global.js:734
#: htdocs/luci-static/resources/view/fchomo/node.js:1319
#: htdocs/luci-static/resources/view/fchomo/node.js:1632
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1662
msgid "Bind interface"
msgstr "綁定介面"
#: htdocs/luci-static/resources/view/fchomo/node.js:1320
#: htdocs/luci-static/resources/view/fchomo/node.js:1633
#: htdocs/luci-static/resources/view/fchomo/node.js:1350
#: htdocs/luci-static/resources/view/fchomo/node.js:1663
msgid "Bind outbound interface.</br>"
msgstr "綁定出站介面。</br>"
@ -521,7 +521,7 @@ msgstr "常用連接埠(繞過 P2P 流量)"
msgid "Complete"
msgstr "完成"
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1609
msgid "Configuration Items"
msgstr "配置項"
@ -539,14 +539,14 @@ msgid "Content copied to clipboard!"
msgstr "內容已複製到剪貼簿!"
#: htdocs/luci-static/resources/view/fchomo/client.js:670
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1515
#: htdocs/luci-static/resources/view/fchomo/node.js:1519
#: htdocs/luci-static/resources/view/fchomo/node.js:1545
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:339
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:365
msgid "Content will not be verified, Please make sure you enter it correctly."
msgstr "內容將不會被驗證,請確保輸入正確。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1488
#: htdocs/luci-static/resources/view/fchomo/node.js:1518
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:338
msgid "Contents"
msgstr "內容"
@ -571,7 +571,7 @@ msgstr "Cron 表達式"
msgid "Custom Direct List"
msgstr "自訂直連清單"
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
#: htdocs/luci-static/resources/view/fchomo/node.js:1580
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:400
msgid "Custom HTTP header."
msgstr "自訂 HTTP header。"
@ -639,11 +639,11 @@ msgstr "預設 DNS 伺服器"
msgid "Destination addresses allowed to be forwarded via Wireguard."
msgstr "允許通過 WireGuard 轉發的目的位址"
#: htdocs/luci-static/resources/view/fchomo/node.js:1757
#: htdocs/luci-static/resources/view/fchomo/node.js:1787
msgid "Destination provider"
msgstr "落地供應商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1763
#: htdocs/luci-static/resources/view/fchomo/node.js:1793
msgid "Destination proxy node"
msgstr "落地代理節點"
@ -651,8 +651,8 @@ msgstr "落地代理節點"
msgid "Dial fields"
msgstr "撥號欄位"
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
msgid "Different chain head/tail"
msgstr "不同的鏈頭/鏈尾"
@ -724,15 +724,15 @@ msgstr "不要在 ClientHello 中傳送伺服器名稱。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1577
#: htdocs/luci-static/resources/view/fchomo/node.js:1038
#: htdocs/luci-static/resources/view/fchomo/node.js:1619
#: htdocs/luci-static/resources/view/fchomo/node.js:1649
msgid "Donot verifying server certificate."
msgstr "不驗證伺服器憑證。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1298
#: htdocs/luci-static/resources/view/fchomo/node.js:1328
msgid "Download bandwidth"
msgstr "下載頻寬"
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
#: htdocs/luci-static/resources/view/fchomo/node.js:1329
msgid "Download bandwidth in Mbps."
msgstr "下載頻寬單位Mbps。"
@ -773,11 +773,11 @@ msgstr ""
msgid "ETag support"
msgstr "ETag 支援"
#: htdocs/luci-static/resources/view/fchomo/node.js:1211
#: htdocs/luci-static/resources/view/fchomo/node.js:1225
msgid "Early Data first packet length limit."
msgstr "前置數據長度閾值"
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
#: htdocs/luci-static/resources/view/fchomo/node.js:1231
msgid "Early Data header name"
msgstr "前置數據標頭"
@ -793,7 +793,7 @@ msgstr "編輯節點"
msgid "Edit ruleset"
msgstr "編輯規則集"
#: htdocs/luci-static/resources/view/fchomo/node.js:1486
#: htdocs/luci-static/resources/view/fchomo/node.js:1516
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:336
msgid "Editer"
msgstr "編輯器"
@ -813,9 +813,9 @@ msgstr "消除加密頭特徵"
#: htdocs/luci-static/resources/view/fchomo/global.js:401
#: htdocs/luci-static/resources/view/fchomo/global.js:680
#: htdocs/luci-static/resources/view/fchomo/node.js:234
#: htdocs/luci-static/resources/view/fchomo/node.js:1459
#: htdocs/luci-static/resources/view/fchomo/node.js:1655
#: htdocs/luci-static/resources/view/fchomo/node.js:1744
#: htdocs/luci-static/resources/view/fchomo/node.js:1489
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1774
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:264
#: htdocs/luci-static/resources/view/fchomo/server.js:49
msgid "Enable"
@ -846,15 +846,15 @@ msgstr ""
msgid "Enable ECH"
msgstr "啟用 ECH"
#: htdocs/luci-static/resources/view/fchomo/node.js:1286
#: htdocs/luci-static/resources/view/fchomo/node.js:1316
msgid "Enable TCP Brutal"
msgstr "啟用 TCP Brutal"
#: htdocs/luci-static/resources/view/fchomo/node.js:1287
#: htdocs/luci-static/resources/view/fchomo/node.js:1317
msgid "Enable TCP Brutal congestion control algorithm"
msgstr "啟用 TCP Brutal 擁塞控制演算法。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1275
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
msgid "Enable multiplexing only for TCP."
msgstr "僅為 TCP 啟用多路復用。"
@ -863,16 +863,16 @@ msgstr "僅為 TCP 啟用多路復用。"
msgid "Enable obfuscate for downlink"
msgstr "啟用下行鏈路混淆"
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
#: htdocs/luci-static/resources/view/fchomo/node.js:1299
msgid "Enable padding"
msgstr "啟用填充"
#: htdocs/luci-static/resources/view/fchomo/node.js:1280
#: htdocs/luci-static/resources/view/fchomo/node.js:1310
msgid "Enable statistic"
msgstr "啟用統計"
#: htdocs/luci-static/resources/view/fchomo/node.js:871
#: htdocs/luci-static/resources/view/fchomo/node.js:1601
#: htdocs/luci-static/resources/view/fchomo/node.js:1631
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with Multiplex."
msgstr "啟用 SUoT 協議,需要服務端支援。與多路復用衝突。"
@ -911,7 +911,7 @@ msgid ""
"if empty."
msgstr "超過此限制將會觸發強制健康檢查。留空則使用 <code>5</code>。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1713
#: htdocs/luci-static/resources/view/fchomo/node.js:1743
msgid "Exclude matched node types."
msgstr "排除匹配的節點類型。"
@ -924,7 +924,7 @@ msgstr ""
"rel=\"noreferrer noopener\">此處</a>。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1161
#: htdocs/luci-static/resources/view/fchomo/node.js:1706
#: htdocs/luci-static/resources/view/fchomo/node.js:1736
msgid "Exclude nodes that meet keywords or regexps."
msgstr "排除匹配關鍵字或表達式的節點。"
@ -933,12 +933,12 @@ msgid "Expand/Collapse result"
msgstr "展開/收起 結果"
#: htdocs/luci-static/resources/view/fchomo/client.js:1121
#: htdocs/luci-static/resources/view/fchomo/node.js:1691
#: htdocs/luci-static/resources/view/fchomo/node.js:1721
msgid "Expected HTTP code. <code>204</code> will be used if empty."
msgstr "預期的 HTTP code。留空則使用 <code>204</code>。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1123
#: htdocs/luci-static/resources/view/fchomo/node.js:1693
#: htdocs/luci-static/resources/view/fchomo/node.js:1723
msgid "Expected status"
msgstr "預期狀態"
@ -981,8 +981,8 @@ msgstr "預期狀態"
#: htdocs/luci-static/resources/view/fchomo/node.js:491
#: htdocs/luci-static/resources/view/fchomo/node.js:942
#: htdocs/luci-static/resources/view/fchomo/node.js:1030
#: htdocs/luci-static/resources/view/fchomo/node.js:1770
#: htdocs/luci-static/resources/view/fchomo/node.js:1790
#: htdocs/luci-static/resources/view/fchomo/node.js:1800
#: htdocs/luci-static/resources/view/fchomo/node.js:1820
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:291
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:305
msgid "Expecting: %s"
@ -992,6 +992,7 @@ msgstr "請輸入:%s"
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "Expecting: only support %s."
msgstr "請輸入:僅支援 %s."
@ -1041,7 +1042,7 @@ msgid "Fallback filter"
msgstr "後備過濾器"
#: htdocs/luci-static/resources/view/fchomo/client.js:1156
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
#: htdocs/luci-static/resources/view/fchomo/node.js:1730
msgid "Filter nodes that meet keywords or regexps."
msgstr "過濾匹配關鍵字或表達式的節點。"
@ -1084,8 +1085,8 @@ msgstr ""
"noopener\">%s</a>."
#: htdocs/luci-static/resources/view/fchomo/client.js:1122
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
#: htdocs/luci-static/resources/view/fchomo/node.js:1692
#: htdocs/luci-static/resources/view/fchomo/node.js:1599
#: htdocs/luci-static/resources/view/fchomo/node.js:1722
msgid ""
"For format see <a target=\"_blank\" href=\"%s\" rel=\"noreferrer "
"noopener\">%s</a>."
@ -1113,7 +1114,7 @@ msgstr "格式"
msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1166
#: htdocs/luci-static/resources/view/fchomo/node.js:1180
msgid "GET"
msgstr ""
@ -1128,7 +1129,7 @@ msgstr "常規"
#: htdocs/luci-static/resources/fchomo/listeners.js:119
#: htdocs/luci-static/resources/view/fchomo/client.js:1009
#: htdocs/luci-static/resources/view/fchomo/node.js:222
#: htdocs/luci-static/resources/view/fchomo/node.js:1449
#: htdocs/luci-static/resources/view/fchomo/node.js:1479
msgid "General fields"
msgstr "常規欄位"
@ -1214,12 +1215,13 @@ msgstr "組"
#: htdocs/luci-static/resources/view/fchomo/node.js:816
#: htdocs/luci-static/resources/view/fchomo/node.js:1129
#: htdocs/luci-static/resources/view/fchomo/node.js:1140
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
msgid "HTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:267
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1549
#: htdocs/luci-static/resources/view/fchomo/node.js:1202
#: htdocs/luci-static/resources/view/fchomo/node.js:1579
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:399
msgid "HTTP header"
msgstr "HTTP header"
@ -1245,7 +1247,7 @@ msgstr "HTTP 偽裝多路復用"
msgid "HTTP mask: %s"
msgstr "HTTP 偽裝: %s"
#: htdocs/luci-static/resources/view/fchomo/node.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1179
msgid "HTTP request method"
msgstr "HTTP 請求方法"
@ -1267,6 +1269,7 @@ msgstr "身份驗證失敗時的 HTTP3 伺服器回應。預設回傳 404 頁面
#: htdocs/luci-static/resources/fchomo/listeners.js:978
#: htdocs/luci-static/resources/view/fchomo/node.js:1130
#: htdocs/luci-static/resources/view/fchomo/node.js:1141
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
msgid "HTTPUpgrade"
msgstr ""
@ -1291,27 +1294,27 @@ msgid "Health check"
msgstr "健康檢查"
#: htdocs/luci-static/resources/view/fchomo/client.js:1091
#: htdocs/luci-static/resources/view/fchomo/node.js:1660
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
msgid "Health check URL"
msgstr "健康檢查 URL"
#: htdocs/luci-static/resources/view/fchomo/client.js:1120
#: htdocs/luci-static/resources/view/fchomo/node.js:1690
#: htdocs/luci-static/resources/view/fchomo/node.js:1720
msgid "Health check expected status"
msgstr "健康檢查预期状态"
#: htdocs/luci-static/resources/view/fchomo/client.js:1100
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
#: htdocs/luci-static/resources/view/fchomo/node.js:1700
msgid "Health check interval"
msgstr "健康檢查間隔"
#: htdocs/luci-static/resources/view/fchomo/client.js:1107
#: htdocs/luci-static/resources/view/fchomo/node.js:1677
#: htdocs/luci-static/resources/view/fchomo/node.js:1707
msgid "Health check timeout"
msgstr "健康檢查超时"
#: htdocs/luci-static/resources/view/fchomo/client.js:1011
#: htdocs/luci-static/resources/view/fchomo/node.js:1451
#: htdocs/luci-static/resources/view/fchomo/node.js:1481
msgid "Health fields"
msgstr "健康欄位"
@ -1362,8 +1365,8 @@ msgstr ""
msgid "IP override"
msgstr "IP 覆寫"
#: htdocs/luci-static/resources/view/fchomo/node.js:1331
#: htdocs/luci-static/resources/view/fchomo/node.js:1646
#: htdocs/luci-static/resources/view/fchomo/node.js:1361
#: htdocs/luci-static/resources/view/fchomo/node.js:1676
msgid "IP version"
msgstr "IP 版本"
@ -1424,8 +1427,8 @@ msgstr "導入"
#: htdocs/luci-static/resources/view/fchomo/client.js:1713
#: htdocs/luci-static/resources/view/fchomo/client.js:1748
#: htdocs/luci-static/resources/view/fchomo/client.js:1769
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1437
#: htdocs/luci-static/resources/view/fchomo/node.js:1386
#: htdocs/luci-static/resources/view/fchomo/node.js:1467
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:153
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:241
msgid "Import mihomo config"
@ -1441,12 +1444,12 @@ msgstr "導入規則集連結"
#: htdocs/luci-static/resources/fchomo/listeners.js:181
#: htdocs/luci-static/resources/view/fchomo/node.js:286
#: htdocs/luci-static/resources/view/fchomo/node.js:292
#: htdocs/luci-static/resources/view/fchomo/node.js:1607
#: htdocs/luci-static/resources/view/fchomo/node.js:1613
#: htdocs/luci-static/resources/view/fchomo/node.js:1637
#: htdocs/luci-static/resources/view/fchomo/node.js:1643
msgid "In Mbps."
msgstr "單位為 Mbps。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1527
#: htdocs/luci-static/resources/view/fchomo/node.js:1557
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:377
msgid "In bytes. <code>%s</code> will be used if empty."
msgstr "單位為位元組。留空則使用 <code>%s</code>。"
@ -1458,7 +1461,7 @@ msgstr "單位為毫秒。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1108
#: htdocs/luci-static/resources/view/fchomo/client.js:1137
#: htdocs/luci-static/resources/view/fchomo/node.js:1678
#: htdocs/luci-static/resources/view/fchomo/node.js:1708
msgid "In millisecond. <code>%s</code> will be used if empty."
msgstr "單位為毫秒。留空則使用 <code>%s</code>。"
@ -1467,7 +1470,7 @@ msgstr "單位為毫秒。留空則使用 <code>%s</code>。"
#: htdocs/luci-static/resources/fchomo/listeners.js:428
#: htdocs/luci-static/resources/view/fchomo/node.js:604
#: htdocs/luci-static/resources/view/fchomo/node.js:611
#: htdocs/luci-static/resources/view/fchomo/node.js:1204
#: htdocs/luci-static/resources/view/fchomo/node.js:1218
msgid "In seconds."
msgstr "單位為秒。"
@ -1476,8 +1479,8 @@ msgstr "單位為秒。"
#: htdocs/luci-static/resources/view/fchomo/global.js:430
#: htdocs/luci-static/resources/view/fchomo/global.js:515
#: htdocs/luci-static/resources/view/fchomo/node.js:280
#: htdocs/luci-static/resources/view/fchomo/node.js:1533
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
#: htdocs/luci-static/resources/view/fchomo/node.js:1563
#: htdocs/luci-static/resources/view/fchomo/node.js:1701
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:383
msgid "In seconds. <code>%s</code> will be used if empty."
msgstr "單位為秒。留空則使用 <code>%s</code>。"
@ -1525,7 +1528,7 @@ msgstr "引入所有代理節點。"
msgid "Info"
msgstr "訊息"
#: htdocs/luci-static/resources/view/fchomo/node.js:1466
#: htdocs/luci-static/resources/view/fchomo/node.js:1496
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:279
msgid "Inline"
msgstr "內嵌"
@ -1562,14 +1565,14 @@ msgstr "密鑰對"
#: htdocs/luci-static/resources/view/fchomo/client.js:1719
#: htdocs/luci-static/resources/view/fchomo/client.js:1775
#: htdocs/luci-static/resources/view/fchomo/node.js:229
#: htdocs/luci-static/resources/view/fchomo/node.js:1454
#: htdocs/luci-static/resources/view/fchomo/node.js:1739
#: htdocs/luci-static/resources/view/fchomo/node.js:1484
#: htdocs/luci-static/resources/view/fchomo/node.js:1769
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:259
msgid "Label"
msgstr "標籤"
#: htdocs/luci-static/resources/view/fchomo/client.js:1114
#: htdocs/luci-static/resources/view/fchomo/node.js:1684
#: htdocs/luci-static/resources/view/fchomo/node.js:1714
msgid "Lazy"
msgstr "懶惰狀態"
@ -1620,7 +1623,7 @@ msgstr "監聽埠"
msgid "Load balance"
msgstr "負載均衡"
#: htdocs/luci-static/resources/view/fchomo/node.js:1464
#: htdocs/luci-static/resources/view/fchomo/node.js:1494
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:277
msgid "Local"
msgstr "本地"
@ -1654,9 +1657,11 @@ msgstr "日誌等級"
#: htdocs/luci-static/resources/fchomo/listeners.js:324
#: htdocs/luci-static/resources/fchomo/listeners.js:325
#: htdocs/luci-static/resources/fchomo/listeners.js:326
#: htdocs/luci-static/resources/fchomo/listeners.js:331
#: htdocs/luci-static/resources/view/fchomo/node.js:409
#: htdocs/luci-static/resources/view/fchomo/node.js:410
#: htdocs/luci-static/resources/view/fchomo/node.js:411
#: htdocs/luci-static/resources/view/fchomo/node.js:416
msgid "Low-entropy data stream"
msgstr "低熵資料流"
@ -1706,7 +1711,7 @@ msgstr "匹配回應通過 ipcidr</br>"
msgid "Match rule set."
msgstr "匹配規則集。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1210
#: htdocs/luci-static/resources/view/fchomo/node.js:1224
msgid "Max Early Data"
msgstr "前置數據最大值"
@ -1733,12 +1738,12 @@ msgstr "限制打開流的數量"
msgid "Max upload speed"
msgstr "最大上傳速度"
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1277
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Maximum connections"
msgstr "最大連線數"
#: htdocs/luci-static/resources/view/fchomo/node.js:1261
#: htdocs/luci-static/resources/view/fchomo/node.js:1291
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"<br/>Conflict with <code>%s</code> and <code>%s</code>."
@ -1758,7 +1763,7 @@ msgid ""
"rate."
msgstr "最大填充率必須大於等于最小填充率。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1260
#: htdocs/luci-static/resources/view/fchomo/node.js:1290
msgid "Maximum streams"
msgstr "最大流數量"
@ -1783,7 +1788,7 @@ msgstr "Mihomo 服務端"
msgid "Min of idle sessions to keep"
msgstr "要保留的最少閒置會話數"
#: htdocs/luci-static/resources/view/fchomo/node.js:1254
#: htdocs/luci-static/resources/view/fchomo/node.js:1284
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在開啟新連線之前,連線中的最小多路復用流數量。"
@ -1793,8 +1798,8 @@ msgstr "在開啟新連線之前,連線中的最小多路復用流數量。"
msgid "Minimum padding rate"
msgstr "最小填充率"
#: htdocs/luci-static/resources/view/fchomo/node.js:1253
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
#: htdocs/luci-static/resources/view/fchomo/node.js:1283
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
msgid "Minimum streams"
msgstr "最小流數量"
@ -1811,7 +1816,7 @@ msgstr "混合 <code>系統</code> TCP 堆栈和 <code>gVisor</code> UDP 堆栈
msgid "Mixed port"
msgstr "混合連接埠"
#: htdocs/luci-static/resources/view/fchomo/node.js:1233
#: htdocs/luci-static/resources/view/fchomo/node.js:1263
msgid "Multiplex"
msgstr "多路復用"
@ -1833,7 +1838,7 @@ msgstr "NOT"
msgid "Name of the Proxy group as outbound."
msgstr "出站代理組的名稱。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1539
#: htdocs/luci-static/resources/view/fchomo/node.js:1569
msgid "Name of the Proxy group to download provider."
msgstr "用於下載供應商訂閱的代理組名稱。"
@ -1865,8 +1870,12 @@ msgstr "無需認證的 IP 範圍"
msgid "No add'l params"
msgstr "無附加參數"
#: htdocs/luci-static/resources/view/fchomo/node.js:1252
msgid "No gRPC header"
msgstr "無 gRPC header"
#: htdocs/luci-static/resources/view/fchomo/client.js:1115
#: htdocs/luci-static/resources/view/fchomo/node.js:1685
#: htdocs/luci-static/resources/view/fchomo/node.js:1715
msgid "No testing is performed when this provider node is not in use."
msgstr "當此供應商的節點未使用時,不執行任何測試。"
@ -1885,17 +1894,17 @@ msgid "Node"
msgstr "節點"
#: htdocs/luci-static/resources/view/fchomo/client.js:1160
#: htdocs/luci-static/resources/view/fchomo/node.js:1705
#: htdocs/luci-static/resources/view/fchomo/node.js:1735
msgid "Node exclude filter"
msgstr "排除節點"
#: htdocs/luci-static/resources/view/fchomo/client.js:1165
#: htdocs/luci-static/resources/view/fchomo/node.js:1712
#: htdocs/luci-static/resources/view/fchomo/node.js:1742
msgid "Node exclude type"
msgstr "排除節點類型"
#: htdocs/luci-static/resources/view/fchomo/client.js:1155
#: htdocs/luci-static/resources/view/fchomo/node.js:1699
#: htdocs/luci-static/resources/view/fchomo/node.js:1729
msgid "Node filter"
msgstr "過濾節點"
@ -1973,7 +1982,7 @@ msgid "Override destination"
msgstr "覆蓋目標位址"
#: htdocs/luci-static/resources/view/fchomo/client.js:1010
#: htdocs/luci-static/resources/view/fchomo/node.js:1450
#: htdocs/luci-static/resources/view/fchomo/node.js:1480
msgid "Override fields"
msgstr "覆蓋欄位"
@ -2001,11 +2010,11 @@ msgstr "覆蓋用於 HTTPS 記錄查詢的網域。"
msgid "Overview"
msgstr "概覽"
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
msgid "POST"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1168
#: htdocs/luci-static/resources/view/fchomo/node.js:1182
msgid "PUT"
msgstr ""
@ -2013,6 +2022,10 @@ msgstr ""
msgid "Packet encoding"
msgstr "數據包編碼"
#: htdocs/luci-static/resources/view/fchomo/node.js:1257
msgid "Padding bytes"
msgstr "填充位元組"
#: htdocs/luci-static/resources/fchomo/listeners.js:458
msgid "Padding scheme"
msgstr "填充方案"
@ -2032,7 +2045,7 @@ msgid "Password"
msgstr "密碼"
#: htdocs/luci-static/resources/fchomo/listeners.js:587
#: htdocs/luci-static/resources/view/fchomo/node.js:1514
#: htdocs/luci-static/resources/view/fchomo/node.js:1544
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:364
msgid "Payload"
msgstr "Payload"
@ -2074,8 +2087,8 @@ msgid ""
"standards."
msgstr "連結格式標準請參考 <a href=\"%s\" target=\"_blank\">%s</a>。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1487
#: htdocs/luci-static/resources/view/fchomo/node.js:1513
#: htdocs/luci-static/resources/view/fchomo/node.js:1517
#: htdocs/luci-static/resources/view/fchomo/node.js:1543
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:337
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:363
msgid ""
@ -2090,7 +2103,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:1445
#: htdocs/luci-static/resources/view/fchomo/client.js:1697
#: htdocs/luci-static/resources/view/fchomo/client.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1387
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:154
msgid "Please type <code>%s</code> fields of mihomo config.</br>"
msgstr "請輸入 mihomo 配置的 <code>%s</code> 欄位。</br>"
@ -2157,10 +2170,10 @@ msgstr "防止某些情況下的 ICMP 環回問題。 Ping 不會顯示實際延
#: htdocs/luci-static/resources/view/fchomo/global.js:736
#: htdocs/luci-static/resources/view/fchomo/global.js:753
#: htdocs/luci-static/resources/view/fchomo/node.js:1321
#: htdocs/luci-static/resources/view/fchomo/node.js:1327
#: htdocs/luci-static/resources/view/fchomo/node.js:1634
#: htdocs/luci-static/resources/view/fchomo/node.js:1641
#: htdocs/luci-static/resources/view/fchomo/node.js:1351
#: htdocs/luci-static/resources/view/fchomo/node.js:1357
#: htdocs/luci-static/resources/view/fchomo/node.js:1664
#: htdocs/luci-static/resources/view/fchomo/node.js:1671
msgid "Priority: Proxy Node > Global."
msgstr "優先權: 代理節點 > 全域。"
@ -2182,7 +2195,7 @@ msgid "Process matching mode"
msgstr "進程匹配模式"
#: htdocs/luci-static/resources/view/fchomo/global.js:684
#: htdocs/luci-static/resources/view/fchomo/node.js:1239
#: htdocs/luci-static/resources/view/fchomo/node.js:1269
msgid "Protocol"
msgstr "協議"
@ -2197,13 +2210,13 @@ msgid ""
msgstr "協議參數。 如啟用會隨機浪費流量(在 v2ray 中預設為啟用且無法停用)。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1055
#: htdocs/luci-static/resources/view/fchomo/node.js:1340
#: htdocs/luci-static/resources/view/fchomo/node.js:1349
#: htdocs/luci-static/resources/view/fchomo/node.js:1750
#: htdocs/luci-static/resources/view/fchomo/node.js:1370
#: htdocs/luci-static/resources/view/fchomo/node.js:1379
#: htdocs/luci-static/resources/view/fchomo/node.js:1780
msgid "Provider"
msgstr "供應商"
#: htdocs/luci-static/resources/view/fchomo/node.js:1520
#: htdocs/luci-static/resources/view/fchomo/node.js:1550
msgid "Provider URL"
msgstr "供應商訂閱 URL"
@ -2226,19 +2239,19 @@ msgid "Proxy MAC-s"
msgstr "代理 MAC 位址"
#: htdocs/luci-static/resources/view/fchomo/node.js:208
#: htdocs/luci-static/resources/view/fchomo/node.js:1749
#: htdocs/luci-static/resources/view/fchomo/node.js:1779
msgid "Proxy Node"
msgstr "代理節點"
#: htdocs/luci-static/resources/view/fchomo/node.js:1725
#: htdocs/luci-static/resources/view/fchomo/node.js:1734
#: htdocs/luci-static/resources/view/fchomo/node.js:1755
#: htdocs/luci-static/resources/view/fchomo/node.js:1764
msgid "Proxy chain"
msgstr "代理鏈"
#: htdocs/luci-static/resources/fchomo/listeners.js:530
#: htdocs/luci-static/resources/view/fchomo/client.js:783
#: htdocs/luci-static/resources/view/fchomo/client.js:1543
#: htdocs/luci-static/resources/view/fchomo/node.js:1538
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:388
msgid "Proxy group"
msgstr "代理組"
@ -2345,7 +2358,7 @@ msgstr "重載"
msgid "Reload All"
msgstr "重載所有"
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/node.js:1495
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:278
msgid "Remote"
msgstr "遠端"
@ -2360,18 +2373,18 @@ msgid "Remove"
msgstr "移除"
#: htdocs/luci-static/resources/fchomo.js:1354
#: htdocs/luci-static/resources/view/fchomo/node.js:1441
#: htdocs/luci-static/resources/view/fchomo/node.js:1443
#: htdocs/luci-static/resources/view/fchomo/node.js:1471
#: htdocs/luci-static/resources/view/fchomo/node.js:1473
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:251
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:253
msgid "Remove idles"
msgstr "移除閒置"
#: htdocs/luci-static/resources/view/fchomo/node.js:1567
#: htdocs/luci-static/resources/view/fchomo/node.js:1597
msgid "Replace name"
msgstr "名稱替換"
#: htdocs/luci-static/resources/view/fchomo/node.js:1568
#: htdocs/luci-static/resources/view/fchomo/node.js:1598
msgid "Replace node name."
msgstr "替換節點名稱"
@ -2380,8 +2393,8 @@ msgid "Request"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:996
#: htdocs/luci-static/resources/view/fchomo/node.js:1174
#: htdocs/luci-static/resources/view/fchomo/node.js:1181
#: htdocs/luci-static/resources/view/fchomo/node.js:1188
#: htdocs/luci-static/resources/view/fchomo/node.js:1195
msgid "Request path"
msgstr "請求路徑"
@ -2446,8 +2459,8 @@ msgstr "路由 DSCP"
msgid "Routing GFW"
msgstr "路由 GFW 流量"
#: htdocs/luci-static/resources/view/fchomo/node.js:1326
#: htdocs/luci-static/resources/view/fchomo/node.js:1640
#: htdocs/luci-static/resources/view/fchomo/node.js:1356
#: htdocs/luci-static/resources/view/fchomo/node.js:1670
msgid "Routing mark"
msgstr "路由標記"
@ -2585,7 +2598,8 @@ msgstr "服務端"
msgid "Server address"
msgstr "伺服器位址"
#: htdocs/luci-static/resources/view/fchomo/node.js:1159
#: htdocs/luci-static/resources/view/fchomo/node.js:1167
#: htdocs/luci-static/resources/view/fchomo/node.js:1173
msgid "Server hostname"
msgstr "伺服器主機名稱"
@ -2617,7 +2631,7 @@ msgstr "Shadowsocks 加密"
msgid "Shadowsocks password"
msgstr "Shadowsocks 密碼"
#: htdocs/luci-static/resources/view/fchomo/node.js:1281
#: htdocs/luci-static/resources/view/fchomo/node.js:1311
msgid "Show connections in the dashboard for breaking connections easier."
msgstr "在面板中顯示連線以便於打斷連線。"
@ -2629,14 +2643,14 @@ msgstr "靜音"
msgid "Simple round-robin all nodes"
msgstr "簡單輪替所有節點"
#: htdocs/luci-static/resources/view/fchomo/node.js:1526
#: htdocs/luci-static/resources/view/fchomo/node.js:1556
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:376
msgid "Size limit"
msgstr "大小限制"
#: htdocs/luci-static/resources/view/fchomo/client.js:1576
#: htdocs/luci-static/resources/view/fchomo/node.js:1037
#: htdocs/luci-static/resources/view/fchomo/node.js:1618
#: htdocs/luci-static/resources/view/fchomo/node.js:1648
msgid "Skip cert verify"
msgstr "跳過憑證驗證"
@ -2764,7 +2778,7 @@ msgstr "TCP"
msgid "TCP concurrency"
msgstr "TCP 併發"
#: htdocs/luci-static/resources/view/fchomo/node.js:1274
#: htdocs/luci-static/resources/view/fchomo/node.js:1304
msgid "TCP only"
msgstr "僅 TCP"
@ -2790,8 +2804,8 @@ msgstr "TCP-Keep-Alive 間隔"
msgid "TCP/UDP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1305
#: htdocs/luci-static/resources/view/fchomo/node.js:1585
#: htdocs/luci-static/resources/view/fchomo/node.js:1335
#: htdocs/luci-static/resources/view/fchomo/node.js:1615
msgid "TFO"
msgstr "TCP 快速開啟 (TFO)"
@ -2903,7 +2917,7 @@ msgstr "此 ECH 參數需要加入到網域的 HTTPS 記錄中。"
#: htdocs/luci-static/resources/view/fchomo/client.js:1579
#: htdocs/luci-static/resources/view/fchomo/node.js:1040
#: htdocs/luci-static/resources/view/fchomo/node.js:1621
#: htdocs/luci-static/resources/view/fchomo/node.js:1651
msgid ""
"This is <strong>DANGEROUS</strong>, your traffic is almost like "
"<strong>PLAIN TEXT</strong>! Use at your own risk!"
@ -2947,11 +2961,11 @@ msgstr "Tproxy 連接埠"
msgid "Traffic pattern"
msgstr "流量模式"
#: htdocs/luci-static/resources/view/fchomo/node.js:1777
#: htdocs/luci-static/resources/view/fchomo/node.js:1807
msgid "Transit proxy group"
msgstr "中轉代理組"
#: htdocs/luci-static/resources/view/fchomo/node.js:1783
#: htdocs/luci-static/resources/view/fchomo/node.js:1813
msgid "Transit proxy node"
msgstr "中轉代理節點"
@ -3013,8 +3027,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/client.js:842
#: htdocs/luci-static/resources/view/fchomo/client.js:1028
#: htdocs/luci-static/resources/view/fchomo/node.js:238
#: htdocs/luci-static/resources/view/fchomo/node.js:1463
#: htdocs/luci-static/resources/view/fchomo/node.js:1748
#: htdocs/luci-static/resources/view/fchomo/node.js:1493
#: htdocs/luci-static/resources/view/fchomo/node.js:1778
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:276
msgid "Type"
msgstr "類型"
@ -3030,7 +3044,7 @@ msgstr "類型"
#: htdocs/luci-static/resources/view/fchomo/client.js:588
#: htdocs/luci-static/resources/view/fchomo/client.js:678
#: htdocs/luci-static/resources/view/fchomo/node.js:865
#: htdocs/luci-static/resources/view/fchomo/node.js:1595
#: htdocs/luci-static/resources/view/fchomo/node.js:1625
msgid "UDP"
msgstr "UDP"
@ -3099,7 +3113,7 @@ msgid "Unknown error: %s"
msgstr "未知錯誤:%s"
#: htdocs/luci-static/resources/view/fchomo/node.js:870
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
#: htdocs/luci-static/resources/view/fchomo/node.js:1630
msgid "UoT"
msgstr "UDP over TCP (UoT)"
@ -3107,16 +3121,16 @@ msgstr "UDP over TCP (UoT)"
msgid "Update failed."
msgstr "更新失敗。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1532
#: htdocs/luci-static/resources/view/fchomo/node.js:1562
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:382
msgid "Update interval"
msgstr "更新間隔"
#: htdocs/luci-static/resources/view/fchomo/node.js:1292
#: htdocs/luci-static/resources/view/fchomo/node.js:1322
msgid "Upload bandwidth"
msgstr "上傳頻寬"
#: htdocs/luci-static/resources/view/fchomo/node.js:1293
#: htdocs/luci-static/resources/view/fchomo/node.js:1323
msgid "Upload bandwidth in Mbps."
msgstr "上傳頻寬單位Mbps。"
@ -3181,11 +3195,11 @@ msgstr "使用者名稱"
msgid "Users filter mode"
msgstr "使用者過濾模式"
#: htdocs/luci-static/resources/view/fchomo/node.js:1222
#: htdocs/luci-static/resources/view/fchomo/node.js:1236
msgid "V2ray HTTPUpgrade"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1227
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
msgid "V2ray HTTPUpgrade fast open"
msgstr ""
@ -3199,8 +3213,8 @@ msgstr ""
msgid "VMess"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1469
#: htdocs/luci-static/resources/view/fchomo/node.js:1754
#: htdocs/luci-static/resources/view/fchomo/node.js:1499
#: htdocs/luci-static/resources/view/fchomo/node.js:1784
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:319
msgid "Value"
msgstr "可視化值"
@ -3240,7 +3254,8 @@ msgstr "警告"
#: htdocs/luci-static/resources/view/fchomo/node.js:489
#: htdocs/luci-static/resources/view/fchomo/node.js:1132
#: htdocs/luci-static/resources/view/fchomo/node.js:1143
#: htdocs/luci-static/resources/view/fchomo/node.js:1148
#: htdocs/luci-static/resources/view/fchomo/node.js:1150
#: htdocs/luci-static/resources/view/fchomo/node.js:1156
msgid "WebSocket"
msgstr ""
@ -3268,6 +3283,15 @@ msgstr "WireGuard 預先共用金鑰。"
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 編碼的私鑰。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1133
#: htdocs/luci-static/resources/view/fchomo/node.js:1151
msgid "XHTTP"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1246
msgid "XHTTP mode"
msgstr "XHTTP 模式"
#: htdocs/luci-static/resources/fchomo/listeners.js:609
msgid "XOR mode"
msgstr "XOR 模式"
@ -3341,7 +3365,7 @@ msgstr "decryption"
msgid "dnsmasq selects upstream on its own. (may affect CDN accuracy)"
msgstr "dnsmasq 自行選擇上游服務器。 (可能影響 CDN 準確性)"
#: htdocs/luci-static/resources/view/fchomo/node.js:1612
#: htdocs/luci-static/resources/view/fchomo/node.js:1642
msgid "down"
msgstr "Hysteria 下載速率"
@ -3361,20 +3385,21 @@ msgstr "false = 頻寬最佳化下行 true = 純 Sudoku 下行。"
#: htdocs/luci-static/resources/fchomo/listeners.js:984
#: htdocs/luci-static/resources/view/fchomo/node.js:1131
#: htdocs/luci-static/resources/view/fchomo/node.js:1142
#: htdocs/luci-static/resources/view/fchomo/node.js:1147
#: htdocs/luci-static/resources/view/fchomo/node.js:1149
#: htdocs/luci-static/resources/view/fchomo/node.js:1155
msgid "gRPC"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1198
#: htdocs/luci-static/resources/view/fchomo/node.js:1212
msgid "gRPC User-Agent"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1203
#: htdocs/luci-static/resources/view/fchomo/node.js:1217
msgid "gRPC ping interval"
msgstr "gRPC ping 間隔"
#: htdocs/luci-static/resources/fchomo/listeners.js:1003
#: htdocs/luci-static/resources/view/fchomo/node.js:1194
#: htdocs/luci-static/resources/view/fchomo/node.js:1208
msgid "gRPC service name"
msgstr "gRPC 服務名稱"
@ -3382,7 +3407,7 @@ msgstr "gRPC 服務名稱"
msgid "gVisor"
msgstr "gVisor"
#: htdocs/luci-static/resources/view/fchomo/node.js:1243
#: htdocs/luci-static/resources/view/fchomo/node.js:1273
msgid "h2mux"
msgstr ""
@ -3400,7 +3425,7 @@ msgstr "metacubexd"
#: htdocs/luci-static/resources/view/fchomo/client.js:1480
#: htdocs/luci-static/resources/view/fchomo/client.js:1711
#: htdocs/luci-static/resources/view/fchomo/client.js:1767
#: htdocs/luci-static/resources/view/fchomo/node.js:1435
#: htdocs/luci-static/resources/view/fchomo/node.js:1465
#: htdocs/luci-static/resources/view/fchomo/ruleset.js:239
msgid "mihomo config"
msgstr "mihomo 配置"
@ -3409,8 +3434,8 @@ msgstr "mihomo 配置"
msgid "mlkem768x25519plus"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1309
#: htdocs/luci-static/resources/view/fchomo/node.js:1590
#: htdocs/luci-static/resources/view/fchomo/node.js:1339
#: htdocs/luci-static/resources/view/fchomo/node.js:1620
msgid "mpTCP"
msgstr "多路徑 TCP (mpTCP)"
@ -3466,7 +3491,7 @@ msgstr "僅當 %s 為 %s 時適用。"
msgid "only applies when %s is not %s."
msgstr "僅當 %s 不為 %s 時適用。"
#: htdocs/luci-static/resources/view/fchomo/node.js:1570
#: htdocs/luci-static/resources/view/fchomo/node.js:1600
msgid "override.proxy-name"
msgstr ""
@ -3474,6 +3499,10 @@ msgstr ""
msgid "packet addr (v2ray-core v5+)"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1248
msgid "packet-up"
msgstr ""
#: htdocs/luci-static/resources/fchomo/listeners.js:391
#: htdocs/luci-static/resources/view/fchomo/node.js:458
msgid "poll"
@ -3506,7 +3535,7 @@ msgstr "規則集"
msgid "shadow-tls"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:1241
#: htdocs/luci-static/resources/view/fchomo/node.js:1271
msgid "smux"
msgstr ""
@ -3519,6 +3548,10 @@ msgstr ""
msgid "src"
msgstr "src"
#: htdocs/luci-static/resources/view/fchomo/node.js:1247
msgid "stream-one"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:491
msgid "stream/poll/auto"
msgstr ""
@ -3543,7 +3576,7 @@ msgstr "獨立標識"
msgid "unique value"
msgstr "獨立值"
#: htdocs/luci-static/resources/view/fchomo/node.js:1606
#: htdocs/luci-static/resources/view/fchomo/node.js:1636
msgid "up"
msgstr "Hysteria 上傳速率"
@ -3619,7 +3652,7 @@ msgstr ""
msgid "yacd-meta"
msgstr "yacd-meta"
#: htdocs/luci-static/resources/view/fchomo/node.js:1242
#: htdocs/luci-static/resources/view/fchomo/node.js:1272
msgid "yamux"
msgstr ""

View File

@ -586,7 +586,7 @@ uci.foreach(uciconf, ucinode, (cfg) => {
encryption: cfg.vless_encryption === '1' ? cfg.vless_encryption_encryption : null,
/* TrustTunnel */
"health-check": strToBool(cfg.trusttunnel_health_check === '0' ? false : true),
"health-check": cfg.trusttunnel_health_check === '0' ? false : true,
quic: strToBool(cfg.trusttunnel_quic),
/* WireGuard */
@ -658,6 +658,14 @@ uci.foreach(uciconf, ucinode, (cfg) => {
"early-data-header-name": cfg.transport_ws_early_data_header,
"v2ray-http-upgrade": strToBool(cfg.transport_ws_v2ray_http_upgrade),
"v2ray-http-upgrade-fast-open": strToBool(cfg.transport_ws_v2ray_http_upgrade_fast_open)
} : null,
"xhttp-opts": cfg.transport_type === 'xhttp' ? {
host: cfg.transport_host,
path: cfg.transport_path || '/',
headers: cfg.transport_http_headers ? json(cfg.transport_http_headers) : null,
mode: cfg.transport_xhttp_mode,
"no-grpc-header": strToBool(cfg.transport_xhttp_no_grpc_header),
"x-padding-bytes": cfg.transport_xhttp_x_padding_bytes
} : null
} : {}),

View File

@ -10,6 +10,6 @@ LUCI_PKGARCH:=all
LUCI_DEPENDS:=+appfilter +kmod-oaf +luci-compat
PKG_NAME:=luci-app-oaf
PKG_VERSION:=6.1.4
PKG_RELEASE:=1
PKG_RELEASE:=2
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -130,7 +130,7 @@
function validateLanIfname(lanIfname) {
const regex = /^[a-zA-Z0-9-]{2,8}$/;
const regex = /^[a-zA-Z0-9.-]{2,8}$/;
return regex.test(lanIfname);
}
@ -140,7 +140,7 @@
const disableHnatSwitch = document.getElementById('disableHnatSwitch').checked;
if (!validateLanIfname(lanIfname)) {
alert('<%:Invalid LAN interface name. Please ensure it is no more than 8 characters long and contains only letters, numbers, and -.%>');
alert('<%:Invalid LAN interface name. Please ensure it is no more than 8 characters long and contains only letters, numbers, dot, and -.%>');
return;
}

View File

@ -81,10 +81,111 @@ o = s:option(Value, "remarks", translate("Remarks"))
o.default = arg[1]
o.rmempty = false
o = s:option(ListValue, "interface", translate("Source Interface"))
o = s:option(Value, "interface", translate("Source Interface"))
o:value("", translate("All"))
local wa = require "luci.tools.webadmin"
wa.cbi_add_networks(o)
-- Populate with actual kernel network devices instead of UCI interface names,
-- because the backend (nftables iifname / iptables -i) matches kernel device names.
do
local nfs = require "nixio.fs"
local _cursor = require("luci.model.uci").cursor()
local _sysnet = "/sys/class/net/"
-- Map UCI interface names to their device names and vice versa
local _iface_to_dev = {}
local _dev_to_ifaces = {}
local _iface_proto = {}
_cursor:foreach("network", "interface", function(sec)
local name = sec[".name"]
if name ~= "loopback" then
_iface_proto[name] = sec.proto
if sec.device then
_iface_to_dev[name] = sec.device
_dev_to_ifaces[sec.device] = _dev_to_ifaces[sec.device] or {}
table.insert(_dev_to_ifaces[sec.device], name)
end
end
end)
-- Classify device type using sysfs attributes
local function classify_sysfs(dev)
if nfs.stat(_sysnet .. dev .. "/bridge", "type") == "dir" then
return translate("Bridge")
elseif nfs.stat(_sysnet .. dev .. "/wireless", "type") == "dir" then
return translate("Wireless Adapter")
elseif dev:match("^tun") or dev:match("^tap") or dev:match("^wg") or dev:match("^ppp") then
return translate("Tunnel Interface")
else
return translate("Ethernet Adapter")
end
end
-- Classify offline UCI interfaces by config hints
local function classify_uci(dev_name, proto)
if dev_name and dev_name:match("^br%-") then
return translate("Bridge")
elseif proto == "wireguard" or proto == "pppoe" or proto == "pptp" or proto == "l2tp" then
return translate("Tunnel Interface")
else
return translate("Interface")
end
end
local _seen = {}
local _devices = {}
-- Active kernel devices from /sys/class/net/.
-- Skip bridge member ports (/master) and DSA master devices (/dsa) because
-- nftables iifname matches the parent bridge for routed traffic, not
-- individual member ports. Also skip internal virtual devices.
local _iter = nfs.dir(_sysnet)
if _iter then
for dev in _iter do
if dev ~= "lo"
and not dev:match("^veth")
and not dev:match("^ifb")
and not dev:match("^gre")
and not dev:match("^sit")
and not dev:match("^ip6tnl")
and not dev:match("^erspan")
and not nfs.stat(_sysnet .. dev .. "/master", "type")
and not nfs.stat(_sysnet .. dev .. "/dsa", "type")
then
local dtype = classify_sysfs(dev)
local label = dtype .. ': "' .. dev .. '"'
if _dev_to_ifaces[dev] then
label = label .. " (" .. table.concat(_dev_to_ifaces[dev], ", ") .. ")"
end
_devices[#_devices + 1] = { name = dev, label = label, sort = dtype .. ":" .. dev }
_seen[dev] = true
end
end
end
-- UCI interfaces whose device does not currently exist (down tunnels, VPNs, etc.).
-- Stored by UCI name since the kernel device is not available yet.
-- Dedup by device: if two interfaces share a device, only one is shown.
for iface, dev in pairs(_iface_to_dev) do
if not _seen[dev] then
local dtype = classify_uci(dev, _iface_proto[iface])
local label = dtype .. ': "' .. iface .. '"'
-- Sort offline entries after active devices
_devices[#_devices + 1] = { name = iface, label = label, sort = "zzz:" .. iface }
_seen[dev] = true
end
end
table.sort(_devices, function(a, b) return a.sort < b.sort end)
for _, d in ipairs(_devices) do
o:value(d.name, d.label)
end
end
o.validate = function(self, value, section)
if value == "" or value:match("^[a-zA-Z0-9][a-zA-Z0-9%.%_%-]*$") then
return value
end
return nil, translate("Invalid interface name")
end
local mac_t = {}
sys.net.mac_hints(function(e, t)

View File

@ -63,7 +63,7 @@ function gen_config(var)
local config = {
server = server,
transport = {
type = node.protocol or "udp",
type = "udp",
udp = {
hopInterval = (function()
local HopIntervalStr = tostring(node.hysteria2_hop_interval or "30s")

View File

@ -1249,6 +1249,21 @@ msgstr "IP 范围"
msgid "Source Interface"
msgstr "源接口"
msgid "Bridge"
msgstr "网桥"
msgid "Wireless Adapter"
msgstr "无线适配器"
msgid "Ethernet Adapter"
msgstr "以太网适配器"
msgid "Tunnel Interface"
msgstr "隧道接口"
msgid "Invalid interface name"
msgstr "无效的接口名称"
msgid "Use Interface With ACLs"
msgstr "使用接口控制"

View File

@ -285,6 +285,10 @@ load_acl() {
local gateway device
network_get_gateway gateway "${interface}"
network_get_device device "${interface}"
# network_get_device returns empty for non-UP interfaces (e.g. auto='0').
# Try ubus directly, then check if the name is a kernel device.
[ -z "${device}" ] && device=$(ubus call "network.interface.${interface}" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/${interface}" ] && device="${interface}"
[ -z "${device}" ] && device="${interface}"
_ipt_source="-i ${device} "
msg="源接口【${device}】,"

View File

@ -326,6 +326,10 @@ load_acl() {
local gateway device
network_get_gateway gateway "${interface}"
network_get_device device "${interface}"
# network_get_device returns empty for non-UP interfaces (e.g. auto='0').
# Try ubus directly, then check if the name is a kernel device.
[ -z "${device}" ] && device=$(ubus call "network.interface.${interface}" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/${interface}" ] && device="${interface}"
[ -z "${device}" ] && device="${interface}"
_ipt_source="iifname ${device} "
msg="源接口【${device}】,"

View File

@ -395,6 +395,8 @@ add_ip2route() {
local gateway device
network_get_gateway gateway "$2"
network_get_device device "$2"
[ -z "${device}" ] && device=$(ubus call "network.interface.$2" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/$2" ] && device="$2"
[ -z "${device}" ] && device="$2"
if [ -n "${gateway}" ]; then

View File

@ -76,10 +76,111 @@ o = s:option(Value, "remarks", translate("Remarks"))
o.default = arg[1]
o.rmempty = false
o = s:option(ListValue, "interface", translate("Source Interface"))
o = s:option(Value, "interface", translate("Source Interface"))
o:value("", translate("All"))
local wa = require "luci.tools.webadmin"
wa.cbi_add_networks(o)
-- Populate with actual kernel network devices instead of UCI interface names,
-- because the backend (nftables iifname / iptables -i) matches kernel device names.
do
local nfs = require "nixio.fs"
local _cursor = require("luci.model.uci").cursor()
local _sysnet = "/sys/class/net/"
-- Map UCI interface names to their device names and vice versa
local _iface_to_dev = {}
local _dev_to_ifaces = {}
local _iface_proto = {}
_cursor:foreach("network", "interface", function(sec)
local name = sec[".name"]
if name ~= "loopback" then
_iface_proto[name] = sec.proto
if sec.device then
_iface_to_dev[name] = sec.device
_dev_to_ifaces[sec.device] = _dev_to_ifaces[sec.device] or {}
table.insert(_dev_to_ifaces[sec.device], name)
end
end
end)
-- Classify device type using sysfs attributes
local function classify_sysfs(dev)
if nfs.stat(_sysnet .. dev .. "/bridge", "type") == "dir" then
return translate("Bridge")
elseif nfs.stat(_sysnet .. dev .. "/wireless", "type") == "dir" then
return translate("Wireless Adapter")
elseif dev:match("^tun") or dev:match("^tap") or dev:match("^wg") or dev:match("^ppp") then
return translate("Tunnel Interface")
else
return translate("Ethernet Adapter")
end
end
-- Classify offline UCI interfaces by config hints
local function classify_uci(dev_name, proto)
if dev_name and dev_name:match("^br%-") then
return translate("Bridge")
elseif proto == "wireguard" or proto == "pppoe" or proto == "pptp" or proto == "l2tp" then
return translate("Tunnel Interface")
else
return translate("Interface")
end
end
local _seen = {}
local _devices = {}
-- Active kernel devices from /sys/class/net/.
-- Skip bridge member ports (/master) and DSA master devices (/dsa) because
-- nftables iifname matches the parent bridge for routed traffic, not
-- individual member ports. Also skip internal virtual devices.
local _iter = nfs.dir(_sysnet)
if _iter then
for dev in _iter do
if dev ~= "lo"
and not dev:match("^veth")
and not dev:match("^ifb")
and not dev:match("^gre")
and not dev:match("^sit")
and not dev:match("^ip6tnl")
and not dev:match("^erspan")
and not nfs.stat(_sysnet .. dev .. "/master", "type")
and not nfs.stat(_sysnet .. dev .. "/dsa", "type")
then
local dtype = classify_sysfs(dev)
local label = dtype .. ': "' .. dev .. '"'
if _dev_to_ifaces[dev] then
label = label .. " (" .. table.concat(_dev_to_ifaces[dev], ", ") .. ")"
end
_devices[#_devices + 1] = { name = dev, label = label, sort = dtype .. ":" .. dev }
_seen[dev] = true
end
end
end
-- UCI interfaces whose device does not currently exist (down tunnels, VPNs, etc.).
-- Stored by UCI name since the kernel device is not available yet.
-- Dedup by device: if two interfaces share a device, only one is shown.
for iface, dev in pairs(_iface_to_dev) do
if not _seen[dev] then
local dtype = classify_uci(dev, _iface_proto[iface])
local label = dtype .. ': "' .. iface .. '"'
-- Sort offline entries after active devices
_devices[#_devices + 1] = { name = iface, label = label, sort = "zzz:" .. iface }
_seen[dev] = true
end
end
table.sort(_devices, function(a, b) return a.sort < b.sort end)
for _, d in ipairs(_devices) do
o:value(d.name, d.label)
end
end
o.validate = function(self, value, section)
if value == "" or value:match("^[a-zA-Z0-9][a-zA-Z0-9%.%_%-]*$") then
return value
end
return nil, translate("Invalid interface name")
end
local mac_t = {}
sys.net.mac_hints(function(e, t)

View File

@ -60,7 +60,7 @@ function gen_config(var)
local config = {
server = server,
transport = {
type = node.protocol or "udp",
type = "udp",
udp = {
hopInterval = (function()
local HopIntervalStr = tostring(node.hysteria2_hop_interval or "30s")

View File

@ -1101,6 +1101,21 @@ msgstr "محدوده IP"
msgid "Source Interface"
msgstr "رابط منبع"
msgid "Bridge"
msgstr "پل شبکه"
msgid "Wireless Adapter"
msgstr "آداپتور بی‌سیم"
msgid "Ethernet Adapter"
msgstr "آداپتور اترنت"
msgid "Tunnel Interface"
msgstr "رابط تونل"
msgid "Invalid interface name"
msgstr "نام رابط نامعتبر"
msgid "Use Interface With ACLs"
msgstr "استفاده از رابط با ACLها"

View File

@ -1100,7 +1100,22 @@ msgid "IP range"
msgstr "Диапазон IP"
msgid "Source Interface"
msgstr "Исходящий интерфейс"
msgstr "Интерфейс источника"
msgid "Bridge"
msgstr "Мост"
msgid "Wireless Adapter"
msgstr "Беспроводной адаптер"
msgid "Ethernet Adapter"
msgstr "Ethernet-адаптер"
msgid "Tunnel Interface"
msgstr "Туннельный интерфейс"
msgid "Invalid interface name"
msgstr "Недопустимое имя интерфейса"
msgid "Use Interface With ACLs"
msgstr "Применять правила к интерфейсу"

View File

@ -1093,6 +1093,21 @@ msgstr "IP 范围"
msgid "Source Interface"
msgstr "源接口"
msgid "Bridge"
msgstr "网桥"
msgid "Wireless Adapter"
msgstr "无线适配器"
msgid "Ethernet Adapter"
msgstr "以太网适配器"
msgid "Tunnel Interface"
msgstr "隧道接口"
msgid "Invalid interface name"
msgstr "无效的接口名称"
msgid "Use Interface With ACLs"
msgstr "使用接口控制"

View File

@ -1093,6 +1093,21 @@ msgstr "IP 範圍"
msgid "Source Interface"
msgstr "源接口"
msgid "Bridge"
msgstr "網橋"
msgid "Wireless Adapter"
msgstr "無線適配器"
msgid "Ethernet Adapter"
msgstr "乙太網適配器"
msgid "Tunnel Interface"
msgstr "隧道介面"
msgid "Invalid interface name"
msgstr "無效的介面名稱"
msgid "Use Interface With ACLs"
msgstr "使用接口控制"

View File

@ -300,6 +300,10 @@ load_acl() {
local gateway device
network_get_gateway gateway "${interface}"
network_get_device device "${interface}"
# network_get_device returns empty for non-UP interfaces (e.g. auto='0').
# Try ubus directly, then check if the name is a kernel device.
[ -z "${device}" ] && device=$(ubus call "network.interface.${interface}" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/${interface}" ] && device="${interface}"
[ -z "${device}" ] && device="${interface}"
_ipt_source="-i ${device} "
msg=$(i18n "Source iface [%s]," "${device}")

View File

@ -338,6 +338,10 @@ load_acl() {
local gateway device
network_get_gateway gateway "${interface}"
network_get_device device "${interface}"
# network_get_device returns empty for non-UP interfaces (e.g. auto='0').
# Try ubus directly, then check if the name is a kernel device.
[ -z "${device}" ] && device=$(ubus call "network.interface.${interface}" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/${interface}" ] && device="${interface}"
[ -z "${device}" ] && device="${interface}"
_ipt_source="iifname ${device} "
msg=$(i18n "Source iface [%s]," "${device}")

View File

@ -348,6 +348,8 @@ add_ip2route() {
local gateway device
network_get_gateway gateway "$2"
network_get_device device "$2"
[ -z "${device}" ] && device=$(ubus call "network.interface.$2" status 2>/dev/null | jsonfilter -e '@.device' 2>/dev/null)
[ -z "${device}" ] && [ -d "/sys/class/net/$2" ] && device="$2"
[ -z "${device}" ] && device="$2"
if [ -n "${gateway}" ]; then

View File

@ -10,8 +10,8 @@ THEME_NAME:=alpha
THEME_TITLE:=Alpha
PKG_NAME:=luci-theme-$(THEME_NAME)
PKG_VERSION:=3.9.7_beta
PKG_RELEASE:=4
PKG_VERSION:=3.9.7_beta2
PKG_RELEASE:=5
include $(INCLUDE_DIR)/package.mk

View File

@ -82,7 +82,8 @@ return baseclass.extend({
url + "/" + children[i].name,
l
),
hasChildren = submenu.children.length;
hasChildren = submenu.children.length,
dataTitle = hasChildren ? children[i].title : _(children[i].title);
ul.appendChild(
E(
"li",
@ -104,9 +105,8 @@ return baseclass.extend({
click: hasChildren
? ui.createHandlerFn(this, "handleMenuExpand")
: null,
"data-title": hasChildren
? children[i].title
: _(children[i].title),
"data-title": dataTitle,
"data-name": children[i].name,
},
[_(children[i].title)]
),
@ -180,36 +180,31 @@ return baseclass.extend({
darkMask = document.querySelector(".darkMask"),
mainRight = document.querySelector(".main-right"),
mainLeft = document.querySelector(".main-left"),
open = mainLeft.style.transform === ""; // true if currently open
// If it's a resize event, we simulate that the sidebar was "open" so the logic below closes it for mobile, and opens it for desktop
open = mainLeft.style.transform === "";
if (ev.type == "resize") {
open = true;
open = true;
}
// Logics: 'open' true means we want to CLOSE it on mobile, but OPEN it on desktop.
// Actually, let's make it clearer: we toggle the state.
var willOpen = !open;
if (ev.type == "resize") {
willOpen = width > 1152;
willOpen = width > 1152;
}
if (width <= 1152) {
// Mobile behavior
mainLeft.style.width = ""; // Reset width
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "";
darkMask.style.visibility = willOpen ? "visible" : "";
darkMask.style.opacity = willOpen ? 1 : "";
mainRight.style.width = "";
mainLeft.style.width = "";
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "";
darkMask.style.visibility = willOpen ? "visible" : "";
darkMask.style.opacity = willOpen ? 1 : "";
mainRight.style.width = "";
} else {
// Desktop behavior
mainLeft.style.width = ""; // Reset width
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "hidden";
mainRight.style.width = willOpen ? "" : "100%";
darkMask.style.visibility = "";
darkMask.style.opacity = "";
mainLeft.style.width = "";
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "hidden";
mainRight.style.width = willOpen ? "" : "100%";
darkMask.style.visibility = "";
darkMask.style.opacity = "";
}
if (ev && ev.preventDefault) ev.preventDefault();
if (ev && ev.stopPropagation) ev.stopPropagation();

View File

@ -187,7 +187,7 @@
--main-menu-color: #202124;
--submenu-bg-hover: #4d5ca5;
--submenu-bg-hover-active: #09c;
--font-body: 'Inter-Regular';
--font-body: 'Inter-Regular', 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans CJK SC', sans-serif;
}
tt {
@ -372,8 +372,20 @@
height: 100%;
margin: 0;
padding: 0;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body.lang_zh-cn,
body.lang_zh_CN,
body.lang_zh-hans,
body.lang_zh_Hans,
body.lang_zh-tw,
body.lang_zh_TW {
font-family: 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans CJK SC', sans-serif;
}
select {
color: #555;
border: thin solid #ccc;
@ -838,9 +850,13 @@
}
.main>.main-left>.nav>li>[data-title="Log out"],
.main>.main-left>.nav>li>[data-title="Logout"] {
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-name="logout"] {
display: flex;
align-items: center;
justify-content: flex-start;
padding: 0.5rem 1rem;
padding-right: 3rem;
}
.main>.main-left>.nav>li a {
@ -850,7 +866,9 @@
.main>.main-left>.nav>li>[data-title="Log out"],
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="iStore"] {
.main>.main-left>.nav>li>[data-title="iStore"],
.main>.main-left>.nav>li>[data-name="logout"],
.main>.main-left>.nav>li>[data-name="istore"] {
font-size: 1rem;
color: #fff;
}
@ -866,6 +884,8 @@
.main>.main-left>.nav>.slide>.menu,
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="iStore"],
.main>.main-left>.nav>li>[data-name="logout"],
.main>.main-left>.nav>li>[data-name="istore"],
.main>.main-left>.nav>li>[data-title="Dashboard"] {
font-size: 1rem;
font-weight: 500;
@ -891,7 +911,8 @@
.main>.main-left>.nav>.slide>.menu.active::before {}
.main>.main-left>.nav>.slide>[data-title="Status"]:before {
.main>.main-left>.nav>.slide>[data-title="Status"]:before,
.main>.main-left>.nav>.slide>[data-name="status"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -901,7 +922,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="System"]:before {
.main>.main-left>.nav>.slide>[data-title="System"]:before,
.main>.main-left>.nav>.slide>[data-name="system"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -911,7 +933,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="Services"]:before {
.main>.main-left>.nav>.slide>[data-title="Services"]:before,
.main>.main-left>.nav>.slide>[data-name="services"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -921,7 +944,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="NAS"]:before {
.main>.main-left>.nav>.slide>[data-title="NAS"]:before,
.main>.main-left>.nav>.slide>[data-name="nas"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -931,7 +955,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="Modem"]:before {
.main>.main-left>.nav>.slide>[data-title="Modem"]:before,
.main>.main-left>.nav>.slide>[data-name="modem"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -941,7 +966,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="Network"]:before {
.main>.main-left>.nav>.slide>[data-title="Network"]:before,
.main>.main-left>.nav>.slide>[data-name="network"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -951,7 +977,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="VPN"]:before {
.main>.main-left>.nav>.slide>[data-title="VPN"]:before,
.main>.main-left>.nav>.slide>[data-name="vpn"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -961,7 +988,8 @@
background-size: 25px;
}
.main>.main-left>.nav>.slide>[data-title="Docker"]:before {
.main>.main-left>.nav>.slide>[data-title="Docker"]:before,
.main>.main-left>.nav>.slide>[data-name="docker"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -971,7 +999,8 @@
background-size: 25px;
}
.main>.main-left>.nav>li>[data-title="iStore"]:before {
.main>.main-left>.nav>li>[data-title="iStore"]:before,
.main>.main-left>.nav>li>[data-name="istore"]:before {
position: absolute;
right: 14px;
width: 25px;
@ -1057,12 +1086,15 @@
}
.main>.main-left>.nav>li>[data-title="Logout"]::before,
.main>.main-left>.nav>li>[data-title="Log out"]::before {
.main>.main-left>.nav>li>[data-title="Log out"]::before,
.main>.main-left>.nav>li>[data-name="logout"]::before {
position: absolute;
top: 50%;
right: 14px;
width: 25px;
height: 25px;
content: "";
transform: translateY(-50%);
background: url(./icon/logout.svg) no-repeat;
background-size: 25px;
}
@ -1089,7 +1121,9 @@
.main>.main-left>.nav>.slide>.slide-menu>li,
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="Log out"],
.main>.main-left>.nav>li>[data-title="iStore"] {
.main>.main-left>.nav>li>[data-title="iStore"],
.main>.main-left>.nav>li>[data-name="logout"],
.main>.main-left>.nav>li>[data-name="istore"] {
position: relative;
overflow: hidden;
transform: translate3d(0, 0, 0);
@ -1099,7 +1133,9 @@
.main>.main-left>.nav>.slide>.slide-menu>li::after,
.main>.main-left>.nav>li>[data-title="Logout"]::after,
.main>.main-left>.nav>li>[data-title="Log out"]::after,
.main>.main-left>.nav>li>[data-title="iStore"]::after {
.main>.main-left>.nav>li>[data-title="iStore"]::after,
.main>.main-left>.nav>li>[data-name="logout"]::after,
.main>.main-left>.nav>li>[data-name="istore"]::after {
position: absolute;
top: 0;
left: 0;
@ -1120,7 +1156,9 @@
.main>.main-left>.nav>.slide>.slide-menu>li:active::after,
.main>.main-left>.nav>li>[data-title="Logout"]:active::after,
.main>.main-left>.nav>li>[data-title="Log out"]:active::after,
.main>.main-left>.nav>li>[data-title="iStore"]:active::after {
.main>.main-left>.nav>li>[data-title="iStore"]:active::after,
.main>.main-left>.nav>li>[data-name="logout"]:active::after,
.main>.main-left>.nav>li>[data-name="istore"]:active::after {
transition: 0s;
transform: scale(0, 0);
opacity: 0.2;
@ -1361,6 +1399,15 @@
margin-left: 0.6rem;
}
.btn,
.cbi-button,
[data-page="admin-system-opkg"] div.btn {
display: inline-flex;
align-items: center;
justify-content: center;
line-height: 1.2;
}
.btn:hover,
.btn:focus,
.btn:active,
@ -2170,6 +2217,7 @@
.ifacebadge {
display: inline-flex;
align-items: center;
background: #ffffff33;
padding: 0.5rem 0.8rem;
border-radius: 10px;
@ -2178,14 +2226,14 @@
td>.ifacebadge,
.td>.ifacebadge {
font-size: 0.8rem;
background-color: #000000;
background-color: #222235b3;
border-radius: 10px;
}
.ifacebadge>em,
.ifacebadge>img {
display: inline-block;
align-self: flex-start;
align-self: center;
margin: 0 0.2rem;
}
@ -2213,7 +2261,7 @@
align-items: center;
flex: 1 1 auto;
min-width: 220px;
background-color: #11111d;
background-color: #222235b3;
margin: 0.5em 0.25em 0;
padding: 0.5em;
border-radius: 10px;
@ -2610,8 +2658,8 @@
}
[data-page="admin-system-opkg"] div.btn {
display: inline;
padding: 0.3rem 0.6rem;
padding: 0.3rem 0.9rem;
min-height: 2.3rem;
}
[data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
@ -2624,6 +2672,25 @@
margin: 2rem 2rem 1rem;
}
[data-page="admin-system-opkg"] #packages {
border-radius: 14px;
overflow: hidden;
background-color: rgba(16, 28, 45, 0.58);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
[data-page="admin-system-opkg"] #packages>.tr>.td,
[data-page="admin-system-opkg"] #packages tbody tr>td {
background-color: rgba(34, 34, 53, 0.46);
border-top: thin solid rgba(255, 255, 255, 0.08);
}
[data-page="admin-system-opkg"] #packages>.tr.table-titles>.th,
[data-page="admin-system-opkg"] #packages thead tr>th {
background-color: rgba(12, 22, 38, 0.82);
}
.td.version,
.td.size {
white-space: normal !important;
@ -3101,7 +3168,7 @@
}
}
@media screen and (max-width: 2000000000px) {
@media screen and (max-width: 2000px) {
header {
height: 3.5rem;
}
@ -3162,8 +3229,10 @@
.main>.main-left>.nav>li a,
.main>.main-left>.nav>.slide>.menu,
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="iStore"] {
.main>.main-left>.nav>li>[data-title="Log out"],
.main>.main-left>.nav>li>[data-title="iStore"],
.main>.main-left>.nav>li>[data-name="logout"],
.main>.main-left>.nav>li>[data-name="istore"] {
font-size: 1rem;
color: #fff;
}
@ -3447,7 +3516,9 @@
.main>.main-left>.nav>.slide>.menu,
.main>.main-left>.nav>li>[data-title="Logout"],
.main>.main-left>.nav>li>[data-title="Log out"],
.main>.main-left>.nav>li>[data-title="iStore"] {
.main>.main-left>.nav>li>[data-title="iStore"],
.main>.main-left>.nav>li>[data-name="logout"],
.main>.main-left>.nav>li>[data-name="istore"] {
font-size: 1.1rem;
}
@ -3596,7 +3667,7 @@
.main>.main-left>.nav>.slide>.slide-menu>li>a,
.tr[data-title]::before,
.tr.cbi-section-table-titles.named::before {
font-size:
font-size: 0.8rem;
}
.cbi-value-title,

View File

@ -50,4 +50,4 @@ config navbar
option line '6'
option newtab 'No'
option icon '/www/luci-static/alpha/gaya/icon/navbar/network.png'
option address '/cgi-bin/luci/admin/network/network'
option address '/cgi-bin/luci/admin/network/network'

View File

@ -24,7 +24,7 @@
end) -- Check navbar enable status local navbar_enabled=config.navbar=="1" -- Calculate number
of enabled navbar links local num_links=0 uci:foreach("alpha", "navbar" , function(section) if
section.enable=="Enable" then num_links=num_links + 1 end end) -- Calculate link width for
responsive design local link_width=string.format("calc(100%% / %d)", num_links) -- Retrieve
responsive design local link_width=string.format("calc(100%% / %d)", num_links > 0 and num_links or 1) -- Retrieve
theme properties local background_color=config.color or '#2222359a' local
blur_value=tonumber(config.blur) or 20 local link_blur=string.format("blur(%dpx)", blur_value)
%>
@ -65,7 +65,7 @@
</div>
<footer class="mobile">
<a href="https://github.com/derisamedia/luci-theme-alpha">
<%=ver.luciname%> | Alpha OS Theme v3.9.7
<%=ver.luciname%> | Alpha OS Theme v3.9.7-r2
</a>
</footer>
</div>

View File

@ -26,7 +26,7 @@
}
});
let link_width = `calc(100% / ${num_links})`;
let link_width = `calc(100% / ${num_links > 0 ? num_links : 1})`;
let background_color = config.color || '#2222359a';
let blur_value = config.blur || 20;
let link_blur = `blur(${blur_value}px)`;

View File

@ -69,7 +69,7 @@
</a>
<div class="status" id="indicators"></div>
<div class="logout">
<a href="/cgi-bin/luci/admin/logout" data-title="Logout">Keluar</a>
<a href="/cgi-bin/luci/admin/logout" data-title="Logout"><%:Logout%></a>
</div>
<div class="showSide">
<img src="<%=media%>/gaya/icon/menu_icon.svg" alt="">

View File

@ -46,7 +46,7 @@
</a>
<div class="status" id="indicators"></div>
<div class="logout" >
<a href="/cgi-bin/luci/admin/logout" data-title="Logout">Keluar</a>
<a href="/cgi-bin/luci/admin/logout" data-title="Logout">{{ _('Logout') }}</a>
</div>
<div class="showSide">
<img src="{{ media }}/gaya/icon/menu_icon.svg" alt="">