diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js index 00d3230f..87b6ecfd 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js @@ -769,6 +769,7 @@ function renderListeners(s, uciconfig, isClient) { ...hm.loadLabelValues(this.config, 'proxy_group') ], section_id); } + o.depends('tls_reality', '1'); o.depends({plugin_type: /^(shadow-tls|restls|jls)$/}); o.depends({type: 'shadowquic'}); o.modalonly = true; @@ -1289,6 +1290,12 @@ function renderListeners(s, uciconfig, isClient) { o.depends('tls_reality', '1'); o.modalonly = true; + o = s.taboption('field_tls', form.DynamicList, 'tls_reality_max_time_difference', _('REALITY max time difference'), + _('In millisecond.')); + o.datatype = 'uinteger'; + o.depends('tls_reality', '1'); + o.modalonly = true; + // @VMess-TLSmirror fields /* Transport fields */ diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot index ea0c6553..0758c34a 100644 --- a/luci-app-fchomo/po/templates/fchomo.pot +++ b/luci-app-fchomo/po/templates/fchomo.pot @@ -33,9 +33,9 @@ msgstr "" msgid "(Imported)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 #: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/global.js:564 #: htdocs/luci-static/resources/view/fchomo/global.js:570 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 @@ -120,9 +120,9 @@ msgstr "" msgid "0 or 1 only." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1134 -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1174 +#: htdocs/luci-static/resources/fchomo/listeners.js:1143 +#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1183 #: htdocs/luci-static/resources/view/fchomo/node.js:1417 #: htdocs/luci-static/resources/view/fchomo/node.js:1431 msgid "Save your configuration before uploading files!" @@ -309,7 +309,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1057 +#: htdocs/luci-static/resources/fchomo/listeners.js:1066 msgid "Allow insecure connections" msgstr "" @@ -325,7 +325,7 @@ msgstr "" msgid "Already in updating." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:409 +#: htdocs/luci-static/resources/fchomo/listeners.js:417 #: htdocs/luci-static/resources/view/fchomo/node.js:541 msgid "Alter ID" msgstr "" @@ -352,7 +352,7 @@ msgstr "" msgid "As the TOP upstream of dnsmasq." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:457 +#: htdocs/luci-static/resources/fchomo/listeners.js:465 msgid "Auth timeout" msgstr "" @@ -364,8 +364,8 @@ msgstr "" msgid "Authentication key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:1343 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:1358 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: htdocs/luci-static/resources/view/fchomo/node.js:464 #: htdocs/luci-static/resources/view/fchomo/node.js:488 @@ -388,7 +388,7 @@ msgstr "" msgid "Auto update resources." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:638 +#: htdocs/luci-static/resources/fchomo/listeners.js:646 #: htdocs/luci-static/resources/view/fchomo/node.js:1074 msgid "BBR profile" msgstr "" @@ -471,10 +471,10 @@ msgstr "" msgid "Bypass DSCP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 -#: htdocs/luci-static/resources/fchomo/listeners.js:360 -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:362 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 #: htdocs/luci-static/resources/view/fchomo/node.js:462 #: htdocs/luci-static/resources/view/fchomo/node.js:463 #: htdocs/luci-static/resources/view/fchomo/node.js:464 @@ -507,7 +507,7 @@ msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1111 +#: htdocs/luci-static/resources/fchomo/listeners.js:1120 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 msgid "Certificate path" msgstr "" @@ -566,8 +566,8 @@ msgid "" "to download the latest initial package." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:853 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 @@ -576,11 +576,11 @@ msgstr "" msgid "Client" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1173 msgid "Client Auth Certificate path" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 msgid "Client Auth type" msgstr "" @@ -596,10 +596,6 @@ msgstr "" msgid "Client metadata" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:601 -msgid "The client metadata sent to the server." -msgstr "" - #: htdocs/luci-static/resources/view/fchomo/global.js:176 msgid "Client status" msgstr "" @@ -622,7 +618,7 @@ msgstr "" msgid "Complete" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:630 +#: htdocs/luci-static/resources/fchomo/listeners.js:638 #: htdocs/luci-static/resources/view/fchomo/node.js:1056 #: htdocs/luci-static/resources/view/fchomo/node.js:1065 msgid "Congestion controller" @@ -636,7 +632,7 @@ msgstr "" msgid "Connection reuse" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:575 +#: htdocs/luci-static/resources/fchomo/listeners.js:583 #: htdocs/luci-static/resources/view/fchomo/node.js:781 msgid "Connection-level receive window size" msgstr "" @@ -761,7 +757,7 @@ msgstr "" msgid "Default selected" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:547 +#: htdocs/luci-static/resources/fchomo/listeners.js:555 msgid "Default version, Support %s." msgstr "" @@ -806,7 +802,7 @@ msgstr "" msgid "Direct MAC-s" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:485 +#: htdocs/luci-static/resources/fchomo/listeners.js:493 #: htdocs/luci-static/resources/view/fchomo/global.js:424 #: htdocs/luci-static/resources/view/fchomo/node.js:715 #: htdocs/luci-static/resources/view/fchomo/node.js:849 @@ -861,12 +857,12 @@ msgstr "" msgid "Donot verifying server certificate." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 +#: htdocs/luci-static/resources/fchomo/listeners.js:1410 #: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "Download bandwidth" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1396 +#: htdocs/luci-static/resources/fchomo/listeners.js:1411 #: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "Download bandwidth in Mbps." msgstr "" @@ -887,12 +883,12 @@ msgstr "" msgid "ECH HTTPS record query servername" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1222 +#: htdocs/luci-static/resources/fchomo/listeners.js:1231 #: htdocs/luci-static/resources/view/fchomo/node.js:1444 msgid "ECH config" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1190 msgid "ECH key" msgstr "" @@ -981,12 +977,12 @@ msgstr "" msgid "Enable ECH" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1398 #: htdocs/luci-static/resources/view/fchomo/node.js:1923 msgid "Enable TCP Brutal" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1384 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 #: htdocs/luci-static/resources/view/fchomo/node.js:1924 msgid "Enable TCP Brutal congestion control algorithm" msgstr "" @@ -999,12 +995,12 @@ msgstr "" msgid "Enable multiplexing only for TCP." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:345 +#: htdocs/luci-static/resources/fchomo/listeners.js:353 #: htdocs/luci-static/resources/view/fchomo/node.js:448 msgid "Enable obfuscate for downlink" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1378 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 #: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "Enable padding" msgstr "" @@ -1019,7 +1015,7 @@ msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:492 +#: htdocs/luci-static/resources/fchomo/listeners.js:500 #: htdocs/luci-static/resources/view/fchomo/node.js:722 msgid "" "Enabling obfuscation will make the server incompatible with standard QUIC " @@ -1030,7 +1026,7 @@ msgstr "" msgid "Encrypted Hello" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:816 +#: htdocs/luci-static/resources/fchomo/listeners.js:825 msgid "Encryption method" msgstr "" @@ -1112,10 +1108,10 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:1973 #: htdocs/luci-static/resources/fchomo.js:1982 #: htdocs/luci-static/resources/fchomo/listeners.js:284 -#: htdocs/luci-static/resources/fchomo/listeners.js:331 -#: htdocs/luci-static/resources/fchomo/listeners.js:845 -#: htdocs/luci-static/resources/fchomo/listeners.js:876 -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 +#: htdocs/luci-static/resources/fchomo/listeners.js:854 +#: htdocs/luci-static/resources/fchomo/listeners.js:885 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 #: htdocs/luci-static/resources/view/fchomo/client.js:71 #: htdocs/luci-static/resources/view/fchomo/client.js:1063 #: htdocs/luci-static/resources/view/fchomo/client.js:1608 @@ -1134,16 +1130,16 @@ msgstr "" msgid "Expecting: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1134 msgid "Expecting: Cannot be empty." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1472 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Keep empty when %s is enabled." msgstr "" @@ -1152,10 +1148,10 @@ msgstr "" msgid "Expecting: Least one of %s or %s." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:684 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1197,7 +1193,7 @@ msgid "Failed to upload, error: %s." msgstr "" #: htdocs/luci-static/resources/fchomo.js:246 -#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" msgstr "" @@ -1251,7 +1247,7 @@ msgstr "" msgid "Firewall" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:401 +#: htdocs/luci-static/resources/fchomo/listeners.js:409 #: htdocs/luci-static/resources/view/fchomo/node.js:533 msgid "Flow" msgstr "" @@ -1287,7 +1283,7 @@ msgstr "" msgid "Format" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:769 +#: htdocs/luci-static/resources/fchomo/listeners.js:778 msgid "Forwarding rate limit" msgstr "" @@ -1306,7 +1302,7 @@ msgstr "" msgid "GFW list version" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:487 +#: htdocs/luci-static/resources/fchomo/listeners.js:495 #: htdocs/luci-static/resources/view/fchomo/node.js:717 msgid "Gecko" msgstr "" @@ -1333,8 +1329,8 @@ msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:262 #: htdocs/luci-static/resources/fchomo/listeners.js:306 #: htdocs/luci-static/resources/fchomo/listeners.js:308 -#: htdocs/luci-static/resources/fchomo/listeners.js:949 -#: htdocs/luci-static/resources/fchomo/listeners.js:1214 +#: htdocs/luci-static/resources/fchomo/listeners.js:958 +#: htdocs/luci-static/resources/fchomo/listeners.js:1223 #: htdocs/luci-static/resources/view/fchomo/global.js:608 #: htdocs/luci-static/resources/view/fchomo/node.js:2266 msgid "Generate" @@ -1405,7 +1401,7 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:154 #: htdocs/luci-static/resources/fchomo.js:191 -#: htdocs/luci-static/resources/fchomo/listeners.js:702 +#: htdocs/luci-static/resources/fchomo/listeners.js:710 #: htdocs/luci-static/resources/view/fchomo/node.js:1154 #: htdocs/luci-static/resources/view/fchomo/node.js:1677 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1420,12 +1416,12 @@ msgstr "" msgid "HTTP header" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:351 +#: htdocs/luci-static/resources/fchomo/listeners.js:359 #: htdocs/luci-static/resources/view/fchomo/node.js:454 msgid "HTTP mask" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:356 +#: htdocs/luci-static/resources/fchomo/listeners.js:364 #: htdocs/luci-static/resources/view/fchomo/node.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:496 @@ -1445,7 +1441,7 @@ msgstr "" msgid "HTTP request method" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:366 +#: htdocs/luci-static/resources/fchomo/listeners.js:374 #: htdocs/luci-static/resources/view/fchomo/node.js:480 msgid "HTTP root path" msgstr "" @@ -1454,7 +1450,7 @@ msgstr "" msgid "HTTP/3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:510 +#: htdocs/luci-static/resources/fchomo/listeners.js:518 msgid "" "HTTP3 server behavior when authentication fails.
A 404 page will be " "returned if empty." @@ -1474,20 +1470,20 @@ msgstr "" msgid "Handshake mode" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:752 +#: htdocs/luci-static/resources/fchomo/listeners.js:760 msgid "Handshake target proxy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:707 +#: htdocs/luci-static/resources/fchomo/listeners.js:715 msgid "Handshake target that supports TLS 1.3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:338 +#: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/view/fchomo/node.js:1089 msgid "Handshake timeout" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:535 +#: htdocs/luci-static/resources/fchomo/listeners.js:543 msgid "Header to read real client IP from (e.g. X-Forwarded-For)" msgstr "" @@ -1533,7 +1529,7 @@ msgstr "" msgid "Hidden" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:715 +#: htdocs/luci-static/resources/fchomo/listeners.js:723 #: htdocs/luci-static/resources/view/fchomo/node.js:1159 msgid "Host that supports TLS 1.3" msgstr "" @@ -1635,7 +1631,7 @@ msgstr "" msgid "Idle session timeout" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:647 +#: htdocs/luci-static/resources/fchomo/listeners.js:655 msgid "Idle timeout" msgstr "" @@ -1647,7 +1643,7 @@ msgstr "" msgid "If Block is selected, uncheck others" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:477 +#: htdocs/luci-static/resources/fchomo/listeners.js:485 msgid "Ignore client bandwidth" msgstr "" @@ -1680,8 +1676,8 @@ msgstr "" msgid "Import rule-set links" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:466 -#: htdocs/luci-static/resources/fchomo/listeners.js:472 +#: htdocs/luci-static/resources/fchomo/listeners.js:474 +#: htdocs/luci-static/resources/fchomo/listeners.js:480 #: htdocs/luci-static/resources/view/fchomo/node.js:691 #: htdocs/luci-static/resources/view/fchomo/node.js:697 #: htdocs/luci-static/resources/view/fchomo/node.js:2343 @@ -1689,7 +1685,7 @@ msgstr "" msgid "In Mbps." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:770 +#: htdocs/luci-static/resources/fchomo/listeners.js:779 msgid "In bps. 0 means no speed limit." msgstr "" @@ -1698,6 +1694,7 @@ msgstr "" msgid "In bytes. %s will be used if empty." msgstr "" +#: htdocs/luci-static/resources/fchomo/listeners.js:1294 #: htdocs/luci-static/resources/view/fchomo/node.js:676 #: htdocs/luci-static/resources/view/fchomo/node.js:683 #: htdocs/luci-static/resources/view/fchomo/node.js:757 @@ -1714,9 +1711,9 @@ msgstr "" msgid "In milliseconds." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:339 -#: htdocs/luci-static/resources/fchomo/listeners.js:458 -#: htdocs/luci-static/resources/fchomo/listeners.js:648 +#: htdocs/luci-static/resources/fchomo/listeners.js:347 +#: htdocs/luci-static/resources/fchomo/listeners.js:466 +#: htdocs/luci-static/resources/fchomo/listeners.js:656 #: htdocs/luci-static/resources/view/fchomo/node.js:606 #: htdocs/luci-static/resources/view/fchomo/node.js:613 #: htdocs/luci-static/resources/view/fchomo/node.js:1768 @@ -1740,7 +1737,7 @@ msgid "" "connection timeout." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:865 +#: htdocs/luci-static/resources/fchomo/listeners.js:874 #: htdocs/luci-static/resources/view/fchomo/node.js:1251 msgid "" "In the order of one Padding-Length and one Padding-" @@ -1781,7 +1778,7 @@ msgstr "" msgid "Info" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:557 +#: htdocs/luci-static/resources/fchomo/listeners.js:565 #: htdocs/luci-static/resources/view/fchomo/node.js:763 msgid "Initial congestion window size" msgstr "" @@ -1799,11 +1796,11 @@ msgstr "" msgid "Interface Control" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:677 -#: htdocs/luci-static/resources/fchomo/listeners.js:687 -#: htdocs/luci-static/resources/fchomo/listeners.js:692 -#: htdocs/luci-static/resources/fchomo/listeners.js:1122 -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 +#: htdocs/luci-static/resources/fchomo/listeners.js:685 +#: htdocs/luci-static/resources/fchomo/listeners.js:695 +#: htdocs/luci-static/resources/fchomo/listeners.js:700 +#: htdocs/luci-static/resources/fchomo/listeners.js:1131 +#: htdocs/luci-static/resources/fchomo/listeners.js:1247 #: htdocs/luci-static/resources/view/fchomo/node.js:1129 #: htdocs/luci-static/resources/view/fchomo/node.js:1139 #: htdocs/luci-static/resources/view/fchomo/node.js:1144 @@ -1834,12 +1831,12 @@ msgstr "" msgid "Key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1150 #: htdocs/luci-static/resources/view/fchomo/node.js:1424 msgid "Key path" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:884 +#: htdocs/luci-static/resources/fchomo/listeners.js:893 msgid "Keypairs" msgstr "" @@ -1874,12 +1871,12 @@ msgstr "" msgid "Lazy query." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:358 +#: htdocs/luci-static/resources/fchomo/listeners.js:366 #: htdocs/luci-static/resources/view/fchomo/node.js:461 msgid "Legacy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:410 +#: htdocs/luci-static/resources/fchomo/listeners.js:418 msgid "" "Legacy protocol support (VMess MD5 Authentication) is provided for " "compatibility purposes only, use of alterId > 1 is not recommended." @@ -1889,7 +1886,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1064 +#: htdocs/luci-static/resources/fchomo/listeners.js:1073 #: htdocs/luci-static/resources/view/fchomo/node.js:1337 msgid "List of supported application level protocols, in order of preference." msgstr "" @@ -1974,7 +1971,7 @@ msgstr "" msgid "Masque" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:509 +#: htdocs/luci-static/resources/fchomo/listeners.js:517 msgid "Masquerade" msgstr "" @@ -2010,12 +2007,12 @@ msgstr "" msgid "Max Early Data" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:451 +#: htdocs/luci-static/resources/fchomo/listeners.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:657 msgid "Max UDP relay packet size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/fchomo/listeners.js:1370 msgid "Max buffered posts" msgstr "" @@ -2031,17 +2028,17 @@ msgstr "" msgid "Max count of failures" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:563 +#: htdocs/luci-static/resources/fchomo/listeners.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:769 msgid "Max datagram frame size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:471 +#: htdocs/luci-static/resources/fchomo/listeners.js:479 #: htdocs/luci-static/resources/view/fchomo/node.js:696 msgid "Max download speed" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 +#: htdocs/luci-static/resources/fchomo/listeners.js:1381 #: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Max each POST bytes" msgstr "" @@ -2050,11 +2047,11 @@ msgstr "" msgid "Max open streams" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:522 +#: htdocs/luci-static/resources/fchomo/listeners.js:530 msgid "Max realms" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:528 +#: htdocs/luci-static/resources/fchomo/listeners.js:536 msgid "Max realms per client IP" msgstr "" @@ -2070,7 +2067,7 @@ msgstr "" msgid "Max reuse times" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:465 +#: htdocs/luci-static/resources/fchomo/listeners.js:473 #: htdocs/luci-static/resources/view/fchomo/node.js:690 msgid "Max upload speed" msgstr "" @@ -2086,12 +2083,12 @@ msgid "" "
Conflict with %s and %s." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:323 +#: htdocs/luci-static/resources/fchomo/listeners.js:327 #: htdocs/luci-static/resources/view/fchomo/node.js:433 msgid "Maximum padding rate" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:331 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "" "Maximum padding rate must be greater than or equal to the minimum padding " @@ -2155,7 +2152,7 @@ msgstr "" msgid "Mixed port" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1373 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 #: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Multiplex" msgstr "" @@ -2174,7 +2171,7 @@ msgstr "" msgid "NOT" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:615 +#: htdocs/luci-static/resources/fchomo/listeners.js:623 msgid "Name of the Proxy group as outbound." msgstr "" @@ -2186,7 +2183,7 @@ msgstr "" msgid "Name of the Proxy group to download rule set." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:603 +#: htdocs/luci-static/resources/fchomo/listeners.js:611 msgid "Name of the Sub rule used for inbound matching." msgstr "" @@ -2202,7 +2199,7 @@ msgstr "" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:654 +#: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "" @@ -2214,7 +2211,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1350 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "No SSE header" msgstr "" @@ -2287,28 +2284,28 @@ msgstr "" msgid "ON" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:701 +#: htdocs/luci-static/resources/fchomo/listeners.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1153 msgid "Obfs Mode" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:504 +#: htdocs/luci-static/resources/fchomo/listeners.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:734 msgid "Obfuscate maximum packet size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:499 +#: htdocs/luci-static/resources/fchomo/listeners.js:507 #: htdocs/luci-static/resources/view/fchomo/node.js:729 msgid "Obfuscate minimum packet size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:491 +#: htdocs/luci-static/resources/fchomo/listeners.js:499 #: htdocs/luci-static/resources/view/fchomo/node.js:721 msgid "Obfuscate password" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:291 -#: htdocs/luci-static/resources/fchomo/listeners.js:484 +#: htdocs/luci-static/resources/fchomo/listeners.js:492 #: htdocs/luci-static/resources/view/fchomo/node.js:412 #: htdocs/luci-static/resources/view/fchomo/node.js:714 msgid "Obfuscate type" @@ -2325,7 +2322,7 @@ msgstr "" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1058 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 msgid "Only applicable when %s are used as a frontend." msgstr "" @@ -2413,25 +2410,25 @@ msgstr "" msgid "Padding bytes" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:440 +#: htdocs/luci-static/resources/fchomo/listeners.js:448 msgid "Padding scheme" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:863 +#: htdocs/luci-static/resources/fchomo/listeners.js:872 #: htdocs/luci-static/resources/view/fchomo/node.js:1249 msgid "Paddings" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:167 #: htdocs/luci-static/resources/fchomo/listeners.js:184 -#: htdocs/luci-static/resources/fchomo/listeners.js:730 +#: htdocs/luci-static/resources/fchomo/listeners.js:738 #: htdocs/luci-static/resources/view/fchomo/node.js:324 #: htdocs/luci-static/resources/view/fchomo/node.js:345 #: htdocs/luci-static/resources/view/fchomo/node.js:1174 msgid "Password" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:581 +#: htdocs/luci-static/resources/fchomo/listeners.js:589 #: htdocs/luci-static/resources/view/fchomo/node.js:787 msgid "Path MTU Discovery" msgstr "" @@ -2444,7 +2441,7 @@ msgstr "" msgid "Path in bundle: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:803 +#: htdocs/luci-static/resources/fchomo/listeners.js:812 #: htdocs/luci-static/resources/view/fchomo/node.js:2173 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:373 msgid "Payload" @@ -2509,7 +2506,7 @@ msgstr "" msgid "Please type %s fields of mihomo config.
" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:667 +#: htdocs/luci-static/resources/fchomo/listeners.js:675 #: htdocs/luci-static/resources/view/fchomo/node.js:1117 msgid "Plugin" msgstr "" @@ -2519,7 +2516,7 @@ msgstr "" msgid "Plugin fields" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:673 +#: htdocs/luci-static/resources/fchomo/listeners.js:681 #: htdocs/luci-static/resources/view/fchomo/node.js:1123 msgid "Plugin type" msgstr "" @@ -2549,14 +2546,14 @@ msgstr "" msgid "Ports pool" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:516 +#: htdocs/luci-static/resources/fchomo/listeners.js:385 +#: htdocs/luci-static/resources/fchomo/listeners.js:524 #: htdocs/luci-static/resources/view/fchomo/node.js:504 #: htdocs/luci-static/resources/view/fchomo/node.js:927 msgid "Pre-shared key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1001 +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 #: htdocs/luci-static/resources/view/fchomo/node.js:1284 msgid "Pre-shared key of rendezvous server" msgstr "" @@ -2663,7 +2660,7 @@ msgstr "" msgid "Proxy chain" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:614 +#: htdocs/luci-static/resources/fchomo/listeners.js:622 #: htdocs/luci-static/resources/view/fchomo/client.js:813 #: htdocs/luci-static/resources/view/fchomo/client.js:1643 #: htdocs/luci-static/resources/view/fchomo/node.js:2197 @@ -2692,12 +2689,12 @@ msgstr "" msgid "QUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:552 +#: htdocs/luci-static/resources/fchomo/listeners.js:560 #: htdocs/luci-static/resources/view/fchomo/node.js:751 msgid "QUIC based 0-RTT" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:546 +#: htdocs/luci-static/resources/fchomo/listeners.js:554 #: htdocs/luci-static/resources/view/fchomo/node.js:740 msgid "QUIC versions" msgstr "" @@ -2707,8 +2704,8 @@ msgstr "" msgid "Quick Reload" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1123 -#: htdocs/luci-static/resources/fchomo/listeners.js:1229 +#: htdocs/luci-static/resources/fchomo/listeners.js:1132 +#: htdocs/luci-static/resources/fchomo/listeners.js:1238 #: htdocs/luci-static/resources/view/fchomo/node.js:1465 msgid "REALITY" msgstr "" @@ -2717,24 +2714,28 @@ msgstr "" msgid "REALITY X25519MLKEM768 PQC support" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1277 +#: htdocs/luci-static/resources/fchomo/listeners.js:1286 msgid "REALITY certificate issued to" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 +#: htdocs/luci-static/resources/fchomo/listeners.js:1254 msgid "REALITY handshake server" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +msgid "REALITY max time difference" +msgstr "" + +#: htdocs/luci-static/resources/fchomo/listeners.js:1261 msgid "REALITY private key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1267 +#: htdocs/luci-static/resources/fchomo/listeners.js:1276 #: htdocs/luci-static/resources/view/fchomo/node.js:1481 msgid "REALITY public key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/fchomo/listeners.js:1280 #: htdocs/luci-static/resources/view/fchomo/node.js:1486 msgid "REALITY short ID" msgstr "" @@ -2745,8 +2746,8 @@ msgstr "" msgid "REMATCH-NAME marking" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:853 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 msgid "RTT" msgstr "" @@ -2763,17 +2764,17 @@ msgstr "" msgid "Randomized traffic characteristics" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:990 +#: htdocs/luci-static/resources/fchomo/listeners.js:999 #: htdocs/luci-static/resources/view/fchomo/node.js:1273 msgid "Realm" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 +#: htdocs/luci-static/resources/fchomo/listeners.js:1015 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 msgid "Realm ID" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:539 +#: htdocs/luci-static/resources/fchomo/listeners.js:547 msgid "Realm name pattern" msgstr "" @@ -2851,7 +2852,7 @@ msgstr "" msgid "Remove idles" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:995 +#: htdocs/luci-static/resources/fchomo/listeners.js:1004 #: htdocs/luci-static/resources/view/fchomo/node.js:1278 msgid "Rendezvous server" msgstr "" @@ -2868,7 +2869,7 @@ msgstr "" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1329 +#: htdocs/luci-static/resources/fchomo/listeners.js:1344 #: htdocs/luci-static/resources/view/fchomo/node.js:1738 #: htdocs/luci-static/resources/view/fchomo/node.js:1745 msgid "Request path" @@ -2899,11 +2900,11 @@ msgstr "" msgid "Resources management" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:676 -#: htdocs/luci-static/resources/fchomo/listeners.js:686 -#: htdocs/luci-static/resources/fchomo/listeners.js:691 -#: htdocs/luci-static/resources/fchomo/listeners.js:1121 -#: htdocs/luci-static/resources/fchomo/listeners.js:1237 +#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:694 +#: htdocs/luci-static/resources/fchomo/listeners.js:699 +#: htdocs/luci-static/resources/fchomo/listeners.js:1130 +#: htdocs/luci-static/resources/fchomo/listeners.js:1246 #: htdocs/luci-static/resources/view/fchomo/node.js:1128 #: htdocs/luci-static/resources/view/fchomo/node.js:1138 #: htdocs/luci-static/resources/view/fchomo/node.js:1143 @@ -2911,7 +2912,7 @@ msgstr "" msgid "Restls" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:745 +#: htdocs/luci-static/resources/fchomo/listeners.js:753 #: htdocs/luci-static/resources/view/fchomo/node.js:1197 msgid "Restls script" msgstr "" @@ -2948,7 +2949,7 @@ msgstr "" msgid "Routing GFW" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:597 +#: htdocs/luci-static/resources/fchomo/listeners.js:605 #: htdocs/luci-static/resources/view/fchomo/global.js:776 #: htdocs/luci-static/resources/view/fchomo/node.js:1966 #: htdocs/luci-static/resources/view/fchomo/node.js:2385 @@ -3035,7 +3036,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1012 +#: htdocs/luci-static/resources/fchomo/listeners.js:1021 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 msgid "STUN servers" msgstr "" @@ -3048,7 +3049,7 @@ msgstr "" msgid "SUoT version" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:486 +#: htdocs/luci-static/resources/fchomo/listeners.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:716 msgid "Salamander" msgstr "" @@ -3096,9 +3097,9 @@ msgstr "" msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3108,7 +3109,7 @@ msgstr "" msgid "Server address" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1323 +#: htdocs/luci-static/resources/fchomo/listeners.js:1338 #: htdocs/luci-static/resources/view/fchomo/node.js:1717 #: htdocs/luci-static/resources/view/fchomo/node.js:1723 msgid "Server hostname" @@ -3131,11 +3132,11 @@ msgstr "" msgid "ShadowQUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:675 -#: htdocs/luci-static/resources/fchomo/listeners.js:685 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:683 +#: htdocs/luci-static/resources/fchomo/listeners.js:693 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1127 #: htdocs/luci-static/resources/view/fchomo/node.js:1137 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 @@ -3148,17 +3149,17 @@ msgstr "" msgid "Shadowsocks" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:422 +#: htdocs/luci-static/resources/fchomo/listeners.js:430 #: htdocs/luci-static/resources/view/fchomo/node.js:582 msgid "Shadowsocks chipher" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:417 +#: htdocs/luci-static/resources/fchomo/listeners.js:425 #: htdocs/luci-static/resources/view/fchomo/node.js:577 msgid "Shadowsocks encrypt" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:430 +#: htdocs/luci-static/resources/fchomo/listeners.js:438 #: htdocs/luci-static/resources/view/fchomo/node.js:590 msgid "Shadowsocks password" msgstr "" @@ -3247,12 +3248,12 @@ msgstr "" msgid "Strategy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:569 +#: htdocs/luci-static/resources/fchomo/listeners.js:577 #: htdocs/luci-static/resources/view/fchomo/node.js:775 msgid "Stream-level receive window size" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:602 +#: htdocs/luci-static/resources/fchomo/listeners.js:610 #: htdocs/luci-static/resources/view/fchomo/client.js:1400 #: htdocs/luci-static/resources/view/fchomo/client.js:1409 msgid "Sub rule" @@ -3313,7 +3314,7 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:200 #: htdocs/luci-static/resources/fchomo.js:201 #: htdocs/luci-static/resources/fchomo.js:211 -#: htdocs/luci-static/resources/fchomo/listeners.js:655 +#: htdocs/luci-static/resources/fchomo/listeners.js:663 #: htdocs/luci-static/resources/view/fchomo/client.js:618 #: htdocs/luci-static/resources/view/fchomo/client.js:710 msgid "TCP" @@ -3355,8 +3356,8 @@ msgstr "" msgid "TFO" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:703 -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 +#: htdocs/luci-static/resources/fchomo/listeners.js:711 +#: htdocs/luci-static/resources/fchomo/listeners.js:1031 #: htdocs/luci-static/resources/view/fchomo/global.js:550 #: htdocs/luci-static/resources/view/fchomo/node.js:469 #: htdocs/luci-static/resources/view/fchomo/node.js:1155 @@ -3364,7 +3365,7 @@ msgstr "" msgid "TLS" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1063 +#: htdocs/luci-static/resources/fchomo/listeners.js:1072 #: htdocs/luci-static/resources/view/fchomo/node.js:1336 msgid "TLS ALPN" msgstr "" @@ -3392,11 +3393,11 @@ msgstr "" msgid "Tailscale" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:589 +#: htdocs/luci-static/resources/fchomo/listeners.js:597 msgid "Target address" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:478 +#: htdocs/luci-static/resources/fchomo/listeners.js:486 msgid "" "Tell the client to use the BBR flow control algorithm instead of Hysteria CC." msgstr "" @@ -3410,13 +3411,13 @@ msgstr "" msgid "The %s address used by local machine in the %s network." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/node.js:1425 msgid "The %s private key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 msgid "The %s public key, in PEM format." @@ -3436,6 +3437,10 @@ msgstr "" msgid "The ED25519 master public key or UUID generated by Sudoku." msgstr "" +#: htdocs/luci-static/resources/view/fchomo/node.js:601 +msgid "The client metadata sent to the server." +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/global.js:324 msgid "The default value is 2:00 every day." msgstr "" @@ -3446,7 +3451,7 @@ msgid "" "connection timeout is used." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:866 +#: htdocs/luci-static/resources/fchomo/listeners.js:875 #: htdocs/luci-static/resources/view/fchomo/node.js:1252 msgid "" "The first padding must have a probability of 100% and at least 35 bytes." @@ -3462,16 +3467,16 @@ msgstr "" msgid "The matching %s will be deemed as poisoned." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:753 +#: htdocs/luci-static/resources/fchomo/listeners.js:761 msgid "The proxy used to connect to the handshake target." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:864 +#: htdocs/luci-static/resources/fchomo/listeners.js:873 #: htdocs/luci-static/resources/view/fchomo/node.js:1250 msgid "The server and client can set different padding parameters." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1223 +#: htdocs/luci-static/resources/fchomo/listeners.js:1232 #: htdocs/luci-static/resources/view/fchomo/global.js:615 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "" @@ -3527,7 +3532,7 @@ msgid "Transit proxy node" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 #: htdocs/luci-static/resources/view/fchomo/node.js:360 #: htdocs/luci-static/resources/view/fchomo/node.js:1670 msgid "Transport" @@ -3538,7 +3543,7 @@ msgstr "" msgid "Transport fields" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1292 +#: htdocs/luci-static/resources/fchomo/listeners.js:1307 #: htdocs/luci-static/resources/view/fchomo/node.js:1675 msgid "Transport type" msgstr "" @@ -3557,7 +3562,7 @@ msgstr "" msgid "TrustTunnel" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:534 +#: htdocs/luci-static/resources/fchomo/listeners.js:542 msgid "Trusted proxy header" msgstr "" @@ -3608,8 +3613,8 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:208 #: htdocs/luci-static/resources/fchomo.js:209 #: htdocs/luci-static/resources/fchomo.js:210 -#: htdocs/luci-static/resources/fchomo/listeners.js:656 -#: htdocs/luci-static/resources/fchomo/listeners.js:661 +#: htdocs/luci-static/resources/fchomo/listeners.js:664 +#: htdocs/luci-static/resources/fchomo/listeners.js:669 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1097 @@ -3650,8 +3655,8 @@ msgid "URL test" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:215 -#: htdocs/luci-static/resources/fchomo/listeners.js:395 -#: htdocs/luci-static/resources/fchomo/listeners.js:445 +#: htdocs/luci-static/resources/fchomo/listeners.js:403 +#: htdocs/luci-static/resources/fchomo/listeners.js:453 #: htdocs/luci-static/resources/view/fchomo/node.js:527 #: htdocs/luci-static/resources/view/fchomo/node.js:626 msgid "UUID" @@ -3696,18 +3701,18 @@ msgstr "" msgid "Update interval" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1389 +#: htdocs/luci-static/resources/fchomo/listeners.js:1404 #: htdocs/luci-static/resources/view/fchomo/node.js:1929 msgid "Upload bandwidth" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1390 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 #: htdocs/luci-static/resources/view/fchomo/node.js:1930 msgid "Upload bandwidth in Mbps." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1133 -#: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/node.js:1416 msgid "Upload certificate" msgstr "" @@ -3716,14 +3721,14 @@ msgstr "" msgid "Upload initial package" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1148 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 #: htdocs/luci-static/resources/view/fchomo/node.js:1430 msgid "Upload key" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1151 -#: htdocs/luci-static/resources/fchomo/listeners.js:1176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 #: htdocs/luci-static/resources/view/fchomo/global.js:306 #: htdocs/luci-static/resources/view/fchomo/node.js:1419 #: htdocs/luci-static/resources/view/fchomo/node.js:1433 @@ -3778,7 +3783,7 @@ msgid "User-hint is mandatory" msgstr "" #: htdocs/luci-static/resources/fchomo/listeners.js:162 -#: htdocs/luci-static/resources/fchomo/listeners.js:723 +#: htdocs/luci-static/resources/fchomo/listeners.js:731 #: htdocs/luci-static/resources/view/fchomo/node.js:319 #: htdocs/luci-static/resources/view/fchomo/node.js:1167 msgid "Username" @@ -3841,8 +3846,8 @@ msgstr "" msgid "Verify if given" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:384 -#: htdocs/luci-static/resources/fchomo/listeners.js:737 +#: htdocs/luci-static/resources/fchomo/listeners.js:392 +#: htdocs/luci-static/resources/fchomo/listeners.js:745 #: htdocs/luci-static/resources/view/fchomo/node.js:511 #: htdocs/luci-static/resources/view/fchomo/node.js:1181 msgid "Version" @@ -3873,10 +3878,10 @@ msgstr "" msgid "Warning" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:362 -#: htdocs/luci-static/resources/fchomo/listeners.js:1294 -#: htdocs/luci-static/resources/fchomo/listeners.js:1305 -#: htdocs/luci-static/resources/fchomo/listeners.js:1312 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1320 +#: htdocs/luci-static/resources/fchomo/listeners.js:1327 #: htdocs/luci-static/resources/view/fchomo/node.js:465 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:1680 @@ -3919,14 +3924,14 @@ msgstr "" msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1295 -#: htdocs/luci-static/resources/fchomo/listeners.js:1306 +#: htdocs/luci-static/resources/fchomo/listeners.js:1310 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1681 #: htdocs/luci-static/resources/view/fchomo/node.js:1701 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1342 +#: htdocs/luci-static/resources/fchomo/listeners.js:1357 #: htdocs/luci-static/resources/view/fchomo/node.js:1796 msgid "XHTTP mode" msgstr "" @@ -3944,7 +3949,7 @@ msgstr "" msgid "XMUX:" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:825 +#: htdocs/luci-static/resources/fchomo/listeners.js:834 msgid "XOR mode" msgstr "" @@ -4021,8 +4026,8 @@ msgstr "" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/fchomo/listeners.js:1147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1187 #: htdocs/luci-static/resources/view/fchomo/node.js:1421 msgid "certificate" msgstr "" @@ -4042,8 +4047,8 @@ msgstr "" msgid "cubic" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:777 -#: htdocs/luci-static/resources/fchomo/listeners.js:808 +#: htdocs/luci-static/resources/fchomo/listeners.js:786 +#: htdocs/luci-static/resources/fchomo/listeners.js:817 msgid "decryption" msgstr "" @@ -4055,20 +4060,20 @@ msgstr "" msgid "down" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:812 +#: htdocs/luci-static/resources/fchomo/listeners.js:821 #: htdocs/luci-static/resources/view/fchomo/node.js:1204 #: htdocs/luci-static/resources/view/fchomo/node.js:1227 msgid "encryption" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:346 +#: htdocs/luci-static/resources/fchomo/listeners.js:354 #: htdocs/luci-static/resources/view/fchomo/node.js:449 msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:1308 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1679 #: htdocs/luci-static/resources/view/fchomo/node.js:1692 #: htdocs/luci-static/resources/view/fchomo/node.js:1699 @@ -4084,7 +4089,7 @@ msgstr "" msgid "gRPC ping interval" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1336 +#: htdocs/luci-static/resources/fchomo/listeners.js:1351 #: htdocs/luci-static/resources/view/fchomo/node.js:1758 msgid "gRPC service name" msgstr "" @@ -4110,7 +4115,7 @@ msgstr "" msgid "h3-l4proxy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 msgid "least one keypair required" msgstr "" @@ -4175,13 +4180,13 @@ msgid "not included \",\"" msgstr "" #: htdocs/luci-static/resources/fchomo.js:233 -#: htdocs/luci-static/resources/fchomo/listeners.js:604 -#: htdocs/luci-static/resources/fchomo/listeners.js:607 +#: htdocs/luci-static/resources/fchomo/listeners.js:612 +#: htdocs/luci-static/resources/fchomo/listeners.js:615 msgid "null" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:674 -#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:682 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/view/fchomo/node.js:1124 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 msgid "obfs-simple" @@ -4207,17 +4212,17 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/fchomo/listeners.js:1361 #: htdocs/luci-static/resources/view/fchomo/node.js:1800 msgid "packet-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:360 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 #: htdocs/luci-static/resources/view/fchomo/node.js:463 msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1162 #: htdocs/luci-static/resources/view/fchomo/node.js:1435 msgid "private key" msgstr "" @@ -4243,7 +4248,7 @@ msgstr "" msgid "smux" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 #: htdocs/luci-static/resources/view/fchomo/node.js:462 msgid "split-stream" msgstr "" @@ -4252,17 +4257,17 @@ msgstr "" msgid "src" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1344 +#: htdocs/luci-static/resources/fchomo/listeners.js:1359 #: htdocs/luci-static/resources/view/fchomo/node.js:1798 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 #: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1361 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 msgid "stream-up server seconds" msgstr "" @@ -4302,8 +4307,8 @@ msgstr "" msgid "up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:385 -#: htdocs/luci-static/resources/fchomo/listeners.js:738 +#: htdocs/luci-static/resources/fchomo/listeners.js:393 +#: htdocs/luci-static/resources/fchomo/listeners.js:746 #: htdocs/luci-static/resources/view/fchomo/node.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:653 #: htdocs/luci-static/resources/view/fchomo/node.js:1110 @@ -4311,27 +4316,27 @@ msgstr "" msgid "v1" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:386 -#: htdocs/luci-static/resources/fchomo/listeners.js:739 +#: htdocs/luci-static/resources/fchomo/listeners.js:394 +#: htdocs/luci-static/resources/fchomo/listeners.js:747 #: htdocs/luci-static/resources/view/fchomo/node.js:513 #: htdocs/luci-static/resources/view/fchomo/node.js:1111 #: htdocs/luci-static/resources/view/fchomo/node.js:1183 msgid "v2" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:387 -#: htdocs/luci-static/resources/fchomo/listeners.js:740 +#: htdocs/luci-static/resources/fchomo/listeners.js:395 +#: htdocs/luci-static/resources/fchomo/listeners.js:748 #: htdocs/luci-static/resources/view/fchomo/node.js:514 #: htdocs/luci-static/resources/view/fchomo/node.js:1184 msgid "v3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:388 +#: htdocs/luci-static/resources/fchomo/listeners.js:396 #: htdocs/luci-static/resources/view/fchomo/node.js:515 msgid "v4" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:389 +#: htdocs/luci-static/resources/fchomo/listeners.js:397 #: htdocs/luci-static/resources/view/fchomo/node.js:516 msgid "v5" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po index 1d7f46b9..699a160b 100644 --- a/luci-app-fchomo/po/zh_Hans/fchomo.po +++ b/luci-app-fchomo/po/zh_Hans/fchomo.po @@ -40,9 +40,9 @@ msgstr "%s 端口" msgid "(Imported)" msgstr "(已导入)" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 #: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/global.js:564 #: htdocs/luci-static/resources/view/fchomo/global.js:570 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 @@ -127,9 +127,9 @@ msgstr "-1 表示禁用它。" msgid "0 or 1 only." msgstr "仅限 01。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1134 -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1174 +#: htdocs/luci-static/resources/fchomo/listeners.js:1143 +#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1183 #: htdocs/luci-static/resources/view/fchomo/node.js:1417 #: htdocs/luci-static/resources/view/fchomo/node.js:1431 msgid "Save your configuration before uploading files!" @@ -320,7 +320,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "允许通过出口节点访问本地局域网。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1057 +#: htdocs/luci-static/resources/fchomo/listeners.js:1066 msgid "Allow insecure connections" msgstr "允许不安全的连接" @@ -336,7 +336,7 @@ msgstr "已是最新版本。" msgid "Already in updating." msgstr "已在更新中。" -#: htdocs/luci-static/resources/fchomo/listeners.js:409 +#: htdocs/luci-static/resources/fchomo/listeners.js:417 #: htdocs/luci-static/resources/view/fchomo/node.js:541 msgid "Alter ID" msgstr "额外 ID" @@ -363,7 +363,7 @@ msgstr "作为 dnsmasq 的最优先上游" msgid "As the TOP upstream of dnsmasq." msgstr "作为 dnsmasq 的最优先上游。" -#: htdocs/luci-static/resources/fchomo/listeners.js:457 +#: htdocs/luci-static/resources/fchomo/listeners.js:465 msgid "Auth timeout" msgstr "认证超时" @@ -375,8 +375,8 @@ msgstr "认证长度" msgid "Authentication key" msgstr "验证密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:1343 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:1358 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: htdocs/luci-static/resources/view/fchomo/node.js:464 #: htdocs/luci-static/resources/view/fchomo/node.js:488 @@ -399,7 +399,7 @@ msgstr "自动更新" msgid "Auto update resources." msgstr "自动更新资源文件。" -#: htdocs/luci-static/resources/fchomo/listeners.js:638 +#: htdocs/luci-static/resources/fchomo/listeners.js:646 #: htdocs/luci-static/resources/view/fchomo/node.js:1074 msgid "BBR profile" msgstr "BBR 配置文件" @@ -482,10 +482,10 @@ msgstr "绕过 CN 流量" msgid "Bypass DSCP" msgstr "绕过 DSCP" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 -#: htdocs/luci-static/resources/fchomo/listeners.js:360 -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:362 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 #: htdocs/luci-static/resources/view/fchomo/node.js:462 #: htdocs/luci-static/resources/view/fchomo/node.js:463 #: htdocs/luci-static/resources/view/fchomo/node.js:464 @@ -518,7 +518,7 @@ msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "证书指纹。用于实现 SSL证书固定 并防止 MitM。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1111 +#: htdocs/luci-static/resources/fchomo/listeners.js:1120 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 msgid "Certificate path" msgstr "证书路径" @@ -580,8 +580,8 @@ msgstr "" "点击此处下载" "最新的初始包。" -#: htdocs/luci-static/resources/fchomo/listeners.js:853 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 @@ -590,11 +590,11 @@ msgstr "" msgid "Client" msgstr "客户端" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1173 msgid "Client Auth Certificate path" msgstr "客户端认证证书路径" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 msgid "Client Auth type" msgstr "客户端认证类型" @@ -610,10 +610,6 @@ msgstr "客户端密钥" msgid "Client metadata" msgstr "客户端元数据" -#: htdocs/luci-static/resources/view/fchomo/node.js:601 -msgid "The client metadata sent to the server." -msgstr "发送到服务器的客户端元数据。" - #: htdocs/luci-static/resources/view/fchomo/global.js:176 msgid "Client status" msgstr "客户端状态" @@ -636,7 +632,7 @@ msgstr "常用端口(绕过 P2P 流量)" msgid "Complete" msgstr "完成" -#: htdocs/luci-static/resources/fchomo/listeners.js:630 +#: htdocs/luci-static/resources/fchomo/listeners.js:638 #: htdocs/luci-static/resources/view/fchomo/node.js:1056 #: htdocs/luci-static/resources/view/fchomo/node.js:1065 msgid "Congestion controller" @@ -650,7 +646,7 @@ msgstr "连接检查" msgid "Connection reuse" msgstr "连接复用" -#: htdocs/luci-static/resources/fchomo/listeners.js:575 +#: htdocs/luci-static/resources/fchomo/listeners.js:583 #: htdocs/luci-static/resources/view/fchomo/node.js:781 msgid "Connection-level receive window size" msgstr "连接级接收窗口大小" @@ -775,7 +771,7 @@ msgstr "默认 DNS 服务器" msgid "Default selected" msgstr "默认选中" -#: htdocs/luci-static/resources/fchomo/listeners.js:547 +#: htdocs/luci-static/resources/fchomo/listeners.js:555 msgid "Default version, Support %s." msgstr "默认版本,支持 %s。" @@ -820,7 +816,7 @@ msgstr "直连 IPv6 地址" msgid "Direct MAC-s" msgstr "直连 MAC 地址" -#: htdocs/luci-static/resources/fchomo/listeners.js:485 +#: htdocs/luci-static/resources/fchomo/listeners.js:493 #: htdocs/luci-static/resources/view/fchomo/global.js:424 #: htdocs/luci-static/resources/view/fchomo/node.js:715 #: htdocs/luci-static/resources/view/fchomo/node.js:849 @@ -877,12 +873,12 @@ msgstr "不要在 ClientHello 中发送服务器名称。" msgid "Donot verifying server certificate." msgstr "不验证服务器证书。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 +#: htdocs/luci-static/resources/fchomo/listeners.js:1410 #: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "Download bandwidth" msgstr "下载带宽" -#: htdocs/luci-static/resources/fchomo/listeners.js:1396 +#: htdocs/luci-static/resources/fchomo/listeners.js:1411 #: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "Download bandwidth in Mbps." msgstr "下载带宽(单位:Mbps)。" @@ -903,12 +899,12 @@ msgstr "双栈" msgid "ECH HTTPS record query servername" msgstr "ECH HTTPS 记录查询域名" -#: htdocs/luci-static/resources/fchomo/listeners.js:1222 +#: htdocs/luci-static/resources/fchomo/listeners.js:1231 #: htdocs/luci-static/resources/view/fchomo/node.js:1444 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1190 msgid "ECH key" msgstr "ECH 密钥" @@ -1001,12 +997,12 @@ msgstr "" msgid "Enable ECH" msgstr "启用 ECH" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1398 #: htdocs/luci-static/resources/view/fchomo/node.js:1923 msgid "Enable TCP Brutal" msgstr "启用 TCP Brutal" -#: htdocs/luci-static/resources/fchomo/listeners.js:1384 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 #: htdocs/luci-static/resources/view/fchomo/node.js:1924 msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" @@ -1019,12 +1015,12 @@ msgstr "启用 Fast open" msgid "Enable multiplexing only for TCP." msgstr "仅为 TCP 启用多路复用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:345 +#: htdocs/luci-static/resources/fchomo/listeners.js:353 #: htdocs/luci-static/resources/view/fchomo/node.js:448 msgid "Enable obfuscate for downlink" msgstr "启用下行链路混淆" -#: htdocs/luci-static/resources/fchomo/listeners.js:1378 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 #: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "Enable padding" msgstr "启用填充" @@ -1039,7 +1035,7 @@ msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" -#: htdocs/luci-static/resources/fchomo/listeners.js:492 +#: htdocs/luci-static/resources/fchomo/listeners.js:500 #: htdocs/luci-static/resources/view/fchomo/node.js:722 msgid "" "Enabling obfuscation will make the server incompatible with standard QUIC " @@ -1050,7 +1046,7 @@ msgstr "启用混淆将使服务器与标准的 QUIC 连接不兼容,失去 HT msgid "Encrypted Hello" msgstr "加密 Hello" -#: htdocs/luci-static/resources/fchomo/listeners.js:816 +#: htdocs/luci-static/resources/fchomo/listeners.js:825 msgid "Encryption method" msgstr "加密方法" @@ -1134,10 +1130,10 @@ msgstr "预期状态" #: htdocs/luci-static/resources/fchomo.js:1973 #: htdocs/luci-static/resources/fchomo.js:1982 #: htdocs/luci-static/resources/fchomo/listeners.js:284 -#: htdocs/luci-static/resources/fchomo/listeners.js:331 -#: htdocs/luci-static/resources/fchomo/listeners.js:845 -#: htdocs/luci-static/resources/fchomo/listeners.js:876 -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 +#: htdocs/luci-static/resources/fchomo/listeners.js:854 +#: htdocs/luci-static/resources/fchomo/listeners.js:885 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 #: htdocs/luci-static/resources/view/fchomo/client.js:71 #: htdocs/luci-static/resources/view/fchomo/client.js:1063 #: htdocs/luci-static/resources/view/fchomo/client.js:1608 @@ -1156,16 +1152,16 @@ msgstr "预期状态" msgid "Expecting: %s" msgstr "请输入:%s" -#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1134 msgid "Expecting: Cannot be empty." msgstr "请输入:不能为空。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1472 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "请输入:当 %s 启用时,无法启用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Keep empty when %s is enabled." msgstr "请输入:启用 %s 时保持为空。" @@ -1174,10 +1170,10 @@ msgstr "请输入:启用 %s 时保持为空。" msgid "Expecting: Least one of %s or %s." msgstr "请输入:至少包含 %s 或 %s 中的一个。" -#: htdocs/luci-static/resources/fchomo/listeners.js:684 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1219,7 +1215,7 @@ msgid "Failed to upload, error: %s." msgstr "上传失败,错误:%s。" #: htdocs/luci-static/resources/fchomo.js:246 -#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" msgstr "自动回退" @@ -1273,7 +1269,7 @@ msgstr "兜底 DNS 服务器 (用于已被投毒污染的域名)" msgid "Firewall" msgstr "防火墙" -#: htdocs/luci-static/resources/fchomo/listeners.js:401 +#: htdocs/luci-static/resources/fchomo/listeners.js:409 #: htdocs/luci-static/resources/view/fchomo/node.js:533 msgid "Flow" msgstr "流控" @@ -1313,7 +1309,7 @@ msgstr "强制嗅探域名" msgid "Format" msgstr "格式" -#: htdocs/luci-static/resources/fchomo/listeners.js:769 +#: htdocs/luci-static/resources/fchomo/listeners.js:778 msgid "Forwarding rate limit" msgstr "转发速率限制" @@ -1332,7 +1328,7 @@ msgstr "" msgid "GFW list version" msgstr "GFW 域名列表版本" -#: htdocs/luci-static/resources/fchomo/listeners.js:487 +#: htdocs/luci-static/resources/fchomo/listeners.js:495 #: htdocs/luci-static/resources/view/fchomo/node.js:717 msgid "Gecko" msgstr "" @@ -1359,8 +1355,8 @@ msgstr "常规设置" #: htdocs/luci-static/resources/fchomo/listeners.js:262 #: htdocs/luci-static/resources/fchomo/listeners.js:306 #: htdocs/luci-static/resources/fchomo/listeners.js:308 -#: htdocs/luci-static/resources/fchomo/listeners.js:949 -#: htdocs/luci-static/resources/fchomo/listeners.js:1214 +#: htdocs/luci-static/resources/fchomo/listeners.js:958 +#: htdocs/luci-static/resources/fchomo/listeners.js:1223 #: htdocs/luci-static/resources/view/fchomo/global.js:608 #: htdocs/luci-static/resources/view/fchomo/node.js:2266 msgid "Generate" @@ -1431,7 +1427,7 @@ msgstr "组" #: htdocs/luci-static/resources/fchomo.js:154 #: htdocs/luci-static/resources/fchomo.js:191 -#: htdocs/luci-static/resources/fchomo/listeners.js:702 +#: htdocs/luci-static/resources/fchomo/listeners.js:710 #: htdocs/luci-static/resources/view/fchomo/node.js:1154 #: htdocs/luci-static/resources/view/fchomo/node.js:1677 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1446,12 +1442,12 @@ msgstr "" msgid "HTTP header" msgstr "HTTP header" -#: htdocs/luci-static/resources/fchomo/listeners.js:351 +#: htdocs/luci-static/resources/fchomo/listeners.js:359 #: htdocs/luci-static/resources/view/fchomo/node.js:454 msgid "HTTP mask" msgstr "HTTP 伪装" -#: htdocs/luci-static/resources/fchomo/listeners.js:356 +#: htdocs/luci-static/resources/fchomo/listeners.js:364 #: htdocs/luci-static/resources/view/fchomo/node.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:496 @@ -1471,7 +1467,7 @@ msgstr "HTTP 伪装: %s" msgid "HTTP request method" msgstr "HTTP 请求方法" -#: htdocs/luci-static/resources/fchomo/listeners.js:366 +#: htdocs/luci-static/resources/fchomo/listeners.js:374 #: htdocs/luci-static/resources/view/fchomo/node.js:480 msgid "HTTP root path" msgstr "HTTP 根路径" @@ -1480,7 +1476,7 @@ msgstr "HTTP 根路径" msgid "HTTP/3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:510 +#: htdocs/luci-static/resources/fchomo/listeners.js:518 msgid "" "HTTP3 server behavior when authentication fails.
A 404 page will be " "returned if empty." @@ -1500,20 +1496,20 @@ msgstr "处理域名" msgid "Handshake mode" msgstr "握手模式" -#: htdocs/luci-static/resources/fchomo/listeners.js:752 +#: htdocs/luci-static/resources/fchomo/listeners.js:760 msgid "Handshake target proxy" msgstr "握手目标代理" -#: htdocs/luci-static/resources/fchomo/listeners.js:707 +#: htdocs/luci-static/resources/fchomo/listeners.js:715 msgid "Handshake target that supports TLS 1.3" msgstr "握手目标 (支援 TLS 1.3)" -#: htdocs/luci-static/resources/fchomo/listeners.js:338 +#: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/view/fchomo/node.js:1089 msgid "Handshake timeout" msgstr "握手超时" -#: htdocs/luci-static/resources/fchomo/listeners.js:535 +#: htdocs/luci-static/resources/fchomo/listeners.js:543 msgid "Header to read real client IP from (e.g. X-Forwarded-For)" msgstr "用于读取客户端真实 IP 的 Header(例如 X-Forwarded-For)" @@ -1559,7 +1555,7 @@ msgstr "心跳间隔" msgid "Hidden" msgstr "隐藏" -#: htdocs/luci-static/resources/fchomo/listeners.js:715 +#: htdocs/luci-static/resources/fchomo/listeners.js:723 #: htdocs/luci-static/resources/view/fchomo/node.js:1159 msgid "Host that supports TLS 1.3" msgstr "主机名称 (支援 TLS 1.3)" @@ -1661,7 +1657,7 @@ msgstr "闲置会话检查间隔" msgid "Idle session timeout" msgstr "闲置会话超时" -#: htdocs/luci-static/resources/fchomo/listeners.js:647 +#: htdocs/luci-static/resources/fchomo/listeners.js:655 msgid "Idle timeout" msgstr "闲置超时" @@ -1673,7 +1669,7 @@ msgstr "如果选择了“所有端口”,则取消选中“其他”" msgid "If Block is selected, uncheck others" msgstr "如果选择了“阻止”,则取消选中“其他”" -#: htdocs/luci-static/resources/fchomo/listeners.js:477 +#: htdocs/luci-static/resources/fchomo/listeners.js:485 msgid "Ignore client bandwidth" msgstr "忽略客户端带宽" @@ -1706,8 +1702,8 @@ msgstr "导入 mihomo 配置" msgid "Import rule-set links" msgstr "导入规则集链接" -#: htdocs/luci-static/resources/fchomo/listeners.js:466 -#: htdocs/luci-static/resources/fchomo/listeners.js:472 +#: htdocs/luci-static/resources/fchomo/listeners.js:474 +#: htdocs/luci-static/resources/fchomo/listeners.js:480 #: htdocs/luci-static/resources/view/fchomo/node.js:691 #: htdocs/luci-static/resources/view/fchomo/node.js:697 #: htdocs/luci-static/resources/view/fchomo/node.js:2343 @@ -1715,7 +1711,7 @@ msgstr "导入规则集链接" msgid "In Mbps." msgstr "单位为 Mbps。" -#: htdocs/luci-static/resources/fchomo/listeners.js:770 +#: htdocs/luci-static/resources/fchomo/listeners.js:779 msgid "In bps. 0 means no speed limit." msgstr "" @@ -1724,6 +1720,7 @@ msgstr "" msgid "In bytes. %s will be used if empty." msgstr "单位为字节。留空则使用 %s。" +#: htdocs/luci-static/resources/fchomo/listeners.js:1294 #: htdocs/luci-static/resources/view/fchomo/node.js:676 #: htdocs/luci-static/resources/view/fchomo/node.js:683 #: htdocs/luci-static/resources/view/fchomo/node.js:757 @@ -1740,9 +1737,9 @@ msgstr "单位为毫秒。留空则使用 %s。" msgid "In milliseconds." msgstr "单位为毫秒。" -#: htdocs/luci-static/resources/fchomo/listeners.js:339 -#: htdocs/luci-static/resources/fchomo/listeners.js:458 -#: htdocs/luci-static/resources/fchomo/listeners.js:648 +#: htdocs/luci-static/resources/fchomo/listeners.js:347 +#: htdocs/luci-static/resources/fchomo/listeners.js:466 +#: htdocs/luci-static/resources/fchomo/listeners.js:656 #: htdocs/luci-static/resources/view/fchomo/node.js:606 #: htdocs/luci-static/resources/view/fchomo/node.js:613 #: htdocs/luci-static/resources/view/fchomo/node.js:1768 @@ -1766,7 +1763,7 @@ msgid "" "connection timeout." msgstr "单位为秒。配置后握手时不受外层连接超时影响。" -#: htdocs/luci-static/resources/fchomo/listeners.js:865 +#: htdocs/luci-static/resources/fchomo/listeners.js:874 #: htdocs/luci-static/resources/view/fchomo/node.js:1251 msgid "" "In the order of one Padding-Length and one Padding-" @@ -1809,7 +1806,7 @@ msgstr "引入所有代理节点。" msgid "Info" msgstr "信息" -#: htdocs/luci-static/resources/fchomo/listeners.js:557 +#: htdocs/luci-static/resources/fchomo/listeners.js:565 #: htdocs/luci-static/resources/view/fchomo/node.js:763 msgid "Initial congestion window size" msgstr "初始拥塞窗口大小" @@ -1827,11 +1824,11 @@ msgstr "噩梦" msgid "Interface Control" msgstr "接口控制" -#: htdocs/luci-static/resources/fchomo/listeners.js:677 -#: htdocs/luci-static/resources/fchomo/listeners.js:687 -#: htdocs/luci-static/resources/fchomo/listeners.js:692 -#: htdocs/luci-static/resources/fchomo/listeners.js:1122 -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 +#: htdocs/luci-static/resources/fchomo/listeners.js:685 +#: htdocs/luci-static/resources/fchomo/listeners.js:695 +#: htdocs/luci-static/resources/fchomo/listeners.js:700 +#: htdocs/luci-static/resources/fchomo/listeners.js:1131 +#: htdocs/luci-static/resources/fchomo/listeners.js:1247 #: htdocs/luci-static/resources/view/fchomo/node.js:1129 #: htdocs/luci-static/resources/view/fchomo/node.js:1139 #: htdocs/luci-static/resources/view/fchomo/node.js:1144 @@ -1862,12 +1859,12 @@ msgstr "Keep-alive 周期" msgid "Key" msgstr "密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1150 #: htdocs/luci-static/resources/view/fchomo/node.js:1424 msgid "Key path" msgstr "证书路径" -#: htdocs/luci-static/resources/fchomo/listeners.js:884 +#: htdocs/luci-static/resources/fchomo/listeners.js:893 msgid "Keypairs" msgstr "密钥对" @@ -1902,12 +1899,12 @@ msgstr "怠惰查询" msgid "Lazy query." msgstr "怠惰查询。" -#: htdocs/luci-static/resources/fchomo/listeners.js:358 +#: htdocs/luci-static/resources/fchomo/listeners.js:366 #: htdocs/luci-static/resources/view/fchomo/node.js:461 msgid "Legacy" msgstr "传统" -#: htdocs/luci-static/resources/fchomo/listeners.js:410 +#: htdocs/luci-static/resources/fchomo/listeners.js:418 msgid "" "Legacy protocol support (VMess MD5 Authentication) is provided for " "compatibility purposes only, use of alterId > 1 is not recommended." @@ -1919,7 +1916,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "有时性能更好。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1064 +#: htdocs/luci-static/resources/fchomo/listeners.js:1073 #: htdocs/luci-static/resources/view/fchomo/node.js:1337 msgid "List of supported application level protocols, in order of preference." msgstr "支持的应用层协议协商列表,按顺序排列。" @@ -2004,7 +2001,7 @@ msgstr "MTU" msgid "Masque" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:509 +#: htdocs/luci-static/resources/fchomo/listeners.js:517 msgid "Masquerade" msgstr "伪装" @@ -2040,12 +2037,12 @@ msgstr "匹配规则集。" msgid "Max Early Data" msgstr "前置数据最大值" -#: htdocs/luci-static/resources/fchomo/listeners.js:451 +#: htdocs/luci-static/resources/fchomo/listeners.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:657 msgid "Max UDP relay packet size" msgstr "UDP 中继数据包最大尺寸" -#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/fchomo/listeners.js:1370 msgid "Max buffered posts" msgstr "POST 最大缓冲" @@ -2061,17 +2058,17 @@ msgstr "最大连接数" msgid "Max count of failures" msgstr "最大失败次数" -#: htdocs/luci-static/resources/fchomo/listeners.js:563 +#: htdocs/luci-static/resources/fchomo/listeners.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:769 msgid "Max datagram frame size" msgstr "最大数据报帧大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:471 +#: htdocs/luci-static/resources/fchomo/listeners.js:479 #: htdocs/luci-static/resources/view/fchomo/node.js:696 msgid "Max download speed" msgstr "最大下载速度" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 +#: htdocs/luci-static/resources/fchomo/listeners.js:1381 #: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Max each POST bytes" msgstr "POST 最大字节数" @@ -2080,11 +2077,11 @@ msgstr "POST 最大字节数" msgid "Max open streams" msgstr "限制打开流的数量" -#: htdocs/luci-static/resources/fchomo/listeners.js:522 +#: htdocs/luci-static/resources/fchomo/listeners.js:530 msgid "Max realms" msgstr "最大 Realms 总数" -#: htdocs/luci-static/resources/fchomo/listeners.js:528 +#: htdocs/luci-static/resources/fchomo/listeners.js:536 msgid "Max realms per client IP" msgstr "每客户端 IP 最大 Realms 总数" @@ -2100,7 +2097,7 @@ msgstr "最大可复用秒数" msgid "Max reuse times" msgstr "最大复用次数" -#: htdocs/luci-static/resources/fchomo/listeners.js:465 +#: htdocs/luci-static/resources/fchomo/listeners.js:473 #: htdocs/luci-static/resources/view/fchomo/node.js:690 msgid "Max upload speed" msgstr "最大上传速度" @@ -2118,12 +2115,12 @@ msgstr "" "在打开新连接之前,连接中的最大多路复用流数量。
%s 和 " "%s 冲突。" -#: htdocs/luci-static/resources/fchomo/listeners.js:323 +#: htdocs/luci-static/resources/fchomo/listeners.js:327 #: htdocs/luci-static/resources/view/fchomo/node.js:433 msgid "Maximum padding rate" msgstr "最大填充率" -#: htdocs/luci-static/resources/fchomo/listeners.js:331 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "" "Maximum padding rate must be greater than or equal to the minimum padding " @@ -2187,7 +2184,7 @@ msgstr "混合 系统 TCP 栈和 gVisor UDP 栈。" msgid "Mixed port" msgstr "混合端口" -#: htdocs/luci-static/resources/fchomo/listeners.js:1373 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 #: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Multiplex" msgstr "多路复用" @@ -2206,7 +2203,7 @@ msgstr "多路复用" msgid "NOT" msgstr "NOT" -#: htdocs/luci-static/resources/fchomo/listeners.js:615 +#: htdocs/luci-static/resources/fchomo/listeners.js:623 msgid "Name of the Proxy group as outbound." msgstr "出站代理组的名称。" @@ -2218,7 +2215,7 @@ msgstr "用于下载供应商订阅的代理组名称。" msgid "Name of the Proxy group to download rule set." msgstr "用于下载规则集订阅的代理组名称。" -#: htdocs/luci-static/resources/fchomo/listeners.js:603 +#: htdocs/luci-static/resources/fchomo/listeners.js:611 msgid "Name of the Sub rule used for inbound matching." msgstr "用于入站匹配的子规则名称。" @@ -2234,7 +2231,7 @@ msgstr "原生外观" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:654 +#: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "网络类型" @@ -2246,7 +2243,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "无需认证的 IP 范围" -#: htdocs/luci-static/resources/fchomo/listeners.js:1350 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "No SSE header" msgstr "无 SSE header" @@ -2319,28 +2316,28 @@ msgstr "" msgid "ON" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:701 +#: htdocs/luci-static/resources/fchomo/listeners.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1153 msgid "Obfs Mode" msgstr "Obfs 模式" -#: htdocs/luci-static/resources/fchomo/listeners.js:504 +#: htdocs/luci-static/resources/fchomo/listeners.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:734 msgid "Obfuscate maximum packet size" msgstr "混淆最大数据包大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:499 +#: htdocs/luci-static/resources/fchomo/listeners.js:507 #: htdocs/luci-static/resources/view/fchomo/node.js:729 msgid "Obfuscate minimum packet size" msgstr "混淆最小数据包大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:491 +#: htdocs/luci-static/resources/fchomo/listeners.js:499 #: htdocs/luci-static/resources/view/fchomo/node.js:721 msgid "Obfuscate password" msgstr "混淆密码" #: htdocs/luci-static/resources/fchomo/listeners.js:291 -#: htdocs/luci-static/resources/fchomo/listeners.js:484 +#: htdocs/luci-static/resources/fchomo/listeners.js:492 #: htdocs/luci-static/resources/view/fchomo/node.js:412 #: htdocs/luci-static/resources/view/fchomo/node.js:714 msgid "Obfuscate type" @@ -2357,7 +2354,7 @@ msgstr "混淆为%s" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "0-63 范围内的一个或多个数字,以逗号分隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1058 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 msgid "Only applicable when %s are used as a frontend." msgstr "仅当 %s 用作前端时适用。" @@ -2445,25 +2442,25 @@ msgstr "数据包编码" msgid "Padding bytes" msgstr "填充字节" -#: htdocs/luci-static/resources/fchomo/listeners.js:440 +#: htdocs/luci-static/resources/fchomo/listeners.js:448 msgid "Padding scheme" msgstr "填充方案" -#: htdocs/luci-static/resources/fchomo/listeners.js:863 +#: htdocs/luci-static/resources/fchomo/listeners.js:872 #: htdocs/luci-static/resources/view/fchomo/node.js:1249 msgid "Paddings" msgstr "填充 (Paddings)" #: htdocs/luci-static/resources/fchomo/listeners.js:167 #: htdocs/luci-static/resources/fchomo/listeners.js:184 -#: htdocs/luci-static/resources/fchomo/listeners.js:730 +#: htdocs/luci-static/resources/fchomo/listeners.js:738 #: htdocs/luci-static/resources/view/fchomo/node.js:324 #: htdocs/luci-static/resources/view/fchomo/node.js:345 #: htdocs/luci-static/resources/view/fchomo/node.js:1174 msgid "Password" msgstr "密码" -#: htdocs/luci-static/resources/fchomo/listeners.js:581 +#: htdocs/luci-static/resources/fchomo/listeners.js:589 #: htdocs/luci-static/resources/view/fchomo/node.js:787 msgid "Path MTU Discovery" msgstr "路径 MTU 发现" @@ -2476,7 +2473,7 @@ msgstr "捆绑包路径" msgid "Path in bundle: %s" msgstr "在捆绑包%s中的路径" -#: htdocs/luci-static/resources/fchomo/listeners.js:803 +#: htdocs/luci-static/resources/fchomo/listeners.js:812 #: htdocs/luci-static/resources/view/fchomo/node.js:2173 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:373 msgid "Payload" @@ -2544,7 +2541,7 @@ msgstr "" msgid "Please type %s fields of mihomo config.
" msgstr "请输入 mihomo 配置的 %s 字段。
" -#: htdocs/luci-static/resources/fchomo/listeners.js:667 +#: htdocs/luci-static/resources/fchomo/listeners.js:675 #: htdocs/luci-static/resources/view/fchomo/node.js:1117 msgid "Plugin" msgstr "插件" @@ -2554,7 +2551,7 @@ msgstr "插件" msgid "Plugin fields" msgstr "插件字段" -#: htdocs/luci-static/resources/fchomo/listeners.js:673 +#: htdocs/luci-static/resources/fchomo/listeners.js:681 #: htdocs/luci-static/resources/view/fchomo/node.js:1123 msgid "Plugin type" msgstr "插件类型" @@ -2584,14 +2581,14 @@ msgstr "端口" msgid "Ports pool" msgstr "端口池" -#: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:516 +#: htdocs/luci-static/resources/fchomo/listeners.js:385 +#: htdocs/luci-static/resources/fchomo/listeners.js:524 #: htdocs/luci-static/resources/view/fchomo/node.js:504 #: htdocs/luci-static/resources/view/fchomo/node.js:927 msgid "Pre-shared key" msgstr "预共享密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1001 +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 #: htdocs/luci-static/resources/view/fchomo/node.js:1284 msgid "Pre-shared key of rendezvous server" msgstr "牵线服务器的预共享密钥" @@ -2698,7 +2695,7 @@ msgstr "代理节点" msgid "Proxy chain" msgstr "代理链" -#: htdocs/luci-static/resources/fchomo/listeners.js:614 +#: htdocs/luci-static/resources/fchomo/listeners.js:622 #: htdocs/luci-static/resources/view/fchomo/client.js:813 #: htdocs/luci-static/resources/view/fchomo/client.js:1643 #: htdocs/luci-static/resources/view/fchomo/node.js:2197 @@ -2727,12 +2724,12 @@ msgstr "" msgid "QUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:552 +#: htdocs/luci-static/resources/fchomo/listeners.js:560 #: htdocs/luci-static/resources/view/fchomo/node.js:751 msgid "QUIC based 0-RTT" msgstr "基于 QUIC 的 0-RTT" -#: htdocs/luci-static/resources/fchomo/listeners.js:546 +#: htdocs/luci-static/resources/fchomo/listeners.js:554 #: htdocs/luci-static/resources/view/fchomo/node.js:740 msgid "QUIC versions" msgstr "QUIC 版本" @@ -2742,8 +2739,8 @@ msgstr "QUIC 版本" msgid "Quick Reload" msgstr "快速重载" -#: htdocs/luci-static/resources/fchomo/listeners.js:1123 -#: htdocs/luci-static/resources/fchomo/listeners.js:1229 +#: htdocs/luci-static/resources/fchomo/listeners.js:1132 +#: htdocs/luci-static/resources/fchomo/listeners.js:1238 #: htdocs/luci-static/resources/view/fchomo/node.js:1465 msgid "REALITY" msgstr "REALITY" @@ -2752,24 +2749,28 @@ msgstr "REALITY" msgid "REALITY X25519MLKEM768 PQC support" msgstr "REALITY X25519MLKEM768 后量子加密支持" -#: htdocs/luci-static/resources/fchomo/listeners.js:1277 +#: htdocs/luci-static/resources/fchomo/listeners.js:1286 msgid "REALITY certificate issued to" msgstr "REALITY 证书颁发给" -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 +#: htdocs/luci-static/resources/fchomo/listeners.js:1254 msgid "REALITY handshake server" msgstr "REALITY 握手服务器" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +msgid "REALITY max time difference" +msgstr "" + +#: htdocs/luci-static/resources/fchomo/listeners.js:1261 msgid "REALITY private key" msgstr "REALITY 私钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1267 +#: htdocs/luci-static/resources/fchomo/listeners.js:1276 #: htdocs/luci-static/resources/view/fchomo/node.js:1481 msgid "REALITY public key" msgstr "REALITY 公钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/fchomo/listeners.js:1280 #: htdocs/luci-static/resources/view/fchomo/node.js:1486 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -2780,8 +2781,8 @@ msgstr "REALITY 标识符" msgid "REMATCH-NAME marking" msgstr "REMATCH-NAME 打标" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:853 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 msgid "RTT" msgstr "" @@ -2798,17 +2799,17 @@ msgstr "留空将使用随机令牌。" msgid "Randomized traffic characteristics" msgstr "随机化流量特征" -#: htdocs/luci-static/resources/fchomo/listeners.js:990 +#: htdocs/luci-static/resources/fchomo/listeners.js:999 #: htdocs/luci-static/resources/view/fchomo/node.js:1273 msgid "Realm" msgstr "Realm" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 +#: htdocs/luci-static/resources/fchomo/listeners.js:1015 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 msgid "Realm ID" msgstr "Realm ID" -#: htdocs/luci-static/resources/fchomo/listeners.js:539 +#: htdocs/luci-static/resources/fchomo/listeners.js:547 msgid "Realm name pattern" msgstr "Realm 名称模式" @@ -2886,7 +2887,7 @@ msgstr "移除" msgid "Remove idles" msgstr "移除闲置" -#: htdocs/luci-static/resources/fchomo/listeners.js:995 +#: htdocs/luci-static/resources/fchomo/listeners.js:1004 #: htdocs/luci-static/resources/view/fchomo/node.js:1278 msgid "Rendezvous server" msgstr "牵线服务器" @@ -2903,7 +2904,7 @@ msgstr "替换节点名称" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1329 +#: htdocs/luci-static/resources/fchomo/listeners.js:1344 #: htdocs/luci-static/resources/view/fchomo/node.js:1738 #: htdocs/luci-static/resources/view/fchomo/node.js:1745 msgid "Request path" @@ -2934,11 +2935,11 @@ msgstr "保留字段字节" msgid "Resources management" msgstr "资源管理" -#: htdocs/luci-static/resources/fchomo/listeners.js:676 -#: htdocs/luci-static/resources/fchomo/listeners.js:686 -#: htdocs/luci-static/resources/fchomo/listeners.js:691 -#: htdocs/luci-static/resources/fchomo/listeners.js:1121 -#: htdocs/luci-static/resources/fchomo/listeners.js:1237 +#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:694 +#: htdocs/luci-static/resources/fchomo/listeners.js:699 +#: htdocs/luci-static/resources/fchomo/listeners.js:1130 +#: htdocs/luci-static/resources/fchomo/listeners.js:1246 #: htdocs/luci-static/resources/view/fchomo/node.js:1128 #: htdocs/luci-static/resources/view/fchomo/node.js:1138 #: htdocs/luci-static/resources/view/fchomo/node.js:1143 @@ -2946,7 +2947,7 @@ msgstr "资源管理" msgid "Restls" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:745 +#: htdocs/luci-static/resources/fchomo/listeners.js:753 #: htdocs/luci-static/resources/view/fchomo/node.js:1197 msgid "Restls script" msgstr "Restls 剧本" @@ -2983,7 +2984,7 @@ msgstr "路由 DSCP" msgid "Routing GFW" msgstr "路由 GFW 流量" -#: htdocs/luci-static/resources/fchomo/listeners.js:597 +#: htdocs/luci-static/resources/fchomo/listeners.js:605 #: htdocs/luci-static/resources/view/fchomo/global.js:776 #: htdocs/luci-static/resources/view/fchomo/node.js:1966 #: htdocs/luci-static/resources/view/fchomo/node.js:2385 @@ -3070,7 +3071,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1012 +#: htdocs/luci-static/resources/fchomo/listeners.js:1021 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 msgid "STUN servers" msgstr "STUN 服务器" @@ -3083,7 +3084,7 @@ msgstr "SUB-RULE" msgid "SUoT version" msgstr "SUoT 版本" -#: htdocs/luci-static/resources/fchomo/listeners.js:486 +#: htdocs/luci-static/resources/fchomo/listeners.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:716 msgid "Salamander" msgstr "Salamander" @@ -3131,9 +3132,9 @@ msgstr "同时向%s%s发起查询。" msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "发送 300-600 秒的随机票证,以供客户端 0-RTT 重用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3143,7 +3144,7 @@ msgstr "服务端" msgid "Server address" msgstr "服务器地址" -#: htdocs/luci-static/resources/fchomo/listeners.js:1323 +#: htdocs/luci-static/resources/fchomo/listeners.js:1338 #: htdocs/luci-static/resources/view/fchomo/node.js:1717 #: htdocs/luci-static/resources/view/fchomo/node.js:1723 msgid "Server hostname" @@ -3166,11 +3167,11 @@ msgstr "服务状态" msgid "ShadowQUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:675 -#: htdocs/luci-static/resources/fchomo/listeners.js:685 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:683 +#: htdocs/luci-static/resources/fchomo/listeners.js:693 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1127 #: htdocs/luci-static/resources/view/fchomo/node.js:1137 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 @@ -3183,17 +3184,17 @@ msgstr "" msgid "Shadowsocks" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:422 +#: htdocs/luci-static/resources/fchomo/listeners.js:430 #: htdocs/luci-static/resources/view/fchomo/node.js:582 msgid "Shadowsocks chipher" msgstr "Shadowsocks 加密方法" -#: htdocs/luci-static/resources/fchomo/listeners.js:417 +#: htdocs/luci-static/resources/fchomo/listeners.js:425 #: htdocs/luci-static/resources/view/fchomo/node.js:577 msgid "Shadowsocks encrypt" msgstr "Shadowsocks 加密" -#: htdocs/luci-static/resources/fchomo/listeners.js:430 +#: htdocs/luci-static/resources/fchomo/listeners.js:438 #: htdocs/luci-static/resources/view/fchomo/node.js:590 msgid "Shadowsocks password" msgstr "Shadowsocks 密码" @@ -3282,12 +3283,12 @@ msgstr "" msgid "Strategy" msgstr "策略" -#: htdocs/luci-static/resources/fchomo/listeners.js:569 +#: htdocs/luci-static/resources/fchomo/listeners.js:577 #: htdocs/luci-static/resources/view/fchomo/node.js:775 msgid "Stream-level receive window size" msgstr "流级接收窗口大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:602 +#: htdocs/luci-static/resources/fchomo/listeners.js:610 #: htdocs/luci-static/resources/view/fchomo/client.js:1400 #: htdocs/luci-static/resources/view/fchomo/client.js:1409 msgid "Sub rule" @@ -3350,7 +3351,7 @@ msgstr "系统 DNS" #: htdocs/luci-static/resources/fchomo.js:200 #: htdocs/luci-static/resources/fchomo.js:201 #: htdocs/luci-static/resources/fchomo.js:211 -#: htdocs/luci-static/resources/fchomo/listeners.js:655 +#: htdocs/luci-static/resources/fchomo/listeners.js:663 #: htdocs/luci-static/resources/view/fchomo/client.js:618 #: htdocs/luci-static/resources/view/fchomo/client.js:710 msgid "TCP" @@ -3392,8 +3393,8 @@ msgstr "" msgid "TFO" msgstr "TCP 快速打开 (TFO)" -#: htdocs/luci-static/resources/fchomo/listeners.js:703 -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 +#: htdocs/luci-static/resources/fchomo/listeners.js:711 +#: htdocs/luci-static/resources/fchomo/listeners.js:1031 #: htdocs/luci-static/resources/view/fchomo/global.js:550 #: htdocs/luci-static/resources/view/fchomo/node.js:469 #: htdocs/luci-static/resources/view/fchomo/node.js:1155 @@ -3401,7 +3402,7 @@ msgstr "TCP 快速打开 (TFO)" msgid "TLS" msgstr "TLS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1063 +#: htdocs/luci-static/resources/fchomo/listeners.js:1072 #: htdocs/luci-static/resources/view/fchomo/node.js:1336 msgid "TLS ALPN" msgstr "TLS ALPN" @@ -3429,11 +3430,11 @@ msgstr "" msgid "Tailscale" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:589 +#: htdocs/luci-static/resources/fchomo/listeners.js:597 msgid "Target address" msgstr "目标地址" -#: htdocs/luci-static/resources/fchomo/listeners.js:478 +#: htdocs/luci-static/resources/fchomo/listeners.js:486 msgid "" "Tell the client to use the BBR flow control algorithm instead of Hysteria CC." msgstr "让客户端使用 BBR 流控算法。" @@ -3447,13 +3448,13 @@ msgstr "让客户端使用 BBR 流控算法。" msgid "The %s address used by local machine in the %s network." msgstr "本机 %s 地址,用于在 %s 网络中使用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/node.js:1425 msgid "The %s private key, in PEM format." msgstr "%s私钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 msgid "The %s public key, in PEM format." @@ -3473,6 +3474,10 @@ msgstr "Sudoku 服务器提供的 ED25519 可用私钥 或 UUID。" msgid "The ED25519 master public key or UUID generated by Sudoku." msgstr "Sudoku 生成的 ED25519 主公钥 或 UUID。" +#: htdocs/luci-static/resources/view/fchomo/node.js:601 +msgid "The client metadata sent to the server." +msgstr "发送到服务器的客户端元数据。" + #: htdocs/luci-static/resources/view/fchomo/global.js:324 msgid "The default value is 2:00 every day." msgstr "默认值为每天 2:00。" @@ -3483,7 +3488,7 @@ msgid "" "connection timeout is used." msgstr "默认值为%s,表示仅使用外层连接超时。" -#: htdocs/luci-static/resources/fchomo/listeners.js:866 +#: htdocs/luci-static/resources/fchomo/listeners.js:875 #: htdocs/luci-static/resources/view/fchomo/node.js:1252 msgid "" "The first padding must have a probability of 100% and at least 35 bytes." @@ -3499,16 +3504,16 @@ msgstr "匹配 %s 的将被视为未被投毒污染。" msgid "The matching %s will be deemed as poisoned." msgstr "匹配 %s 的将被视为已被投毒污染。" -#: htdocs/luci-static/resources/fchomo/listeners.js:753 +#: htdocs/luci-static/resources/fchomo/listeners.js:761 msgid "The proxy used to connect to the handshake target." msgstr "用于连接握手目标的代理。" -#: htdocs/luci-static/resources/fchomo/listeners.js:864 +#: htdocs/luci-static/resources/fchomo/listeners.js:873 #: htdocs/luci-static/resources/view/fchomo/node.js:1250 msgid "The server and client can set different padding parameters." msgstr "服务器和客户端可以设置不同的填充参数。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1223 +#: htdocs/luci-static/resources/fchomo/listeners.js:1232 #: htdocs/luci-static/resources/view/fchomo/global.js:615 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "此 ECH 参数需要添加到域名的 HTTPS 记录中。" @@ -3568,7 +3573,7 @@ msgid "Transit proxy node" msgstr "中转代理节点" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 #: htdocs/luci-static/resources/view/fchomo/node.js:360 #: htdocs/luci-static/resources/view/fchomo/node.js:1670 msgid "Transport" @@ -3579,7 +3584,7 @@ msgstr "传输层" msgid "Transport fields" msgstr "传输层字段" -#: htdocs/luci-static/resources/fchomo/listeners.js:1292 +#: htdocs/luci-static/resources/fchomo/listeners.js:1307 #: htdocs/luci-static/resources/view/fchomo/node.js:1675 msgid "Transport type" msgstr "传输层类型" @@ -3598,7 +3603,7 @@ msgstr "" msgid "TrustTunnel" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:534 +#: htdocs/luci-static/resources/fchomo/listeners.js:542 msgid "Trusted proxy header" msgstr "可信代理 Header" @@ -3649,8 +3654,8 @@ msgstr "类型" #: htdocs/luci-static/resources/fchomo.js:208 #: htdocs/luci-static/resources/fchomo.js:209 #: htdocs/luci-static/resources/fchomo.js:210 -#: htdocs/luci-static/resources/fchomo/listeners.js:656 -#: htdocs/luci-static/resources/fchomo/listeners.js:661 +#: htdocs/luci-static/resources/fchomo/listeners.js:664 +#: htdocs/luci-static/resources/fchomo/listeners.js:669 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1097 @@ -3691,8 +3696,8 @@ msgid "URL test" msgstr "自动选择" #: htdocs/luci-static/resources/fchomo/listeners.js:215 -#: htdocs/luci-static/resources/fchomo/listeners.js:395 -#: htdocs/luci-static/resources/fchomo/listeners.js:445 +#: htdocs/luci-static/resources/fchomo/listeners.js:403 +#: htdocs/luci-static/resources/fchomo/listeners.js:453 #: htdocs/luci-static/resources/view/fchomo/node.js:527 #: htdocs/luci-static/resources/view/fchomo/node.js:626 msgid "UUID" @@ -3737,18 +3742,18 @@ msgstr "更新失败。" msgid "Update interval" msgstr "更新间隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1389 +#: htdocs/luci-static/resources/fchomo/listeners.js:1404 #: htdocs/luci-static/resources/view/fchomo/node.js:1929 msgid "Upload bandwidth" msgstr "上传带宽" -#: htdocs/luci-static/resources/fchomo/listeners.js:1390 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 #: htdocs/luci-static/resources/view/fchomo/node.js:1930 msgid "Upload bandwidth in Mbps." msgstr "上传带宽(单位:Mbps)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1133 -#: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/node.js:1416 msgid "Upload certificate" msgstr "上传证书" @@ -3757,14 +3762,14 @@ msgstr "上传证书" msgid "Upload initial package" msgstr "上传初始资源包" -#: htdocs/luci-static/resources/fchomo/listeners.js:1148 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 #: htdocs/luci-static/resources/view/fchomo/node.js:1430 msgid "Upload key" msgstr "上传密钥" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1151 -#: htdocs/luci-static/resources/fchomo/listeners.js:1176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 #: htdocs/luci-static/resources/view/fchomo/global.js:306 #: htdocs/luci-static/resources/view/fchomo/node.js:1419 #: htdocs/luci-static/resources/view/fchomo/node.js:1433 @@ -3819,7 +3824,7 @@ msgid "User-hint is mandatory" msgstr "User-hint 是必填项" #: htdocs/luci-static/resources/fchomo/listeners.js:162 -#: htdocs/luci-static/resources/fchomo/listeners.js:723 +#: htdocs/luci-static/resources/fchomo/listeners.js:731 #: htdocs/luci-static/resources/view/fchomo/node.js:319 #: htdocs/luci-static/resources/view/fchomo/node.js:1167 msgid "Username" @@ -3882,8 +3887,8 @@ msgstr "详细" msgid "Verify if given" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:384 -#: htdocs/luci-static/resources/fchomo/listeners.js:737 +#: htdocs/luci-static/resources/fchomo/listeners.js:392 +#: htdocs/luci-static/resources/fchomo/listeners.js:745 #: htdocs/luci-static/resources/view/fchomo/node.js:511 #: htdocs/luci-static/resources/view/fchomo/node.js:1181 msgid "Version" @@ -3914,10 +3919,10 @@ msgstr "以 75% 的概率等待随机 0-111 毫秒。" msgid "Warning" msgstr "警告" -#: htdocs/luci-static/resources/fchomo/listeners.js:362 -#: htdocs/luci-static/resources/fchomo/listeners.js:1294 -#: htdocs/luci-static/resources/fchomo/listeners.js:1305 -#: htdocs/luci-static/resources/fchomo/listeners.js:1312 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1320 +#: htdocs/luci-static/resources/fchomo/listeners.js:1327 #: htdocs/luci-static/resources/view/fchomo/node.js:465 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:1680 @@ -3960,14 +3965,14 @@ msgstr "WireGuard 要求 base64 编码的私钥。" msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1295 -#: htdocs/luci-static/resources/fchomo/listeners.js:1306 +#: htdocs/luci-static/resources/fchomo/listeners.js:1310 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1681 #: htdocs/luci-static/resources/view/fchomo/node.js:1701 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1342 +#: htdocs/luci-static/resources/fchomo/listeners.js:1357 #: htdocs/luci-static/resources/view/fchomo/node.js:1796 msgid "XHTTP mode" msgstr "XHTTP 模式" @@ -3985,7 +3990,7 @@ msgstr "" msgid "XMUX:" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:825 +#: htdocs/luci-static/resources/fchomo/listeners.js:834 msgid "XOR mode" msgstr "XOR 模式" @@ -4062,8 +4067,8 @@ msgstr "bbr" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/fchomo/listeners.js:1147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1187 #: htdocs/luci-static/resources/view/fchomo/node.js:1421 msgid "certificate" msgstr "证书" @@ -4083,8 +4088,8 @@ msgstr "" msgid "cubic" msgstr "cubic" -#: htdocs/luci-static/resources/fchomo/listeners.js:777 -#: htdocs/luci-static/resources/fchomo/listeners.js:808 +#: htdocs/luci-static/resources/fchomo/listeners.js:786 +#: htdocs/luci-static/resources/fchomo/listeners.js:817 msgid "decryption" msgstr "decryption" @@ -4096,20 +4101,20 @@ msgstr "dnsmasq 自行选择上游服务器。 (可能影响 CDN 准确性)" msgid "down" msgstr "Hysteria 下载速率" -#: htdocs/luci-static/resources/fchomo/listeners.js:812 +#: htdocs/luci-static/resources/fchomo/listeners.js:821 #: htdocs/luci-static/resources/view/fchomo/node.js:1204 #: htdocs/luci-static/resources/view/fchomo/node.js:1227 msgid "encryption" msgstr "encryption" -#: htdocs/luci-static/resources/fchomo/listeners.js:346 +#: htdocs/luci-static/resources/fchomo/listeners.js:354 #: htdocs/luci-static/resources/view/fchomo/node.js:449 msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "false = 带宽优化下行 true = 纯 Sudoku 下行。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:1308 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1679 #: htdocs/luci-static/resources/view/fchomo/node.js:1692 #: htdocs/luci-static/resources/view/fchomo/node.js:1699 @@ -4125,7 +4130,7 @@ msgstr "" msgid "gRPC ping interval" msgstr "gRPC ping 间隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1336 +#: htdocs/luci-static/resources/fchomo/listeners.js:1351 #: htdocs/luci-static/resources/view/fchomo/node.js:1758 msgid "gRPC service name" msgstr "gRPC 服务名称" @@ -4151,7 +4156,7 @@ msgstr "" msgid "h3-l4proxy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 msgid "least one keypair required" msgstr "至少需要一对密钥" @@ -4216,13 +4221,13 @@ msgid "not included \",\"" msgstr "不包含 \",\"" #: htdocs/luci-static/resources/fchomo.js:233 -#: htdocs/luci-static/resources/fchomo/listeners.js:604 -#: htdocs/luci-static/resources/fchomo/listeners.js:607 +#: htdocs/luci-static/resources/fchomo/listeners.js:612 +#: htdocs/luci-static/resources/fchomo/listeners.js:615 msgid "null" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:674 -#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:682 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/view/fchomo/node.js:1124 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 msgid "obfs-simple" @@ -4248,17 +4253,17 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/fchomo/listeners.js:1361 #: htdocs/luci-static/resources/view/fchomo/node.js:1800 msgid "packet-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:360 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 #: htdocs/luci-static/resources/view/fchomo/node.js:463 msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1162 #: htdocs/luci-static/resources/view/fchomo/node.js:1435 msgid "private key" msgstr "私钥" @@ -4284,7 +4289,7 @@ msgstr "规则集" msgid "smux" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 #: htdocs/luci-static/resources/view/fchomo/node.js:462 msgid "split-stream" msgstr "" @@ -4293,17 +4298,17 @@ msgstr "" msgid "src" msgstr "src" -#: htdocs/luci-static/resources/fchomo/listeners.js:1344 +#: htdocs/luci-static/resources/fchomo/listeners.js:1359 #: htdocs/luci-static/resources/view/fchomo/node.js:1798 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 #: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1361 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 msgid "stream-up server seconds" msgstr "" @@ -4343,8 +4348,8 @@ msgstr "独立值" msgid "up" msgstr "Hysteria 上传速率" -#: htdocs/luci-static/resources/fchomo/listeners.js:385 -#: htdocs/luci-static/resources/fchomo/listeners.js:738 +#: htdocs/luci-static/resources/fchomo/listeners.js:393 +#: htdocs/luci-static/resources/fchomo/listeners.js:746 #: htdocs/luci-static/resources/view/fchomo/node.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:653 #: htdocs/luci-static/resources/view/fchomo/node.js:1110 @@ -4352,27 +4357,27 @@ msgstr "Hysteria 上传速率" msgid "v1" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:386 -#: htdocs/luci-static/resources/fchomo/listeners.js:739 +#: htdocs/luci-static/resources/fchomo/listeners.js:394 +#: htdocs/luci-static/resources/fchomo/listeners.js:747 #: htdocs/luci-static/resources/view/fchomo/node.js:513 #: htdocs/luci-static/resources/view/fchomo/node.js:1111 #: htdocs/luci-static/resources/view/fchomo/node.js:1183 msgid "v2" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:387 -#: htdocs/luci-static/resources/fchomo/listeners.js:740 +#: htdocs/luci-static/resources/fchomo/listeners.js:395 +#: htdocs/luci-static/resources/fchomo/listeners.js:748 #: htdocs/luci-static/resources/view/fchomo/node.js:514 #: htdocs/luci-static/resources/view/fchomo/node.js:1184 msgid "v3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:388 +#: htdocs/luci-static/resources/fchomo/listeners.js:396 #: htdocs/luci-static/resources/view/fchomo/node.js:515 msgid "v4" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:389 +#: htdocs/luci-static/resources/fchomo/listeners.js:397 #: htdocs/luci-static/resources/view/fchomo/node.js:516 msgid "v5" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po index 2ebbd85e..aac4b0e7 100644 --- a/luci-app-fchomo/po/zh_Hant/fchomo.po +++ b/luci-app-fchomo/po/zh_Hant/fchomo.po @@ -40,9 +40,9 @@ msgstr "%s 連接埠" msgid "(Imported)" msgstr "(已導入)" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 #: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/global.js:564 #: htdocs/luci-static/resources/view/fchomo/global.js:570 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 @@ -127,9 +127,9 @@ msgstr "-1 表示停用它。" msgid "0 or 1 only." msgstr "僅限 01。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1134 -#: htdocs/luci-static/resources/fchomo/listeners.js:1149 -#: htdocs/luci-static/resources/fchomo/listeners.js:1174 +#: htdocs/luci-static/resources/fchomo/listeners.js:1143 +#: htdocs/luci-static/resources/fchomo/listeners.js:1158 +#: htdocs/luci-static/resources/fchomo/listeners.js:1183 #: htdocs/luci-static/resources/view/fchomo/node.js:1417 #: htdocs/luci-static/resources/view/fchomo/node.js:1431 msgid "Save your configuration before uploading files!" @@ -320,7 +320,7 @@ msgstr "" msgid "Allow access to the local LAN via the exit node." msgstr "允許透過出口節點存取本地區域網路。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1057 +#: htdocs/luci-static/resources/fchomo/listeners.js:1066 msgid "Allow insecure connections" msgstr "允許不安全的連線" @@ -336,7 +336,7 @@ msgstr "已是最新版本。" msgid "Already in updating." msgstr "已在更新中。" -#: htdocs/luci-static/resources/fchomo/listeners.js:409 +#: htdocs/luci-static/resources/fchomo/listeners.js:417 #: htdocs/luci-static/resources/view/fchomo/node.js:541 msgid "Alter ID" msgstr "額外 ID" @@ -363,7 +363,7 @@ msgstr "作為 dnsmasq 的最優先上游" msgid "As the TOP upstream of dnsmasq." msgstr "作為 dnsmasq 的最優先上游。" -#: htdocs/luci-static/resources/fchomo/listeners.js:457 +#: htdocs/luci-static/resources/fchomo/listeners.js:465 msgid "Auth timeout" msgstr "認證逾時" @@ -375,8 +375,8 @@ msgstr "認證長度" msgid "Authentication key" msgstr "認證金鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:1343 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:1358 #: htdocs/luci-static/resources/view/fchomo/global.js:423 #: htdocs/luci-static/resources/view/fchomo/node.js:464 #: htdocs/luci-static/resources/view/fchomo/node.js:488 @@ -399,7 +399,7 @@ msgstr "自動更新" msgid "Auto update resources." msgstr "自動更新資源文件。" -#: htdocs/luci-static/resources/fchomo/listeners.js:638 +#: htdocs/luci-static/resources/fchomo/listeners.js:646 #: htdocs/luci-static/resources/view/fchomo/node.js:1074 msgid "BBR profile" msgstr "BBR 設定檔" @@ -482,10 +482,10 @@ msgstr "繞過 CN 流量" msgid "Bypass DSCP" msgstr "繞過 DSCP" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 -#: htdocs/luci-static/resources/fchomo/listeners.js:360 -#: htdocs/luci-static/resources/fchomo/listeners.js:361 -#: htdocs/luci-static/resources/fchomo/listeners.js:362 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 +#: htdocs/luci-static/resources/fchomo/listeners.js:369 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 #: htdocs/luci-static/resources/view/fchomo/node.js:462 #: htdocs/luci-static/resources/view/fchomo/node.js:463 #: htdocs/luci-static/resources/view/fchomo/node.js:464 @@ -518,7 +518,7 @@ msgid "" "Certificate fingerprint. Used to implement SSL Pinning and prevent MitM." msgstr "憑證指紋。用於實現 SSL憑證固定 並防止 MitM。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1111 +#: htdocs/luci-static/resources/fchomo/listeners.js:1120 #: htdocs/luci-static/resources/view/fchomo/node.js:1410 msgid "Certificate path" msgstr "憑證路徑" @@ -580,8 +580,8 @@ msgstr "" "點擊此處下載" "最新的初始包。" -#: htdocs/luci-static/resources/fchomo/listeners.js:853 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 @@ -590,11 +590,11 @@ msgstr "" msgid "Client" msgstr "客戶端" -#: htdocs/luci-static/resources/fchomo/listeners.js:1164 +#: htdocs/luci-static/resources/fchomo/listeners.js:1173 msgid "Client Auth Certificate path" msgstr "客戶端認證憑證路徑" -#: htdocs/luci-static/resources/fchomo/listeners.js:1156 +#: htdocs/luci-static/resources/fchomo/listeners.js:1165 msgid "Client Auth type" msgstr "客戶端認證類型" @@ -610,10 +610,6 @@ msgstr "客戶端密鑰" msgid "Client metadata" msgstr "客戶端元資料" -#: htdocs/luci-static/resources/view/fchomo/node.js:601 -msgid "The client metadata sent to the server." -msgstr "發送到伺服器的客戶端元資料。" - #: htdocs/luci-static/resources/view/fchomo/global.js:176 msgid "Client status" msgstr "客戶端狀態" @@ -636,7 +632,7 @@ msgstr "常用連接埠(繞過 P2P 流量)" msgid "Complete" msgstr "完成" -#: htdocs/luci-static/resources/fchomo/listeners.js:630 +#: htdocs/luci-static/resources/fchomo/listeners.js:638 #: htdocs/luci-static/resources/view/fchomo/node.js:1056 #: htdocs/luci-static/resources/view/fchomo/node.js:1065 msgid "Congestion controller" @@ -650,7 +646,7 @@ msgstr "連接檢查" msgid "Connection reuse" msgstr "連接重用" -#: htdocs/luci-static/resources/fchomo/listeners.js:575 +#: htdocs/luci-static/resources/fchomo/listeners.js:583 #: htdocs/luci-static/resources/view/fchomo/node.js:781 msgid "Connection-level receive window size" msgstr "連接級接收視窗大小" @@ -775,7 +771,7 @@ msgstr "預設 DNS 伺服器" msgid "Default selected" msgstr "預設選中" -#: htdocs/luci-static/resources/fchomo/listeners.js:547 +#: htdocs/luci-static/resources/fchomo/listeners.js:555 msgid "Default version, Support %s." msgstr "預設版本,支援 %s。" @@ -820,7 +816,7 @@ msgstr "直連 IPv6 位址" msgid "Direct MAC-s" msgstr "直連 MAC 位址" -#: htdocs/luci-static/resources/fchomo/listeners.js:485 +#: htdocs/luci-static/resources/fchomo/listeners.js:493 #: htdocs/luci-static/resources/view/fchomo/global.js:424 #: htdocs/luci-static/resources/view/fchomo/node.js:715 #: htdocs/luci-static/resources/view/fchomo/node.js:849 @@ -877,12 +873,12 @@ msgstr "不要在 ClientHello 中傳送伺服器名稱。" msgid "Donot verifying server certificate." msgstr "不驗證伺服器憑證。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1395 +#: htdocs/luci-static/resources/fchomo/listeners.js:1410 #: htdocs/luci-static/resources/view/fchomo/node.js:1935 msgid "Download bandwidth" msgstr "下載頻寬" -#: htdocs/luci-static/resources/fchomo/listeners.js:1396 +#: htdocs/luci-static/resources/fchomo/listeners.js:1411 #: htdocs/luci-static/resources/view/fchomo/node.js:1936 msgid "Download bandwidth in Mbps." msgstr "下載頻寬(單位:Mbps)。" @@ -903,12 +899,12 @@ msgstr "雙棧" msgid "ECH HTTPS record query servername" msgstr "ECH HTTPS 記錄查詢網域" -#: htdocs/luci-static/resources/fchomo/listeners.js:1222 +#: htdocs/luci-static/resources/fchomo/listeners.js:1231 #: htdocs/luci-static/resources/view/fchomo/node.js:1444 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/fchomo/listeners.js:1181 +#: htdocs/luci-static/resources/fchomo/listeners.js:1190 msgid "ECH key" msgstr "ECH 密鑰" @@ -1001,12 +997,12 @@ msgstr "" msgid "Enable ECH" msgstr "啟用 ECH" -#: htdocs/luci-static/resources/fchomo/listeners.js:1383 +#: htdocs/luci-static/resources/fchomo/listeners.js:1398 #: htdocs/luci-static/resources/view/fchomo/node.js:1923 msgid "Enable TCP Brutal" msgstr "啟用 TCP Brutal" -#: htdocs/luci-static/resources/fchomo/listeners.js:1384 +#: htdocs/luci-static/resources/fchomo/listeners.js:1399 #: htdocs/luci-static/resources/view/fchomo/node.js:1924 msgid "Enable TCP Brutal congestion control algorithm" msgstr "啟用 TCP Brutal 擁塞控制演算法。" @@ -1019,12 +1015,12 @@ msgstr "啟用 Fast open" msgid "Enable multiplexing only for TCP." msgstr "僅為 TCP 啟用多路復用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:345 +#: htdocs/luci-static/resources/fchomo/listeners.js:353 #: htdocs/luci-static/resources/view/fchomo/node.js:448 msgid "Enable obfuscate for downlink" msgstr "啟用下行鏈路混淆" -#: htdocs/luci-static/resources/fchomo/listeners.js:1378 +#: htdocs/luci-static/resources/fchomo/listeners.js:1393 #: htdocs/luci-static/resources/view/fchomo/node.js:1906 msgid "Enable padding" msgstr "啟用填充" @@ -1039,7 +1035,7 @@ msgid "" "Enable the SUoT protocol, requires server support. Conflict with Multiplex." msgstr "啟用 SUoT 協議,需要服務端支援。與多路復用衝突。" -#: htdocs/luci-static/resources/fchomo/listeners.js:492 +#: htdocs/luci-static/resources/fchomo/listeners.js:500 #: htdocs/luci-static/resources/view/fchomo/node.js:722 msgid "" "Enabling obfuscation will make the server incompatible with standard QUIC " @@ -1050,7 +1046,7 @@ msgstr "啟用混淆將使伺服器與標準的 QUIC 連線不相容,失去 HT msgid "Encrypted Hello" msgstr "加密 Hello" -#: htdocs/luci-static/resources/fchomo/listeners.js:816 +#: htdocs/luci-static/resources/fchomo/listeners.js:825 msgid "Encryption method" msgstr "加密方法" @@ -1134,10 +1130,10 @@ msgstr "預期狀態" #: htdocs/luci-static/resources/fchomo.js:1973 #: htdocs/luci-static/resources/fchomo.js:1982 #: htdocs/luci-static/resources/fchomo/listeners.js:284 -#: htdocs/luci-static/resources/fchomo/listeners.js:331 -#: htdocs/luci-static/resources/fchomo/listeners.js:845 -#: htdocs/luci-static/resources/fchomo/listeners.js:876 -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 +#: htdocs/luci-static/resources/fchomo/listeners.js:854 +#: htdocs/luci-static/resources/fchomo/listeners.js:885 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 #: htdocs/luci-static/resources/view/fchomo/client.js:71 #: htdocs/luci-static/resources/view/fchomo/client.js:1063 #: htdocs/luci-static/resources/view/fchomo/client.js:1608 @@ -1156,16 +1152,16 @@ msgstr "預期狀態" msgid "Expecting: %s" msgstr "請輸入:%s" -#: htdocs/luci-static/resources/fchomo/listeners.js:1125 +#: htdocs/luci-static/resources/fchomo/listeners.js:1134 msgid "Expecting: Cannot be empty." msgstr "請輸入:不能為空。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1472 msgid "Expecting: Cannot be enabled when %s is enabled." msgstr "請輸入:當 %s 啟用時,無法啟用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 msgid "Expecting: Keep empty when %s is enabled." msgstr "請輸入:啟用 %s 時保持為空。" @@ -1174,10 +1170,10 @@ msgstr "請輸入:啟用 %s 時保持為空。" msgid "Expecting: Least one of %s or %s." msgstr "請輸入:至少包含 %s 或 %s 中的一個。" -#: htdocs/luci-static/resources/fchomo/listeners.js:684 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1219,7 +1215,7 @@ msgid "Failed to upload, error: %s." msgstr "上傳失敗,錯誤:%s。" #: htdocs/luci-static/resources/fchomo.js:246 -#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" msgstr "自動回退" @@ -1273,7 +1269,7 @@ msgstr "兜底 DNS 伺服器 (用於已被投毒汙染的網域)" msgid "Firewall" msgstr "防火牆" -#: htdocs/luci-static/resources/fchomo/listeners.js:401 +#: htdocs/luci-static/resources/fchomo/listeners.js:409 #: htdocs/luci-static/resources/view/fchomo/node.js:533 msgid "Flow" msgstr "流控" @@ -1313,7 +1309,7 @@ msgstr "強制嗅探網域" msgid "Format" msgstr "格式" -#: htdocs/luci-static/resources/fchomo/listeners.js:769 +#: htdocs/luci-static/resources/fchomo/listeners.js:778 msgid "Forwarding rate limit" msgstr "轉發速率限制" @@ -1332,7 +1328,7 @@ msgstr "" msgid "GFW list version" msgstr "GFW 網域清單版本" -#: htdocs/luci-static/resources/fchomo/listeners.js:487 +#: htdocs/luci-static/resources/fchomo/listeners.js:495 #: htdocs/luci-static/resources/view/fchomo/node.js:717 msgid "Gecko" msgstr "" @@ -1359,8 +1355,8 @@ msgstr "常規設定" #: htdocs/luci-static/resources/fchomo/listeners.js:262 #: htdocs/luci-static/resources/fchomo/listeners.js:306 #: htdocs/luci-static/resources/fchomo/listeners.js:308 -#: htdocs/luci-static/resources/fchomo/listeners.js:949 -#: htdocs/luci-static/resources/fchomo/listeners.js:1214 +#: htdocs/luci-static/resources/fchomo/listeners.js:958 +#: htdocs/luci-static/resources/fchomo/listeners.js:1223 #: htdocs/luci-static/resources/view/fchomo/global.js:608 #: htdocs/luci-static/resources/view/fchomo/node.js:2266 msgid "Generate" @@ -1431,7 +1427,7 @@ msgstr "組" #: htdocs/luci-static/resources/fchomo.js:154 #: htdocs/luci-static/resources/fchomo.js:191 -#: htdocs/luci-static/resources/fchomo/listeners.js:702 +#: htdocs/luci-static/resources/fchomo/listeners.js:710 #: htdocs/luci-static/resources/view/fchomo/node.js:1154 #: htdocs/luci-static/resources/view/fchomo/node.js:1677 #: htdocs/luci-static/resources/view/fchomo/node.js:1690 @@ -1446,12 +1442,12 @@ msgstr "" msgid "HTTP header" msgstr "HTTP header" -#: htdocs/luci-static/resources/fchomo/listeners.js:351 +#: htdocs/luci-static/resources/fchomo/listeners.js:359 #: htdocs/luci-static/resources/view/fchomo/node.js:454 msgid "HTTP mask" msgstr "HTTP 偽裝" -#: htdocs/luci-static/resources/fchomo/listeners.js:356 +#: htdocs/luci-static/resources/fchomo/listeners.js:364 #: htdocs/luci-static/resources/view/fchomo/node.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:496 @@ -1471,7 +1467,7 @@ msgstr "HTTP 偽裝: %s" msgid "HTTP request method" msgstr "HTTP 請求方法" -#: htdocs/luci-static/resources/fchomo/listeners.js:366 +#: htdocs/luci-static/resources/fchomo/listeners.js:374 #: htdocs/luci-static/resources/view/fchomo/node.js:480 msgid "HTTP root path" msgstr "HTTP 根路徑" @@ -1480,7 +1476,7 @@ msgstr "HTTP 根路徑" msgid "HTTP/3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:510 +#: htdocs/luci-static/resources/fchomo/listeners.js:518 msgid "" "HTTP3 server behavior when authentication fails.
A 404 page will be " "returned if empty." @@ -1500,20 +1496,20 @@ msgstr "處理網域" msgid "Handshake mode" msgstr "握手模式" -#: htdocs/luci-static/resources/fchomo/listeners.js:752 +#: htdocs/luci-static/resources/fchomo/listeners.js:760 msgid "Handshake target proxy" msgstr "握手目標代理" -#: htdocs/luci-static/resources/fchomo/listeners.js:707 +#: htdocs/luci-static/resources/fchomo/listeners.js:715 msgid "Handshake target that supports TLS 1.3" msgstr "握手目標 (支援 TLS 1.3)" -#: htdocs/luci-static/resources/fchomo/listeners.js:338 +#: htdocs/luci-static/resources/fchomo/listeners.js:346 #: htdocs/luci-static/resources/view/fchomo/node.js:1089 msgid "Handshake timeout" msgstr "握手逾時" -#: htdocs/luci-static/resources/fchomo/listeners.js:535 +#: htdocs/luci-static/resources/fchomo/listeners.js:543 msgid "Header to read real client IP from (e.g. X-Forwarded-For)" msgstr "用於讀取客戶端真實 IP 的 Header(例如 X-Forwarded-For)" @@ -1559,7 +1555,7 @@ msgstr "心跳間隔" msgid "Hidden" msgstr "隱藏" -#: htdocs/luci-static/resources/fchomo/listeners.js:715 +#: htdocs/luci-static/resources/fchomo/listeners.js:723 #: htdocs/luci-static/resources/view/fchomo/node.js:1159 msgid "Host that supports TLS 1.3" msgstr "主機名稱 (支援 TLS 1.3)" @@ -1661,7 +1657,7 @@ msgstr "閒置會話檢查間隔" msgid "Idle session timeout" msgstr "閒置會話逾時" -#: htdocs/luci-static/resources/fchomo/listeners.js:647 +#: htdocs/luci-static/resources/fchomo/listeners.js:655 msgid "Idle timeout" msgstr "閒置逾時" @@ -1673,7 +1669,7 @@ msgstr "如果選擇了“所有連接埠”,則取消選取“其他”" msgid "If Block is selected, uncheck others" msgstr "如果選擇了“封鎖”,則取消選取“其他”" -#: htdocs/luci-static/resources/fchomo/listeners.js:477 +#: htdocs/luci-static/resources/fchomo/listeners.js:485 msgid "Ignore client bandwidth" msgstr "忽略客戶端頻寬" @@ -1706,8 +1702,8 @@ msgstr "導入 mihomo 配置" msgid "Import rule-set links" msgstr "導入規則集連結" -#: htdocs/luci-static/resources/fchomo/listeners.js:466 -#: htdocs/luci-static/resources/fchomo/listeners.js:472 +#: htdocs/luci-static/resources/fchomo/listeners.js:474 +#: htdocs/luci-static/resources/fchomo/listeners.js:480 #: htdocs/luci-static/resources/view/fchomo/node.js:691 #: htdocs/luci-static/resources/view/fchomo/node.js:697 #: htdocs/luci-static/resources/view/fchomo/node.js:2343 @@ -1715,7 +1711,7 @@ msgstr "導入規則集連結" msgid "In Mbps." msgstr "單位為 Mbps。" -#: htdocs/luci-static/resources/fchomo/listeners.js:770 +#: htdocs/luci-static/resources/fchomo/listeners.js:779 msgid "In bps. 0 means no speed limit." msgstr "" @@ -1724,6 +1720,7 @@ msgstr "" msgid "In bytes. %s will be used if empty." msgstr "單位為位元組。留空則使用 %s。" +#: htdocs/luci-static/resources/fchomo/listeners.js:1294 #: htdocs/luci-static/resources/view/fchomo/node.js:676 #: htdocs/luci-static/resources/view/fchomo/node.js:683 #: htdocs/luci-static/resources/view/fchomo/node.js:757 @@ -1740,9 +1737,9 @@ msgstr "單位為毫秒。留空則使用 %s。" msgid "In milliseconds." msgstr "單位為毫秒。" -#: htdocs/luci-static/resources/fchomo/listeners.js:339 -#: htdocs/luci-static/resources/fchomo/listeners.js:458 -#: htdocs/luci-static/resources/fchomo/listeners.js:648 +#: htdocs/luci-static/resources/fchomo/listeners.js:347 +#: htdocs/luci-static/resources/fchomo/listeners.js:466 +#: htdocs/luci-static/resources/fchomo/listeners.js:656 #: htdocs/luci-static/resources/view/fchomo/node.js:606 #: htdocs/luci-static/resources/view/fchomo/node.js:613 #: htdocs/luci-static/resources/view/fchomo/node.js:1768 @@ -1766,7 +1763,7 @@ msgid "" "connection timeout." msgstr "單位為秒。配置後握手時不受外層連線逾時影響。" -#: htdocs/luci-static/resources/fchomo/listeners.js:865 +#: htdocs/luci-static/resources/fchomo/listeners.js:874 #: htdocs/luci-static/resources/view/fchomo/node.js:1251 msgid "" "In the order of one Padding-Length and one Padding-" @@ -1809,7 +1806,7 @@ msgstr "引入所有代理節點。" msgid "Info" msgstr "訊息" -#: htdocs/luci-static/resources/fchomo/listeners.js:557 +#: htdocs/luci-static/resources/fchomo/listeners.js:565 #: htdocs/luci-static/resources/view/fchomo/node.js:763 msgid "Initial congestion window size" msgstr "初始擁塞視窗大小" @@ -1827,11 +1824,11 @@ msgstr "噩夢" msgid "Interface Control" msgstr "介面控制" -#: htdocs/luci-static/resources/fchomo/listeners.js:677 -#: htdocs/luci-static/resources/fchomo/listeners.js:687 -#: htdocs/luci-static/resources/fchomo/listeners.js:692 -#: htdocs/luci-static/resources/fchomo/listeners.js:1122 -#: htdocs/luci-static/resources/fchomo/listeners.js:1238 +#: htdocs/luci-static/resources/fchomo/listeners.js:685 +#: htdocs/luci-static/resources/fchomo/listeners.js:695 +#: htdocs/luci-static/resources/fchomo/listeners.js:700 +#: htdocs/luci-static/resources/fchomo/listeners.js:1131 +#: htdocs/luci-static/resources/fchomo/listeners.js:1247 #: htdocs/luci-static/resources/view/fchomo/node.js:1129 #: htdocs/luci-static/resources/view/fchomo/node.js:1139 #: htdocs/luci-static/resources/view/fchomo/node.js:1144 @@ -1862,12 +1859,12 @@ msgstr "Keep-alive 週期" msgid "Key" msgstr "密鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1141 +#: htdocs/luci-static/resources/fchomo/listeners.js:1150 #: htdocs/luci-static/resources/view/fchomo/node.js:1424 msgid "Key path" msgstr "憑證路徑" -#: htdocs/luci-static/resources/fchomo/listeners.js:884 +#: htdocs/luci-static/resources/fchomo/listeners.js:893 msgid "Keypairs" msgstr "密鑰對" @@ -1902,12 +1899,12 @@ msgstr "怠惰查詢" msgid "Lazy query." msgstr "怠惰查詢。" -#: htdocs/luci-static/resources/fchomo/listeners.js:358 +#: htdocs/luci-static/resources/fchomo/listeners.js:366 #: htdocs/luci-static/resources/view/fchomo/node.js:461 msgid "Legacy" msgstr "傳統" -#: htdocs/luci-static/resources/fchomo/listeners.js:410 +#: htdocs/luci-static/resources/fchomo/listeners.js:418 msgid "" "Legacy protocol support (VMess MD5 Authentication) is provided for " "compatibility purposes only, use of alterId > 1 is not recommended." @@ -1919,7 +1916,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "有時效能較好。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1064 +#: htdocs/luci-static/resources/fchomo/listeners.js:1073 #: htdocs/luci-static/resources/view/fchomo/node.js:1337 msgid "List of supported application level protocols, in order of preference." msgstr "支援的應用層協議協商清單,依序排列。" @@ -2004,7 +2001,7 @@ msgstr "MTU" msgid "Masque" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:509 +#: htdocs/luci-static/resources/fchomo/listeners.js:517 msgid "Masquerade" msgstr "偽裝" @@ -2040,12 +2037,12 @@ msgstr "匹配規則集。" msgid "Max Early Data" msgstr "前置數據最大值" -#: htdocs/luci-static/resources/fchomo/listeners.js:451 +#: htdocs/luci-static/resources/fchomo/listeners.js:459 #: htdocs/luci-static/resources/view/fchomo/node.js:657 msgid "Max UDP relay packet size" msgstr "UDP 中繼數據包最大尺寸" -#: htdocs/luci-static/resources/fchomo/listeners.js:1355 +#: htdocs/luci-static/resources/fchomo/listeners.js:1370 msgid "Max buffered posts" msgstr "POST 最大緩衝" @@ -2061,17 +2058,17 @@ msgstr "最大連線數" msgid "Max count of failures" msgstr "最大失敗次數" -#: htdocs/luci-static/resources/fchomo/listeners.js:563 +#: htdocs/luci-static/resources/fchomo/listeners.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:769 msgid "Max datagram frame size" msgstr "最大資料封包大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:471 +#: htdocs/luci-static/resources/fchomo/listeners.js:479 #: htdocs/luci-static/resources/view/fchomo/node.js:696 msgid "Max download speed" msgstr "最大下載速度" -#: htdocs/luci-static/resources/fchomo/listeners.js:1366 +#: htdocs/luci-static/resources/fchomo/listeners.js:1381 #: htdocs/luci-static/resources/view/fchomo/node.js:1814 msgid "Max each POST bytes" msgstr "POST 最大位元組數" @@ -2080,11 +2077,11 @@ msgstr "POST 最大位元組數" msgid "Max open streams" msgstr "限制打開流的數量" -#: htdocs/luci-static/resources/fchomo/listeners.js:522 +#: htdocs/luci-static/resources/fchomo/listeners.js:530 msgid "Max realms" msgstr "最大 Realms 數量" -#: htdocs/luci-static/resources/fchomo/listeners.js:528 +#: htdocs/luci-static/resources/fchomo/listeners.js:536 msgid "Max realms per client IP" msgstr "每客戶端 IP 最大 Realms 數量" @@ -2100,7 +2097,7 @@ msgstr "最大可重用秒數" msgid "Max reuse times" msgstr "最大重用次數" -#: htdocs/luci-static/resources/fchomo/listeners.js:465 +#: htdocs/luci-static/resources/fchomo/listeners.js:473 #: htdocs/luci-static/resources/view/fchomo/node.js:690 msgid "Max upload speed" msgstr "最大上傳速度" @@ -2118,12 +2115,12 @@ msgstr "" "在開啟新連線之前,連線中的最大多路復用流數量。
%s 和 " "%s 衝突。" -#: htdocs/luci-static/resources/fchomo/listeners.js:323 +#: htdocs/luci-static/resources/fchomo/listeners.js:327 #: htdocs/luci-static/resources/view/fchomo/node.js:433 msgid "Maximum padding rate" msgstr "最大填充率" -#: htdocs/luci-static/resources/fchomo/listeners.js:331 +#: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "" "Maximum padding rate must be greater than or equal to the minimum padding " @@ -2187,7 +2184,7 @@ msgstr "混合 系統 TCP 堆栈和 gVisor UDP 堆栈 msgid "Mixed port" msgstr "混合連接埠" -#: htdocs/luci-static/resources/fchomo/listeners.js:1373 +#: htdocs/luci-static/resources/fchomo/listeners.js:1388 #: htdocs/luci-static/resources/view/fchomo/node.js:1864 msgid "Multiplex" msgstr "多路復用" @@ -2206,7 +2203,7 @@ msgstr "多路復用" msgid "NOT" msgstr "NOT" -#: htdocs/luci-static/resources/fchomo/listeners.js:615 +#: htdocs/luci-static/resources/fchomo/listeners.js:623 msgid "Name of the Proxy group as outbound." msgstr "出站代理組的名稱。" @@ -2218,7 +2215,7 @@ msgstr "用於下載供應商訂閱的代理組名稱。" msgid "Name of the Proxy group to download rule set." msgstr "用於下載規則集訂閱的代理組名稱。" -#: htdocs/luci-static/resources/fchomo/listeners.js:603 +#: htdocs/luci-static/resources/fchomo/listeners.js:611 msgid "Name of the Sub rule used for inbound matching." msgstr "用於入站匹配的子規則名稱。" @@ -2234,7 +2231,7 @@ msgstr "原生外觀" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:654 +#: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "網路類型" @@ -2246,7 +2243,7 @@ msgstr "" msgid "No Authentication IP ranges" msgstr "無需認證的 IP 範圍" -#: htdocs/luci-static/resources/fchomo/listeners.js:1350 +#: htdocs/luci-static/resources/fchomo/listeners.js:1365 msgid "No SSE header" msgstr "無 SSE header" @@ -2319,28 +2316,28 @@ msgstr "" msgid "ON" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:701 +#: htdocs/luci-static/resources/fchomo/listeners.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1153 msgid "Obfs Mode" msgstr "Obfs 模式" -#: htdocs/luci-static/resources/fchomo/listeners.js:504 +#: htdocs/luci-static/resources/fchomo/listeners.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:734 msgid "Obfuscate maximum packet size" msgstr "混淆最大資料包大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:499 +#: htdocs/luci-static/resources/fchomo/listeners.js:507 #: htdocs/luci-static/resources/view/fchomo/node.js:729 msgid "Obfuscate minimum packet size" msgstr "混淆最小資料包大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:491 +#: htdocs/luci-static/resources/fchomo/listeners.js:499 #: htdocs/luci-static/resources/view/fchomo/node.js:721 msgid "Obfuscate password" msgstr "混淆密碼" #: htdocs/luci-static/resources/fchomo/listeners.js:291 -#: htdocs/luci-static/resources/fchomo/listeners.js:484 +#: htdocs/luci-static/resources/fchomo/listeners.js:492 #: htdocs/luci-static/resources/view/fchomo/node.js:412 #: htdocs/luci-static/resources/view/fchomo/node.js:714 msgid "Obfuscate type" @@ -2357,7 +2354,7 @@ msgstr "混淆為%s" msgid "One or more numbers in the range 0-63 separated by commas" msgstr "0-63 範圍內的一個或多個數字,以逗號分隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1058 +#: htdocs/luci-static/resources/fchomo/listeners.js:1067 msgid "Only applicable when %s are used as a frontend." msgstr "僅當 %s 用作前端時適用。" @@ -2445,25 +2442,25 @@ msgstr "數據包編碼" msgid "Padding bytes" msgstr "填充位元組" -#: htdocs/luci-static/resources/fchomo/listeners.js:440 +#: htdocs/luci-static/resources/fchomo/listeners.js:448 msgid "Padding scheme" msgstr "填充方案" -#: htdocs/luci-static/resources/fchomo/listeners.js:863 +#: htdocs/luci-static/resources/fchomo/listeners.js:872 #: htdocs/luci-static/resources/view/fchomo/node.js:1249 msgid "Paddings" msgstr "填充 (Paddings)" #: htdocs/luci-static/resources/fchomo/listeners.js:167 #: htdocs/luci-static/resources/fchomo/listeners.js:184 -#: htdocs/luci-static/resources/fchomo/listeners.js:730 +#: htdocs/luci-static/resources/fchomo/listeners.js:738 #: htdocs/luci-static/resources/view/fchomo/node.js:324 #: htdocs/luci-static/resources/view/fchomo/node.js:345 #: htdocs/luci-static/resources/view/fchomo/node.js:1174 msgid "Password" msgstr "密碼" -#: htdocs/luci-static/resources/fchomo/listeners.js:581 +#: htdocs/luci-static/resources/fchomo/listeners.js:589 #: htdocs/luci-static/resources/view/fchomo/node.js:787 msgid "Path MTU Discovery" msgstr "路徑 MTU 發現" @@ -2476,7 +2473,7 @@ msgstr "捆綁包路徑" msgid "Path in bundle: %s" msgstr "在捆綁包%s中的路徑" -#: htdocs/luci-static/resources/fchomo/listeners.js:803 +#: htdocs/luci-static/resources/fchomo/listeners.js:812 #: htdocs/luci-static/resources/view/fchomo/node.js:2173 #: htdocs/luci-static/resources/view/fchomo/ruleset.js:373 msgid "Payload" @@ -2544,7 +2541,7 @@ msgstr "" msgid "Please type %s fields of mihomo config.
" msgstr "請輸入 mihomo 配置的 %s 欄位。
" -#: htdocs/luci-static/resources/fchomo/listeners.js:667 +#: htdocs/luci-static/resources/fchomo/listeners.js:675 #: htdocs/luci-static/resources/view/fchomo/node.js:1117 msgid "Plugin" msgstr "外掛" @@ -2554,7 +2551,7 @@ msgstr "外掛" msgid "Plugin fields" msgstr "外掛欄位" -#: htdocs/luci-static/resources/fchomo/listeners.js:673 +#: htdocs/luci-static/resources/fchomo/listeners.js:681 #: htdocs/luci-static/resources/view/fchomo/node.js:1123 msgid "Plugin type" msgstr "外掛類型" @@ -2584,14 +2581,14 @@ msgstr "連接埠" msgid "Ports pool" msgstr "連接埠池" -#: htdocs/luci-static/resources/fchomo/listeners.js:377 -#: htdocs/luci-static/resources/fchomo/listeners.js:516 +#: htdocs/luci-static/resources/fchomo/listeners.js:385 +#: htdocs/luci-static/resources/fchomo/listeners.js:524 #: htdocs/luci-static/resources/view/fchomo/node.js:504 #: htdocs/luci-static/resources/view/fchomo/node.js:927 msgid "Pre-shared key" msgstr "預先共用金鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1001 +#: htdocs/luci-static/resources/fchomo/listeners.js:1010 #: htdocs/luci-static/resources/view/fchomo/node.js:1284 msgid "Pre-shared key of rendezvous server" msgstr "牽線伺服器的預先共用金鑰" @@ -2698,7 +2695,7 @@ msgstr "代理節點" msgid "Proxy chain" msgstr "代理鏈" -#: htdocs/luci-static/resources/fchomo/listeners.js:614 +#: htdocs/luci-static/resources/fchomo/listeners.js:622 #: htdocs/luci-static/resources/view/fchomo/client.js:813 #: htdocs/luci-static/resources/view/fchomo/client.js:1643 #: htdocs/luci-static/resources/view/fchomo/node.js:2197 @@ -2727,12 +2724,12 @@ msgstr "" msgid "QUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:552 +#: htdocs/luci-static/resources/fchomo/listeners.js:560 #: htdocs/luci-static/resources/view/fchomo/node.js:751 msgid "QUIC based 0-RTT" msgstr "基於 QUIC 的 0-RTT" -#: htdocs/luci-static/resources/fchomo/listeners.js:546 +#: htdocs/luci-static/resources/fchomo/listeners.js:554 #: htdocs/luci-static/resources/view/fchomo/node.js:740 msgid "QUIC versions" msgstr "QUIC 版本" @@ -2742,8 +2739,8 @@ msgstr "QUIC 版本" msgid "Quick Reload" msgstr "快速重載" -#: htdocs/luci-static/resources/fchomo/listeners.js:1123 -#: htdocs/luci-static/resources/fchomo/listeners.js:1229 +#: htdocs/luci-static/resources/fchomo/listeners.js:1132 +#: htdocs/luci-static/resources/fchomo/listeners.js:1238 #: htdocs/luci-static/resources/view/fchomo/node.js:1465 msgid "REALITY" msgstr "REALITY" @@ -2752,24 +2749,28 @@ msgstr "REALITY" msgid "REALITY X25519MLKEM768 PQC support" msgstr "REALITY X25519MLKEM768 後量子加密支援" -#: htdocs/luci-static/resources/fchomo/listeners.js:1277 +#: htdocs/luci-static/resources/fchomo/listeners.js:1286 msgid "REALITY certificate issued to" msgstr "REALITY 憑證頒發給" -#: htdocs/luci-static/resources/fchomo/listeners.js:1245 +#: htdocs/luci-static/resources/fchomo/listeners.js:1254 msgid "REALITY handshake server" msgstr "REALITY 握手伺服器" -#: htdocs/luci-static/resources/fchomo/listeners.js:1252 +#: htdocs/luci-static/resources/fchomo/listeners.js:1293 +msgid "REALITY max time difference" +msgstr "" + +#: htdocs/luci-static/resources/fchomo/listeners.js:1261 msgid "REALITY private key" msgstr "REALITY 私鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1267 +#: htdocs/luci-static/resources/fchomo/listeners.js:1276 #: htdocs/luci-static/resources/view/fchomo/node.js:1481 msgid "REALITY public key" msgstr "REALITY 公鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1271 +#: htdocs/luci-static/resources/fchomo/listeners.js:1280 #: htdocs/luci-static/resources/view/fchomo/node.js:1486 msgid "REALITY short ID" msgstr "REALITY 標識符" @@ -2780,8 +2781,8 @@ msgstr "REALITY 標識符" msgid "REMATCH-NAME marking" msgstr "REMATCH-NAME 打標" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:853 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:862 #: htdocs/luci-static/resources/view/fchomo/node.js:1239 msgid "RTT" msgstr "" @@ -2798,17 +2799,17 @@ msgstr "留空將使用隨機令牌。" msgid "Randomized traffic characteristics" msgstr "隨機化流量特徵" -#: htdocs/luci-static/resources/fchomo/listeners.js:990 +#: htdocs/luci-static/resources/fchomo/listeners.js:999 #: htdocs/luci-static/resources/view/fchomo/node.js:1273 msgid "Realm" msgstr "Realm" -#: htdocs/luci-static/resources/fchomo/listeners.js:1006 +#: htdocs/luci-static/resources/fchomo/listeners.js:1015 #: htdocs/luci-static/resources/view/fchomo/node.js:1289 msgid "Realm ID" msgstr "Realm ID" -#: htdocs/luci-static/resources/fchomo/listeners.js:539 +#: htdocs/luci-static/resources/fchomo/listeners.js:547 msgid "Realm name pattern" msgstr "Realm 名稱模式" @@ -2886,7 +2887,7 @@ msgstr "移除" msgid "Remove idles" msgstr "移除閒置" -#: htdocs/luci-static/resources/fchomo/listeners.js:995 +#: htdocs/luci-static/resources/fchomo/listeners.js:1004 #: htdocs/luci-static/resources/view/fchomo/node.js:1278 msgid "Rendezvous server" msgstr "牽線伺服器" @@ -2903,7 +2904,7 @@ msgstr "替換節點名稱" msgid "Request" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1329 +#: htdocs/luci-static/resources/fchomo/listeners.js:1344 #: htdocs/luci-static/resources/view/fchomo/node.js:1738 #: htdocs/luci-static/resources/view/fchomo/node.js:1745 msgid "Request path" @@ -2934,11 +2935,11 @@ msgstr "保留字段位元組" msgid "Resources management" msgstr "資源管理" -#: htdocs/luci-static/resources/fchomo/listeners.js:676 -#: htdocs/luci-static/resources/fchomo/listeners.js:686 -#: htdocs/luci-static/resources/fchomo/listeners.js:691 -#: htdocs/luci-static/resources/fchomo/listeners.js:1121 -#: htdocs/luci-static/resources/fchomo/listeners.js:1237 +#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:694 +#: htdocs/luci-static/resources/fchomo/listeners.js:699 +#: htdocs/luci-static/resources/fchomo/listeners.js:1130 +#: htdocs/luci-static/resources/fchomo/listeners.js:1246 #: htdocs/luci-static/resources/view/fchomo/node.js:1128 #: htdocs/luci-static/resources/view/fchomo/node.js:1138 #: htdocs/luci-static/resources/view/fchomo/node.js:1143 @@ -2946,7 +2947,7 @@ msgstr "資源管理" msgid "Restls" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:745 +#: htdocs/luci-static/resources/fchomo/listeners.js:753 #: htdocs/luci-static/resources/view/fchomo/node.js:1197 msgid "Restls script" msgstr "Restls 劇本" @@ -2983,7 +2984,7 @@ msgstr "路由 DSCP" msgid "Routing GFW" msgstr "路由 GFW 流量" -#: htdocs/luci-static/resources/fchomo/listeners.js:597 +#: htdocs/luci-static/resources/fchomo/listeners.js:605 #: htdocs/luci-static/resources/view/fchomo/global.js:776 #: htdocs/luci-static/resources/view/fchomo/node.js:1966 #: htdocs/luci-static/resources/view/fchomo/node.js:2385 @@ -3070,7 +3071,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1012 +#: htdocs/luci-static/resources/fchomo/listeners.js:1021 #: htdocs/luci-static/resources/view/fchomo/node.js:1295 msgid "STUN servers" msgstr "STUN 伺服器" @@ -3083,7 +3084,7 @@ msgstr "SUB-RULE" msgid "SUoT version" msgstr "SUoT 版本" -#: htdocs/luci-static/resources/fchomo/listeners.js:486 +#: htdocs/luci-static/resources/fchomo/listeners.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:716 msgid "Salamander" msgstr "Salamander" @@ -3131,9 +3132,9 @@ msgstr "同時向%s%s發起查詢。" msgid "Send random ticket of 300s-600s duration for client 0-RTT reuse." msgstr "發送 300-600 秒的隨機票證,以供客戶端 0-RTT 重用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:834 -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:843 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/server.js:58 #: root/usr/share/luci/menu.d/luci-app-fchomo.json:62 msgid "Server" @@ -3143,7 +3144,7 @@ msgstr "服務端" msgid "Server address" msgstr "伺服器位址" -#: htdocs/luci-static/resources/fchomo/listeners.js:1323 +#: htdocs/luci-static/resources/fchomo/listeners.js:1338 #: htdocs/luci-static/resources/view/fchomo/node.js:1717 #: htdocs/luci-static/resources/view/fchomo/node.js:1723 msgid "Server hostname" @@ -3166,11 +3167,11 @@ msgstr "服務狀態" msgid "ShadowQUIC" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:675 -#: htdocs/luci-static/resources/fchomo/listeners.js:685 -#: htdocs/luci-static/resources/fchomo/listeners.js:690 -#: htdocs/luci-static/resources/fchomo/listeners.js:1120 -#: htdocs/luci-static/resources/fchomo/listeners.js:1236 +#: htdocs/luci-static/resources/fchomo/listeners.js:683 +#: htdocs/luci-static/resources/fchomo/listeners.js:693 +#: htdocs/luci-static/resources/fchomo/listeners.js:698 +#: htdocs/luci-static/resources/fchomo/listeners.js:1129 +#: htdocs/luci-static/resources/fchomo/listeners.js:1245 #: htdocs/luci-static/resources/view/fchomo/node.js:1127 #: htdocs/luci-static/resources/view/fchomo/node.js:1137 #: htdocs/luci-static/resources/view/fchomo/node.js:1142 @@ -3183,17 +3184,17 @@ msgstr "" msgid "Shadowsocks" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:422 +#: htdocs/luci-static/resources/fchomo/listeners.js:430 #: htdocs/luci-static/resources/view/fchomo/node.js:582 msgid "Shadowsocks chipher" msgstr "Shadowsocks 加密方法" -#: htdocs/luci-static/resources/fchomo/listeners.js:417 +#: htdocs/luci-static/resources/fchomo/listeners.js:425 #: htdocs/luci-static/resources/view/fchomo/node.js:577 msgid "Shadowsocks encrypt" msgstr "Shadowsocks 加密" -#: htdocs/luci-static/resources/fchomo/listeners.js:430 +#: htdocs/luci-static/resources/fchomo/listeners.js:438 #: htdocs/luci-static/resources/view/fchomo/node.js:590 msgid "Shadowsocks password" msgstr "Shadowsocks 密碼" @@ -3282,12 +3283,12 @@ msgstr "" msgid "Strategy" msgstr "策略" -#: htdocs/luci-static/resources/fchomo/listeners.js:569 +#: htdocs/luci-static/resources/fchomo/listeners.js:577 #: htdocs/luci-static/resources/view/fchomo/node.js:775 msgid "Stream-level receive window size" msgstr "流級接收視窗大小" -#: htdocs/luci-static/resources/fchomo/listeners.js:602 +#: htdocs/luci-static/resources/fchomo/listeners.js:610 #: htdocs/luci-static/resources/view/fchomo/client.js:1400 #: htdocs/luci-static/resources/view/fchomo/client.js:1409 msgid "Sub rule" @@ -3350,7 +3351,7 @@ msgstr "系統 DNS" #: htdocs/luci-static/resources/fchomo.js:200 #: htdocs/luci-static/resources/fchomo.js:201 #: htdocs/luci-static/resources/fchomo.js:211 -#: htdocs/luci-static/resources/fchomo/listeners.js:655 +#: htdocs/luci-static/resources/fchomo/listeners.js:663 #: htdocs/luci-static/resources/view/fchomo/client.js:618 #: htdocs/luci-static/resources/view/fchomo/client.js:710 msgid "TCP" @@ -3392,8 +3393,8 @@ msgstr "" msgid "TFO" msgstr "TCP 快速開啟 (TFO)" -#: htdocs/luci-static/resources/fchomo/listeners.js:703 -#: htdocs/luci-static/resources/fchomo/listeners.js:1022 +#: htdocs/luci-static/resources/fchomo/listeners.js:711 +#: htdocs/luci-static/resources/fchomo/listeners.js:1031 #: htdocs/luci-static/resources/view/fchomo/global.js:550 #: htdocs/luci-static/resources/view/fchomo/node.js:469 #: htdocs/luci-static/resources/view/fchomo/node.js:1155 @@ -3401,7 +3402,7 @@ msgstr "TCP 快速開啟 (TFO)" msgid "TLS" msgstr "TLS" -#: htdocs/luci-static/resources/fchomo/listeners.js:1063 +#: htdocs/luci-static/resources/fchomo/listeners.js:1072 #: htdocs/luci-static/resources/view/fchomo/node.js:1336 msgid "TLS ALPN" msgstr "TLS ALPN" @@ -3429,11 +3430,11 @@ msgstr "" msgid "Tailscale" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:589 +#: htdocs/luci-static/resources/fchomo/listeners.js:597 msgid "Target address" msgstr "目標位址" -#: htdocs/luci-static/resources/fchomo/listeners.js:478 +#: htdocs/luci-static/resources/fchomo/listeners.js:486 msgid "" "Tell the client to use the BBR flow control algorithm instead of Hysteria CC." msgstr "讓客戶端使用 BBR 流控演算法。" @@ -3447,13 +3448,13 @@ msgstr "讓客戶端使用 BBR 流控演算法。" msgid "The %s address used by local machine in the %s network." msgstr "本機 %s 位址,用於在 %s 網路中使用。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1151 #: htdocs/luci-static/resources/view/fchomo/node.js:1425 msgid "The %s private key, in PEM format." msgstr "%s私鑰,需要 PEM 格式。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1112 -#: htdocs/luci-static/resources/fchomo/listeners.js:1165 +#: htdocs/luci-static/resources/fchomo/listeners.js:1121 +#: htdocs/luci-static/resources/fchomo/listeners.js:1174 #: htdocs/luci-static/resources/view/fchomo/global.js:571 #: htdocs/luci-static/resources/view/fchomo/node.js:1411 msgid "The %s public key, in PEM format." @@ -3473,6 +3474,10 @@ msgstr "Sudoku 伺服器提供的 ED25519 可用私鑰 或 UUID。" msgid "The ED25519 master public key or UUID generated by Sudoku." msgstr "Sudoku 產生的 ED25519 主公鑰 或 UUID。" +#: htdocs/luci-static/resources/view/fchomo/node.js:601 +msgid "The client metadata sent to the server." +msgstr "發送到伺服器的客戶端元資料。" + #: htdocs/luci-static/resources/view/fchomo/global.js:324 msgid "The default value is 2:00 every day." msgstr "預設值為每天 2:00。" @@ -3483,7 +3488,7 @@ msgid "" "connection timeout is used." msgstr "預設值為%s,表示僅使用外層連線逾時。" -#: htdocs/luci-static/resources/fchomo/listeners.js:866 +#: htdocs/luci-static/resources/fchomo/listeners.js:875 #: htdocs/luci-static/resources/view/fchomo/node.js:1252 msgid "" "The first padding must have a probability of 100% and at least 35 bytes." @@ -3499,16 +3504,16 @@ msgstr "匹配 %s 的將被視為未被投毒汙染。" msgid "The matching %s will be deemed as poisoned." msgstr "匹配 %s 的將被視為已被投毒汙染。" -#: htdocs/luci-static/resources/fchomo/listeners.js:753 +#: htdocs/luci-static/resources/fchomo/listeners.js:761 msgid "The proxy used to connect to the handshake target." msgstr "用於連接握手目標的代理。" -#: htdocs/luci-static/resources/fchomo/listeners.js:864 +#: htdocs/luci-static/resources/fchomo/listeners.js:873 #: htdocs/luci-static/resources/view/fchomo/node.js:1250 msgid "The server and client can set different padding parameters." msgstr "伺服器和客戶端可以設定不同的填充參數。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1223 +#: htdocs/luci-static/resources/fchomo/listeners.js:1232 #: htdocs/luci-static/resources/view/fchomo/global.js:615 msgid "This ECH parameter needs to be added to the HTTPS record of the domain." msgstr "此 ECH 參數需要加入到網域的 HTTPS 記錄中。" @@ -3568,7 +3573,7 @@ msgid "Transit proxy node" msgstr "中轉代理節點" #: htdocs/luci-static/resources/fchomo/listeners.js:194 -#: htdocs/luci-static/resources/fchomo/listeners.js:1287 +#: htdocs/luci-static/resources/fchomo/listeners.js:1302 #: htdocs/luci-static/resources/view/fchomo/node.js:360 #: htdocs/luci-static/resources/view/fchomo/node.js:1670 msgid "Transport" @@ -3579,7 +3584,7 @@ msgstr "傳輸層" msgid "Transport fields" msgstr "傳輸層欄位" -#: htdocs/luci-static/resources/fchomo/listeners.js:1292 +#: htdocs/luci-static/resources/fchomo/listeners.js:1307 #: htdocs/luci-static/resources/view/fchomo/node.js:1675 msgid "Transport type" msgstr "傳輸層類型" @@ -3598,7 +3603,7 @@ msgstr "" msgid "TrustTunnel" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:534 +#: htdocs/luci-static/resources/fchomo/listeners.js:542 msgid "Trusted proxy header" msgstr "可信代理 Header" @@ -3649,8 +3654,8 @@ msgstr "類型" #: htdocs/luci-static/resources/fchomo.js:208 #: htdocs/luci-static/resources/fchomo.js:209 #: htdocs/luci-static/resources/fchomo.js:210 -#: htdocs/luci-static/resources/fchomo/listeners.js:656 -#: htdocs/luci-static/resources/fchomo/listeners.js:661 +#: htdocs/luci-static/resources/fchomo/listeners.js:664 +#: htdocs/luci-static/resources/fchomo/listeners.js:669 #: htdocs/luci-static/resources/view/fchomo/client.js:617 #: htdocs/luci-static/resources/view/fchomo/client.js:709 #: htdocs/luci-static/resources/view/fchomo/node.js:1097 @@ -3691,8 +3696,8 @@ msgid "URL test" msgstr "自動選擇" #: htdocs/luci-static/resources/fchomo/listeners.js:215 -#: htdocs/luci-static/resources/fchomo/listeners.js:395 -#: htdocs/luci-static/resources/fchomo/listeners.js:445 +#: htdocs/luci-static/resources/fchomo/listeners.js:403 +#: htdocs/luci-static/resources/fchomo/listeners.js:453 #: htdocs/luci-static/resources/view/fchomo/node.js:527 #: htdocs/luci-static/resources/view/fchomo/node.js:626 msgid "UUID" @@ -3737,18 +3742,18 @@ msgstr "更新失敗。" msgid "Update interval" msgstr "更新間隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1389 +#: htdocs/luci-static/resources/fchomo/listeners.js:1404 #: htdocs/luci-static/resources/view/fchomo/node.js:1929 msgid "Upload bandwidth" msgstr "上傳頻寬" -#: htdocs/luci-static/resources/fchomo/listeners.js:1390 +#: htdocs/luci-static/resources/fchomo/listeners.js:1405 #: htdocs/luci-static/resources/view/fchomo/node.js:1930 msgid "Upload bandwidth in Mbps." msgstr "上傳頻寬(單位:Mbps)。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1133 -#: htdocs/luci-static/resources/fchomo/listeners.js:1173 +#: htdocs/luci-static/resources/fchomo/listeners.js:1142 +#: htdocs/luci-static/resources/fchomo/listeners.js:1182 #: htdocs/luci-static/resources/view/fchomo/node.js:1416 msgid "Upload certificate" msgstr "上傳憑證" @@ -3757,14 +3762,14 @@ msgstr "上傳憑證" msgid "Upload initial package" msgstr "上傳初始資源包" -#: htdocs/luci-static/resources/fchomo/listeners.js:1148 +#: htdocs/luci-static/resources/fchomo/listeners.js:1157 #: htdocs/luci-static/resources/view/fchomo/node.js:1430 msgid "Upload key" msgstr "上傳金鑰" -#: htdocs/luci-static/resources/fchomo/listeners.js:1136 -#: htdocs/luci-static/resources/fchomo/listeners.js:1151 -#: htdocs/luci-static/resources/fchomo/listeners.js:1176 +#: htdocs/luci-static/resources/fchomo/listeners.js:1145 +#: htdocs/luci-static/resources/fchomo/listeners.js:1160 +#: htdocs/luci-static/resources/fchomo/listeners.js:1185 #: htdocs/luci-static/resources/view/fchomo/global.js:306 #: htdocs/luci-static/resources/view/fchomo/node.js:1419 #: htdocs/luci-static/resources/view/fchomo/node.js:1433 @@ -3819,7 +3824,7 @@ msgid "User-hint is mandatory" msgstr "User-hint 是必填項" #: htdocs/luci-static/resources/fchomo/listeners.js:162 -#: htdocs/luci-static/resources/fchomo/listeners.js:723 +#: htdocs/luci-static/resources/fchomo/listeners.js:731 #: htdocs/luci-static/resources/view/fchomo/node.js:319 #: htdocs/luci-static/resources/view/fchomo/node.js:1167 msgid "Username" @@ -3882,8 +3887,8 @@ msgstr "詳細" msgid "Verify if given" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:384 -#: htdocs/luci-static/resources/fchomo/listeners.js:737 +#: htdocs/luci-static/resources/fchomo/listeners.js:392 +#: htdocs/luci-static/resources/fchomo/listeners.js:745 #: htdocs/luci-static/resources/view/fchomo/node.js:511 #: htdocs/luci-static/resources/view/fchomo/node.js:1181 msgid "Version" @@ -3914,10 +3919,10 @@ msgstr "以 75% 的機率等待隨機 0-111 毫秒。" msgid "Warning" msgstr "警告" -#: htdocs/luci-static/resources/fchomo/listeners.js:362 -#: htdocs/luci-static/resources/fchomo/listeners.js:1294 -#: htdocs/luci-static/resources/fchomo/listeners.js:1305 -#: htdocs/luci-static/resources/fchomo/listeners.js:1312 +#: htdocs/luci-static/resources/fchomo/listeners.js:370 +#: htdocs/luci-static/resources/fchomo/listeners.js:1309 +#: htdocs/luci-static/resources/fchomo/listeners.js:1320 +#: htdocs/luci-static/resources/fchomo/listeners.js:1327 #: htdocs/luci-static/resources/view/fchomo/node.js:465 #: htdocs/luci-static/resources/view/fchomo/node.js:494 #: htdocs/luci-static/resources/view/fchomo/node.js:1680 @@ -3960,14 +3965,14 @@ msgstr "WireGuard 要求 base64 編碼的私鑰。" msgid "Wireguard" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1295 -#: htdocs/luci-static/resources/fchomo/listeners.js:1306 +#: htdocs/luci-static/resources/fchomo/listeners.js:1310 +#: htdocs/luci-static/resources/fchomo/listeners.js:1321 #: htdocs/luci-static/resources/view/fchomo/node.js:1681 #: htdocs/luci-static/resources/view/fchomo/node.js:1701 msgid "XHTTP" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1342 +#: htdocs/luci-static/resources/fchomo/listeners.js:1357 #: htdocs/luci-static/resources/view/fchomo/node.js:1796 msgid "XHTTP mode" msgstr "XHTTP 模式" @@ -3985,7 +3990,7 @@ msgstr "" msgid "XMUX:" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:825 +#: htdocs/luci-static/resources/fchomo/listeners.js:834 msgid "XOR mode" msgstr "XOR 模式" @@ -4062,8 +4067,8 @@ msgstr "bbr" msgid "bbr3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1138 -#: htdocs/luci-static/resources/fchomo/listeners.js:1178 +#: htdocs/luci-static/resources/fchomo/listeners.js:1147 +#: htdocs/luci-static/resources/fchomo/listeners.js:1187 #: htdocs/luci-static/resources/view/fchomo/node.js:1421 msgid "certificate" msgstr "憑證" @@ -4083,8 +4088,8 @@ msgstr "" msgid "cubic" msgstr "cubic" -#: htdocs/luci-static/resources/fchomo/listeners.js:777 -#: htdocs/luci-static/resources/fchomo/listeners.js:808 +#: htdocs/luci-static/resources/fchomo/listeners.js:786 +#: htdocs/luci-static/resources/fchomo/listeners.js:817 msgid "decryption" msgstr "decryption" @@ -4096,20 +4101,20 @@ msgstr "dnsmasq 自行選擇上游服務器。 (可能影響 CDN 準確性)" msgid "down" msgstr "Hysteria 下載速率" -#: htdocs/luci-static/resources/fchomo/listeners.js:812 +#: htdocs/luci-static/resources/fchomo/listeners.js:821 #: htdocs/luci-static/resources/view/fchomo/node.js:1204 #: htdocs/luci-static/resources/view/fchomo/node.js:1227 msgid "encryption" msgstr "encryption" -#: htdocs/luci-static/resources/fchomo/listeners.js:346 +#: htdocs/luci-static/resources/fchomo/listeners.js:354 #: htdocs/luci-static/resources/view/fchomo/node.js:449 msgid "false = bandwidth optimized downlink; true = pure Sudoku downlink." msgstr "false = 頻寬最佳化下行 true = 純 Sudoku 下行。" -#: htdocs/luci-static/resources/fchomo/listeners.js:1293 -#: htdocs/luci-static/resources/fchomo/listeners.js:1304 -#: htdocs/luci-static/resources/fchomo/listeners.js:1311 +#: htdocs/luci-static/resources/fchomo/listeners.js:1308 +#: htdocs/luci-static/resources/fchomo/listeners.js:1319 +#: htdocs/luci-static/resources/fchomo/listeners.js:1326 #: htdocs/luci-static/resources/view/fchomo/node.js:1679 #: htdocs/luci-static/resources/view/fchomo/node.js:1692 #: htdocs/luci-static/resources/view/fchomo/node.js:1699 @@ -4125,7 +4130,7 @@ msgstr "" msgid "gRPC ping interval" msgstr "gRPC ping 間隔" -#: htdocs/luci-static/resources/fchomo/listeners.js:1336 +#: htdocs/luci-static/resources/fchomo/listeners.js:1351 #: htdocs/luci-static/resources/view/fchomo/node.js:1758 msgid "gRPC service name" msgstr "gRPC 服務名稱" @@ -4151,7 +4156,7 @@ msgstr "" msgid "h3-l4proxy" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:977 +#: htdocs/luci-static/resources/fchomo/listeners.js:986 msgid "least one keypair required" msgstr "至少需要一對密鑰" @@ -4216,13 +4221,13 @@ msgid "not included \",\"" msgstr "不包含 \",\"" #: htdocs/luci-static/resources/fchomo.js:233 -#: htdocs/luci-static/resources/fchomo/listeners.js:604 -#: htdocs/luci-static/resources/fchomo/listeners.js:607 +#: htdocs/luci-static/resources/fchomo/listeners.js:612 +#: htdocs/luci-static/resources/fchomo/listeners.js:615 msgid "null" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:674 -#: htdocs/luci-static/resources/fchomo/listeners.js:684 +#: htdocs/luci-static/resources/fchomo/listeners.js:682 +#: htdocs/luci-static/resources/fchomo/listeners.js:692 #: htdocs/luci-static/resources/view/fchomo/node.js:1124 #: htdocs/luci-static/resources/view/fchomo/node.js:1136 msgid "obfs-simple" @@ -4248,17 +4253,17 @@ msgstr "" msgid "packet addr (v2ray-core v5+)" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1346 +#: htdocs/luci-static/resources/fchomo/listeners.js:1361 #: htdocs/luci-static/resources/view/fchomo/node.js:1800 msgid "packet-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:360 +#: htdocs/luci-static/resources/fchomo/listeners.js:368 #: htdocs/luci-static/resources/view/fchomo/node.js:463 msgid "poll" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1153 +#: htdocs/luci-static/resources/fchomo/listeners.js:1162 #: htdocs/luci-static/resources/view/fchomo/node.js:1435 msgid "private key" msgstr "私鑰" @@ -4284,7 +4289,7 @@ msgstr "規則集" msgid "smux" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:359 +#: htdocs/luci-static/resources/fchomo/listeners.js:367 #: htdocs/luci-static/resources/view/fchomo/node.js:462 msgid "split-stream" msgstr "" @@ -4293,17 +4298,17 @@ msgstr "" msgid "src" msgstr "src" -#: htdocs/luci-static/resources/fchomo/listeners.js:1344 +#: htdocs/luci-static/resources/fchomo/listeners.js:1359 #: htdocs/luci-static/resources/view/fchomo/node.js:1798 msgid "stream-one" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1345 +#: htdocs/luci-static/resources/fchomo/listeners.js:1360 #: htdocs/luci-static/resources/view/fchomo/node.js:1799 msgid "stream-up" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:1361 +#: htdocs/luci-static/resources/fchomo/listeners.js:1376 msgid "stream-up server seconds" msgstr "" @@ -4343,8 +4348,8 @@ msgstr "獨立值" msgid "up" msgstr "Hysteria 上傳速率" -#: htdocs/luci-static/resources/fchomo/listeners.js:385 -#: htdocs/luci-static/resources/fchomo/listeners.js:738 +#: htdocs/luci-static/resources/fchomo/listeners.js:393 +#: htdocs/luci-static/resources/fchomo/listeners.js:746 #: htdocs/luci-static/resources/view/fchomo/node.js:512 #: htdocs/luci-static/resources/view/fchomo/node.js:653 #: htdocs/luci-static/resources/view/fchomo/node.js:1110 @@ -4352,27 +4357,27 @@ msgstr "Hysteria 上傳速率" msgid "v1" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:386 -#: htdocs/luci-static/resources/fchomo/listeners.js:739 +#: htdocs/luci-static/resources/fchomo/listeners.js:394 +#: htdocs/luci-static/resources/fchomo/listeners.js:747 #: htdocs/luci-static/resources/view/fchomo/node.js:513 #: htdocs/luci-static/resources/view/fchomo/node.js:1111 #: htdocs/luci-static/resources/view/fchomo/node.js:1183 msgid "v2" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:387 -#: htdocs/luci-static/resources/fchomo/listeners.js:740 +#: htdocs/luci-static/resources/fchomo/listeners.js:395 +#: htdocs/luci-static/resources/fchomo/listeners.js:748 #: htdocs/luci-static/resources/view/fchomo/node.js:514 #: htdocs/luci-static/resources/view/fchomo/node.js:1184 msgid "v3" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:388 +#: htdocs/luci-static/resources/fchomo/listeners.js:396 #: htdocs/luci-static/resources/view/fchomo/node.js:515 msgid "v4" msgstr "" -#: htdocs/luci-static/resources/fchomo/listeners.js:389 +#: htdocs/luci-static/resources/fchomo/listeners.js:397 #: htdocs/luci-static/resources/view/fchomo/node.js:516 msgid "v5" msgstr "" diff --git a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc index bb7a4bed..9dbca0b5 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc +++ b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc @@ -354,6 +354,8 @@ uci.foreach(uciconf, uciinbd, (cfg) => { const listener = parseListener(cfg); listener.proxy = get_proxy(listener.proxy); + if (listener["reality-config"]) + listener["reality-config"].proxy = get_proxy(listener["reality-config"].proxy); if (listener["shadow-tls"]) listener["shadow-tls"].handshake.proxy = get_proxy(listener["shadow-tls"].handshake.proxy); if (listener["res-tls"]) diff --git a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc index 2941954f..a9ec2b9a 100644 --- a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc +++ b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc @@ -447,7 +447,9 @@ export function parseListener(cfg) { dest: cfg.tls_reality_dest, "private-key": cfg.tls_reality_private_key, "short-id": cfg.tls_reality_short_id, - "server-names": cfg.tls_reality_server_names + "server-names": cfg.tls_reality_server_names, + "max-time-difference": strToInt(cfg.tls_reality_max_time_difference), + proxy: cfg.plugin_opts_dest_proxy, // raw data need post-processing } } : { certificate: cfg.tls_cert_path, diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index 9002615e..568d1514 100644 --- a/luci-app-passwall/Makefile +++ b/luci-app-passwall/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=26.8.12 -PKG_RELEASE:=221 +PKG_RELEASE:=222 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua index 86991c34..5540c8d4 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua @@ -519,7 +519,7 @@ o.validate = function(self, value, t) local _dns_mode = s.fields["dns_mode"]:formvalue(t) local _tcp_node = s.fields["tcp_node"]:formvalue(t) if _dns_mode and _tcp_node then - if (m:get(_tcp_node, "type") or ""):lower() ~= _dns_mode and not _tcp_node:find("Socks_") then + if (m:get(_tcp_node, "type") or ""):lower() ~= _dns_mode and not _tcp_node:find("socks_") then return nil, translatef("TCP node must be '%s' type to use FakeDNS.", _dns_mode) end end @@ -527,6 +527,11 @@ o.validate = function(self, value, t) return value end +o = s:option(Value, "remote_rewrite_ttl", translate("Remote DNS") .. " TTL") +o.datatype = "min(1)" +o.default = "30" +o:depends({dns_mode = "sing-box"}) + o = s:option(ListValue, "chinadns_ng_default_tag", translate("Default DNS")) o.default = "none" o:value("gfw", translate("Remote DNS")) @@ -588,6 +593,7 @@ for k, v in pairs(nodes_table) do s.fields["singbox_dns_mode"]:depends({ _tcp_node_bool = "1", tcp_node = v.id }) s.fields["_node_sel_shunt"]:depends({ tcp_node = v.id }) + s.fields["remote_rewrite_ttl"]:depends({ _tcp_node_bool = "1", tcp_node = v.id }) end else tcp:value(v.id, v["remark"]) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index fbbcbbe6..2f656b45 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -480,7 +480,7 @@ o.validate = function(self, value, t) end local _tcp_node = s.fields["tcp_node"]:formvalue(t) if _dns_mode and _tcp_node then - if (m:get(_tcp_node, "type") or ""):lower() ~= _dns_mode and not _tcp_node:find("Socks_") then + if (m:get(_tcp_node, "type") or ""):lower() ~= _dns_mode and not _tcp_node:find("socks_") then return nil, translatef("TCP node must be '%s' type to use FakeDNS.", _dns_mode) end end @@ -488,6 +488,13 @@ o.validate = function(self, value, t) return value end +o = s:taboption("DNS", Value, "remote_rewrite_ttl", translate("Remote DNS") .. " TTL") +o.datatype = "min(1)" +o.default = "30" +o:depends({dns_mode = "sing-box", dns_shunt = "dnsmasq"}) +o:depends({dns_mode = "sing-box", dns_shunt = "chinadns-ng"}) +o:depends({smartdns_dns_mode = "sing-box", dns_shunt = "smartdns"}) + o = s:taboption("DNS", ListValue, "chinadns_ng_default_tag", translate("Default DNS")) o.default = "none" o:value("gfw", translate("Remote DNS")) @@ -834,6 +841,7 @@ for k, v in pairs(nodes_table) do s.fields["xray_dns_mode"]:depends({ tcp_node = v.id }) else s.fields["singbox_dns_mode"]:depends({ tcp_node = v.id }) + s.fields["remote_rewrite_ttl"]:depends({ tcp_node = v.id }) end end else diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua index c5351a9c..a4ce2a19 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua @@ -92,7 +92,7 @@ o.write = function(self, section, value) if old ~= value then m:foreach("nodes", function(e) if e["group"] and e["group"]:lower() == old:lower() then - self:set(e[".name"], "group", value) + self.map:set(e[".name"], "group", value) end if e["protocol"] and (e["protocol"] == "_balancing" or e["protocol"] == "_urltest") and e["node_group"] then local gs = "" @@ -104,7 +104,7 @@ o.write = function(self, section, value) end end gs = api.trim(gs) - self:set(e[".name"], "node_group", gs) + self.map:set(e[".name"], "node_group", gs) end end) end diff --git a/luci-app-passwall/luasrc/passwall/util_sing-box.lua b/luci-app-passwall/luasrc/passwall/util_sing-box.lua index 34e310c0..f8f43a9e 100644 --- a/luci-app-passwall/luasrc/passwall/util_sing-box.lua +++ b/luci-app-passwall/luasrc/passwall/util_sing-box.lua @@ -1087,6 +1087,7 @@ function gen_config(var) local remote_dns_client_ip = var["remote_dns_client_ip"] local remote_dns_query_strategy = var["remote_dns_query_strategy"] local remote_dns_fake = var["remote_dns_fake"] + local remote_rewrite_ttl = var["remote_rewrite_ttl"] or "30" local dns_cache = var["dns_cache"] local dns_socks_address = var["dns_socks_address"] local dns_socks_port = var["dns_socks_port"] @@ -2015,7 +2016,7 @@ function gen_config(var) end if value.outboundTag ~= "block" and value.outboundTag ~= "direct" then dns_rule.server = "remote" - dns_rule.rewrite_ttl = 30 + dns_rule.rewrite_ttl = tonumber(remote_rewrite_ttl) if true then local block_rule if remote_strategy == "ipv4_only" then @@ -2063,29 +2064,42 @@ function gen_config(var) end end if default_dns_flag == "remote" then + local block_rule local dns_rule_query_type = { "A", "AAAA" } if remote_strategy == "ipv4_only" then + block_rule = { + query_type = { "AAAA" }, + action = "predefined", + rcode = "NOERROR" + } dns_rule_query_type = { "A" } elseif remote_strategy == "ipv6_only" then + block_rule = { + query_type = { "A" }, + action = "predefined", + rcode = "NOERROR" + } dns_rule_query_type = { "AAAA" } end + if block_rule then + table.insert(dns.rules, block_rule) + end if remote_dns_fake then -- When default is not direct and enable fakedns, default DNS use FakeDNS. local fakedns_dns_rule = { query_type = dns_rule_query_type, server = fakedns_tag, disable_cache = true, - rewrite_ttl = 30 + rewrite_ttl = tonumber(remote_rewrite_ttl) } table.insert(dns.rules, fakedns_dns_rule) - else - local remote_dns_rule = { - query_type = dns_rule_query_type, - server = "remote", - disable_cache = true, - } - table.insert(dns.rules, remote_dns_rule) end + local remote_dns_rule = { + server = "remote", + disable_cache = true, + rewrite_ttl = tonumber(remote_rewrite_ttl) + } + table.insert(dns.rules, remote_dns_rule) end local dns_in_inbound = { type = "direct", diff --git a/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server b/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server index 00621cc8..195215eb 100644 --- a/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server +++ b/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server @@ -32,6 +32,15 @@ else fi uci commit firewall +# Migrate server sections from the old `user` section type. New user entries +# also use `user`, so only sections with a server `type` option are renamed. +for sid in $(uci -q show passwall_server | sed -n 's/^passwall_server\.\([^.=]*\)=user$/\1/p'); do + if [ -n "$(uci -q get "passwall_server.${sid}.type")" ]; then + uci -q set "passwall_server.${sid}=server" + fi +done +uci -q commit passwall_server + rm -f /tmp/luci-indexcache /tmp/luci-indexcache.* rm -rf /tmp/luci-modulecache/ killall -HUP rpcd 2>/dev/null diff --git a/luci-app-passwall/root/usr/share/passwall/app.sh b/luci-app-passwall/root/usr/share/passwall/app.sh index 0aefb88e..bd4ec5d9 100755 --- a/luci-app-passwall/root/usr/share/passwall/app.sh +++ b/luci-app-passwall/root/usr/share/passwall/app.sh @@ -98,7 +98,7 @@ run_ipt2socks() { run_singbox() { local flag type node tcp_redir_port tcp_proxy_way udp_redir_port socks_address socks_port socks_username socks_password http_address http_port http_username http_password - local dns_listen_port direct_dns_query_strategy direct_dns_port direct_dns_udp_server direct_dns_tcp_server remote_dns_protocol remote_dns_udp_server remote_dns_tcp_server remote_dns_doh remote_dns_client_ip remote_fakedns remote_dns_query_strategy dns_cache dns_socks_address dns_socks_port + local dns_listen_port direct_dns_query_strategy direct_dns_port direct_dns_udp_server direct_dns_tcp_server remote_dns_protocol remote_dns_udp_server remote_dns_tcp_server remote_dns_doh remote_dns_client_ip remote_fakedns remote_dns_query_strategy remote_rewrite_ttl dns_cache dns_socks_address dns_socks_port local loglevel log_file config_file server_host server_port no_run use_proxy_list use_gfw_list chn_list eval_set_val "$@" [ -z "$type" ] && { @@ -179,6 +179,7 @@ run_singbox() { [ -n "$remote_dns_client_ip" ] && json_add_string "remote_dns_client_ip" "${remote_dns_client_ip}" [ "$remote_fakedns" = "1" ] && json_add_string "remote_dns_fake" "1" + [ -n "$remote_rewrite_ttl" ] && json_add_string "remote_rewrite_ttl" "${remote_rewrite_ttl}" [ -n "$no_run" ] && json_add_string "no_run" "1" local _json_arg="$(json_dump)" lua $UTIL_SINGBOX gen_config "${_json_arg}" > $config_file @@ -763,6 +764,7 @@ run_redir() { resolve_dns_log="${resolve_dns_log} + FakeDNS" USE_FAKEDNS=1 } + _args="${_args} remote_rewrite_ttl=$(config_t_get global remote_rewrite_ttl)" NEXT_DNS_LISTEN_PORT=$(expr $NEXT_DNS_LISTEN_PORT + 1) } _args="${_args} use_proxy_list=$USE_PROXY_LIST use_gfw_list=$USE_GFW_LIST chn_list=$CHN_LIST" @@ -1274,6 +1276,7 @@ start_dns() { _args="${_args} remote_fakedns=1" USE_FAKEDNS=1 } + _args="${_args} remote_rewrite_ttl=$(config_t_get global remote_rewrite_ttl)" local _remote_dns_client_ip=$(config_t_get global remote_dns_client_ip) [ -n "${_remote_dns_client_ip}" ] && _args="${_args} remote_dns_client_ip=${_remote_dns_client_ip}" TCP_PROXY_DNS=1 @@ -1629,9 +1632,9 @@ acl_app() { dns_mode=$type [ "$type" = "xray" ] && [ "$v2ray_dns_mode" = "http3" ] && v2ray_dns_mode="tcp" } - dns_cache_key="${dns_mode}_${remote_dns}_${v2ray_dns_mode:-none}_${remote_dns_client_ip:-0}_${remote_fakedns:-0}" + dns_cache_key="${dns_mode}_${remote_dns}_${v2ray_dns_mode:-none}_${remote_dns_client_ip:-0}_${remote_fakedns:-0}_${remote_rewrite_ttl:-30}" ([ "$v2ray_dns_mode" = "doh" ] || [ "$v2ray_dns_mode" = "http3" ]) && { - dns_cache_key="${dns_mode}_${remote_dns_doh:-https://1.1.1.1/dns-query}_${v2ray_dns_mode:-doh}_${remote_dns_client_ip:-0}_${remote_fakedns:-0}" + dns_cache_key="${dns_mode}_${remote_dns_doh:-https://1.1.1.1/dns-query}_${v2ray_dns_mode:-doh}_${remote_dns_client_ip:-0}_${remote_fakedns:-0}_${remote_rewrite_ttl:-30}" } if [ "$remote_fakedns" = "1" ] || ([ "$protocol" = "_shunt" ] && [ "$(config_n_get $tcp_node fakedns)" = "1" ]); then @@ -1758,7 +1761,10 @@ acl_app() { _extra_param="${_extra_param} udp_redir_port=$redir_port" } config_file="$TMP_PATH/$config_file" - [ "${type}" = "sing-box" ] && type="singbox" + [ "${type}" = "sing-box" ] && { + type="singbox" + _extra_param="${_extra_param} remote_rewrite_ttl=${remote_rewrite_ttl:-30}" + } _extra_param="${_extra_param} use_proxy_list=$use_proxy_list use_gfw_list=$use_gfw_list chn_list=$chn_list" run_${type} flag=$tcp_node node=$tcp_node tcp_redir_port=$redir_port ${_extra_param} config_file=$config_file log_file=$log_file loglevel=$loglevel else @@ -1851,7 +1857,7 @@ acl_app() { } unset enabled sid remarks sources interface tcp_no_redir_ports udp_no_redir_ports use_global_config tcp_node udp_node use_direct_list use_proxy_list use_block_list use_gfw_list chn_list tcp_proxy_mode udp_proxy_mode filter_proxy_ipv6 dns_mode remote_dns v2ray_dns_mode remote_dns_doh remote_dns_client_ip unset _ip _mac _iprange _ipset _ip_or_mac source_list tcp_port udp_port config_file _extra_param dns_cache_key log loglevel - unset _china_ng_listen _chinadns_local_dns _direct_dns_mode chinadns_ng_default_tag dnsmasq_filter_proxy_ipv6 remote_fakedns force_https_soa use_fakedns + unset _china_ng_listen _chinadns_local_dns _direct_dns_mode chinadns_ng_default_tag dnsmasq_filter_proxy_ipv6 remote_fakedns force_https_soa use_fakedns remote_rewrite_ttl done unset socks_port redir_port dns_port dnsmasq_port chinadns_port [ -n "${has_enabled}" ] || { diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index f8f12e97..7ca074fa 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall2 -PKG_VERSION:=26.8.14 -PKG_RELEASE:=85 +PKG_VERSION:=26.8.16 +PKG_RELEASE:=86 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ @@ -15,7 +15,6 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_Nftables_Transparent_Proxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Haproxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client \ @@ -110,12 +109,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria select PACKAGE_hysteria default n -config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy - bool "Include NaiveProxy" - depends on !(arc||armeb||loongarch64||mips||mips64||powerpc||TARGET_gemini) - select PACKAGE_naiveproxy - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client bool "Include Shadowsocks Rust Client" depends on !i386 diff --git a/luci-app-passwall2/luasrc/controller/passwall2.lua b/luci-app-passwall2/luasrc/controller/passwall2.lua index 60185e85..803ccfb6 100644 --- a/luci-app-passwall2/luasrc/controller/passwall2.lua +++ b/luci-app-passwall2/luasrc/controller/passwall2.lua @@ -523,14 +523,13 @@ end function delete_select_nodes() local ids = http.formvalue("ids") local redirect = http.formvalue("redirect") + local ids_t = {} string.gsub(ids, '[^' .. "," .. ']+', function(w) + ids_t[#ids_t + 1] = w if (uci_get("@global[0]", "node") or "") == w then uci_del('@global[0]', "node") end uci_foreach("socks", function(t) - if t["node"] == w then - uci_del(t[".name"]) - end local changed = false local auto_switch_node_list = uci_get(t[".name"], "autoswitch_backup_node") or {} for i = #auto_switch_node_list, 1, -1 do @@ -542,6 +541,14 @@ function delete_select_nodes() if changed then uci_set(t[".name"], "autoswitch_backup_node", auto_switch_node_list) end + if t["node"] == w then + local new_node = api.get_random_normal_node(ids_t) + if new_node then + uci_set(t[".name"], "node", new_node[".name"]) + else + uci_set(t[".name"], "enabled", "0") + end + end end) uci_foreach("haproxy_config", function(t) if t["lbss"] == w then diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua index c5396953..8bcdb52f 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua @@ -308,6 +308,7 @@ o.rmempty = false s2 = m:section(TypedSection, "socks", translate("Socks Config")) s2.template = "cbi/tblsection" +s2.sortable = true s2.anonymous = true s2.addremove = true s2.extedit = api.url("socks_config", "%s") @@ -382,6 +383,7 @@ for k, v in pairs(nodes_table) do end m:appendTemplate("/global/footer", {shunt_list = api.jsonc.stringify(shunt_list)}) -m:appendTemplate(Template("/global/status_bottom")) +m:appendTemplate("/global/status_bottom") +m:appendTemplate("/cbi/sortable", {sectiontype = s2.sectiontype}) return api.return_map(m) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua index aba243cc..a748281d 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua @@ -92,7 +92,7 @@ o.write = function(self, section, value) if old ~= value then m:foreach("nodes", function(e) if e["group"] and e["group"]:lower() == old:lower() then - self:set(e[".name"], "group", value) + self.map:set(e[".name"], "group", value) end if e["protocol"] and (e["protocol"] == "_balancing" or e["protocol"] == "_urltest") and e["node_group"] then local gs = "" @@ -104,7 +104,7 @@ o.write = function(self, section, value) end end gs = api.trim(gs) - self:set(e[".name"], "node_group", gs) + self.map:set(e[".name"], "node_group", gs) end end) end diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/2_sing-box.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/1_sing-box.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/2_sing-box.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/1_sing-box.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/1_xray.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/2_xray.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/1_xray.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/2_xray.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/4_ss-rust.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/3_ss-rust.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/4_ss-rust.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/3_ss-rust.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/5_ssr.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/4_ssr.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/5_ssr.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/4_ssr.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/3_hysteria2.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/5_hysteria2.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/3_hysteria2.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/5_hysteria2.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/6_naive.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/6_naive.lua deleted file mode 100644 index 4d5c55ac..00000000 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/6_naive.lua +++ /dev/null @@ -1,33 +0,0 @@ -if not api.is_finded("naive") then - return -end - --- [[ Naive ]] -local m, s1 = ... -local type_name = "Naiveproxy" - -s1.fields["type"]:value(type_name, "NaiveProxy") - -if s1.val["type"] ~= type_name then - return -end - -local s = NamedSection(m, arg[1], "server") -s.type_name = type_name -s.option_prefix = "naive_" - -o = s:option(ListValue, "protocol", translate("Protocol")) -o:value("https", translate("HTTPS")) -o:value("quic", translate("QUIC")) - -o = s:option(Value, "address", translate("Address (Support Domain Name)")) - -o = s:option(Value, "port", translate("Port")) -o.datatype = "port" - -o = s:option(Value, "username", translate("Username")) - -o = s:option(Value, "password", translate("Password")) -o.password = true - -api.luci_types(s1, s) \ No newline at end of file diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/2_sing-box.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/1_sing-box.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/2_sing-box.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/1_sing-box.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/1_xray.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/2_xray.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/1_xray.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/2_xray.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/4_ss-rust.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/3_ss-rust.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/4_ss-rust.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/3_ss-rust.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/5_ssr.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/4_ssr.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/5_ssr.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/4_ssr.lua diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/3_hysteria2.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/5_hysteria2.lua similarity index 100% rename from luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/3_hysteria2.lua rename to luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/5_hysteria2.lua diff --git a/luci-app-passwall2/luasrc/passwall2/api.lua b/luci-app-passwall2/luasrc/passwall2/api.lua index 779bce87..25e68be2 100644 --- a/luci-app-passwall2/luasrc/passwall2/api.lua +++ b/luci-app-passwall2/luasrc/passwall2/api.lua @@ -598,7 +598,7 @@ function get_valid_nodes() local nodes = {} local default_nodes = {} local other_nodes = {} - uci:foreach(c_config, "nodes", function(e) + uci_foreach_c("nodes", function(e) e.id = e[".name"] if e.type and e.remarks then local type_name = e.type @@ -671,8 +671,8 @@ function get_node_list() socks_list = {}, normal_list = {}, } - uci:foreach(c_config, "socks", function(s) - if s.enabled == "1" and s.node then + uci_foreach_c("socks", function(s) + if s.node then node_list.socks_list[#node_list.socks_list + 1] = { id = s[".name"], remark = i18n.translate("Socks Config") .. " [" .. s.port .. i18n.translate("Port") .. "]", @@ -760,6 +760,29 @@ function get_full_node_remarks(n) return remarks end +function get_random_normal_node(exclude_id) + local exclude_id_lookup = {} + if type(exclude_id) == "table" then + for i, v in ipairs(exclude_id) do + exclude_id_lookup[v] = true + end + elseif type(exclude_id) == "string" then + exclude_id_lookup[exclude_id] = true + end + local normal_list = {} + for k, e in ipairs(get_valid_nodes()) do + if e.node_type == "normal" and not exclude_id_lookup[e[".name"]] then + normal_list[#normal_list + 1] = e + end + end + if #normal_list > 0 then + math.randomseed(os.time()) + local num = math.random(1, #normal_list) + return normal_list[num] + end + return nil +end + function gen_uuid() local uuid = sys.exec("echo -n $(cat /proc/sys/kernel/random/uuid)") return uuid diff --git a/luci-app-passwall2/luasrc/passwall2/util_naiveproxy.lua b/luci-app-passwall2/luasrc/passwall2/util_naiveproxy.lua deleted file mode 100644 index c4f62638..00000000 --- a/luci-app-passwall2/luasrc/passwall2/util_naiveproxy.lua +++ /dev/null @@ -1,42 +0,0 @@ -module("luci.passwall2.util_navieproxy", package.seeall) -local api = require "luci.passwall2.api" -local jsonc = api.jsonc - -function gen_config(var) - local node_id = var["node"] - if not node_id then - print("node Cannot be empty!") - return - end - local node = api.uci_get_c(node_id) - local run_type = var["run_type"] - local local_addr = var["local_addr"] - local local_port = var["local_port"] - local server_host = var["server_host"] or (node.address or ""):lower() - local server_port = var["server_port"] or node.port - - if api.is_ipv6(server_host) then - server_host = api.get_ipv6_full(server_host) - end - local server = server_host .. ":" .. server_port - - local config = { - listen = run_type .. "://" .. local_addr .. ":" .. local_port, - proxy = node.protocol .. "://" .. node.username .. ":" .. node.password .. "@" .. server - } - - return jsonc.stringify(config, 1) -end - -_G.gen_config = gen_config - -if arg[1] then - local func =_G[arg[1]] - if func then - local var = nil - if arg[2] then - var = jsonc.parse(arg[2]) - end - print(func(var)) - end -end diff --git a/luci-app-passwall2/luasrc/view/passwall2/global/status_bottom.htm b/luci-app-passwall2/luasrc/view/passwall2/global/status_bottom.htm index 1a07b84e..50648c87 100644 --- a/luci-app-passwall2/luasrc/view/passwall2/global/status_bottom.htm +++ b/luci-app-passwall2/luasrc/view/passwall2/global/status_bottom.htm @@ -26,7 +26,7 @@ height: 2.6em; display: block; float: left; - margin-right: 1em; + margin: 0 1em; } .status-bar .inner .status-info { @@ -39,7 +39,8 @@ } .pure-u-1-2, .pure-u-12-24 { - width: 50%; + width: 49%; + display: inline-block; } @media screen and (max-width: 700px) { diff --git a/luci-app-passwall2/root/usr/share/passwall2/app.sh b/luci-app-passwall2/root/usr/share/passwall2/app.sh index 49ae8c66..81baf88e 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/app.sh +++ b/luci-app-passwall2/root/usr/share/passwall2/app.sh @@ -12,7 +12,6 @@ LUA_UTIL_PATH=/usr/lib/lua/luci/passwall2 UTIL_SINGBOX=$LUA_UTIL_PATH/util_sing-box.lua UTIL_SS=$LUA_UTIL_PATH/util_shadowsocks.lua UTIL_XRAY=$LUA_UTIL_PATH/util_xray.lua -UTIL_NAIVE=$LUA_UTIL_PATH/util_naiveproxy.lua UTIL_HYSTERIA2=$LUA_UTIL_PATH/util_hysteria2.lua SINGBOX_BIN=$(first_type $(config_t_get global_app sing_box_file) sing-box) XRAY_BIN=$(first_type $(config_t_get global_app xray_file) xray) @@ -455,14 +454,6 @@ run_socks() { lua $UTIL_XRAY gen_config "${_json_arg}" > $config_file [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$XRAY_BIN" "xray" $log_file run -c "$config_file" ;; - naiveproxy) - json_add_string "local_addr" "${bind}" - json_add_string "local_port" "${socks_port}" - json_add_string "run_type" "socks" - local _json_arg="$(json_dump)" - lua $UTIL_NAIVE gen_config "${_json_arg}" > $config_file - [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$(first_type naive)" naive $log_file "$config_file" - ;; ssr) json_add_string "local_addr" "${bind}" json_add_string "local_port" "${socks_port}" diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index dd62f23a..c1cb7b7e 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus LUCI_PKGARCH:=all PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=196 -PKG_RELEASE:=56 +PKG_RELEASE:=57 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \ diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/status_bottom.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/status_bottom.htm index b301122b..714c92e8 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/status_bottom.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/status_bottom.htm @@ -26,7 +26,7 @@ height: 2.6em; display: block; float: left; - margin-right: 1em; + margin: 0 1em; } .status-bar .inner .status-info { @@ -39,7 +39,8 @@ } .pure-u-1-2, .pure-u-12-24 { - width: 50%; + width: 49%; + display: inline-block; } @media screen and (max-width: 700px) { diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index cedae0be..41df5c1c 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -965,20 +965,27 @@ start_socks5_udp_with_ipt2socks() { local local_port="$2" local threads="$3" local ipt2socks_bin - local auth_opts="" + local server_ip local _i ipt2socks_bin="$(first_type ipt2socks)" + server_ip="$(get_host_ip "$sid")" [ -x "$ipt2socks_bin" ] || return 1 + [ -n "$server_ip" ] || { + echolog "UDP TPROXY Relay:Socks5 无法解析服务器地址。" + return 1 + } + set -- if [ "$(uci_get_by_name "$sid" auth_enable 0)" = "1" ]; then - auth_opts="-a $(uci_get_by_name "$sid" username) -k $(uci_get_by_name "$sid" password)" + set -- -a "$(uci_get_by_name "$sid" username)" \ + -k "$(uci_get_by_name "$sid" password)" fi for _i in $(seq 1 "$threads"); do ln_start_bin "$ipt2socks_bin" ipt2socks -U -r -b 0.0.0.0 -4 \ - -s "$(uci_get_by_name "$sid" server)" \ + -s "$server_ip" \ -p "$(uci_get_by_name "$sid" server_port)" \ - -l "$local_port" "$auth_opts" + -l "$local_port" "$@" done echolog "UDP TPROXY Relay:Socks5 via IPT2Socks $threads Threads Started!" return 0 @@ -989,21 +996,28 @@ start_socks5_redir_with_ipt2socks() { local local_port="$2" local threads="$3" local ipt2socks_bin - local auth_opts="" + local server_ip local _i ipt2socks_bin="$(first_type ipt2socks)" + server_ip="$(get_host_ip "$sid")" [ -x "$ipt2socks_bin" ] || return 1 + [ -n "$server_ip" ] || { + echolog "Main node:Socks5 无法解析服务器地址。" + return 1 + } + set -- if [ "$(uci_get_by_name "$sid" auth_enable 0)" = "1" ]; then - auth_opts="-a $(uci_get_by_name "$sid" username) -k $(uci_get_by_name "$sid" password)" + set -- -a "$(uci_get_by_name "$sid" username)" \ + -k "$(uci_get_by_name "$sid" password)" fi for _i in $(seq 1 "$threads"); do ln_start_bin "$ipt2socks_bin" ipt2socks \ -T -R -r -b 0.0.0.0 -4 \ - -s "$(uci_get_by_name "$sid" server)" \ + -s "$server_ip" \ -p "$(uci_get_by_name "$sid" server_port)" \ - -l "$local_port" "$auth_opts" + -l "$local_port" "$@" done echolog "Main node:Socks5 via IPT2Socks $threads Threads Started!" return 0 diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 0eaf0266..cb738971 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -1262,6 +1262,13 @@ compare_rules() { return 0 # No update needed } +append_nftables_comment() { + local name="$1" + local value + value=$(printf '%s' "$2" | tr '\r\n' ' ') + printf '# %s: %s\n' "$name" "$value" >> "$NFTABLES_RULES_FILE" +} + # Auto-update persistence rules persist_nftables_rules() { if [ "$USE_NFT" != "1" ]; then @@ -1296,12 +1303,12 @@ persist_nftables_rules() { echo "# Auto-updated: $(date)" >> "$NFTABLES_RULES_FILE" echo "# Runmode: ${RUNMODE:-router}" >> "$NFTABLES_RULES_FILE" echo "# Server: $server, Port: $local_port" >> "$NFTABLES_RULES_FILE" - echo "# WAN_BP_IP: $WAN_BP_IP" >> "$NFTABLES_RULES_FILE" - echo "# LAN_AC_IP: $LAN_AC_IP" >> "$NFTABLES_RULES_FILE" - echo "# LAN_BP_IP: $LAN_BP_IP" >> "$NFTABLES_RULES_FILE" - echo "# WAN_FW_IP: $WAN_FW_IP" >> "$NFTABLES_RULES_FILE" - echo "# LAN_FP_IP: $LAN_FP_IP" >> "$NFTABLES_RULES_FILE" - echo "# LAN_GM_IP: $LAN_GM_IP" >> "$NFTABLES_RULES_FILE" + append_nftables_comment "WAN_BP_IP" "$WAN_BP_IP" + append_nftables_comment "LAN_AC_IP" "$LAN_AC_IP" + append_nftables_comment "LAN_BP_IP" "$LAN_BP_IP" + append_nftables_comment "WAN_FW_IP" "$WAN_FW_IP" + append_nftables_comment "LAN_FP_IP" "$LAN_FP_IP" + append_nftables_comment "LAN_GM_IP" "$LAN_GM_IP" echo "" >> "$NFTABLES_RULES_FILE" local HAS_RULES=0 diff --git a/luci-theme-footstrap/Makefile b/luci-theme-footstrap/Makefile index 84705147..22e38744 100644 --- a/luci-theme-footstrap/Makefile +++ b/luci-theme-footstrap/Makefile @@ -17,7 +17,7 @@ LUCI_NAME:=luci-theme-footstrap FOOTSTRAP_VERSION?= ifneq ($(FOOTSTRAP_VERSION),) PKG_VERSION:=$(FOOTSTRAP_VERSION) -PKG_RELEASE:=20 +PKG_RELEASE:=21 endif LUCI_TITLE:=Footstrap Theme diff --git a/luci-theme-footstrap/htdocs/luci-static/resources/fs-appearance.js b/luci-theme-footstrap/htdocs/luci-static/resources/fs-appearance.js index 34af64c4..4571fde3 100644 --- a/luci-theme-footstrap/htdocs/luci-static/resources/fs-appearance.js +++ b/luci-theme-footstrap/htdocs/luci-static/resources/fs-appearance.js @@ -560,7 +560,10 @@ function build() { 'class': 'fs-ap-version', 'href': ver.REPO_URL, 'target': '_blank', - 'rel': 'noopener noreferrer' + /* `noreferrer` alone: it implies noopener wherever it is honoured at all, and the theme's + * other outward links — footer.ut's two and the footer's own — spell it that way. Two + * spellings of one rule is how they drift. */ + 'rel': 'noreferrer' }, [ ver.label() ]); const defaults = [ diff --git a/luci-theme-footstrap/htdocs/luci-static/resources/fs-chrome.js b/luci-theme-footstrap/htdocs/luci-static/resources/fs-chrome.js index 906dee69..a17d54c8 100644 --- a/luci-theme-footstrap/htdocs/luci-static/resources/fs-chrome.js +++ b/luci-theme-footstrap/htdocs/luci-static/resources/fs-chrome.js @@ -297,11 +297,14 @@ function nameThemeInFooter() { const host = document.querySelector('footer.fs-footer span'); if (!host || host.querySelector('.fs-footer-self')) return; const self = E('a', { - class: 'fs-footer-self', - href: version.REPO_URL, - target: '_blank', - rel: 'noreferrer', - }, version.label()); + 'class': 'fs-footer-self', + 'href': version.REPO_URL, + 'target': '_blank', + /* `noreferrer` alone, matching footer.ut's own two anchors: it implies noopener in every + * engine that ships `rel=noreferrer` at all, so the pair reads as two rules where there is + * one. fs-appearance.js's link to the same URL spells both — the two are now in step. */ + 'rel': 'noreferrer' + }, [ version.label() ]); /* AFTER THE DISTRIBUTION, not at the end. The sentence lists the software that renders the page * — LuCI, the distribution, the theme — and footer.ut appends one more fragment after them that * is not a component but a state: "Lua compatibility mode active". Landing behind it read as if diff --git a/luci-theme-footstrap/htdocs/luci-static/resources/fs-version.js b/luci-theme-footstrap/htdocs/luci-static/resources/fs-version.js index 8bb8aa1b..d3a3254a 100644 --- a/luci-theme-footstrap/htdocs/luci-static/resources/fs-version.js +++ b/luci-theme-footstrap/htdocs/luci-static/resources/fs-version.js @@ -29,9 +29,10 @@ function isReal() { return ((/^\d+\.\d+/).test(FS_VERSION)) && !((/-dev$/).test( return baseclass.extend({ VERSION: FS_VERSION, - /* the project's page, for the link at the foot of the Appearance tab. One string, used once — - * it was assembled from a separate FS_REPO constant that the retired self-update script needed to build - * API paths from, and nothing has needed the bare `owner/name` since. */ + /* the project's page: the link at the foot of the Appearance tab, and the one + * nameThemeInFooter() writes into the footer. It was assembled from a separate FS_REPO + * constant that the retired self-update script needed to build API paths from, and nothing + * has needed the bare `owner/name` since. */ REPO_URL: 'https://github.com/VizzleTF/luci-theme-footstrap', isReal, /* what the Appearance tab's version row prints */ diff --git a/luci-theme-footstrap/styles/theme/20-shell.css b/luci-theme-footstrap/styles/theme/20-shell.css index 193349a2..1f48eafa 100644 --- a/luci-theme-footstrap/styles/theme/20-shell.css +++ b/luci-theme-footstrap/styles/theme/20-shell.css @@ -686,8 +686,16 @@ * Found by tools/live-audit.mjs on CI's runner and not on the maintainer's stands: the wrap * width depends on text metrics, so the same 568px viewport breaks the line there and not * here. 26px, not 24: the criterion is that the two 24px circles must not meet, so 24 is the - * boundary rather than a pass, and 26 leaves the footer visually unchanged on one line. */ - line-height: 26px; + * boundary rather than a pass, and 26 leaves the footer visually unchanged on one line. + * + * A FLOOR, not a fixed number, and not a bare ratio either. `--fs-type` is + * `calc(13px * --fs-density-type)`, which is 0.9 at Compact and 1.15 at Large, so a plain + * `26px` would be the one leading in this file that ignores the Density axis while the text + * it leads follows it — and a unitless `2` would follow the axis straight back under 24px at + * Compact (11.7px x 2 = 23.4), where the wrap this rule exists for is most likely. `max()` + * is both: 26px at the default and at Compact, 29.9px at Large, tracking the axis in the one + * direction where tracking it is safe. */ + line-height: max(26px, calc(var(--fs-type) * 2)); } footer a { color: var(--fs-dim); } footer a:hover { color: var(--fs-accent); } diff --git a/mihomo/Makefile b/mihomo/Makefile index 04686e65..de7c18cf 100644 --- a/mihomo/Makefile +++ b/mihomo/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mihomo -PKG_VERSION:=1.19.29 -PKG_RELEASE:=31 +PKG_VERSION:=1.19.30 +PKG_RELEASE:=32 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/metacubex/mihomo/tar.gz/v$(PKG_VERSION)? diff --git a/natflow/Makefile b/natflow/Makefile index 43b739fe..f76c7a00 100644 --- a/natflow/Makefile +++ b/natflow/Makefile @@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=natflow PKG_VERSION:=20260531 -PKG_RELEASE:=70 +PKG_RELEASE:=71 PKG_SOURCE:=$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=bbd26afc851575c8c1b326a5d0bdfa3e6c2723c1 +PKG_SOURCE_VERSION:=6472300c8d6b9082112a27a6a7547ea6057577be PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_MAINTAINER:=Chen Minqiang PKG_LICENSE:=GPL-2.0