diff --git a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js index fa313b370..314f20a17 100644 --- a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js +++ b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js @@ -177,6 +177,7 @@ function parseShareLink(uri, features) { case 'trojan': /* https://p4gefau1t.github.io/trojan-go/developer/url/ */ var url = new URL('http://' + uri[1]); + var params = url.searchParams; /* Check if password exists */ if (!url.username) @@ -188,9 +189,26 @@ function parseShareLink(uri, features) { address: url.hostname, port: url.port || '80', password: decodeURIComponent(url.username), + transport: params.get('type') !== 'tcp' ? params.get('type') : null, tls: '1', - tls_sni: url.searchParams.get('sni') + tls_sni: params.get('sni') }; + switch (params.get('type')) { + case 'grpc': + config.grpc_servicename = params.get('serviceName'); + break; + case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) + * config.ws_host = params.get('host') ? decodeURIComponent(params.get('host')) : null; + */ + config.ws_path = params.get('path') ? decodeURIComponent(params.get('path')) : null; + if (config.ws_path && config.ws_path.includes('?ed=')) { + config.websocket_early_data_header = 'Sec-WebSocket-Protocol'; + config.websocket_early_data = config.ws_path.split('?ed=')[1]; + config.ws_path = config.ws_path.split('?ed=')[0]; + } + break; + } break; case 'vless': @@ -235,6 +253,7 @@ function parseShareLink(uri, features) { } break; case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */ config.ws_host = (config.tls !== '1' && params.get('host')) ? decodeURIComponent(params.get('host')) : null; config.ws_path = params.get('path') ? decodeURIComponent(params.get('path')) : null; if (config.ws_path && config.ws_path.includes('?ed=')) { @@ -292,6 +311,7 @@ function parseShareLink(uri, features) { } break; case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */ config.ws_host = (config.tls !== '1') ? uri.host : null; config.ws_path = uri.path; if (config.ws_path && config.ws_path.includes('?ed=')) { @@ -1111,7 +1131,6 @@ return view.extend({ so = ss.option(form.Value, 'tls_reality_short_id', _('REALITY short ID')); so.depends('tls_reality', '1'); - so.rmempty = false; so.modalonly = true; } /* TLS config end */ diff --git a/homeproxy/po/templates/homeproxy.pot b/homeproxy/po/templates/homeproxy.pot index c983b05d3..45fdd2572 100644 --- a/homeproxy/po/templates/homeproxy.pot +++ b/homeproxy/po/templates/homeproxy.pot @@ -5,11 +5,11 @@ msgstr "Content-Type: text/plain; charset=UTF-8" msgid "%s log" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1268 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1287 msgid "%s nodes removed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1076 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1096 msgid "360" msgstr "" @@ -17,7 +17,7 @@ msgstr "" msgid "4 or 6. Not limited if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1043 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1063 #: htdocs/luci-static/resources/view/homeproxy/server.js:536 #: htdocs/luci-static/resources/view/homeproxy/server.js:554 msgid "Save your configuration before uploading files!" @@ -43,7 +43,7 @@ msgstr "" msgid "Add a DNS server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:368 msgid "Add a node" msgstr "" @@ -60,7 +60,7 @@ msgid "Add a server" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:603 -#: htdocs/luci-static/resources/view/homeproxy/node.js:484 +#: htdocs/luci-static/resources/view/homeproxy/node.js:504 msgid "Address" msgstr "" @@ -81,20 +81,20 @@ msgstr "" msgid "All ports" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:996 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1194 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1016 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1213 msgid "Allow insecure" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:997 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1017 msgid "Allow insecure connection at TLS client." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1195 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1214 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:857 +#: htdocs/luci-static/resources/view/homeproxy/node.js:877 #: htdocs/luci-static/resources/view/homeproxy/server.js:330 msgid "Allowed payload size is in the request." msgstr "" @@ -107,7 +107,7 @@ msgstr "" msgid "Already in updating." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:730 +#: htdocs/luci-static/resources/view/homeproxy/node.js:750 #: htdocs/luci-static/resources/view/homeproxy/server.js:246 msgid "Alter ID" msgstr "" @@ -120,24 +120,24 @@ msgstr "" msgid "Alternative TLS port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1250 msgid "An error occurred during updating subscriptions: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1097 msgid "Android" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1049 msgid "Append self-signed certificate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:448 +#: htdocs/luci-static/resources/view/homeproxy/node.js:468 msgid "Applied" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:441 -#: htdocs/luci-static/resources/view/homeproxy/node.js:451 +#: htdocs/luci-static/resources/view/homeproxy/node.js:461 +#: htdocs/luci-static/resources/view/homeproxy/node.js:471 msgid "Apply" msgstr "" @@ -145,16 +145,16 @@ msgstr "" msgid "Are you sure to allow insecure?" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:754 +#: htdocs/luci-static/resources/view/homeproxy/node.js:774 msgid "Authenticated length" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:560 +#: htdocs/luci-static/resources/view/homeproxy/node.js:580 #: htdocs/luci-static/resources/view/homeproxy/server.js:187 msgid "Authentication payload" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:551 +#: htdocs/luci-static/resources/view/homeproxy/node.js:571 #: htdocs/luci-static/resources/view/homeproxy/server.js:178 msgid "Authentication type" msgstr "" @@ -163,15 +163,15 @@ msgstr "" msgid "Auto configure firewall" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1167 msgid "Auto update" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1149 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1168 msgid "Auto update subscriptions, GeoIP and GeoSite." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:553 +#: htdocs/luci-static/resources/view/homeproxy/node.js:573 #: htdocs/luci-static/resources/view/homeproxy/server.js:180 msgid "Base64" msgstr "" @@ -190,7 +190,7 @@ msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1184 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1203 msgid "Blacklist mode" msgstr "" @@ -232,11 +232,11 @@ msgstr "" msgid "CNNIC Public DNS (210.2.4.8)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:361 +#: htdocs/luci-static/resources/view/homeproxy/node.js:381 msgid "Cancel" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1035 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1055 #: htdocs/luci-static/resources/view/homeproxy/server.js:525 msgid "Certificate path" msgstr "" @@ -261,11 +261,11 @@ msgstr "" msgid "China list version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1078 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 msgid "Chrome" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1021 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1041 #: htdocs/luci-static/resources/view/homeproxy/server.js:400 msgid "Cipher suites" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "Default outbound" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1202 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1221 msgid "Default packet encoding" msgstr "" @@ -366,7 +366,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:530 #: htdocs/luci-static/resources/view/homeproxy/client.js:655 #: htdocs/luci-static/resources/view/homeproxy/client.js:793 -#: htdocs/luci-static/resources/view/homeproxy/node.js:468 +#: htdocs/luci-static/resources/view/homeproxy/node.js:488 msgid "Direct" msgstr "" @@ -393,10 +393,10 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:185 #: htdocs/luci-static/resources/view/homeproxy/client.js:305 #: htdocs/luci-static/resources/view/homeproxy/client.js:853 -#: htdocs/luci-static/resources/view/homeproxy/node.js:533 -#: htdocs/luci-static/resources/view/homeproxy/node.js:552 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1075 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1183 +#: htdocs/luci-static/resources/view/homeproxy/node.js:553 +#: htdocs/luci-static/resources/view/homeproxy/node.js:572 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1202 #: htdocs/luci-static/resources/view/homeproxy/server.js:179 msgid "Disable" msgstr "" @@ -409,7 +409,7 @@ msgstr "" msgid "Disable HTTP challenge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:594 +#: htdocs/luci-static/resources/view/homeproxy/node.js:614 #: htdocs/luci-static/resources/view/homeproxy/server.js:218 msgid "Disable Path MTU discovery" msgstr "" @@ -430,11 +430,11 @@ msgstr "" msgid "Disable dns cache" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1057 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1077 msgid "Disable dynamic record sizing" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:595 +#: htdocs/luci-static/resources/view/homeproxy/node.js:615 #: htdocs/luci-static/resources/view/homeproxy/server.js:219 msgid "" "Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 " @@ -470,14 +470,14 @@ msgstr "" msgid "Domains" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1209 msgid "" "Drop/keep nodes that contain the specific keywords. Regex is supported." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1201 msgid "Drop/keep specific nodes from subscriptions." msgstr "" @@ -489,22 +489,22 @@ msgid "" "a non-ACME system, such as a CA customer database." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1052 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1072 msgid "" "ECH (Encrypted Client Hello) is a TLS extension that allows a client to " "encrypt the first part of its ClientHello message." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 msgid "ECH config" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:856 +#: htdocs/luci-static/resources/view/homeproxy/node.js:876 #: htdocs/luci-static/resources/view/homeproxy/server.js:329 msgid "Early data" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:863 +#: htdocs/luci-static/resources/view/homeproxy/node.js:883 #: htdocs/luci-static/resources/view/homeproxy/server.js:336 msgid "Early data header name" msgstr "" @@ -513,11 +513,11 @@ msgstr "" msgid "Early data is sent in path instead of header by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1079 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1099 msgid "Edge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:355 msgid "Edit nodes" msgstr "" @@ -538,15 +538,15 @@ msgstr "" msgid "Enable ACME" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1051 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1071 msgid "Enable ECH" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1062 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1082 msgid "Enable PQ signature schemes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 #: htdocs/luci-static/resources/view/homeproxy/server.js:570 msgid "Enable UDP fragmentation." msgstr "" @@ -559,14 +559,14 @@ msgstr "" msgid "Enable tcp fast open for listener." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1149 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:602 -#: htdocs/luci-static/resources/view/homeproxy/node.js:634 -#: htdocs/luci-static/resources/view/homeproxy/node.js:736 +#: htdocs/luci-static/resources/view/homeproxy/node.js:622 +#: htdocs/luci-static/resources/view/homeproxy/node.js:654 +#: htdocs/luci-static/resources/view/homeproxy/node.js:756 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 msgid "Encrypt method" msgstr "" @@ -586,11 +586,11 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:232 #: htdocs/luci-static/resources/view/homeproxy/client.js:935 #: htdocs/luci-static/resources/view/homeproxy/client.js:964 -#: htdocs/luci-static/resources/view/homeproxy/node.js:423 -#: htdocs/luci-static/resources/view/homeproxy/node.js:522 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1174 +#: htdocs/luci-static/resources/view/homeproxy/node.js:443 +#: htdocs/luci-static/resources/view/homeproxy/node.js:542 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1193 #: htdocs/luci-static/resources/view/homeproxy/server.js:147 #: htdocs/luci-static/resources/view/homeproxy/server.js:433 #: htdocs/luci-static/resources/view/homeproxy/server.js:435 @@ -613,24 +613,24 @@ msgstr "" msgid "Failed to upload %s, error: %s." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1189 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1208 msgid "Filter keywords" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1200 msgid "Filter nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1080 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 msgid "Firefox" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:724 +#: htdocs/luci-static/resources/view/homeproxy/node.js:744 #: htdocs/luci-static/resources/view/homeproxy/server.js:240 msgid "Flow" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:825 +#: htdocs/luci-static/resources/view/homeproxy/node.js:845 msgid "GET" msgstr "" @@ -675,7 +675,7 @@ msgstr "" msgid "Global" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:747 +#: htdocs/luci-static/resources/view/homeproxy/node.js:767 msgid "Global padding" msgstr "" @@ -705,8 +705,8 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:448 #: htdocs/luci-static/resources/view/homeproxy/client.js:714 -#: htdocs/luci-static/resources/view/homeproxy/node.js:469 -#: htdocs/luci-static/resources/view/homeproxy/node.js:766 +#: htdocs/luci-static/resources/view/homeproxy/node.js:489 +#: htdocs/luci-static/resources/view/homeproxy/node.js:786 #: htdocs/luci-static/resources/view/homeproxy/server.js:105 #: htdocs/luci-static/resources/view/homeproxy/server.js:258 msgid "HTTP" @@ -734,14 +734,14 @@ msgstr "" msgid "HomeProxy Server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:815 -#: htdocs/luci-static/resources/view/homeproxy/node.js:848 +#: htdocs/luci-static/resources/view/homeproxy/node.js:835 +#: htdocs/luci-static/resources/view/homeproxy/node.js:868 #: htdocs/luci-static/resources/view/homeproxy/server.js:291 #: htdocs/luci-static/resources/view/homeproxy/server.js:321 msgid "Host" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:471 +#: htdocs/luci-static/resources/view/homeproxy/node.js:491 #: htdocs/luci-static/resources/view/homeproxy/server.js:107 msgid "Hysteria" msgstr "" @@ -775,12 +775,12 @@ msgstr "" msgid "IPv6 support" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:830 +#: htdocs/luci-static/resources/view/homeproxy/node.js:850 #: htdocs/luci-static/resources/view/homeproxy/server.js:304 msgid "Idle timeout" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:807 +#: htdocs/luci-static/resources/view/homeproxy/node.js:827 msgid "" "If enabled, the client transport sends keepalive pings even with no active " "connections." @@ -797,26 +797,26 @@ msgid "" ">dns.strategy will be used if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:792 +#: htdocs/luci-static/resources/view/homeproxy/node.js:812 #: htdocs/luci-static/resources/view/homeproxy/server.js:276 msgid "" "If the transport doesn't see any activity after a duration of this time, it " "pings the client to check if the connection is still active." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1030 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1050 msgid "" "If you have the root certificate, use this option instead of allowing " "insecure." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:406 +#: htdocs/luci-static/resources/view/homeproxy/node.js:426 msgid "Import" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:354 -#: htdocs/luci-static/resources/view/homeproxy/node.js:432 -#: htdocs/luci-static/resources/view/homeproxy/node.js:434 +#: htdocs/luci-static/resources/view/homeproxy/node.js:374 +#: htdocs/luci-static/resources/view/homeproxy/node.js:452 +#: htdocs/luci-static/resources/view/homeproxy/node.js:454 msgid "Import share links" msgstr "" @@ -850,12 +850,12 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:409 #: htdocs/luci-static/resources/view/homeproxy/client.js:593 #: htdocs/luci-static/resources/view/homeproxy/client.js:682 -#: htdocs/luci-static/resources/view/homeproxy/node.js:462 +#: htdocs/luci-static/resources/view/homeproxy/node.js:482 #: htdocs/luci-static/resources/view/homeproxy/server.js:93 msgid "Label" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:731 +#: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/server.js:247 msgid "" "Legacy protocol support (VMess MD5 Authentication) is provided for " @@ -870,12 +870,12 @@ msgstr "" msgid "Let's Encrypt" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:880 +#: htdocs/luci-static/resources/view/homeproxy/node.js:900 msgid "" "List of IP (v4 or v6) addresses prefixes to be assigned to the interface." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:992 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1012 #: htdocs/luci-static/resources/view/homeproxy/server.js:380 msgid "List of supported application level protocols, in order of preference." msgstr "" @@ -888,7 +888,7 @@ msgstr "" msgid "Loading" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:879 +#: htdocs/luci-static/resources/view/homeproxy/node.js:899 msgid "Local address" msgstr "" @@ -900,7 +900,7 @@ msgstr "" msgid "Log is empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:911 +#: htdocs/luci-static/resources/view/homeproxy/node.js:931 msgid "MTU" msgstr "" @@ -995,12 +995,12 @@ msgstr "" msgid "Match user name." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:570 +#: htdocs/luci-static/resources/view/homeproxy/node.js:590 #: htdocs/luci-static/resources/view/homeproxy/server.js:166 msgid "Max download speed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:571 +#: htdocs/luci-static/resources/view/homeproxy/node.js:591 #: htdocs/luci-static/resources/view/homeproxy/server.js:167 msgid "Max download speed in Mbps." msgstr "" @@ -1009,52 +1009,52 @@ msgstr "" msgid "Max time difference" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:576 +#: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/server.js:172 msgid "Max upload speed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:577 +#: htdocs/luci-static/resources/view/homeproxy/node.js:597 #: htdocs/luci-static/resources/view/homeproxy/server.js:173 msgid "Max upload speed in Mbps." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1033 #: htdocs/luci-static/resources/view/homeproxy/server.js:392 msgid "Maximum TLS version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:938 +#: htdocs/luci-static/resources/view/homeproxy/node.js:958 msgid "Maximum connections" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:954 +#: htdocs/luci-static/resources/view/homeproxy/node.js:974 msgid "" "Maximum multiplexed streams in a connection before opening a new connection." "
Conflict with Maximum connections and Minimum " "streams." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:953 +#: htdocs/luci-static/resources/view/homeproxy/node.js:973 msgid "Maximum streams" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:824 +#: htdocs/luci-static/resources/view/homeproxy/node.js:844 #: htdocs/luci-static/resources/view/homeproxy/server.js:300 msgid "Method" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1025 #: htdocs/luci-static/resources/view/homeproxy/server.js:384 msgid "Minimum TLS version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:946 +#: htdocs/luci-static/resources/view/homeproxy/node.js:966 msgid "" "Minimum multiplexed streams in a connection before opening a new connection." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:945 +#: htdocs/luci-static/resources/view/homeproxy/node.js:965 msgid "Minimum streams" msgstr "" @@ -1063,11 +1063,11 @@ msgstr "" msgid "Mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:920 +#: htdocs/luci-static/resources/view/homeproxy/node.js:940 msgid "Multiplex" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:928 +#: htdocs/luci-static/resources/view/homeproxy/node.js:948 msgid "Multiplex protocol." msgstr "" @@ -1076,7 +1076,7 @@ msgstr "" msgid "NOT RUNNING" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1208 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1227 msgid "NOTE: Save current settings before updating subscriptions." msgstr "" @@ -1090,32 +1090,32 @@ msgstr "" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:763 -#: htdocs/luci-static/resources/view/homeproxy/node.js:779 +#: htdocs/luci-static/resources/view/homeproxy/node.js:783 +#: htdocs/luci-static/resources/view/homeproxy/node.js:799 #: htdocs/luci-static/resources/view/homeproxy/server.js:255 #: htdocs/luci-static/resources/view/homeproxy/server.js:268 msgid "No TCP transport, plain HTTP is merged into the HTTP transport." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:777 +#: htdocs/luci-static/resources/view/homeproxy/node.js:797 #: htdocs/luci-static/resources/view/homeproxy/server.js:266 msgid "No additional encryption support: It's basically duplicate encryption." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1224 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1243 msgid "No subscription available" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1249 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1268 msgid "No subscription node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:393 +#: htdocs/luci-static/resources/view/homeproxy/node.js:413 msgid "No valid share link found." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:343 -#: htdocs/luci-static/resources/view/homeproxy/node.js:348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:368 msgid "Node" msgstr "" @@ -1123,27 +1123,27 @@ msgstr "" msgid "Node Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:340 +#: htdocs/luci-static/resources/view/homeproxy/node.js:360 msgid "Nodes" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:613 -#: htdocs/luci-static/resources/view/homeproxy/node.js:725 -#: htdocs/luci-static/resources/view/homeproxy/node.js:764 +#: htdocs/luci-static/resources/view/homeproxy/node.js:745 +#: htdocs/luci-static/resources/view/homeproxy/node.js:784 #: htdocs/luci-static/resources/view/homeproxy/server.js:241 #: htdocs/luci-static/resources/view/homeproxy/server.js:256 msgid "None" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:682 +#: htdocs/luci-static/resources/view/homeproxy/node.js:702 msgid "Obfs" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:692 +#: htdocs/luci-static/resources/view/homeproxy/node.js:712 msgid "Obfs param" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:566 +#: htdocs/luci-static/resources/view/homeproxy/node.js:586 #: htdocs/luci-static/resources/view/homeproxy/server.js:193 msgid "Obfuscate password" msgstr "" @@ -1177,11 +1177,11 @@ msgstr "" msgid "Override the connection destination address with the sniffed domain." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:826 +#: htdocs/luci-static/resources/view/homeproxy/node.js:846 msgid "PUT" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:869 +#: htdocs/luci-static/resources/view/homeproxy/node.js:889 msgid "Packet encoding" msgstr "" @@ -1189,19 +1189,19 @@ msgstr "" msgid "Parse Proxy Protocol in the connection header." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:497 +#: htdocs/luci-static/resources/view/homeproxy/node.js:517 #: htdocs/luci-static/resources/view/homeproxy/server.js:128 msgid "Password" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:820 -#: htdocs/luci-static/resources/view/homeproxy/node.js:852 +#: htdocs/luci-static/resources/view/homeproxy/node.js:840 +#: htdocs/luci-static/resources/view/homeproxy/node.js:872 #: htdocs/luci-static/resources/view/homeproxy/server.js:296 #: htdocs/luci-static/resources/view/homeproxy/server.js:325 msgid "Path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:893 +#: htdocs/luci-static/resources/view/homeproxy/node.js:913 msgid "Peer pubkic key" msgstr "" @@ -1211,22 +1211,22 @@ msgid "" "it is not needed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:838 +#: htdocs/luci-static/resources/view/homeproxy/node.js:858 #: htdocs/luci-static/resources/view/homeproxy/server.js:312 msgid "Ping timeout" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:620 +#: htdocs/luci-static/resources/view/homeproxy/node.js:640 msgid "Plugin" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:627 +#: htdocs/luci-static/resources/view/homeproxy/node.js:647 msgid "Plugin opts" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:502 #: htdocs/luci-static/resources/view/homeproxy/client.js:765 -#: htdocs/luci-static/resources/view/homeproxy/node.js:488 +#: htdocs/luci-static/resources/view/homeproxy/node.js:508 #: htdocs/luci-static/resources/view/homeproxy/server.js:117 msgid "Port" msgstr "" @@ -1240,7 +1240,7 @@ msgstr "" msgid "Port range" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:899 +#: htdocs/luci-static/resources/view/homeproxy/node.js:919 msgid "Pre-shared key" msgstr "" @@ -1252,7 +1252,7 @@ msgstr "" msgid "Prefer IPv6" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:886 +#: htdocs/luci-static/resources/view/homeproxy/node.js:906 msgid "Private key" msgstr "" @@ -1268,22 +1268,22 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:446 #: htdocs/luci-static/resources/view/homeproxy/client.js:712 -#: htdocs/luci-static/resources/view/homeproxy/node.js:540 -#: htdocs/luci-static/resources/view/homeproxy/node.js:662 -#: htdocs/luci-static/resources/view/homeproxy/node.js:927 +#: htdocs/luci-static/resources/view/homeproxy/node.js:560 +#: htdocs/luci-static/resources/view/homeproxy/node.js:682 +#: htdocs/luci-static/resources/view/homeproxy/node.js:947 #: htdocs/luci-static/resources/view/homeproxy/server.js:155 msgid "Protocol" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:678 +#: htdocs/luci-static/resources/view/homeproxy/node.js:698 msgid "Protocol param" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:755 +#: htdocs/luci-static/resources/view/homeproxy/node.js:775 msgid "Protocol parameter. Enable length block encryption." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:748 +#: htdocs/luci-static/resources/view/homeproxy/node.js:768 msgid "" "Protocol parameter. Will waste traffic randomly if enabled (enabled by " "default in v2ray and cannot be disabled)." @@ -1323,23 +1323,23 @@ msgstr "" msgid "Proxy mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:531 +#: htdocs/luci-static/resources/view/homeproxy/node.js:551 #: htdocs/luci-static/resources/view/homeproxy/server.js:585 msgid "Proxy protocol" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1102 msgid "QQ" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:450 #: htdocs/luci-static/resources/view/homeproxy/client.js:716 -#: htdocs/luci-static/resources/view/homeproxy/node.js:767 +#: htdocs/luci-static/resources/view/homeproxy/node.js:787 #: htdocs/luci-static/resources/view/homeproxy/server.js:259 msgid "QUIC" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:588 +#: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/server.js:204 msgid "QUIC connection receive window" msgstr "" @@ -1348,12 +1348,12 @@ msgstr "" msgid "QUIC maximum concurrent bidirectional streams" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:582 +#: htdocs/luci-static/resources/view/homeproxy/node.js:602 #: htdocs/luci-static/resources/view/homeproxy/server.js:197 msgid "QUIC stream receive window" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1102 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1122 #: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "REALITY" msgstr "" @@ -1362,11 +1362,11 @@ msgstr "" msgid "REALITY private key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 msgid "REALITY public key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1132 #: htdocs/luci-static/resources/view/homeproxy/server.js:502 msgid "REALITY short ID" msgstr "" @@ -1376,11 +1376,11 @@ msgstr "" msgid "RUNNING" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 msgid "Random" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1084 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1104 msgid "Randomized" msgstr "" @@ -1408,15 +1408,15 @@ msgstr "" msgid "Refresh every %s seconds." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1265 msgid "Remove %s nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1236 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1255 msgid "Remove all nodes from subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:906 +#: htdocs/luci-static/resources/view/homeproxy/node.js:926 msgid "Reserved field bytes" msgstr "" @@ -1461,11 +1461,11 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1155 msgid "SUoT version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1085 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 msgid "Safari" msgstr "" @@ -1473,11 +1473,11 @@ msgstr "" msgid "Same as main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1210 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1229 msgid "Save current settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1207 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1226 msgid "Save subscriptions settings" msgstr "" @@ -1504,20 +1504,20 @@ msgstr "" msgid "Service Status" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:475 +#: htdocs/luci-static/resources/view/homeproxy/node.js:495 msgid "ShadowTLS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:698 +#: htdocs/luci-static/resources/view/homeproxy/node.js:718 msgid "ShadowTLS version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:472 +#: htdocs/luci-static/resources/view/homeproxy/node.js:492 #: htdocs/luci-static/resources/view/homeproxy/server.js:110 msgid "Shadowsocks" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:474 +#: htdocs/luci-static/resources/view/homeproxy/node.js:494 msgid "ShadowsocksR" msgstr "" @@ -1528,24 +1528,24 @@ msgid "" "org/configuration/route/sniff/\">Sniff for details." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:476 +#: htdocs/luci-static/resources/view/homeproxy/node.js:496 #: htdocs/luci-static/resources/view/homeproxy/server.js:111 msgid "Socks" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:708 +#: htdocs/luci-static/resources/view/homeproxy/node.js:728 msgid "Socks version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:709 +#: htdocs/luci-static/resources/view/homeproxy/node.js:729 msgid "Socks4" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:710 +#: htdocs/luci-static/resources/view/homeproxy/node.js:730 msgid "Socks4A" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:711 +#: htdocs/luci-static/resources/view/homeproxy/node.js:731 msgid "Socks5" msgstr "" @@ -1569,8 +1569,8 @@ msgstr "" msgid "Source port range" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:784 -#: htdocs/luci-static/resources/view/homeproxy/node.js:831 +#: htdocs/luci-static/resources/view/homeproxy/node.js:804 +#: htdocs/luci-static/resources/view/homeproxy/node.js:851 msgid "" "Specifies the period of time after which a health check will be performed " "using a ping frame if no frames have been received on the connection.
If a response to the PING frame is not " @@ -1601,20 +1601,20 @@ msgid "" "commas." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:554 +#: htdocs/luci-static/resources/view/homeproxy/node.js:574 #: htdocs/luci-static/resources/view/homeproxy/server.js:181 msgid "String" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1164 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1183 msgid "Subscription URL-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1146 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 msgid "Subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:395 +#: htdocs/luci-static/resources/view/homeproxy/node.js:415 msgid "Successfully imported %s nodes of total %s." msgstr "" @@ -1622,8 +1622,8 @@ msgstr "" msgid "Successfully updated." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 +#: htdocs/luci-static/resources/view/homeproxy/node.js:375 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1184 msgid "" "Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -1639,7 +1639,7 @@ msgstr "" msgid "TCP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1120 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1139 #: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "TCP fast open" msgstr "" @@ -1654,22 +1654,22 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:449 #: htdocs/luci-static/resources/view/homeproxy/client.js:715 -#: htdocs/luci-static/resources/view/homeproxy/node.js:962 +#: htdocs/luci-static/resources/view/homeproxy/node.js:982 #: htdocs/luci-static/resources/view/homeproxy/server.js:348 msgid "TLS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:991 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1011 #: htdocs/luci-static/resources/view/homeproxy/server.js:379 msgid "TLS ALPN" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:986 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1006 #: htdocs/luci-static/resources/view/homeproxy/server.js:373 msgid "TLS SNI" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:775 +#: htdocs/luci-static/resources/view/homeproxy/node.js:795 #: htdocs/luci-static/resources/view/homeproxy/server.js:264 msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used." msgstr "" @@ -1705,12 +1705,12 @@ msgstr "" msgid "The DNS strategy for resolving the domain name in the address." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:589 +#: htdocs/luci-static/resources/view/homeproxy/node.js:609 #: htdocs/luci-static/resources/view/homeproxy/server.js:205 msgid "The QUIC connection-level flow control window for receiving data." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:583 +#: htdocs/luci-static/resources/view/homeproxy/node.js:603 #: htdocs/luci-static/resources/view/homeproxy/server.js:198 msgid "The QUIC stream-level flow control window for receiving data." msgstr "" @@ -1753,7 +1753,7 @@ msgid "" "strategy will be used if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1022 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1042 #: htdocs/luci-static/resources/view/homeproxy/server.js:401 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " @@ -1766,7 +1766,7 @@ msgid "" "account." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1014 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1034 #: htdocs/luci-static/resources/view/homeproxy/server.js:393 msgid "The maximum TLS version that is acceptable." msgstr "" @@ -1781,7 +1781,7 @@ msgstr "" msgid "The maximum time difference between the server and the client." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1006 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1026 #: htdocs/luci-static/resources/view/homeproxy/server.js:385 msgid "The minimum TLS version that is acceptable." msgstr "" @@ -1795,7 +1795,7 @@ msgstr "" msgid "The network interface to bind to." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1036 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1056 msgid "The path to the server certificate, in PEM format." msgstr "" @@ -1817,15 +1817,15 @@ msgid "" "enabled." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:795 +#: htdocs/luci-static/resources/view/homeproxy/node.js:815 #: htdocs/luci-static/resources/view/homeproxy/server.js:313 msgid "" "The timeout that after performing a keepalive check, the client will wait " "for activity. If no activity is detected, the connection will be closed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:999 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1019 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -1837,12 +1837,12 @@ msgid "" "code>." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:762 +#: htdocs/luci-static/resources/view/homeproxy/node.js:782 #: htdocs/luci-static/resources/view/homeproxy/server.js:254 msgid "Transport" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:477 +#: htdocs/luci-static/resources/view/homeproxy/node.js:497 #: htdocs/luci-static/resources/view/homeproxy/server.js:112 msgid "Trojan" msgstr "" @@ -1851,7 +1851,7 @@ msgstr "" msgid "Tun TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:467 +#: htdocs/luci-static/resources/view/homeproxy/node.js:487 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 msgid "Type" msgstr "" @@ -1862,16 +1862,16 @@ msgstr "" msgid "UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 #: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "UDP Fragment" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1129 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 msgid "UDP over TCP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:718 +#: htdocs/luci-static/resources/view/homeproxy/node.js:738 #: htdocs/luci-static/resources/view/homeproxy/server.js:234 msgid "UUID" msgstr "" @@ -1884,11 +1884,11 @@ msgstr "" msgid "Unknown error: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 msgid "Unsupported fingerprint!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1221 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1240 msgid "Update %s subscriptions" msgstr "" @@ -1896,23 +1896,23 @@ msgstr "" msgid "Update failed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1235 msgid "Update nodes from subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1160 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1179 msgid "Update subscriptions via proxy." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1153 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1172 msgid "Update time" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1178 msgid "Update via proxy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1062 #: htdocs/luci-static/resources/view/homeproxy/server.js:535 msgid "Upload certificate" msgstr "" @@ -1921,7 +1921,7 @@ msgstr "" msgid "Upload key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1045 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1065 #: htdocs/luci-static/resources/view/homeproxy/server.js:538 #: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "Upload..." @@ -1944,7 +1944,7 @@ msgstr "" msgid "Use DNS server from WAN + 114DNS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:987 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1007 #: htdocs/luci-static/resources/view/homeproxy/server.js:374 msgid "" "Used to verify the hostname on the returned certificates unless insecure is " @@ -1956,17 +1956,17 @@ msgstr "" msgid "User" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:492 +#: htdocs/luci-static/resources/view/homeproxy/node.js:512 #: htdocs/luci-static/resources/view/homeproxy/server.js:122 msgid "Username" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:480 +#: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:113 msgid "VLESS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:481 +#: htdocs/luci-static/resources/view/homeproxy/node.js:501 #: htdocs/luci-static/resources/view/homeproxy/server.js:114 msgid "VMess" msgstr "" @@ -1975,32 +1975,32 @@ msgstr "" msgid "WAN IP Policy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:768 +#: htdocs/luci-static/resources/view/homeproxy/node.js:788 #: htdocs/luci-static/resources/view/homeproxy/server.js:260 msgid "WebSocket" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1185 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 msgid "Whitelist mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:479 +#: htdocs/luci-static/resources/view/homeproxy/node.js:499 msgid "WireGuard" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:894 +#: htdocs/luci-static/resources/view/homeproxy/node.js:914 msgid "WireGuard peer public key." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:900 +#: htdocs/luci-static/resources/view/homeproxy/node.js:920 msgid "WireGuard pre-shared key." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:887 +#: htdocs/luci-static/resources/view/homeproxy/node.js:907 msgid "WireGuard requires base64-encoded private keys." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:532 +#: htdocs/luci-static/resources/view/homeproxy/node.js:552 msgid "Write Proxy Protocol in the connection header." msgstr "" @@ -2009,8 +2009,8 @@ msgstr "" msgid "Xinfeng Public DNS (114.114.114.114)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:872 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1205 +#: htdocs/luci-static/resources/view/homeproxy/node.js:892 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1224 msgid "Xudp (Xray-core)" msgstr "" @@ -2030,28 +2030,28 @@ msgstr "" msgid "ZeroSSL" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1067 #: htdocs/luci-static/resources/view/homeproxy/server.js:540 msgid "certificate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1007 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1015 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1027 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1035 #: htdocs/luci-static/resources/view/homeproxy/server.js:386 #: htdocs/luci-static/resources/view/homeproxy/server.js:394 msgid "default" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:765 +#: htdocs/luci-static/resources/view/homeproxy/node.js:785 #: htdocs/luci-static/resources/view/homeproxy/server.js:257 msgid "gRPC" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:806 +#: htdocs/luci-static/resources/view/homeproxy/node.js:826 msgid "gRPC permit without stream" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:801 +#: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:284 msgid "gRPC service name" msgstr "" @@ -2060,27 +2060,27 @@ msgstr "" msgid "gVisor" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1081 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1101 msgid "iOS" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:252 #: htdocs/luci-static/resources/homeproxy.js:270 #: htdocs/luci-static/resources/view/homeproxy/client.js:174 -#: htdocs/luci-static/resources/view/homeproxy/node.js:522 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/node.js:542 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 #: htdocs/luci-static/resources/view/homeproxy/server.js:147 msgid "non-empty value" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:621 -#: htdocs/luci-static/resources/view/homeproxy/node.js:870 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1203 +#: htdocs/luci-static/resources/view/homeproxy/node.js:641 +#: htdocs/luci-static/resources/view/homeproxy/node.js:890 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1222 msgid "none" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:871 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 +#: htdocs/luci-static/resources/view/homeproxy/node.js:891 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1223 msgid "packet addr (v2ray-core v5+)" msgstr "" @@ -2096,18 +2096,18 @@ msgstr "" msgid "sing-box server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1073 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1093 msgid "uTLS fingerprint" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 msgid "" "uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting " "resistance." msgstr "" #: htdocs/luci-static/resources/homeproxy.js:206 -#: htdocs/luci-static/resources/view/homeproxy/node.js:423 +#: htdocs/luci-static/resources/view/homeproxy/node.js:443 msgid "unique UCI identifier" msgstr "" @@ -2115,17 +2115,17 @@ msgstr "" msgid "unique value" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:699 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/node.js:719 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1156 msgid "v1" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:700 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1138 +#: htdocs/luci-static/resources/view/homeproxy/node.js:720 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1157 msgid "v2" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:701 +#: htdocs/luci-static/resources/view/homeproxy/node.js:721 msgid "v3" msgstr "" @@ -2134,8 +2134,8 @@ msgstr "" msgid "valid IP address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1174 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1193 msgid "valid URL" msgstr "" diff --git a/homeproxy/po/zh_Hans/homeproxy.po b/homeproxy/po/zh_Hans/homeproxy.po index e6f0f5996..471385a3d 100644 --- a/homeproxy/po/zh_Hans/homeproxy.po +++ b/homeproxy/po/zh_Hans/homeproxy.po @@ -12,11 +12,11 @@ msgstr "" msgid "%s log" msgstr "%s 日志" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1268 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1287 msgid "%s nodes removed" msgstr "移除了 %s 个节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1076 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1096 msgid "360" msgstr "360" @@ -24,7 +24,7 @@ msgstr "360" msgid "4 or 6. Not limited if empty." msgstr "4 或 6。留空不限制。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1043 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1063 #: htdocs/luci-static/resources/view/homeproxy/server.js:536 #: htdocs/luci-static/resources/view/homeproxy/server.js:554 msgid "Save your configuration before uploading files!" @@ -50,7 +50,7 @@ msgstr "新增 DNS 规则" msgid "Add a DNS server" msgstr "新增 DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/node.js:348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:368 msgid "Add a node" msgstr "新增节点" @@ -67,7 +67,7 @@ msgid "Add a server" msgstr "新增服务器" #: htdocs/luci-static/resources/view/homeproxy/client.js:603 -#: htdocs/luci-static/resources/view/homeproxy/node.js:484 +#: htdocs/luci-static/resources/view/homeproxy/node.js:504 msgid "Address" msgstr "地址" @@ -88,20 +88,20 @@ msgstr "阿里云公共 DNS(223.5.5.5)" msgid "All ports" msgstr "所有端口" -#: htdocs/luci-static/resources/view/homeproxy/node.js:996 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1194 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1016 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1213 msgid "Allow insecure" msgstr "允许不安全连接" -#: htdocs/luci-static/resources/view/homeproxy/node.js:997 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1017 msgid "Allow insecure connection at TLS client." msgstr "允许 TLS 客户端侧的不安全连接" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1195 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1214 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "从订阅获取节点时,默认允许不安全连接。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:857 +#: htdocs/luci-static/resources/view/homeproxy/node.js:877 #: htdocs/luci-static/resources/view/homeproxy/server.js:330 msgid "Allowed payload size is in the request." msgstr "请求中允许的载荷大小。" @@ -114,7 +114,7 @@ msgstr "已是最新版本" msgid "Already in updating." msgstr "已在更新中" -#: htdocs/luci-static/resources/view/homeproxy/node.js:730 +#: htdocs/luci-static/resources/view/homeproxy/node.js:750 #: htdocs/luci-static/resources/view/homeproxy/server.js:246 msgid "Alter ID" msgstr "额外 ID" @@ -127,24 +127,24 @@ msgstr "替代 HTTP 端口" msgid "Alternative TLS port" msgstr "替代 HTTPS 端口" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1250 msgid "An error occurred during updating subscriptions: %s" msgstr "更新订阅时发生错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1097 msgid "Android" msgstr "Android" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1049 msgid "Append self-signed certificate" msgstr "追加自签名证书" -#: htdocs/luci-static/resources/view/homeproxy/node.js:448 +#: htdocs/luci-static/resources/view/homeproxy/node.js:468 msgid "Applied" msgstr "已应用" -#: htdocs/luci-static/resources/view/homeproxy/node.js:441 -#: htdocs/luci-static/resources/view/homeproxy/node.js:451 +#: htdocs/luci-static/resources/view/homeproxy/node.js:461 +#: htdocs/luci-static/resources/view/homeproxy/node.js:471 msgid "Apply" msgstr "应用" @@ -152,16 +152,16 @@ msgstr "应用" msgid "Are you sure to allow insecure?" msgstr "确定要允许不安全连接吗?" -#: htdocs/luci-static/resources/view/homeproxy/node.js:754 +#: htdocs/luci-static/resources/view/homeproxy/node.js:774 msgid "Authenticated length" msgstr "认证长度" -#: htdocs/luci-static/resources/view/homeproxy/node.js:560 +#: htdocs/luci-static/resources/view/homeproxy/node.js:580 #: htdocs/luci-static/resources/view/homeproxy/server.js:187 msgid "Authentication payload" msgstr "认证载荷" -#: htdocs/luci-static/resources/view/homeproxy/node.js:551 +#: htdocs/luci-static/resources/view/homeproxy/node.js:571 #: htdocs/luci-static/resources/view/homeproxy/server.js:178 msgid "Authentication type" msgstr "认证类型" @@ -170,15 +170,15 @@ msgstr "认证类型" msgid "Auto configure firewall" msgstr "自动配置防火墙" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1167 msgid "Auto update" msgstr "自动更新" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1149 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1168 msgid "Auto update subscriptions, GeoIP and GeoSite." msgstr "自动更新订阅、GeoIP 和 GeoSite" -#: htdocs/luci-static/resources/view/homeproxy/node.js:553 +#: htdocs/luci-static/resources/view/homeproxy/node.js:573 #: htdocs/luci-static/resources/view/homeproxy/server.js:180 msgid "Base64" msgstr "Base64" @@ -197,7 +197,7 @@ msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "绑定出站流量至指定端口。留空自动检测。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1184 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1203 msgid "Blacklist mode" msgstr "黑名单模式" @@ -239,11 +239,11 @@ msgstr "CA 颁发机构" msgid "CNNIC Public DNS (210.2.4.8)" msgstr "CNNIC 公共 DNS(210.2.4.8)" -#: htdocs/luci-static/resources/view/homeproxy/node.js:361 +#: htdocs/luci-static/resources/view/homeproxy/node.js:381 msgid "Cancel" msgstr "取消" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1035 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1055 #: htdocs/luci-static/resources/view/homeproxy/server.js:525 msgid "Certificate path" msgstr "证书路径" @@ -268,11 +268,11 @@ msgstr "大陆 IPv6 库版本" msgid "China list version" msgstr "大陆域名列表版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1078 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 msgid "Chrome" msgstr "Chrome" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1021 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1041 #: htdocs/luci-static/resources/view/homeproxy/server.js:400 msgid "Cipher suites" msgstr "密码套件" @@ -360,7 +360,7 @@ msgstr "默认域名解析策略。" msgid "Default outbound" msgstr "默认出站" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1202 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1221 msgid "Default packet encoding" msgstr "默认包封装格式" @@ -373,7 +373,7 @@ msgstr "默认服务器名称" #: htdocs/luci-static/resources/view/homeproxy/client.js:530 #: htdocs/luci-static/resources/view/homeproxy/client.js:655 #: htdocs/luci-static/resources/view/homeproxy/client.js:793 -#: htdocs/luci-static/resources/view/homeproxy/node.js:468 +#: htdocs/luci-static/resources/view/homeproxy/node.js:488 msgid "Direct" msgstr "直连" @@ -400,10 +400,10 @@ msgstr "直连 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:185 #: htdocs/luci-static/resources/view/homeproxy/client.js:305 #: htdocs/luci-static/resources/view/homeproxy/client.js:853 -#: htdocs/luci-static/resources/view/homeproxy/node.js:533 -#: htdocs/luci-static/resources/view/homeproxy/node.js:552 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1075 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1183 +#: htdocs/luci-static/resources/view/homeproxy/node.js:553 +#: htdocs/luci-static/resources/view/homeproxy/node.js:572 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1202 #: htdocs/luci-static/resources/view/homeproxy/server.js:179 msgid "Disable" msgstr "禁用" @@ -416,7 +416,7 @@ msgstr "禁用 DNS 缓存" msgid "Disable HTTP challenge" msgstr "禁用 HTTP 验证" -#: htdocs/luci-static/resources/view/homeproxy/node.js:594 +#: htdocs/luci-static/resources/view/homeproxy/node.js:614 #: htdocs/luci-static/resources/view/homeproxy/server.js:218 msgid "Disable Path MTU discovery" msgstr "禁用路径 MTU 探测" @@ -437,11 +437,11 @@ msgstr "缓存永不过期" msgid "Disable dns cache" msgstr "禁用 DNS 缓存" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1057 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1077 msgid "Disable dynamic record sizing" msgstr "禁用动态记录大小" -#: htdocs/luci-static/resources/view/homeproxy/node.js:595 +#: htdocs/luci-static/resources/view/homeproxy/node.js:615 #: htdocs/luci-static/resources/view/homeproxy/server.js:219 msgid "" "Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 " @@ -479,7 +479,7 @@ msgstr "域名后缀" msgid "Domains" msgstr "域名" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1209 msgid "" "Drop/keep nodes that contain the specific keywords. " "正则表达式。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1201 msgid "Drop/keep specific nodes from subscriptions." msgstr "从订阅中 丢弃/保留 指定节点" @@ -504,7 +504,7 @@ msgstr "" "
外部帐户绑定“用于将 ACME 帐户与非 ACME 系统中的现有帐户相关联,例如 CA " "客户数据库。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1052 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1072 msgid "" "ECH (Encrypted Client Hello) is a TLS extension that allows a client to " "encrypt the first part of its ClientHello message." @@ -512,16 +512,16 @@ msgstr "" "ECH(Encrypted Client Hello)是一个 TLS 扩展,它允许客户端加密其 ClientHello " "信息的第一部分。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:856 +#: htdocs/luci-static/resources/view/homeproxy/node.js:876 #: htdocs/luci-static/resources/view/homeproxy/server.js:329 msgid "Early data" msgstr "前置数据" -#: htdocs/luci-static/resources/view/homeproxy/node.js:863 +#: htdocs/luci-static/resources/view/homeproxy/node.js:883 #: htdocs/luci-static/resources/view/homeproxy/server.js:336 msgid "Early data header name" msgstr "前置数据标头" @@ -530,11 +530,11 @@ msgstr "前置数据标头" msgid "Early data is sent in path instead of header by default." msgstr "前置数据默认发送在路径而不是标头中。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1079 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1099 msgid "Edge" msgstr "Edge" -#: htdocs/luci-static/resources/view/homeproxy/node.js:335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:355 msgid "Edit nodes" msgstr "修改节点" @@ -555,15 +555,15 @@ msgstr "启用" msgid "Enable ACME" msgstr "启用 ACME" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1051 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1071 msgid "Enable ECH" msgstr "启用 ECH" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1062 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1082 msgid "Enable PQ signature schemes" msgstr "启用 PQ 签名方案。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 #: htdocs/luci-static/resources/view/homeproxy/server.js:570 msgid "Enable UDP fragmentation." msgstr "启用 UDP 分片" @@ -576,14 +576,14 @@ msgstr "启用端点独立 NAT" msgid "Enable tcp fast open for listener." msgstr "为监听器启用 TCP 快速打开。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1149 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:602 -#: htdocs/luci-static/resources/view/homeproxy/node.js:634 -#: htdocs/luci-static/resources/view/homeproxy/node.js:736 +#: htdocs/luci-static/resources/view/homeproxy/node.js:622 +#: htdocs/luci-static/resources/view/homeproxy/node.js:654 +#: htdocs/luci-static/resources/view/homeproxy/node.js:756 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 msgid "Encrypt method" msgstr "加密方式" @@ -603,11 +603,11 @@ msgstr "加密方式" #: htdocs/luci-static/resources/view/homeproxy/client.js:232 #: htdocs/luci-static/resources/view/homeproxy/client.js:935 #: htdocs/luci-static/resources/view/homeproxy/client.js:964 -#: htdocs/luci-static/resources/view/homeproxy/node.js:423 -#: htdocs/luci-static/resources/view/homeproxy/node.js:522 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1174 +#: htdocs/luci-static/resources/view/homeproxy/node.js:443 +#: htdocs/luci-static/resources/view/homeproxy/node.js:542 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1193 #: htdocs/luci-static/resources/view/homeproxy/server.js:147 #: htdocs/luci-static/resources/view/homeproxy/server.js:433 #: htdocs/luci-static/resources/view/homeproxy/server.js:435 @@ -630,24 +630,24 @@ msgstr "外部账户密钥标识符" msgid "Failed to upload %s, error: %s." msgstr "上传 %s 失败,错误:%s。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1189 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1208 msgid "Filter keywords" msgstr "过滤关键词" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1200 msgid "Filter nodes" msgstr "过滤节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1080 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 msgid "Firefox" msgstr "Firefox" -#: htdocs/luci-static/resources/view/homeproxy/node.js:724 +#: htdocs/luci-static/resources/view/homeproxy/node.js:744 #: htdocs/luci-static/resources/view/homeproxy/server.js:240 msgid "Flow" msgstr "流控" -#: htdocs/luci-static/resources/view/homeproxy/node.js:825 +#: htdocs/luci-static/resources/view/homeproxy/node.js:845 msgid "GET" msgstr "GET" @@ -692,7 +692,7 @@ msgstr "Geosite" msgid "Global" msgstr "全局" -#: htdocs/luci-static/resources/view/homeproxy/node.js:747 +#: htdocs/luci-static/resources/view/homeproxy/node.js:767 msgid "Global padding" msgstr "全局填充" @@ -722,8 +722,8 @@ msgstr "授予 homeproxy 访问 UCI 配置的权限" #: htdocs/luci-static/resources/view/homeproxy/client.js:448 #: htdocs/luci-static/resources/view/homeproxy/client.js:714 -#: htdocs/luci-static/resources/view/homeproxy/node.js:469 -#: htdocs/luci-static/resources/view/homeproxy/node.js:766 +#: htdocs/luci-static/resources/view/homeproxy/node.js:489 +#: htdocs/luci-static/resources/view/homeproxy/node.js:786 #: htdocs/luci-static/resources/view/homeproxy/server.js:105 #: htdocs/luci-static/resources/view/homeproxy/server.js:258 msgid "HTTP" @@ -751,14 +751,14 @@ msgstr "HomeProxy" msgid "HomeProxy Server" msgstr "HomeProxy 服务端" -#: htdocs/luci-static/resources/view/homeproxy/node.js:815 -#: htdocs/luci-static/resources/view/homeproxy/node.js:848 +#: htdocs/luci-static/resources/view/homeproxy/node.js:835 +#: htdocs/luci-static/resources/view/homeproxy/node.js:868 #: htdocs/luci-static/resources/view/homeproxy/server.js:291 #: htdocs/luci-static/resources/view/homeproxy/server.js:321 msgid "Host" msgstr "主机名" -#: htdocs/luci-static/resources/view/homeproxy/node.js:471 +#: htdocs/luci-static/resources/view/homeproxy/node.js:491 #: htdocs/luci-static/resources/view/homeproxy/server.js:107 msgid "Hysteria" msgstr "Hysteria" @@ -792,12 +792,12 @@ msgstr "仅 IPv6" msgid "IPv6 support" msgstr "IPv6 支持" -#: htdocs/luci-static/resources/view/homeproxy/node.js:830 +#: htdocs/luci-static/resources/view/homeproxy/node.js:850 #: htdocs/luci-static/resources/view/homeproxy/server.js:304 msgid "Idle timeout" msgstr "空闲超时" -#: htdocs/luci-static/resources/view/homeproxy/node.js:807 +#: htdocs/luci-static/resources/view/homeproxy/node.js:827 msgid "" "If enabled, the client transport sends keepalive pings even with no active " "connections." @@ -815,7 +815,7 @@ msgid "" msgstr "" "如果设置,服务器域名将在连接前被解析为 IP。
默认使用 dns.strategy。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:792 +#: htdocs/luci-static/resources/view/homeproxy/node.js:812 #: htdocs/luci-static/resources/view/homeproxy/server.js:276 msgid "" "If the transport doesn't see any activity after a duration of this time, it " @@ -824,19 +824,19 @@ msgstr "" "如果传输在此时间段后没有看到任何活动,它会向客户端发送 ping 请求以检查连接是" "否仍然活动。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1030 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1050 msgid "" "If you have the root certificate, use this option instead of allowing " "insecure." msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:406 +#: htdocs/luci-static/resources/view/homeproxy/node.js:426 msgid "Import" msgstr "导入" -#: htdocs/luci-static/resources/view/homeproxy/node.js:354 -#: htdocs/luci-static/resources/view/homeproxy/node.js:432 -#: htdocs/luci-static/resources/view/homeproxy/node.js:434 +#: htdocs/luci-static/resources/view/homeproxy/node.js:374 +#: htdocs/luci-static/resources/view/homeproxy/node.js:452 +#: htdocs/luci-static/resources/view/homeproxy/node.js:454 msgid "Import share links" msgstr "导入分享链接" @@ -870,12 +870,12 @@ msgstr "LWIP" #: htdocs/luci-static/resources/view/homeproxy/client.js:409 #: htdocs/luci-static/resources/view/homeproxy/client.js:593 #: htdocs/luci-static/resources/view/homeproxy/client.js:682 -#: htdocs/luci-static/resources/view/homeproxy/node.js:462 +#: htdocs/luci-static/resources/view/homeproxy/node.js:482 #: htdocs/luci-static/resources/view/homeproxy/server.js:93 msgid "Label" msgstr "标签" -#: htdocs/luci-static/resources/view/homeproxy/node.js:731 +#: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/server.js:247 msgid "" "Legacy protocol support (VMess MD5 Authentication) is provided for " @@ -892,12 +892,12 @@ msgstr "有时性能更好。" msgid "Let's Encrypt" msgstr "Let's Encrypt" -#: htdocs/luci-static/resources/view/homeproxy/node.js:880 +#: htdocs/luci-static/resources/view/homeproxy/node.js:900 msgid "" "List of IP (v4 or v6) addresses prefixes to be assigned to the interface." msgstr "分配给接口的 IP(v4 或 v6)地址前缀列表。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:992 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1012 #: htdocs/luci-static/resources/view/homeproxy/server.js:380 msgid "List of supported application level protocols, in order of preference." msgstr "支持的应用层协议协商列表,按顺序排列。" @@ -910,7 +910,7 @@ msgstr "监听接口" msgid "Loading" msgstr "加载中" -#: htdocs/luci-static/resources/view/homeproxy/node.js:879 +#: htdocs/luci-static/resources/view/homeproxy/node.js:899 msgid "Local address" msgstr "本地地址" @@ -922,7 +922,7 @@ msgstr "日志文件不存在。" msgid "Log is empty." msgstr "日志为空。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:911 +#: htdocs/luci-static/resources/view/homeproxy/node.js:931 msgid "MTU" msgstr "MTU" @@ -1017,12 +1017,12 @@ msgstr "匹配源端口。" msgid "Match user name." msgstr "匹配用户名。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:570 +#: htdocs/luci-static/resources/view/homeproxy/node.js:590 #: htdocs/luci-static/resources/view/homeproxy/server.js:166 msgid "Max download speed" msgstr "最大下载速度" -#: htdocs/luci-static/resources/view/homeproxy/node.js:571 +#: htdocs/luci-static/resources/view/homeproxy/node.js:591 #: htdocs/luci-static/resources/view/homeproxy/server.js:167 msgid "Max download speed in Mbps." msgstr "最大下载速度(Mbps)" @@ -1031,26 +1031,26 @@ msgstr "最大下载速度(Mbps)" msgid "Max time difference" msgstr "最大时间差" -#: htdocs/luci-static/resources/view/homeproxy/node.js:576 +#: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/server.js:172 msgid "Max upload speed" msgstr "最大上传速度" -#: htdocs/luci-static/resources/view/homeproxy/node.js:577 +#: htdocs/luci-static/resources/view/homeproxy/node.js:597 #: htdocs/luci-static/resources/view/homeproxy/server.js:173 msgid "Max upload speed in Mbps." msgstr "最大上传速度(Mbps)" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1033 #: htdocs/luci-static/resources/view/homeproxy/server.js:392 msgid "Maximum TLS version" msgstr "最大 TLS 版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:938 +#: htdocs/luci-static/resources/view/homeproxy/node.js:958 msgid "Maximum connections" msgstr "最大连接数" -#: htdocs/luci-static/resources/view/homeproxy/node.js:954 +#: htdocs/luci-static/resources/view/homeproxy/node.js:974 msgid "" "Maximum multiplexed streams in a connection before opening a new connection." "
Conflict with Maximum connections and Minimum " @@ -1059,26 +1059,26 @@ msgstr "" "在打开新连接之前,连接中的最大多路复用流数量。与 Maximum connectionsMinimum streams 冲突。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:953 +#: htdocs/luci-static/resources/view/homeproxy/node.js:973 msgid "Maximum streams" msgstr "最大流数量" -#: htdocs/luci-static/resources/view/homeproxy/node.js:824 +#: htdocs/luci-static/resources/view/homeproxy/node.js:844 #: htdocs/luci-static/resources/view/homeproxy/server.js:300 msgid "Method" msgstr "方式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1025 #: htdocs/luci-static/resources/view/homeproxy/server.js:384 msgid "Minimum TLS version" msgstr "最低 TLS 版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:946 +#: htdocs/luci-static/resources/view/homeproxy/node.js:966 msgid "" "Minimum multiplexed streams in a connection before opening a new connection." msgstr "在打开新连接之前,连接中的最小多路复用流数量。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:945 +#: htdocs/luci-static/resources/view/homeproxy/node.js:965 msgid "Minimum streams" msgstr "最小流数量" @@ -1087,11 +1087,11 @@ msgstr "最小流数量" msgid "Mode" msgstr "模式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:920 +#: htdocs/luci-static/resources/view/homeproxy/node.js:940 msgid "Multiplex" msgstr "多路复用" -#: htdocs/luci-static/resources/view/homeproxy/node.js:928 +#: htdocs/luci-static/resources/view/homeproxy/node.js:948 msgid "Multiplex protocol." msgstr "多路复用协议" @@ -1100,7 +1100,7 @@ msgstr "多路复用协议" msgid "NOT RUNNING" msgstr "未运行" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1208 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1227 msgid "NOTE: Save current settings before updating subscriptions." msgstr "注意:更新订阅前先保存当前配置。" @@ -1114,32 +1114,32 @@ msgstr "NaïveProxy" msgid "Network" msgstr "网络" -#: htdocs/luci-static/resources/view/homeproxy/node.js:763 -#: htdocs/luci-static/resources/view/homeproxy/node.js:779 +#: htdocs/luci-static/resources/view/homeproxy/node.js:783 +#: htdocs/luci-static/resources/view/homeproxy/node.js:799 #: htdocs/luci-static/resources/view/homeproxy/server.js:255 #: htdocs/luci-static/resources/view/homeproxy/server.js:268 msgid "No TCP transport, plain HTTP is merged into the HTTP transport." msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:777 +#: htdocs/luci-static/resources/view/homeproxy/node.js:797 #: htdocs/luci-static/resources/view/homeproxy/server.js:266 msgid "No additional encryption support: It's basically duplicate encryption." msgstr "无额外加密支持:它基本上是重复加密。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1224 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1243 msgid "No subscription available" msgstr "无可用订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1249 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1268 msgid "No subscription node" msgstr "无订阅节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:393 +#: htdocs/luci-static/resources/view/homeproxy/node.js:413 msgid "No valid share link found." msgstr "找不到有效分享链接。" #: htdocs/luci-static/resources/view/homeproxy/client.js:343 -#: htdocs/luci-static/resources/view/homeproxy/node.js:348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:368 msgid "Node" msgstr "节点" @@ -1147,27 +1147,27 @@ msgstr "节点" msgid "Node Settings" msgstr "节点设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:340 +#: htdocs/luci-static/resources/view/homeproxy/node.js:360 msgid "Nodes" msgstr "节点" #: htdocs/luci-static/resources/view/homeproxy/client.js:613 -#: htdocs/luci-static/resources/view/homeproxy/node.js:725 -#: htdocs/luci-static/resources/view/homeproxy/node.js:764 +#: htdocs/luci-static/resources/view/homeproxy/node.js:745 +#: htdocs/luci-static/resources/view/homeproxy/node.js:784 #: htdocs/luci-static/resources/view/homeproxy/server.js:241 #: htdocs/luci-static/resources/view/homeproxy/server.js:256 msgid "None" msgstr "无" -#: htdocs/luci-static/resources/view/homeproxy/node.js:682 +#: htdocs/luci-static/resources/view/homeproxy/node.js:702 msgid "Obfs" msgstr "混淆协议" -#: htdocs/luci-static/resources/view/homeproxy/node.js:692 +#: htdocs/luci-static/resources/view/homeproxy/node.js:712 msgid "Obfs param" msgstr "混淆参数" -#: htdocs/luci-static/resources/view/homeproxy/node.js:566 +#: htdocs/luci-static/resources/view/homeproxy/node.js:586 #: htdocs/luci-static/resources/view/homeproxy/server.js:193 msgid "Obfuscate password" msgstr "混淆密码" @@ -1201,11 +1201,11 @@ msgstr "覆盖目标地址" msgid "Override the connection destination address with the sniffed domain." msgstr "使用嗅探到的域名覆盖连接目标。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:826 +#: htdocs/luci-static/resources/view/homeproxy/node.js:846 msgid "PUT" msgstr "PUT" -#: htdocs/luci-static/resources/view/homeproxy/node.js:869 +#: htdocs/luci-static/resources/view/homeproxy/node.js:889 msgid "Packet encoding" msgstr "数据包编码" @@ -1213,19 +1213,19 @@ msgstr "数据包编码" msgid "Parse Proxy Protocol in the connection header." msgstr "解析连接标头中的代理协议。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:497 +#: htdocs/luci-static/resources/view/homeproxy/node.js:517 #: htdocs/luci-static/resources/view/homeproxy/server.js:128 msgid "Password" msgstr "密码" -#: htdocs/luci-static/resources/view/homeproxy/node.js:820 -#: htdocs/luci-static/resources/view/homeproxy/node.js:852 +#: htdocs/luci-static/resources/view/homeproxy/node.js:840 +#: htdocs/luci-static/resources/view/homeproxy/node.js:872 #: htdocs/luci-static/resources/view/homeproxy/server.js:296 #: htdocs/luci-static/resources/view/homeproxy/server.js:325 msgid "Path" msgstr "路径" -#: htdocs/luci-static/resources/view/homeproxy/node.js:893 +#: htdocs/luci-static/resources/view/homeproxy/node.js:913 msgid "Peer pubkic key" msgstr "对端公钥" @@ -1235,22 +1235,22 @@ msgid "" "it is not needed." msgstr "性能可能会略有下降,建议仅在需要时开启。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:838 +#: htdocs/luci-static/resources/view/homeproxy/node.js:858 #: htdocs/luci-static/resources/view/homeproxy/server.js:312 msgid "Ping timeout" msgstr "Ping 超时" -#: htdocs/luci-static/resources/view/homeproxy/node.js:620 +#: htdocs/luci-static/resources/view/homeproxy/node.js:640 msgid "Plugin" msgstr "插件" -#: htdocs/luci-static/resources/view/homeproxy/node.js:627 +#: htdocs/luci-static/resources/view/homeproxy/node.js:647 msgid "Plugin opts" msgstr "插件参数" #: htdocs/luci-static/resources/view/homeproxy/client.js:502 #: htdocs/luci-static/resources/view/homeproxy/client.js:765 -#: htdocs/luci-static/resources/view/homeproxy/node.js:488 +#: htdocs/luci-static/resources/view/homeproxy/node.js:508 #: htdocs/luci-static/resources/view/homeproxy/server.js:117 msgid "Port" msgstr "端口" @@ -1264,7 +1264,7 @@ msgstr "端口 %s 已存在!" msgid "Port range" msgstr "端口范围" -#: htdocs/luci-static/resources/view/homeproxy/node.js:899 +#: htdocs/luci-static/resources/view/homeproxy/node.js:919 msgid "Pre-shared key" msgstr "预共享密钥" @@ -1276,7 +1276,7 @@ msgstr "优先 IPv4" msgid "Prefer IPv6" msgstr "优先 IPv6" -#: htdocs/luci-static/resources/view/homeproxy/node.js:886 +#: htdocs/luci-static/resources/view/homeproxy/node.js:906 msgid "Private key" msgstr "私钥" @@ -1292,22 +1292,22 @@ msgstr "进程路径" #: htdocs/luci-static/resources/view/homeproxy/client.js:446 #: htdocs/luci-static/resources/view/homeproxy/client.js:712 -#: htdocs/luci-static/resources/view/homeproxy/node.js:540 -#: htdocs/luci-static/resources/view/homeproxy/node.js:662 -#: htdocs/luci-static/resources/view/homeproxy/node.js:927 +#: htdocs/luci-static/resources/view/homeproxy/node.js:560 +#: htdocs/luci-static/resources/view/homeproxy/node.js:682 +#: htdocs/luci-static/resources/view/homeproxy/node.js:947 #: htdocs/luci-static/resources/view/homeproxy/server.js:155 msgid "Protocol" msgstr "协议" -#: htdocs/luci-static/resources/view/homeproxy/node.js:678 +#: htdocs/luci-static/resources/view/homeproxy/node.js:698 msgid "Protocol param" msgstr "协议参数" -#: htdocs/luci-static/resources/view/homeproxy/node.js:755 +#: htdocs/luci-static/resources/view/homeproxy/node.js:775 msgid "Protocol parameter. Enable length block encryption." msgstr "协议参数。启用长度块加密。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:748 +#: htdocs/luci-static/resources/view/homeproxy/node.js:768 msgid "" "Protocol parameter. Will waste traffic randomly if enabled (enabled by " "default in v2ray and cannot be disabled)." @@ -1347,23 +1347,23 @@ msgstr "仅允许列表内" msgid "Proxy mode" msgstr "代理模式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:531 +#: htdocs/luci-static/resources/view/homeproxy/node.js:551 #: htdocs/luci-static/resources/view/homeproxy/server.js:585 msgid "Proxy protocol" msgstr "代理协议" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1102 msgid "QQ" msgstr "QQ" #: htdocs/luci-static/resources/view/homeproxy/client.js:450 #: htdocs/luci-static/resources/view/homeproxy/client.js:716 -#: htdocs/luci-static/resources/view/homeproxy/node.js:767 +#: htdocs/luci-static/resources/view/homeproxy/node.js:787 #: htdocs/luci-static/resources/view/homeproxy/server.js:259 msgid "QUIC" msgstr "QUIC" -#: htdocs/luci-static/resources/view/homeproxy/node.js:588 +#: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/server.js:204 msgid "QUIC connection receive window" msgstr "QUIC 连接窗口" @@ -1372,12 +1372,12 @@ msgstr "QUIC 连接窗口" msgid "QUIC maximum concurrent bidirectional streams" msgstr "QUIC 最大双向并发流" -#: htdocs/luci-static/resources/view/homeproxy/node.js:582 +#: htdocs/luci-static/resources/view/homeproxy/node.js:602 #: htdocs/luci-static/resources/view/homeproxy/server.js:197 msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1102 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1122 #: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "REALITY" msgstr "REALITY" @@ -1386,11 +1386,11 @@ msgstr "REALITY" msgid "REALITY private key" msgstr "REALITY 私钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 msgid "REALITY public key" msgstr "REALITY 公钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1132 #: htdocs/luci-static/resources/view/homeproxy/server.js:502 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -1400,11 +1400,11 @@ msgstr "REALITY 标识符" msgid "RUNNING" msgstr "运行中" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 msgid "Random" msgstr "随机" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1084 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1104 msgid "Randomized" msgstr "随机生成" @@ -1432,15 +1432,15 @@ msgstr "Redirect TCP + Tun UDP" msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1265 msgid "Remove %s nodes" msgstr "移除 %s 个节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1236 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1255 msgid "Remove all nodes from subscriptions" msgstr "移除所有订阅节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:906 +#: htdocs/luci-static/resources/view/homeproxy/node.js:926 msgid "Reserved field bytes" msgstr "保留字段字节" @@ -1485,11 +1485,11 @@ msgstr "路由规则" msgid "STUN" msgstr "STUN" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1155 msgid "SUoT version" msgstr "SUoT 版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1085 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 msgid "Safari" msgstr "Safari" @@ -1497,11 +1497,11 @@ msgstr "Safari" msgid "Same as main node" msgstr "保持与主节点一致" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1210 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1229 msgid "Save current settings" msgstr "保存当前设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1207 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1226 msgid "Save subscriptions settings" msgstr "保存订阅设置" @@ -1528,20 +1528,20 @@ msgstr "服务器设置" msgid "Service Status" msgstr "服务状态" -#: htdocs/luci-static/resources/view/homeproxy/node.js:475 +#: htdocs/luci-static/resources/view/homeproxy/node.js:495 msgid "ShadowTLS" msgstr "ShadowTLS" -#: htdocs/luci-static/resources/view/homeproxy/node.js:698 +#: htdocs/luci-static/resources/view/homeproxy/node.js:718 msgid "ShadowTLS version" msgstr "ShadowTLS 版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:472 +#: htdocs/luci-static/resources/view/homeproxy/node.js:492 #: htdocs/luci-static/resources/view/homeproxy/server.js:110 msgid "Shadowsocks" msgstr "Shadowsocks" -#: htdocs/luci-static/resources/view/homeproxy/node.js:474 +#: htdocs/luci-static/resources/view/homeproxy/node.js:494 msgid "ShadowsocksR" msgstr "ShadowsocksR" @@ -1554,24 +1554,24 @@ msgstr "" "嗅探协议,具体参见 Sniff。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:476 +#: htdocs/luci-static/resources/view/homeproxy/node.js:496 #: htdocs/luci-static/resources/view/homeproxy/server.js:111 msgid "Socks" msgstr "Socks" -#: htdocs/luci-static/resources/view/homeproxy/node.js:708 +#: htdocs/luci-static/resources/view/homeproxy/node.js:728 msgid "Socks version" msgstr "Socks 版本" -#: htdocs/luci-static/resources/view/homeproxy/node.js:709 +#: htdocs/luci-static/resources/view/homeproxy/node.js:729 msgid "Socks4" msgstr "Socks4" -#: htdocs/luci-static/resources/view/homeproxy/node.js:710 +#: htdocs/luci-static/resources/view/homeproxy/node.js:730 msgid "Socks4A" msgstr "Socks4A" -#: htdocs/luci-static/resources/view/homeproxy/node.js:711 +#: htdocs/luci-static/resources/view/homeproxy/node.js:731 msgid "Socks5" msgstr "Socks5" @@ -1595,8 +1595,8 @@ msgstr "源端口" msgid "Source port range" msgstr "源端口范围" -#: htdocs/luci-static/resources/view/homeproxy/node.js:784 -#: htdocs/luci-static/resources/view/homeproxy/node.js:831 +#: htdocs/luci-static/resources/view/homeproxy/node.js:804 +#: htdocs/luci-static/resources/view/homeproxy/node.js:851 msgid "" "Specifies the period of time after which a health check will be performed " "using a ping frame if no frames have been received on the connection.
If a response to the PING frame is not " @@ -1632,20 +1632,20 @@ msgid "" "commas." msgstr "指定需要被代理的目标端口。多个端口必须用逗号隔开。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:554 +#: htdocs/luci-static/resources/view/homeproxy/node.js:574 #: htdocs/luci-static/resources/view/homeproxy/server.js:181 msgid "String" msgstr "字符串" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1164 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1183 msgid "Subscription URL-s" msgstr "订阅地址" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1146 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 msgid "Subscriptions" msgstr "订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:395 +#: htdocs/luci-static/resources/view/homeproxy/node.js:415 msgid "Successfully imported %s nodes of total %s." msgstr "成功导入 %s 个节点,共 %s 个。" @@ -1653,8 +1653,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。" msgid "Successfully updated." msgstr "更新成功。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 +#: htdocs/luci-static/resources/view/homeproxy/node.js:375 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1184 msgid "" "Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -1672,7 +1672,7 @@ msgstr "系统" msgid "TCP" msgstr "TCP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1120 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1139 #: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "TCP fast open" msgstr "TCP 快速打开" @@ -1687,22 +1687,22 @@ msgstr "TCP/IP 协议栈。" #: htdocs/luci-static/resources/view/homeproxy/client.js:449 #: htdocs/luci-static/resources/view/homeproxy/client.js:715 -#: htdocs/luci-static/resources/view/homeproxy/node.js:962 +#: htdocs/luci-static/resources/view/homeproxy/node.js:982 #: htdocs/luci-static/resources/view/homeproxy/server.js:348 msgid "TLS" msgstr "TLS" -#: htdocs/luci-static/resources/view/homeproxy/node.js:991 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1011 #: htdocs/luci-static/resources/view/homeproxy/server.js:379 msgid "TLS ALPN" msgstr "TLS ALPN" -#: htdocs/luci-static/resources/view/homeproxy/node.js:986 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1006 #: htdocs/luci-static/resources/view/homeproxy/server.js:373 msgid "TLS SNI" msgstr "TLS SNI" -#: htdocs/luci-static/resources/view/homeproxy/node.js:775 +#: htdocs/luci-static/resources/view/homeproxy/node.js:795 #: htdocs/luci-static/resources/view/homeproxy/server.js:264 msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used." msgstr "不强制执行 TLS。如未配置 TLS,将使用纯 HTTP 1.1。" @@ -1740,12 +1740,12 @@ msgstr "使用的 ACME CA 颁发机构。" msgid "The DNS strategy for resolving the domain name in the address." msgstr "解析域名的默认策略。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:589 +#: htdocs/luci-static/resources/view/homeproxy/node.js:609 #: htdocs/luci-static/resources/view/homeproxy/server.js:205 msgid "The QUIC connection-level flow control window for receiving data." msgstr "用于接收数据的 QUIC 连接级流控制窗口。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:583 +#: htdocs/luci-static/resources/view/homeproxy/node.js:603 #: htdocs/luci-static/resources/view/homeproxy/server.js:198 msgid "The QUIC stream-level flow control window for receiving data." msgstr "用于接收数据的 QUIC 流级流控制窗口。" @@ -1797,7 +1797,7 @@ msgid "" "strategy will be used if empty." msgstr "用于解析本 DNS 服务器的域名的策略。默认使用 dns.strategy。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1022 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1042 #: htdocs/luci-static/resources/view/homeproxy/server.js:401 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " @@ -1810,7 +1810,7 @@ msgid "" "account." msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1014 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1034 #: htdocs/luci-static/resources/view/homeproxy/server.js:393 msgid "The maximum TLS version that is acceptable." msgstr "可接受的最高 TLS 版本。" @@ -1825,7 +1825,7 @@ msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。" msgid "The maximum time difference between the server and the client." msgstr "服务器和客户端之间的最大时间差。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1006 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1026 #: htdocs/luci-static/resources/view/homeproxy/server.js:385 msgid "The minimum TLS version that is acceptable." msgstr "可接受的最低 TLS 版本。" @@ -1839,7 +1839,7 @@ msgstr "为 ARM64/AMD64 设计的现代 ImmortalWrt 代理平台。" msgid "The network interface to bind to." msgstr "绑定到的网络接口。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1036 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1056 msgid "The path to the server certificate, in PEM format." msgstr "服务端证书路径,需要 PEM 格式。" @@ -1861,7 +1861,7 @@ msgid "" "enabled." msgstr "上游出站的标签。
启用时,其他拨号字段将被忽略。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:795 +#: htdocs/luci-static/resources/view/homeproxy/node.js:815 #: htdocs/luci-static/resources/view/homeproxy/server.js:313 msgid "" "The timeout that after performing a keepalive check, the client will wait " @@ -1870,8 +1870,8 @@ msgstr "" "经过一段时间之后,客户端将执行 keepalive 检查并等待活动。如果没有检测到任何活" "动,则会关闭连接。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:999 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1019 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -1885,12 +1885,12 @@ msgid "" msgstr "" "要与 Xray-core 兼容,请将其设置为 Sec-WebSocket-Protocol。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:762 +#: htdocs/luci-static/resources/view/homeproxy/node.js:782 #: htdocs/luci-static/resources/view/homeproxy/server.js:254 msgid "Transport" msgstr "传输层" -#: htdocs/luci-static/resources/view/homeproxy/node.js:477 +#: htdocs/luci-static/resources/view/homeproxy/node.js:497 #: htdocs/luci-static/resources/view/homeproxy/server.js:112 msgid "Trojan" msgstr "Trojan" @@ -1899,7 +1899,7 @@ msgstr "Trojan" msgid "Tun TCP/UDP" msgstr "Tun TCP/UDP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:467 +#: htdocs/luci-static/resources/view/homeproxy/node.js:487 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 msgid "Type" msgstr "类型" @@ -1910,16 +1910,16 @@ msgstr "类型" msgid "UDP" msgstr "UDP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 #: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "UDP Fragment" msgstr "UDP 分片" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1129 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 msgid "UDP over TCP" msgstr "UDP over TCP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:718 +#: htdocs/luci-static/resources/view/homeproxy/node.js:738 #: htdocs/luci-static/resources/view/homeproxy/server.js:234 msgid "UUID" msgstr "UUID" @@ -1932,11 +1932,11 @@ msgstr "未知错误。" msgid "Unknown error: %s" msgstr "未知错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 msgid "Unsupported fingerprint!" msgstr "不支持的指纹!" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1221 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1240 msgid "Update %s subscriptions" msgstr "更新 %s 个订阅" @@ -1944,23 +1944,23 @@ msgstr "更新 %s 个订阅" msgid "Update failed." msgstr "上传失败。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1235 msgid "Update nodes from subscriptions" msgstr "从订阅更新节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1160 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1179 msgid "Update subscriptions via proxy." msgstr "使用代理更新订阅。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1153 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1172 msgid "Update time" msgstr "更新时间" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1178 msgid "Update via proxy" msgstr "使用代理更新" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1062 #: htdocs/luci-static/resources/view/homeproxy/server.js:535 msgid "Upload certificate" msgstr "上传证书" @@ -1969,7 +1969,7 @@ msgstr "上传证书" msgid "Upload key" msgstr "上传密钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1045 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1065 #: htdocs/luci-static/resources/view/homeproxy/server.js:538 #: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "Upload..." @@ -1992,7 +1992,7 @@ msgstr "使用 WAN 下发的 DNS" msgid "Use DNS server from WAN + 114DNS" msgstr "使用 WAN DNS + 114DNS" -#: htdocs/luci-static/resources/view/homeproxy/node.js:987 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1007 #: htdocs/luci-static/resources/view/homeproxy/server.js:374 msgid "" "Used to verify the hostname on the returned certificates unless insecure is " @@ -2004,17 +2004,17 @@ msgstr "用于验证返回证书上的主机名。如允许不安全连接,此 msgid "User" msgstr "用户" -#: htdocs/luci-static/resources/view/homeproxy/node.js:492 +#: htdocs/luci-static/resources/view/homeproxy/node.js:512 #: htdocs/luci-static/resources/view/homeproxy/server.js:122 msgid "Username" msgstr "用户名" -#: htdocs/luci-static/resources/view/homeproxy/node.js:480 +#: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:113 msgid "VLESS" msgstr "VLESS" -#: htdocs/luci-static/resources/view/homeproxy/node.js:481 +#: htdocs/luci-static/resources/view/homeproxy/node.js:501 #: htdocs/luci-static/resources/view/homeproxy/server.js:114 msgid "VMess" msgstr "VMess" @@ -2023,32 +2023,32 @@ msgstr "VMess" msgid "WAN IP Policy" msgstr "WAN IP 策略" -#: htdocs/luci-static/resources/view/homeproxy/node.js:768 +#: htdocs/luci-static/resources/view/homeproxy/node.js:788 #: htdocs/luci-static/resources/view/homeproxy/server.js:260 msgid "WebSocket" msgstr "WebSocket" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1185 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 msgid "Whitelist mode" msgstr "白名单模式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:479 +#: htdocs/luci-static/resources/view/homeproxy/node.js:499 msgid "WireGuard" msgstr "WireGuard" -#: htdocs/luci-static/resources/view/homeproxy/node.js:894 +#: htdocs/luci-static/resources/view/homeproxy/node.js:914 msgid "WireGuard peer public key." msgstr "WireGuard 对端公钥。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:900 +#: htdocs/luci-static/resources/view/homeproxy/node.js:920 msgid "WireGuard pre-shared key." msgstr "WireGuard 预共享密钥。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:887 +#: htdocs/luci-static/resources/view/homeproxy/node.js:907 msgid "WireGuard requires base64-encoded private keys." msgstr "WireGuard 要求 base64 编码的私钥。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:532 +#: htdocs/luci-static/resources/view/homeproxy/node.js:552 msgid "Write Proxy Protocol in the connection header." msgstr "在连接标头中写入代理协议。" @@ -2057,8 +2057,8 @@ msgstr "在连接标头中写入代理协议。" msgid "Xinfeng Public DNS (114.114.114.114)" msgstr "信风公共 DNS(114.114.114.114)" -#: htdocs/luci-static/resources/view/homeproxy/node.js:872 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1205 +#: htdocs/luci-static/resources/view/homeproxy/node.js:892 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1224 msgid "Xudp (Xray-core)" msgstr "Xudp (Xray-core)" @@ -2078,28 +2078,28 @@ msgstr "您的 %s 已成功上传。大小:%sB。" msgid "ZeroSSL" msgstr "ZeroSSL" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1067 #: htdocs/luci-static/resources/view/homeproxy/server.js:540 msgid "certificate" msgstr "证书" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1007 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1015 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1027 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1035 #: htdocs/luci-static/resources/view/homeproxy/server.js:386 #: htdocs/luci-static/resources/view/homeproxy/server.js:394 msgid "default" msgstr "默认" -#: htdocs/luci-static/resources/view/homeproxy/node.js:765 +#: htdocs/luci-static/resources/view/homeproxy/node.js:785 #: htdocs/luci-static/resources/view/homeproxy/server.js:257 msgid "gRPC" msgstr "gRPC" -#: htdocs/luci-static/resources/view/homeproxy/node.js:806 +#: htdocs/luci-static/resources/view/homeproxy/node.js:826 msgid "gRPC permit without stream" msgstr "gRPC 允许无活动连接" -#: htdocs/luci-static/resources/view/homeproxy/node.js:801 +#: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:284 msgid "gRPC service name" msgstr "gRPC 服务名称" @@ -2108,27 +2108,27 @@ msgstr "gRPC 服务名称" msgid "gVisor" msgstr "gVisor" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1081 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1101 msgid "iOS" msgstr "iOS" #: htdocs/luci-static/resources/homeproxy.js:252 #: htdocs/luci-static/resources/homeproxy.js:270 #: htdocs/luci-static/resources/view/homeproxy/client.js:174 -#: htdocs/luci-static/resources/view/homeproxy/node.js:522 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/node.js:542 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 #: htdocs/luci-static/resources/view/homeproxy/server.js:147 msgid "non-empty value" msgstr "非空值" -#: htdocs/luci-static/resources/view/homeproxy/node.js:621 -#: htdocs/luci-static/resources/view/homeproxy/node.js:870 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1203 +#: htdocs/luci-static/resources/view/homeproxy/node.js:641 +#: htdocs/luci-static/resources/view/homeproxy/node.js:890 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1222 msgid "none" msgstr "无" -#: htdocs/luci-static/resources/view/homeproxy/node.js:871 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 +#: htdocs/luci-static/resources/view/homeproxy/node.js:891 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1223 msgid "packet addr (v2ray-core v5+)" msgstr "packet addr (v2ray-core v5+)" @@ -2144,11 +2144,11 @@ msgstr "sing-box 客户端" msgid "sing-box server" msgstr "sing-box 服务端" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1073 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1093 msgid "uTLS fingerprint" msgstr "uTLS 指纹" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 msgid "" "uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting " "resistance." @@ -2156,7 +2156,7 @@ msgstr "" "uTLS 是 \"crypto/tls\" 的一个分支,拥有抵抗 ClientHello 指纹识别的能力。" #: htdocs/luci-static/resources/homeproxy.js:206 -#: htdocs/luci-static/resources/view/homeproxy/node.js:423 +#: htdocs/luci-static/resources/view/homeproxy/node.js:443 msgid "unique UCI identifier" msgstr "独立 UCI 标识" @@ -2164,17 +2164,17 @@ msgstr "独立 UCI 标识" msgid "unique value" msgstr "独立值" -#: htdocs/luci-static/resources/view/homeproxy/node.js:699 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/node.js:719 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1156 msgid "v1" msgstr "v1" -#: htdocs/luci-static/resources/view/homeproxy/node.js:700 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1138 +#: htdocs/luci-static/resources/view/homeproxy/node.js:720 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1157 msgid "v2" msgstr "v2" -#: htdocs/luci-static/resources/view/homeproxy/node.js:701 +#: htdocs/luci-static/resources/view/homeproxy/node.js:721 msgid "v3" msgstr "v3" @@ -2183,8 +2183,8 @@ msgstr "v3" msgid "valid IP address" msgstr "有效 IP 地址" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1174 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1193 msgid "valid URL" msgstr "有效网址" diff --git a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc index 9bf44f0cf..b097f9a7a 100755 --- a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc +++ b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc @@ -243,7 +243,8 @@ function parse_uri(uri) { break; case 'trojan': /* https://p4gefau1t.github.io/trojan-go/developer/url/ */ - const trojan_url = parseURL('http://' + uri[1]); + const trojan_url = parseURL('http://' + uri[1]), + trojan_params = trojan_url.searchParams || {}; config = { label: trojan_url.hash ? urldecode(trojan_url.hash) : null, @@ -251,9 +252,26 @@ function parse_uri(uri) { address: trojan_url.hostname, port: trojan_url.port, password: urldecode(trojan_url.username), + transport: (trojan_params.type !== 'tcp') ? trojan_params.type : null, tls: '1', - tls_sni: trojan_url.searchParams ? trojan_url.searchParams.sni : null + tls_sni: trojan_params.sni }; + switch(trojan_params.type) { + case 'grpc': + config.grpc_servicename = trojan_params.serviceName; + break; + case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) + * config.ws_host = trojan_params.host ? urldecode(trojan_params.host) : null; + */ + config.ws_path = trojan_params.path ? urldecode(trojan_params.path) : null; + if (config.ws_path && match(config.ws_path, /\?ed=/)) { + config.websocket_early_data_header = 'Sec-WebSocket-Protocol'; + config.websocket_early_data = split(config.ws_path, '?ed=')[1]; + config.ws_path = split(config.ws_path, '?ed=')[0]; + } + break; + } break; case 'vless': @@ -301,6 +319,7 @@ function parse_uri(uri) { } break; case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */ config.ws_host = (config.tls !== '1' && vless_params.host) ? urldecode(vless_params.host) : null; config.ws_path = vless_params.path ? urldecode(vless_params.path) : null; if (config.ws_path && match(config.ws_path, /\?ed=/)) { @@ -376,6 +395,7 @@ function parse_uri(uri) { } break; case 'ws': + /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */ config.ws_host = (config.tls !== '1') ? uri.host : null; config.ws_path = uri.path; if (config.ws_path && match(config.ws_path, /\?ed=/)) { diff --git a/homeproxy/root/etc/init.d/homeproxy b/homeproxy/root/etc/init.d/homeproxy index db5b23424..bd1a21ef9 100755 --- a/homeproxy/root/etc/init.d/homeproxy +++ b/homeproxy/root/etc/init.d/homeproxy @@ -161,6 +161,8 @@ start_service() { procd_add_jail_mount_rw "$RUN_DIR/sing-box-c.log" procd_add_jail_mount "$HP_DIR/certs/" procd_add_jail_mount "/etc/ssl/" + procd_add_jail_mount "/etc/localtime" + procd_add_jail_mount "/etc/TZ" procd_set_param capabilities "/etc/capabilities/homeproxy.json" procd_set_param no_new_privs 1 procd_set_param user sing-box @@ -234,6 +236,8 @@ start_service() { procd_add_jail_mount "$RUN_DIR/sing-box-s.json" procd_add_jail_mount_rw "$RUN_DIR/sing-box-s.log" procd_add_jail_mount "$HP_DIR/certs/" + procd_add_jail_mount "/etc/localtime" + procd_add_jail_mount "/etc/TZ" procd_set_param capabilities "/etc/capabilities/homeproxy.json" procd_set_param no_new_privs 1 procd_set_param user sing-box diff --git a/luci-app-amlogic/Makefile b/luci-app-amlogic/Makefile index faa283f4c..51f99ada4 100644 --- a/luci-app-amlogic/Makefile +++ b/luci-app-amlogic/Makefile @@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-amlogic -PKG_VERSION:=3.1.184 +PKG_VERSION:=3.1.186 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 License diff --git a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh index 8bdf7a3c7..78ae2fa58 100755 --- a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh +++ b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh @@ -133,25 +133,60 @@ fi check_updated() { tolog "02. Start checking for the latest version..." - # Query the latest version - latest_version="$( - curl -s \ - -H "Accept: application/vnd.github+json" \ - https://api.github.com/repos/${server_firmware_url}/releases | - jq '.[]' | - jq -s --arg RTK "${releases_tag_keywords}" '.[] | select(.tag_name | contains($RTK))' | - jq -s '.[].assets[] | {data:.updated_at, url:.browser_download_url}' | - jq -s --arg BOARD "_${BOARD}_" --arg MLV "${main_line_version}." --arg FSX "${firmware_suffix}" \ - '.[] | select((.url | contains($BOARD)) and (.url | contains($MLV)) and (.url | endswith($FSX)))' | - jq -s 'sort_by(.data)|reverse[]' | - jq -s '.[0]' -c - )" - [[ "${latest_version}" == "null" ]] && tolog "02.01 Invalid OpenWrt download address." "1" - latest_updated_at="$(echo ${latest_version} | jq -r '.data')" - latest_url="$(echo ${latest_version} | jq -r '.url')" + # Set github API default value + github_page="1" + github_per_page="100" + github_releases_results=() - # Convert to readable date format - date_display_format="$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')" + # Get the release list + while true; do + response=$(curl -s -L \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/${server_firmware_url}/releases?per_page=${github_per_page}&page=${github_page}") + + # Check if the response is empty or an error occurred + if [ -z "${response}" ] || [[ "${response}" == *"Not Found"* ]]; then + break + fi + + # Append the current page's results to the overall results array + github_releases_results+=("${response}") + + # Check if the current page has fewer results than the per_page limit + if [ "$(echo "${response}" | jq '. | length')" -lt "${github_per_page}" ]; then + break + fi + + ((github_page++)) + done + + # Get the latest version + if [[ "${#github_releases_results[*]}" -ne "0" ]]; then + # Concatenate all the results into a single JSON array + all_results=$(echo "${github_releases_results[*]}" | jq -s 'add') + + # Sort the results + latest_version="$( + echo "${all_results[*]}" | + jq '.[]' | + jq -s --arg RTK "${releases_tag_keywords}" '.[] | select(.tag_name | contains($RTK))' | + jq -s '.[].assets[] | {data:.updated_at, url:.browser_download_url}' | + jq -s --arg BOARD "_${BOARD}_" --arg MLV "${main_line_version}." --arg FSX "${firmware_suffix}" \ + '.[] | select((.url | contains($BOARD)) and (.url | contains($MLV)) and (.url | endswith($FSX)))' | + jq -s 'sort_by(.data) | reverse | .[0]' -c + )" + [[ "${latest_version}" == "null" ]] && tolog "02.01 Invalid OpenWrt download address." "1" + + # Get the latest version + latest_updated_at="$(echo ${latest_version} | jq -r '.data')" + latest_url="$(echo ${latest_version} | jq -r '.url')" + + # Convert to readable date format + date_display_format="$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')" + else + tolog "02.02 The search results for releases are empty." "1" + fi # Check the firmware update code down_check_code="${latest_updated_at}.${main_line_version}" diff --git a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh index 10738bee2..521f0f144 100755 --- a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh +++ b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh @@ -98,18 +98,56 @@ sleep 2 # 02. Check the version on the server tolog "02. Start querying plugin version..." -# Query the latest version -latest_version="$( - curl -s \ - -H "Accept: application/vnd.github+json" \ - https://api.github.com/repos/ophub/luci-app-amlogic/releases | - jq -r '.[].tag_name' | - sort -rV | head -n 1 -)" -[[ -n "${latest_version}" ]] || tolog "02.01 Query failed, please try again." "1" -tolog "02.01 current version: ${current_plugin_v}, Latest version: ${latest_version}" -sleep 2 +# Set github API default value +github_page="1" +github_per_page="100" +github_releases_results=() +# Get the release list +while true; do + response=$(curl -s -L \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/ophub/luci-app-amlogic/releases?per_page=${github_per_page}&page=${github_page}") + + # Check if the response is empty or an error occurred + if [ -z "${response}" ] || [[ "${response}" == *"Not Found"* ]]; then + break + fi + + # Append the current page's results to the overall results array + github_releases_results+=("${response}") + + # Check if the current page has fewer results than the per_page limit + if [ "$(echo "${response}" | jq '. | length')" -lt "${github_per_page}" ]; then + break + fi + + ((github_page++)) +done + +# Get the latest version +if [[ "${#github_releases_results[*]}" -ne "0" ]]; then + # Concatenate all the results into a single JSON array + all_results=$(echo "${github_releases_results[*]}" | jq -s 'add') + + # Sort the results + latest_version="$( + echo "${all_results[*]}" | + jq -r '.[].tag_name' | + sort -rV | head -n 1 + )" + if [[ "${latest_version}" == "null" ]]; then + tolog "02.01 Query failed, please try again." "1" + else + tolog "02.01 current version: ${current_plugin_v}, Latest version: ${latest_version}" + sleep 2 + fi +else + tolog "02.01 The search results for releases are empty." "1" +fi + +# Compare the version and download the latest version if [[ "${current_plugin_v}" == "${latest_version}" ]]; then tolog "02.02 Already the latest version, no need to update." "1" else @@ -143,6 +181,6 @@ tolog "03. The plug is ready, you can update." sleep 2 #echo 'Update' >$START_LOG -tolog ' Latest version: '${server_plugin_version}'' "1" +tolog ' Latest version: '${latest_version}'' "1" exit 0 diff --git a/luci-app-xray/README.md b/luci-app-xray/README.md index d3555aef7..0f2c7048d 100644 --- a/luci-app-xray/README.md +++ b/luci-app-xray/README.md @@ -54,6 +54,7 @@ Then find `luci-app-xray` under `Extra Packages`. * 2023-04-29 fix: make `fw3` variant actually usable; add REALITY support for `fw3` variant * 2023-05-24 feat: `[OpenWrt 22.03 or above only]` support transparent proxy ports filter (fw4) * 2023-05-29 feat: `[OpenWrt 22.03 or above only]` add counter in fw4 +* 2023-05-29 chore: change default config to not using proxy ## Changelog 2022 diff --git a/luci-app-xray/fw3/Makefile b/luci-app-xray/fw3/Makefile index 1ea2ec9ce..519d7d797 100644 --- a/luci-app-xray/fw3/Makefile +++ b/luci-app-xray/fw3/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-xray-fw3 -PKG_VERSION:=2.0.1 +PKG_VERSION:=2.1.1 PKG_RELEASE:=1 PKG_LICENSE:=MPLv2 diff --git a/luci-app-xray/fw3/root/etc/config/xray_fw3 b/luci-app-xray/fw3/root/etc/config/xray_fw3 index c11214f55..1a53a3fc9 100644 --- a/luci-app-xray/fw3/root/etc/config/xray_fw3 +++ b/luci-app-xray/fw3/root/etc/config/xray_fw3 @@ -19,8 +19,8 @@ config general option lan_ifaces 'br-lan' list wan_bp_ips '114.114.114.114' option xray_api '1' - option main_server 'cfg024a8f' - option tproxy_udp_server 'cfg034a8f' + option main_server 'disabled' + option tproxy_udp_server 'disabled' option tproxy_sniffing '1' option routing_domain_strategy 'AsIs' option conn_idle '300' @@ -30,34 +30,3 @@ config general option downlink_only '5' option buffer_size '512' option direct_bittorrent '1' - -config servers - option security 'auto' - option transport 'tcp' - option tcp_guise 'none' - option tls '0' - option tests_enabled 'none' - option protocol 'vless' - option server_port '443' - option password '00000000-0000-0000-0000-000000000000' - option vless_security 'none' - option vless_encryption 'none' - option server 'example.org' - option alias 'VLESS XTLS Splice Example' - option vless_flow 'xtls-rprx-splice' - option vless_tls 'xtls' - option vless_xtls_host 'example.org' - option vless_xtls_insecure '0' - -config servers - option password 'supersecret' - option transport 'tcp' - option tcp_guise 'none' - option server 'example.org' - option server_port '443' - option protocol 'trojan' - option alias 'Trojan Example' - option trojan_flow 'none' - option trojan_tls 'tls' - option trojan_tls_host 'example.org' - option trojan_tls_insecure '0' diff --git a/luci-app-xray/fw4/Makefile b/luci-app-xray/fw4/Makefile index 8be462ebc..55aa82843 100644 --- a/luci-app-xray/fw4/Makefile +++ b/luci-app-xray/fw4/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-xray-fw4 -PKG_VERSION:=2.1.0 +PKG_VERSION:=2.1.1 PKG_RELEASE:=1 PKG_LICENSE:=MPLv2 diff --git a/luci-app-xray/fw4/root/etc/config/xray_fw4 b/luci-app-xray/fw4/root/etc/config/xray_fw4 index c11214f55..a919b8f37 100644 --- a/luci-app-xray/fw4/root/etc/config/xray_fw4 +++ b/luci-app-xray/fw4/root/etc/config/xray_fw4 @@ -19,8 +19,8 @@ config general option lan_ifaces 'br-lan' list wan_bp_ips '114.114.114.114' option xray_api '1' - option main_server 'cfg024a8f' - option tproxy_udp_server 'cfg034a8f' + option main_server 'disabled' + option tproxy_udp_server 'disabled' option tproxy_sniffing '1' option routing_domain_strategy 'AsIs' option conn_idle '300' @@ -30,34 +30,4 @@ config general option downlink_only '5' option buffer_size '512' option direct_bittorrent '1' - -config servers - option security 'auto' - option transport 'tcp' - option tcp_guise 'none' - option tls '0' - option tests_enabled 'none' - option protocol 'vless' - option server_port '443' - option password '00000000-0000-0000-0000-000000000000' - option vless_security 'none' - option vless_encryption 'none' - option server 'example.org' - option alias 'VLESS XTLS Splice Example' - option vless_flow 'xtls-rprx-splice' - option vless_tls 'xtls' - option vless_xtls_host 'example.org' - option vless_xtls_insecure '0' - -config servers - option password 'supersecret' - option transport 'tcp' - option tcp_guise 'none' - option server 'example.org' - option server_port '443' - option protocol 'trojan' - option alias 'Trojan Example' - option trojan_flow 'none' - option trojan_tls 'tls' - option trojan_tls_host 'example.org' - option trojan_tls_insecure '0' + option transparent_default_port_policy 'forwarded' diff --git a/luci-app-xray/shared/Makefile b/luci-app-xray/shared/Makefile index fa0a15dd2..ab67e7bc9 100644 --- a/luci-app-xray/shared/Makefile +++ b/luci-app-xray/shared/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-xray-shared -PKG_VERSION:=2.0.0 +PKG_VERSION:=2.1.1 PKG_RELEASE:=1 PKG_LICENSE:=MPLv2